Pagini recente » Cod sursa (job #962070) | Cod sursa (job #1657093) | Cod sursa (job #154735) | Cod sursa (job #1288025) | Cod sursa (job #2470952)
#include <bits/stdc++.h>
using namespace std;
int pi[1000001];
int main()
{
ifstream cin("prefix.in");
ofstream cout("prefix.out");
int t;
cin >> t;
while(t--){
string s;
cin >> s;
int i = 0;
int n = s.size();
for(i = 1;i < n;i++){
int j = pi[i - 1];
while(j > 0 && s[i] != s[j]){
j = pi[j-1];
}
if(s[i] == s[j])
j++;
pi[i] = j;
}
for(i = n - 1;i >= 0;i--){
if(pi[i] && (i + 1) % (i + 1 - pi[i]) == 0)
{
cout << i + 1 << "\n";
break;
}
}
if(i == -1)
cout << "0\n";
}
return 0;
}