Pagini recente »
lasm_29_10_2019_10_12b
|
Istoria paginii runda/2025-05-20-clasa-6-concurs11
|
Istoria paginii runda/2022-03-18-clasa-6-tema-21
|
Istoria paginii runda/2018-05-03-clasa-5-tema-39/clasament
|
Cod sursă (job #530910)
Cod sursă (job
#530910)
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char s[500001];
int pref[500001];
int main() {
FILE *fin, *fout;
int i, lc, n;
fin=fopen("bart.in","r");
fout=fopen("bart.out","w");
fgets(s+1,500001,fin);
n=strlen(s+1);
for(i=2;i<n;i++) {
if(i!=0)
lc=pref[i-1];
else
lc=0;
while(lc>0 && s[lc+1]!=s[i])
lc=pref[lc];
if(s[lc+1]==s[i])
lc++;
pref[i]=lc;
}
for(i=1;i<=n-pref[n-1]-1;i++)
fprintf(fout, "%c",s[i]);
fclose( fin );
fclose( fout );
return 0;
}