이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<stdio.h>
int dap,cnt,p,n,arr1[2000010],arr2[2000010],s1,s2;
char a[2000010];
int main()
{
int i;
scanf("%d",&n);
scanf("%s",a);
if(n%2==0){printf("NOT POSSIBLE"); return 0;}
for(i=0;i<=n/2;i++)
{
if(a[i]==a[i+n/2]) arr1[i]=1;
if(a[i]==a[i+n/2+1]) arr2[i]=1;
}
for(i=n/2;i>=0;i--) if(arr1[i]!=1) break;
s1=n/2-i;
for(i=0;i<=n/2;i++) if(arr2[i]!=1) break;
s2=i;
if(s1+s2==n/2) dap=s2, cnt++;
if(s1+s2>n/2)
{
int sw=0;
for(i=s2;i>=0;i--)
{
if(n/2-i>s1) break;
if(a[i]!=a[s2]) sw=1;
}
if(sw==1){printf("NOT UNIQUE"); return 0;}
dap=s2; cnt++;
}
if(dap==n/2) cnt=0;
for(i=0;i<n/2;i++) if(arr1[i]!=1) break;
s1=i;
for(i=n/2-1;i>=0;i--) if(arr2[i]!=1) break;
s2=n/2-1-i;
if(s1+s2>=n/2)
{
if(cnt){printf("NOT UNIQUE"); return 0;}
else{ dap=n/2; cnt++;}
}
if(cnt)
{
for(i=0;i<=n/2;i++)
{
if(i!=dap) printf("%c",a[i]);
}
}
else printf("NOT POSSIBLE");
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |