Pagini recente » Cod sursa (job #2972326) | Cod sursa (job #2929296) | Cod sursa (job #1982985) | Cod sursa (job #3173461) | Cod sursa (job #1977626)
// #include<bits/stdc++.h>
#include<fstream>
#define ll long long
#define pii pair<int,int>
#define pll pair<ll,ll>
#define fi first
#define se second
#define sz size
#define pb push_back
#define mp make_pair
#define bg begin
#define nd end
using namespace std;
#define int long long
ifstream fin("prefix.in");
ofstream fout("prefix.out");
const int maxn = 2000003;
const int maxk = 1003;
int pref[maxn];
void solveKMP(){
string s,skmp = "0";
fin >> s;
skmp += s;
int n = skmp.sz();
int ans = 0;
int q=0;
pref[1] = 0;
for(int i=2;i<=n;i++){
while(q && skmp[q+1]!=skmp[i]){
q = pref[q];
}
if(skmp[q+1] == skmp[i]) q++;
pref[i] = q;
}
for(int i=n;i>=0;i--){
if((pref[i] && i%(i-pref[i]) == 0) || i == 0){
fout << i << '\n';
break;
}
}
}
int32_t main(){
// #ifndef ONLINE_JUDGE
// freopen("prefix.in","r",stdin);
// freopen("prefix.out","w",stdout);
// #endif
ios_base::sync_with_stdio(0);
int t;
fin >> t;
for(int i=0;i<t;i++){
solveKMP();
}
return 0;
}