Pagini recente » Cod sursa (job #3205163) | Cod sursa (job #2297976) | Cod sursa (job #299716) | Cod sursa (job #2688675) | Cod sursa (job #2924009)
#include <bits/stdc++.h>
using namespace std;
const string fisier = "prefix";
ifstream fin (fisier + ".in");
ofstream fout (fisier + ".out");
int solve(){
string s; fin >> s;
int n = (int)s.size(), index = 0;
vector<int>a(n, 0);
for (int i = 1; i < n;){
if (s[i] == s[index]){
index += 1;
a[i] = index;
i += 1;
}
else{
if (index != 0){
index = a[index - 1];
}
else{
a[i] = 0;
i += 1;
}
}
}
int ans = 0;
for (int i = 1; i <= n; i++){
if (a[i - 1] && i % (i - a[i - 1]) == 0){
ans = max(ans, i);
}
}
return ans;
}
int main(){
int t; fin >> t;
while (t--){
fout << solve() << '\n';
}
}