/ 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 1ms 568.0 KiB

Code

/**
*    In the name of Allah
*    We are nothing and you're everything
*    Ya Muhammad!
**/
#include <bits/stdc++.h>
 
using namespace std;
using ll = long long;
using ull = uint64_t;
 
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
//#define int long long
 
const char nl = '\n';
const int N = 1e5+5;
const ll inf = 0x3f3f3f3f3f3f3f3fll;

void solve() {
    deque<char> a;
    string s; cin >> s;
    for (int i = 0; i < sz(s); ++i)a.push_back(s[i]);
    
    int n = sz(s);
    string res;
    
    sort(all(a));
    
	for (int i = 0; i < n; ++i) {
		if (sz(res) == 0) {
			res += a.front();
			a.pop_front();
			continue;
		}
		for (auto j: a) {
			if (j != res.back()){
				deque<int>::iterator itr;
				//char ch = 'a';
				a.erase(find(a.begin(), a.end(), j));
				res += j; 
				break;
			}
		}
	}
	//cout << res << nl;
	for (auto i: a) {
		bool can = false;
		for (int j = sz(res)-1; j >= 0; --j) {
			bool ok = false;
			string s1, t1;
			if (j > 0) {
				s1 = res.substr(0, j+1);
				if (i == res[j])ok = true;
			}
			if (j < sz(res)) {
				t1 = res.substr(j+1, sz(res)-j-i);
				if (i == res[j+1])ok = true;
			}
			if (ok)continue;
			can = true;
			res = s1+i+t1;
			break;
		}
		if (!can && res.front()!=i) {
			res = i+res;
		}
	}
	if (sz(res) < n)cout << -1 << nl;
	else cout << res << nl;
}

int32_t main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int t; cin >> t;
    while(t--)solve();
  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 15:57:57
Judged At
2025-07-14 15:57:57
Judged By
Score
0
Total Time
1ms
Peak Memory
568.0 KiB