Pagini recente » Cod sursa (job #3199977) | Cod sursa (job #2689334) | Cod sursa (job #2145062) | Cod sursa (job #1382822) | Cod sursa (job #345010)
Cod sursa(job #345010)
#include<fstream.h>
#include<string.h>
int t,sw;
long n,j,l,lp,lmax,p;
char a[1000005];
void rez()
{
long i;
i=0; p=0; l=1;lp=1; lmax=0;
while(i<n-lp+1)
{
i++;
sw=1;
for(j=0;j<=p;j++)
if(a[j]!=a[i+j])
{sw=0; break;}
if(sw==1)
{
l+=lp;
i=i+lp-1;
}
else
{
p=i; lp=i+1; l=lp;
}
if(l>lp&&l>lmax)
lmax=l;
}
}
int main()
{
ifstream fin("prefix.in");
ofstream fout("prefix.out");
fin>>t; fin.get();
for(int i=1;i<=t;i++)
{
fin.get(a,1000005,'\n');
fin.get();
n=strlen(a);
rez();
fout<<lmax<<'\n';
}
fin.close();
fout.close();
return 0;
}