Pagini recente »
Istoria paginii runda/idkddd
|
Borderou de evaluare (job #565570)
|
Cod sursă (job #665406)
|
Borderou de evaluare (job #565500)
|
Cod sursă (job #226161)
Cod sursă (job
#226161)
#include <fstream>
#define Xp 500012
#include <cstring>
using namespace std;
ifstream f("bart.in");
ofstream g("bart.out");
int p[Xp],l,i,k;
char s[Xp];
void kmp()
{
p[1]=0;
for(i=2;i<=l;++i)
{
while(k>0&&s[k+1]!=s[i]) k=p[k];
if(s[k+1]==s[i]) ++k;
p[i]=k;
}
}
int main()
{
f.get(s+1,Xp);
l=strlen(s+1);
kmp();
for(i=1;i<=l-p[l];++i) g<<s[i];
return 0;
}