Pagini recente » Cod sursa (job #654508) | Cod sursa (job #574282) | Cod sursa (job #2786154) | Cod sursa (job #1190553) | Cod sursa (job #1822117)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6;
string s;
int pi[MAXN + 1];
int main()
{
int t, n, i, k, ans;
ifstream fin("prefix.in");
fin >> t;
ofstream fout("prefix.out");
for (t; t > 0; --t) {
s.clear();
fin >> s;
n = s.size();
for (i = 2, k = ans = 0; i <= n; ++i) {
while (k > 0 && s[i - 1] != s[k])
k = pi[k];
if (s[i - 1] == s[k])
++k;
pi[i] = k;
if (k && i % (i - k) == 0)
ans = i;
}
fout << ans << '\n';
}
fin.close();
fout.close();
return 0;
}