Pagini recente » Cod sursa (job #1450047) | Cod sursa (job #2424653) | Cod sursa (job #2921541) | Rating Dirtu Ecaterina (DirtuEcaterina) | Cod sursa (job #546197)
Cod sursa(job #546197)
#include <fstream>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
char p[1000003],n[5];
int v[1000003],k,q,m,i,sol,nr;
void prefix()
{
v[1]=0;
k=0;
for(q=2;q<=m;q++)
{
while(k>0 && p[k+1]!=p[q])
k=v[k];
if(p[k+1]==p[q])
k++;
v[q]=k;
if(k>0&&q%(q-k)==0)sol=q;
}
g<<sol<<"\n";
}
int main()
{
f.getline(n,5);
nr=atoi(n);
for(i=0;i<nr;i++)
{ f.getline(p+1,1000003);
p[0]=' ';
m=strlen(p)-1;
prefix();
}
return 0;
}