Pagini recente » Cod sursa (job #1493044) | Cod sursa (job #482653) | Cod sursa (job #2012281) | Cod sursa (job #1505725) | Cod sursa (job #2362080)
#include <bits/stdc++.h>
using namespace std ;
ifstream in ("prefix.in") ;
ofstream out ("prefix.out") ;
const int NR = 1000003 ;
int t , n , l , i , best ;
char s [ NR ] ;
int p [ NR ] ;
int main()
{
in >> t ;
while ( t -- )
{
best = 0 ;
l = 0 ;
in >> s + 1 ;
n = strlen( s + 1 ) ;
p [ 1 ] = 0 ;
for ( i = 2 ; i <= n ; ++ i )
{
while ( l && s [ i ] != s [ l + 1 ] ) l = p [ l ] ;
if ( s [ i ] == s [ l +1 ] ) l ++ ;
p [ i ] = l ;
if ( l && l % ( i - l ) == 0 ) best = i ;
}
out << best << '\n' ;
}
}