Mai intai trebuie sa te autentifici.

Cod sursa(job #1457746)

Utilizator DrumeaVDrumea Vasile DrumeaV Data 4 iulie 2015 13:49:53
Problema Prefix Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;

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

const int Dim = 1000001;

int T,P[Dim],Sol;
char S[Dim];

int main()
{
    fin >> T;
    fin.getline(S,Dim);

    while(T--)
    {
        fin.getline(S,Dim);

        memset(P,0,sizeof(P));
        Sol = 0;

        int N = strlen(S),it = 0;

        for (int i = 1;i < N;i++)
        {
            while(it && S[it] != S[i])
                it = P[it - 1];

            if (S[it] == S[i])
                it++;

            P[i] = it;

            if (P[i] && !((i + 1) % (i + 1 - P[i])))
                Sol = i + 1;
        }
        fout << Sol << "\n";
    }
  return 0;
}