Pagini recente »
Istoria paginii runda/2021-04-27-clasa-5-tema-27
|
pregatire_lot_juniori_runda2
|
Istoria paginii runda/oli2016cls10
|
Istoria paginii runda/c4_5/clasament
|
Cod sursă (job #377045)
Cod sursă (job
#377045)
#include <fstream>
#include <cstring>
using namespace std;
ifstream in ("bart.in");
ofstream out ("bart.out");
char s[500001];
int a[500001],i,t,n;
int main()
{
in>>(s+1);
n=strlen(s+1);
for (i=2; i<=n; i++)///xyzxyzxy
{
while(t>0 && s[i]!=s[t+1])
t=a[t];
if (s[i]==s[t+1])
t++;
a[i]=t;
}
for (i=1; i<=n-a[n]; i++)
out<<s[i];
return 0;
}