152562025-02-17 18:08:34TakacsAndrasVáltakozó (75 pont)cpp17Accepted 75/7519ms1668 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
    string s; cin >> s;
    if (s.size() == 1) {
        cout << s << '\n';
        return 0;
    }
    vector<int> a(26);
    for (int i = 0; i < s.size(); i++) {
        if (++a[s[i]-'a'] > (s.size()+1)/2) {
            cout << "-1";
            return 0;
        }
    }
    vector<int> out(s.size()+1);
    out[0] = -1;
    for (int i = 1; i <= s.size(); i++) {
        int x = 1000;
        for (int j = 0; j < 26; j++) {
            if (a[j] > 0 && out[i-1] != j && a[j] >= (s.size()-i+1)/2+1) {
                x = j;
                break;
            }
            if (a[j] > 0 && out[i-1] != j && x > j) x = j;
        }
        a[x]--;
        out[i] = x;
    }
    for (int i = 1; i <= s.size(); i++) cout << (char)(out[i]+'a');
}
SubtaskSumTestVerdictTimeMemory
base75/75
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Accepted3/31ms496 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/32ms316 KiB
8Accepted3/317ms1532 KiB
9Accepted3/36ms708 KiB
10Accepted3/36ms668 KiB
11Accepted3/31ms316 KiB
12Accepted3/31ms316 KiB
13Accepted3/31ms316 KiB
14Accepted3/31ms316 KiB
15Accepted3/319ms1476 KiB
16Accepted3/319ms1520 KiB
17Accepted3/318ms1516 KiB
18Accepted3/318ms1520 KiB
19Accepted3/316ms1504 KiB
20Accepted3/316ms1528 KiB
21Accepted3/317ms1668 KiB
22Accepted6/614ms1668 KiB
23Accepted6/616ms1476 KiB
24Accepted6/618ms1620 KiB