Pagini recente »
Borderou de evaluare (job #205655)
|
Cod sursă (job #446898)
|
Monitorul de evaluare
|
concurs7b
|
Cod sursă (job #532409)
Cod sursă (job
#532409)
#include <bits/stdc++.h>
using namespace std;
ifstream in("bart.in");
ofstream out("bart.out");
const int NMAX = 1000003;
char s[NMAX];
int Pi[NMAX];
int i,n,now,r,q,j;
int main() {
in>>s;
n=strlen(s);
for(i=n;i>=1;i--)
s[i]=s[i-1];
r=0;
for(i=2;i<=n;i++) {
now=Pi[i-1];
while(now>0&&s[now+1]!=s[i])
now=Pi[now];
if(s[now+1]==s[i])
now++;
Pi[i]=now;
}
r=n-Pi[n];
for(int i=1;i<=r;i++)
out<<s[i];
return 0;
}