149182025-02-07 10:58:23miszorimarciVáltakozó (75 pont)cpp17Elfogadva 75/7582ms1220 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	string s; cin >> s;
    int n = s.size();
    vector<int>v(26);
    for(char c : s)
    {
        v[c - 'a']++;
        if(v[c - 'a'] > (n+1)/2)
        {
            cout << -1;
            return 0;
        }
    }
    vector<char> ans(n);
    int remaining = n;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < 26; j++) {
        if (i > 0 && 'a' + j == ans[i - 1]) continue;
        bool b = true;
        for (int k = 0; k < 26; k++) {
          if ((k == j && v[k] - 1 > remaining / 2) || (k != j && v[k] > remaining / 2)) {
            b = false;
          }
        }
        if (b && v[j] > 0) {
          ans[i] = 'a' + j;
          v[j]--;
          remaining--;
          break;
        }
      }
    }

    for (int i = 0; i < n; i++) cout << ans[i];
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base75/75
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms412 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/36ms316 KiB
8Elfogadva3/382ms1220 KiB
9Elfogadva3/36ms820 KiB
10Elfogadva3/36ms1004 KiB
11Elfogadva3/32ms408 KiB
12Elfogadva3/32ms316 KiB
13Elfogadva3/31ms316 KiB
14Elfogadva3/31ms316 KiB
15Elfogadva3/365ms1220 KiB
16Elfogadva3/364ms1132 KiB
17Elfogadva3/371ms1124 KiB
18Elfogadva3/375ms1156 KiB
19Elfogadva3/348ms1220 KiB
20Elfogadva3/345ms1128 KiB
21Elfogadva3/354ms1220 KiB
22Elfogadva6/641ms1216 KiB
23Elfogadva6/650ms1156 KiB
24Elfogadva6/678ms1120 KiB