/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 532.0 KiB
#3 Accepted 1ms 532.0 KiB
#4 Accepted 1ms 532.0 KiB
#5 Accepted 1ms 484.0 KiB
#6 Accepted 1ms 484.0 KiB
#7 Accepted 1ms 580.0 KiB
#8 Accepted 1ms 532.0 KiB
#9 Accepted 1ms 516.0 KiB
#10 Accepted 1ms 564.0 KiB
#11 Accepted 1ms 332.0 KiB
#12 Accepted 1ms 532.0 KiB
#13 Accepted 1ms 532.0 KiB
#14 Accepted 1ms 488.0 KiB
#15 Accepted 1ms 532.0 KiB

Code

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

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int T; if (!(cin >> T)) return 0;
    while (T--) {
        string s; cin >> s;
        int n = s.size();
        array<int,26> cnt{}; for (char ch:s) ++cnt[ch-'a'];
        if (*max_element(cnt.begin(),cnt.end()) > (n+1)/2) {
            cout << -1 << '\n';
            continue;
        }
        string ans; ans.reserve(n);
        int prev = -1, left = n;
        for (int pos=0; pos<n; ++pos) {
            bool placed=false;
            for (int c=0;c<26 && !placed;++c) {
                if (!cnt[c] || c==prev) continue;
                --cnt[c]; --left;
                if (*max_element(cnt.begin(),cnt.end()) <= (left+1)/2) {
                    ans.push_back(char('a'+c));
                    prev=c; placed=true;
                } else {
                    ++cnt[c]; ++left;
                }
            }
        }
        cout << ans << '\n';
    }
    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 16:40:35
Judged At
2025-07-14 16:40:35
Judged By
Score
100
Total Time
1ms
Peak Memory
580.0 KiB