代碼如下
#include<iostream>
using namespace std;
char a[3000003],k1[3000003],k2[3000003];
int main(){
int n,saf=1;
cin >>n;
for(int i=1;i<=n;i++)cin >>a[i];
if(n%2==0){
cout<<"NOT POSSIBLE";
return 0;
}
char tp=a[1];
for(int i=1;i<=n;i++){
if(a[i]!=tp){
saf=0;
break;
}
}
if(saf){
for(int i=1;i<=n/2;i++){
cout<<a[i];
}
return 0;
}
int q = n/2+1;
int f=0;
for(int i=q+1;i<=n;i++){
f++;
k1[f]=a[i];
}
int sum=0,is=1;
for(int i=1;i<=q;i++){
if(a[i]!=k1[i-sum]){
sum++;
if(sum>1){
is = 0;
break;
}
}
}
q = n/2;
for(int i=1;i<=q;i++){
k2[i]=a[i];
}
sum=0;
int is2=1;
for(int i=1;i<=q+1;i++){
if(a[i+q]!=k2[i-sum]){
sum++;
if(sum>1){
is2 = 0;
break;
}
}
}
if(is&&!is2){
for(int i=1;i<=q+1;i++)cout<<k1[i];
}
else if(!is&&is2){
for(int i=1;i<=q;i++)cout<<k2[i];
}
else if(is&&is2){
cout<<"NOT UNIQUE";
}
else{
cout<<"NOT POSSIBLE";
}
}