Pagini recente » Cod sursa (job #450570) | Cod sursa (job #2395882) | Cod sursa (job #173501) | Cod sursa (job #3283462) | Cod sursa (job #2916251)
#include <iostream>
#include <fstream>
#include <cstring>
#define LMAX 1000005
using namespace std;
ifstream fi("prefix.in");
ofstream fo("prefix.out");
int T;
void Solve(char txt[LMAX],int &S)
{
S=0;
int len=0;
int i=1;
bool var=false;
int M;
while(i<strlen(txt))
{
if(txt[i]==txt[len])
{
len++;
if(len*2==i+1)
{
M=len;
S=i+1;
var=true;
}
if(var==true)
{
if((i+1)%M==0)
S=i+1;
}
i++;
}else
{
M=i+1;
var=false;
if(len!=0)
len=0;
else
i++;
if(i>strlen(txt)/2)
{
i=strlen(txt);
continue;
}
}
}
}
int main()
{
fi>>T;
for(register int test=1;test<=T;test++)
{
char txt[LMAX];
fi>>txt;
int S;
Solve(txt,S);
fo<<S<<"\n";
}
return 0;
}