Cod sursa(job #2023935)

Utilizator xRoALexBirtoiu Alexandru xRoALex Data 19 septembrie 2017 18:16:02
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <vector>
#include <string>
#define Nmax 2000005
using namespace std;

string A;

int pi[Nmax],w,n;

ifstream f("prefix.in");
ofstream g("prefix.out");

vector <int> rez;

int main()
{
    int i,cnt=0;
    f>>n;
    while(n)
    {
    f>>A;
    int raspuns=0;
    for(i=1; i<A.size(); i++)
    {
        while(w!=0 && A[i]!=A[w]) w=pi[w-1];

        if(A[i]==A[w])
            w++;

        pi[i]=w;
    }
    w=0;
    for(i=A.size();i>=1;i--)
    {
        if(pi[i]&&(i+1)%(i+1-pi[i])==0)
        {
            raspuns=i+1;
            break;
        }
    }
    g<<raspuns<<'\n';
    n--;
    }
    return 0;
}