Pagini recente » Cod sursa (job #2364024) | Cod sursa (job #2102887) | Cod sursa (job #855544) | Cod sursa (job #1483476) | Cod sursa (job #1724941)
using namespace std;
#include <fstream>
#define Lmax 1000011
int p[Lmax];
char s[Lmax + 1];
int main()
{
int t, i, k;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
ios_base::sync_with_stdio(false);
for (fin >> t, fin.get(); t; --t)
{
fin.getline(s + 1, Lmax);
for (k = 0, i = 2; s[i]; ++i)
{
while (k > 0 && s[k + 1] != s[i]) k = p[k];
if (s[k + 1] == s[i]) ++k;
p[i] = k;
}
for (--i; i >= 0; --i)
if ((p[i] && p[i] % (i - p[i]) == 0) || i == 0)
{
fout << i << '\n';
break;
}
}
fin.close();
fout.close();
return 0;
}