/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 532.0 KiB
#3 Accepted 1ms 520.0 KiB
#4 Accepted 2ms 348.0 KiB
#5 Accepted 2ms 532.0 KiB
#6 Accepted 2ms 572.0 KiB
#7 Accepted 2ms 532.0 KiB
#8 Accepted 2ms 360.0 KiB
#9 Accepted 4ms 532.0 KiB
#10 Accepted 5ms 532.0 KiB
#11 Accepted 5ms 532.0 KiB
#12 Accepted 5ms 532.0 KiB
#13 Accepted 5ms 532.0 KiB
#14 Accepted 5ms 532.0 KiB
#15 Accepted 5ms 532.0 KiB

Code

#include <bits/stdc++.h>     //   All praise is due to Allah alone, and peace and blessings be
using namespace std;         //         upon him, after whom there is no other Prophet.

int32_t main() {
    cin.tie(0)->sync_with_stdio(false);

    function<void()> Test_Case = [&]() {
        string s; cin >> s;
        int n = s.size();
        int ar[26] = {0};
        for(const char c : s) {
            ar[c - 'a']++;
        }
        if(*max_element(ar, ar + 26) > (n + 1) / 2) {
            cout << "-1\n"; return;
        }
        s.clear();
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < 26; j++) {
                if(ar[j] == 0) continue;
                char ok = char('a' + j);
                if(s.size() and s.back() == ok) continue;
                int it = max_element(ar, ar + 26) - ar;
                if(it != j and ar[it] > (n - i) / 2) continue;
                ar[j]--;
                s.push_back(ok);
                break;
            }
        }

        cout << s << '\n';
    };

    int32_t Case = 1;    cin >> Case;
    for (int T = 1; T <= Case; T++) {
        Test_Case();
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1209 B. Rearrange the String
Contest
Educational Round 1
Language
C++17 (G++ 13.2.0)
Submit At
2025-07-14 17:09:48
Judged At
2025-07-14 17:09:48
Judged By
Score
100
Total Time
5ms
Peak Memory
572.0 KiB