이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
// #define int long long
#define ll long long
#define pb push_back
#define fi first
#define se second
using namespace std;
typedef pair<int,int> pii;
typedef pair<int,pii> ipii;
const int MAXN = 2e6+15;
// const int INF = 2e18+10;
int n;
string s;
bool dep=0, bel=0;
signed main(){
cin >> n;
cin >> s; s = '.'+s;
if(n%2==0){ cout << "NOT POSSIBLE\n"; exit(0); }
int i, j = n/2+1;
for(i=1; i<=n/2; i++){
if(s[i]==s[j]) j++;
else break;
}
dep = 1; j++;
// s[j] blm, s[i] blm
for(; i<=n/2; i++, j++)
if(s[i]!=s[j]) dep = 0;
j = 1;
for(i=n/2+2; i<=n; i++){
if(s[i]==s[j]) j++;
else break;
}
bel = 1; j++;
for(; i<=n; i++, j++)
if(s[i]!=s[j]) bel = 0;
bool can = 1;
for(int i=1; i<=n/2; i++){
if(s[i]!=s[i+n/2+1]) can = 0;
}
if(can){ dep = 1; bel = 0; }
if(!dep && !bel) cout << "NOT POSSIBLE\n";
else if(dep && bel) cout << "NOT UNIQUE\n";
else if(dep){
for(int i=1; i<=n/2; i++) cout << s[i];
cout << '\n';
} else {
for(int i=n/2+2; i<=n; i++) cout << s[i];
cout << '\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |