Cod sursa(job #3182064)
Utilizator | Data | 8 decembrie 2023 17:05:03 | |
---|---|---|---|
Problema | Prefix | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.4 kb |
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
int n,j,nr,v[1000005],i,t;
char s[1000005];
int main()
{f>>nr;
for(t=1;t<=nr;t++)
{f>>s;
for(i=1,j=0;s[i];++i)
{if(s[i]==s[j]) v[i]=++j;
else v[i]=j=(s[i]==s[0]);
}
for(;i;--i)
if(v[i-1]&&i%(i-v[i-1])==0)
break;
g<<i<<'\n';
}
return 0;
}