# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
398825 | YaserFaisal | Three Friends (BOI14_friends) | C++14 | 1069 ms | 18076 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std ;
//#define int long long
int MOD = 1e9+7 ;
int freq[200] ;
vector < int > v[200] ;
int32_t main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n ; cin >> n ;
string s ; cin >> s ;
for ( int i = 0 ; i < n ; i++ )
{
freq[s[i]]++ ;
v[s[i]].push_back(i) ;
}
char c ;
int odd = 0 ;
for ( int i = 'A' ; i <= 'Z' ; i++ )
{
if ( (freq[i] % 2) == 1 )
{
odd++ ;
c = i ;
}
}
if ( odd != 1 || (n % 2) == 0 )
{
cout << "NOT POSSIBLE" ;
return 0 ;
}
string ans = "-" ;
for ( int i = 0 ; i < v[c].size() ; i++ )
{
int x = v[c][i] ;
string a , b ;
int m = n/2 ;
if ( x == m )
{
a = s.substr(0,m) ;
b = s.substr(m+1) ;
}
if ( x < m )
{
a = s.substr(0,x) + s.substr(x+1,m-x) ;
b = s.substr(m+1) ;
}
if ( x > m )
{
a = s.substr(0,m) ;
b = s.substr(m,x-m) + s.substr(x+1) ;
}
//cout << x << " " << a << " " << b << " " << endl ;
if ( a == b )
{
if ( a == ans ) continue ;
else if ( ans == "-" ) ans = a ;
else
{
cout << "NOT UNIQUE" << endl ;
return 0 ;
}
}
}
if ( ans == "-" ) ans = "NOT POSSIBLE" ;
cout << ans ;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |