Cod sursa(job #1429715)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 6 mai 2015 23:10:25
Problema Prefix Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#include <cstring>
#define DIM 1048576
using namespace std;

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

int N, P[DIM], T, maxim, i, L; char A[DIM];

int main(){
    fin >> T;
    for(; T; T--){
        fin >> A + 1;
        N = strlen(A + 1);
        maxim = 0; L = 0;
        for(i = 2; i <= N; i ++){
            while(L != 0 && A[i] != A[L+1])
                L = P[L];
            if(A[i] == A[L+1])
                L ++;
            P[i] = L;
            if(P[i] > 0 && i % (i - P[i]) == 0)
                maxim = i;
        } fout << maxim << "\n";
    }
    return 0;
}