Pagini recente » Cod sursa (job #2359923) | Cod sursa (job #2383409) | Cod sursa (job #2849904) | Cod sursa (job #1394126) | Cod sursa (job #1429715)
#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;
}