/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Wrong Answer 1ms 320.0 KiB
#2 Wrong Answer 1ms 532.0 KiB

Code

/*
 * Author: Md. Mahfuzur Rahman
 * Purpose: Competitive Programming
 */

#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <list>
#include <deque>
#include <array>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <stack>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <utility>
#include <tuple>
#include <limits>
#include <functional>
#include <chrono>
#include <random>
#include <bitset>
#include <iomanip>
using namespace std;

#define ll long long
 #define pb push_back
 #define endl '\n'
 #define nl cout << endl
 #define ff first
 #define ss second
 #define all(v) v.begin(), v.end()
 #define rall(v) v.rbegin(), v.rend()
 #define srt(v) sort(v.begin(),v.end())
 #define vii vector<int>
 #define vll vector<long long>
 #define pii pair<int, int>
 #define pll pair<long,long>
 #define FAST_IO ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
 #define minheap priority_queue<long long, vector<long long>, greater<long long>>
 #define maxheap priority_queue<long long, vector<long long>>
const int MAX = 1e6;
const ll MOD = 1e9+7;

bool cmp(pair<ll,char>a,pair<ll,char>b){
    return a.ff>b.ff;
}
 void solve()
 {  
      string s;cin>>s;
      ll n=s.size();
      int a[26]={0};

      for(auto x:s){
        a[x-'a']++;
      }
    
    vector<pair<ll,char>>v;
    for(ll i=0;i<26;i++)
      {
        if(a[i]!=0){
            v.pb({a[i],(char)(i+'a')});
        }
      }
      sort(all(v),cmp);

      string ans="";
      for(ll i=0;i<=n;i++){
        ans+='#';
      }
      // for(auto x:v){
      //   cout<<x.ff<<" "<<x.ss<<endl;
      // }

      for(auto x:v)
      {
        ll i=1;
        while(i<=n){
            if(ans[i]=='#'&&x.ff>0&&ans[i-1]!=x.ss){
                ans[i]=x.ss;
                x.ff--;
            }
            i++;
        }
      }
      reverse(all(ans));
      ans.pop_back();
      reverse(all(ans));
      string x=ans;
      reverse(all(x));
      for(ll i=0;i<n;i++){
        if(ans[i]=='#'){
            cout<<-1<<endl;
            return;
        }
      }
      for(ll i=0;i<n-1;i++)
      {
        if(ans[i]==ans[i+1]){
            cout<<-1<<endl;
            return;
        }
      }
     // cout<<x<<endl<<ans<<endl;
     if(x<ans)cout<<x;
     else cout<<ans;
      nl;


 
 }

int main()
{
    ios::sync_with_stdio(0); cin.tie(0);  
    
    ll t;          
    cin>>t;
    while(t--)
    {
      solve();
    }    
    
    
}

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:34:11
Judged At
2025-07-14 16:34:11
Judged By
Score
0
Total Time
1ms
Peak Memory
532.0 KiB