Pagini recente » Cod sursa (job #2245872) | Cod sursa (job #2866447) | Cod sursa (job #1562587) | Cod sursa (job #1167402) | Cod sursa (job #1013384)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
int pi[1000005], sol, k, t;
char s[1000005];
int main()
{
f>>t;
for (; t>0; --t)
{
f>>(s+1);
int i=2; sol=k=0;
while (s[i])
{
while (k && s[i]!=s[k+1]) k=pi[k];
if (s[i]==s[k+1]) ++k;
pi[i++]=k;
}
for (i=strlen(s+1); i>1; --i)
if (pi[i] && i-pi[i]!=0 && i%(i-pi[i])==0)
sol=i, i=0;
g<<sol<<'\n';
}
return 0;
}