Cod sursă (job #442968)

Utilizator avatar mjmilan11 Mujdar Milan mjmilan11 IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp | 0.49 kb
Rundă Arhiva de probleme Status evaluat
Dată 6 mar. 2019 09:11:10 Scor 100
#include <bits/stdc++.h>

using namespace std;

ifstream fin("bart.in");
ofstream fout("bart.out");

const int NMAX = 500005;
char c[NMAX];
int p[NMAX];

int main()
{
    fin >> (c+1);
    int n=strlen(c+1),q;
    p[1]=0;
    for(int i=2;i<=n;i++)
    {
        q=p[i-1];
        while(c[q+1]!=c[i] and q!=0)
        {
            q=p[q];
        }
        if(c[q+1]!=c[i]) p[i]=0;
        else p[i]=q+1;
    }
    for(int i=1;i<=n-p[n];i++) fout << c[i];
    return 0;
}