# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
398825 | YaserFaisal | 세 명의 친구들 (BOI14_friends) | C++14 | 1069 ms | 18076 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 ;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |