Pagini recente »
Istoria paginii runda/s18_tema_5
|
Istoria paginii utilizator/cristian_benghe
|
Monitorul de evaluare
|
Cod sursă (job #93851)
|
Cod sursă (job #376961)
Cod sursă (job
#376961)
#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;
}