Cod sursă (job #694435)

Utilizator avatar DavidDavid David david DavidDavid IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp-32 | 0,68 kb
Rundă Arhiva de probleme Status evaluat
Dată 11 feb. 2023 09:10:07 Scor 90
#include <fstream>
#include <cstring>

using namespace std;
ifstream cin("bart.in");
ofstream cout("bart.out");
long long pi[4000005],v[2000005];
char a[4000005],b;
int main()
{
    int n,aux,i,maxx=0,nr=0,x;
    cin>>a;
    n=strlen(a);
    aux=n;

    for(i=1;i<=n;i++){
        x=pi[i-1];
        while(x>0){
            if(a[x]==a[i]){
                pi[i]=x+1;
                x=-1;
            }
            else
                x=pi[x - 1];
        }
        if(x==0){
            if(a[0]==a[i] && i!=0)
                pi[i]=1;
            else
                pi[i]=0;
        }

    }

    for(i=0;i<n-pi[n-1];i++)
        cout<<a[i];
    return 0;
}