提交时间:2025-10-07 11:53:20

运行 ID: 38407

#include<bits/stdc++.h> using namespace std; int n,sum,id; string s; bool l[2000005],l1[2000005],r1[2000005],r[2000005]; int main(){ cin>>n; cin>>s; if(n%2==0){ cout<<"NOT POSSIBLE"; return 0; } for(int i=0;i<=n/2-1;i++){ if(s[i]==s[i+n/2+1]){ l1[i]=1; } else{ break; } } if(l1[n/2-1]==1){ id=n/2; sum++; } for(int i=n/2-1;i>=0;i--){ if(s[i]==s[i+n/2+1]){ r1[i]=1; } else{ break; } } for(int i=n/2-1;i>=0;i--){ if(s[i+1]==s[i+n/2+1]){ r[i]=1; } else{ break; } } for(int i=0;i<=n/2-1;i++){ if(s[i]==s[i+n/2]){ l[i]=1; } else{ break; } } for(int i=0;i<=n-1;i++){ if(i==n/2) continue; if(i<n/2){ if((i==0||l1[i-1])&&r[i]){ sum++; id=i; } } else if(i>n/2){ if((i==n-1||r1[i-n/2])&&l[i-n/2-1]){ sum++; id=i; } } } if(sum==0){ cout<<"NOT POSSIBLE"; } else if(sum==1){ if(id<=n/2){ for(int i=n/2+1;i<=n-1;i++){ cout<<s[i]; } } else{ for(int i=0;i<=n/2-1;i++){ cout<<s[i]; } } } else{ cout<<"NOT UNIQUE"; } return 0; }