Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define all(X) sort((X).begin(), (X).end())
- #define int long long
- #define f first
- #define sec second
- #ifdef DEBUG
- #define deb(X) X
- #define log(X) cout << X << "\n"
- #define dump(X) cout << " [" << #X << "] = " << X << " "
- #else
- #define deb(X)
- #define log(X)
- #define dump(X)
- #endif // DEBUG
- using namespace std;
- // continue
- using ll = long long;
- using ull = unsigned long long;
- using ld = long double;
- void solve();
- main() {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- const auto start = chrono::steady_clock::now();
- solve();
- exit(0);
- const auto finish = chrono::steady_clock::now();
- cout << chrono::duration_cast<chrono::milliseconds > (finish - start).count() << "ms\n";
- }
- void solve ()
- {
- int n;
- cin >> n;
- string s;
- cin >> s;
- map < char, int > mp;
- for (int i = 0; i < s.size(); i++)
- {
- mp[s[i]]++;
- }
- map < char, int > b;
- for (int i = 0; i < s.size(); i++)
- {
- if (b[s[i]])
- {
- s.erase(i, 1);
- i--;
- }
- if (mp[s[i]] == 1){
- continue;
- }
- int cnt = 1, check = 0;
- int ind = i + 1;
- while (cnt != mp[s[i]] && ind < s.size())
- {
- if (s[ind] == s[i])cnt++;
- if (s[ind] < s[i])
- {
- check = 1;
- break;
- }
- if (s[ind] > s[i])
- {
- check = 0;
- break;
- }
- ind++;
- }
- if (!check)
- {
- b[s[i]] = 1;
- }
- if (check)
- {
- mp[s[i]]--;
- s.erase(i, 1);
- i--;
- }
- }
- cout << s;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement