Pagini recente » Cod sursa (job #1442975) | Cod sursa (job #1920135) | Cod sursa (job #1434475) | Cod sursa (job #1159630) | Cod sursa (job #3189666)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
int t, n, i, j, a[1000002], r;
string p;
static inline void Rezolva() {
fin >> p;
n = p.size();
j = 0;
r = 0;
for(i = 1; i < n; i++) {
while(j > 0 && p[j] != p[i]) j = a[j - 1];
if(p[j] == p[i]) j++;
a[i] = j;
int f1 = i + 1;
int f2 = i + 1 - a[i];
if(f1 % f2 == 0 && f1 / f2 > 1) r = f1;
}
fout << r << "\n";
}
int main() {
fin >> t;
while(t--) Rezolva();
return 0;
}