Pagini recente »
mult_prea_simplu
|
Istoria paginii runda/cel_mai_greu_c/clasament
|
martisor
|
Istoria paginii runda/cel_mai_greu_c/clasament
|
Cod sursă (job #376962)
Cod sursă (job
#376962)
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("bart.in");
ofstream out("bart.out");
char ch[500001];
int p[500001];
int main()
{
int i,j,l,vf=0;
in.get(ch+1,500001);
l=strlen(ch+1);
for(i=2; i<=l; i++)
{
while(vf&&ch[i]!=ch[vf+1])
vf=p[vf];
if(ch[i]==ch[vf+1])
vf++;
p[i]=vf;
}
for(i=1;i<=l-p[l];i++)
{
out<<ch[i];
}
return 0;
}