Pagini recente » Cod sursa (job #1223332) | Cod sursa (job #2188185) | Cod sursa (job #2839715) | Cod sursa (job #1328257) | Cod sursa (job #769533)
Cod sursa(job #769533)
#include<fstream>
#include<string.h>
using namespace std;
int nr,n,i,j,k;
char c[1000001];
int oldnrprefix, newnrprefix, oldlprefix, newlprefix, wahr;
long length;
int main()
{
ifstream f("prefix.in");
ofstream g("prefix.out");
f>>nr;
f.get();
for(k=0; k<nr; k++)
{f.getline(c,sizeof(c));
n=strlen(c);
//g<<c<<" length: "<<n;
oldlprefix=1; oldnrprefix=1;
newlprefix=1; newnrprefix=1;
//g<<endl;
while(newlprefix<=(n/2+1))
{wahr=1;
//g<<oldnrprefix<<" ";
while(wahr==1)
{
for(i=0; i<newlprefix; i++)
if(c[newlprefix*newnrprefix+i]!=c[i])
{wahr=0;
newnrprefix=1; newlprefix=newnrprefix*newlprefix+1;
break;}
if(wahr==1)
{ newnrprefix++;
oldnrprefix=newnrprefix;
oldlprefix=newlprefix;}
}
}
if(oldnrprefix==1)
g<<"0";
else
{length=oldlprefix*oldnrprefix;
g<<length;}
g<<endl;
//g<<"Das ist alles"<<endl<<endl<<endl<<endl;
}
f.close();
g.close();
return 0;}