777D - Cloud of Hashtags - CodeForces Solution


binary search greedy implementation strings *1800

Please click on ads to support us..

Python Code:

n = int(input())
a = []
for i in range(n):
    a.append(input())

for i in range(n-2,-1,-1):
    if a[i] <= a[i+1]:
        continue
    else:
        j = 0
        while j < len(a[i]) and j < len(a[i+1]):
            if a[i][j] == a[i+1][j]:
                j += 1
            elif a[i][j] > a[i+1][j]:
                break
        a[i] = a[i][:j]
        
for i in range(n):
    print(a[i])

C++ Code:

#include<bits/stdc++.h>
using namespace std;

const long long MAX = 2e18;

int main(){
//    freopen("test.INP", "r", stdin);

    int test_case;
    test_case = 1;

    while (test_case--){
        int n;
        cin >> n;
        vector<string> s(n);

        for (int i = 0; i < n; i++) cin >> s[i];


        for (int i = n - 2; i >= 0; i--){
            int last = -1;
            for (int j = 1; j < s[i].length(); j++){
                if (s[i+1].length() <= j){
                    last = j;
                    break;
                }
                if (s[i+1][j] == s[i][j]) continue;
                else if (s[i+1][j] > s[i][j]) break;
                else {
                    last = j;
                    break;
                }
            }
            if (last == -1) continue;
            s[i] = s[i].substr(0, last);
        }

        for (int i = 0; i < n; i++){
            cout << s[i] << endl;
        }
    }
}


Comments

Submit
0 Comments
More Questions

1409A - Yet Another Two Integers Problem
977A - Wrong Subtraction
263A - Beautiful Matrix
180C - Letter
151A - Soft Drinking
1352A - Sum of Round Numbers
281A - Word Capitalization
1646A - Square Counting
266A - Stones on the Table
61A - Ultra-Fast Mathematician
148A - Insomnia cure
1650A - Deletions of Two Adjacent Letters
1512A - Spy Detected
282A - Bit++
69A - Young Physicist
1651A - Playoff
734A - Anton and Danik
1300B - Assigning to Classes
1647A - Madoka and Math Dad
710A - King Moves
1131A - Sea Battle
118A - String Task
236A - Boy or Girl
271A - Beautiful Year
520B - Two Buttons
231A - Team
479C - Exams
1030A - In Search of an Easy Problem
158A - Next Round
71A - Way Too Long Words