Pagini recente » Cod sursa (job #2072922) | Cod sursa (job #1565746) | Cod sursa (job #1738579) | Cod sursa (job #2190958) | Cod sursa (job #2023935)
#include <fstream>
#include <vector>
#include <string>
#define Nmax 2000005
using namespace std;
string A;
int pi[Nmax],w,n;
ifstream f("prefix.in");
ofstream g("prefix.out");
vector <int> rez;
int main()
{
int i,cnt=0;
f>>n;
while(n)
{
f>>A;
int raspuns=0;
for(i=1; i<A.size(); i++)
{
while(w!=0 && A[i]!=A[w]) w=pi[w-1];
if(A[i]==A[w])
w++;
pi[i]=w;
}
w=0;
for(i=A.size();i>=1;i--)
{
if(pi[i]&&(i+1)%(i+1-pi[i])==0)
{
raspuns=i+1;
break;
}
}
g<<raspuns<<'\n';
n--;
}
return 0;
}