Pagini recente » Cod sursa (job #1405789) | Cod sursa (job #1972265) | Cod sursa (job #931347) | Cod sursa (job #287236) | Cod sursa (job #2495701)
#include <fstream>
#include <string>
#include <vector>
#include <cstring>
#define Nmax 1000001
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
string s,t;
int stare[Nmax],nr;
vector <int> v;
int main()
{
int n;
fin>>n;
for (int j=1; j<=n; j++)
{
fin>>s;
memset(stare,0,sizeof stare);
int st=0,i,x=s.size(),max1=0,poz=0;
for (i=2; i<=x; i++)
{
while (st>0 && s[st]!=s[i-1])
st=stare[st];
if (s[st]==s[i-1])
{
st++;
}
stare[i]=st;
if (stare[i]>max1)
{
max1=stare[i];
poz=i;
}
}
int OK=0;
for (i=x; i>0 && OK==0; i--)
{
if (stare[i]>=(i+1)/2 && stare[i]%(i-stare[i])==0)
{
fout<<i<<"\n";
OK=1;
}
}
if (OK==0)
fout<<0<<"\n";
}
return 0;
}