Pagini recente »
Cod sursă (job #662769)
|
Cod sursă (job #819721)
|
Cod sursă (job #720051)
|
Borderou de evaluare (job #589068)
|
Cod sursă (job #694436)
Cod sursă (job
#694436)
#include <fstream>
#include <cstring>
using namespace std;
ifstream cin("bart.in");
ofstream cout("bart.out");
int pi[500001];
char a[500001],b;
int main()
{
int n,aux,i,maxx=0,nr=0,x;
cin>>a;
n=strlen(a);
aux=n;
for(i=1;i<=n;i++){
x=pi[i-1];
while(x>0){
if(a[x]==a[i]){
pi[i]=x+1;
x=-1;
}
else
x=pi[x - 1];
}
if(x==0){
if(a[0]==a[i] && i!=0)
pi[i]=1;
else
pi[i]=0;
}
}
for(i=0;i<n-pi[n-1];i++)
cout<<a[i];
return 0;
}