/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Time Exceeded ≥1100ms ≥388.0 KiB
#3 Time Exceeded ≥1000ms ≥532.0 KiB

Code

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5;
const int Prime = 1e9+7;
const int Base = 251;


//...................................................................//
#define endl                '\n'
#define Int                 long long int
#define gcd(x, y)           (__gcd(x, y))
#define lcm(x, y)           ((x/gcd(x, y))*y)
#define rand(x, y)          rand()%(y-x+1)+x
#define pow2(x)             (1<<x)
#define pi                  3.141592653589793
#define decimal(x, y)       fixed<<setprecision(x)<<y
#define unsync              ios_base::sync_with_stdio(0); cin.tie(0);
#define TxtI                freopen("input.txt","r",stdin);
#define TxtO                freopen("output.txt","w",stdout);
//...................................................................//


int main()
{
    //srand(time(0));
    //TxtI TxtO
    unsync

    int t;
    
    cin >> t;
    
    while(t--)
    {
        Int mx=0;
        char mxC;
        string s, ans="";
        map<char, int> mp;

        cin >> s;
        bool taken[s.size()] = {0};

        for(int i=0; i<s.size(); i++)
        {
            mp[s[i]]++;

            if(mp[s[i]]>mx)
            {
                mx = mp[s[i]];
                mxC = s[i];
            }
        }

        sort(s.begin(), s.end());

        if(s.size()-mp[mxC]<mp[mxC]-1) cout << -1 << endl;
        else
        {
            while(ans.size()<s.size())
            {
                for(int i=0; i<s.size(); i++)
                {
                    if(ans[ans.size()-1]!=s[i] && !taken[i] && (s.size()-ans.size()>=2*mx || s[i]==mxC))
                    {
                        ans += s[i];
                        mp[s[i]]--;
                        taken[i] = true;
                        mx -= (s[i]==mxC);
                        break;
                    }
                }
            }

            cout << ans << endl;
        }
    }
}

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:42:06
Judged At
2025-07-14 17:42:06
Judged By
Score
0
Total Time
≥1100ms
Peak Memory
≥532.0 KiB