Pagini recente »
Monitorul de evaluare
|
Profil DianaVirgolici
|
Monitorul de evaluare
|
Istoria paginii runda/2020-05-02-clasa-5-tema-36
|
Cod sursă (job #377031)
Cod sursă (job
#377031)
#include <fstream>
#include <cstring>
using namespace std;
ifstream in ("bart.in");
ofstream out ("bart.out");
const int nmax=500000;
char s[nmax+1];
int pa[nmax+1];
int main()
{
in>>(s+1);
int n, k=0;
n=strlen(s+1);
for(int i=2; i<=n; i++)
{
while(k && s[i]!=s[k+1])
k=pa[k];
if(s[i]==s[k+1])
k++;
pa[i]=k;
}
int xn=n-pa[n];
for(int i=1; i<=xn; i++)
out<<s[i];
return 0;
}