/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Wrong Answer 1ms 532.0 KiB
#3 Wrong Answer 2ms 764.0 KiB

Code

#include<bits/stdc++.h>
using namespace std;
#define ll long long int 

int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
   ll tc;
    cin>>tc;
    while(tc--)
    {
        string s;
        cin>>s;
         vector<ll>mp(26,0);
        for(int i=0;i<s.size();i++)
            mp[s[i]-'a']++;
        ll n=s.size();
        ll c=0;
        for(auto it:mp)
        {
            if(it>(n+1)/2)
            {
                c=1;
                break;
            }
        }
        if(c==1)
            cout<<-1<<"\n";
        else
        {
            string k;
           
          
            while(1)
            {
                
                ll c=0;
                for(char ch='a';ch<='z';ch++)
                {
                    if(k.size()==0 && mp[ch-'a']>0)
                    {
                        k+=ch;
                        mp[ch-'a']--;
                        
                        c=1;
                        break;
                        
                    }
                    else if(k.size()>0 && k[k.size()-1]!=ch && mp[ch-'a']>0)
                    {
                        k+=ch;
                        mp[ch-'a']--;
                        
                        c=1;
                        break;
                    }
                }
                if(c==0 && mp[(k[k.size()-1]-'a')]==1)
                {
                    string d;
                    ll id=0;
                   for(int i=0;i<k.size();i++)
                   {
                       if(k[i]==k[k.size()-1])
                       {
                           id=i;
                           break;
                       }
                   }
                    for(int i=0;i<id-1;i++)
                        d+=k[i];
                    d+=k[k.size()-1];
                    for(int i=id-1;i<k.size();i++) d+=k[i];
                    k=d;
                    
                    break;
                }
                if(c==0) break;
                
            }
            cout<<k<<"\n";
        }
    }
    
    
}

Information

Submit By
Type
Submission
Problem
P1209 B. Rearrange the String
Language
C++17 (G++ 13.2.0)
Submit At
2025-07-16 05:08:04
Judged At
2025-07-16 05:08:04
Judged By
Score
0
Total Time
2ms
Peak Memory
764.0 KiB