Pagini recente » Cod sursa (job #2956297) | Cod sursa (job #2319661) | Cod sursa (job #3191835) | Cod sursa (job #2476628) | Cod sursa (job #2713993)
/*
* Created by Andrei Arhire 01/03/2021
* Copyright © 2021 Andrei Arhire. All rights reserved.
* Expected verdict - Accepted
*/
#include <bits/stdc++.h>
#define pb push_back
#define zero(pos) pos&(-pos)
#define eb emplace_back
#define mp make_pair
using namespace std;
const long long NR = 1e6 + 1e2;
const long long oo = 1e16;
int t ;
string s ;
vector < int > P ( NR , 0 ) ;
ifstream in ("prefix.in");
ofstream out ("prefix.out");
signed main() {
ios::sync_with_stdio(false);
in.tie(nullptr);
int i , L = 0 ;
in >> t ;
while ( t -- ) {
int sol = 0 ;
in >> s ;
for ( i = 1 ; i < s.size() ; ++ i ) {
while ( L && s [ i ] != s [ L ] ) {
L = P [ L - 1 ] ;
}
if ( s [ i ] == s [ L ] ) {
++ L ;
}
P [ i ] = L ;
if ( L && L % ( i + 1 - L ) == 0 ) {
sol = i + 1 ;
}
}
for ( i = 0 ; i < s.size() ; ++ i ) {
P [ i ] = 0 ;
}
out << sol << '\n' ;
}
return 0;
}