Pagini recente » Cod sursa (job #1597231) | Cod sursa (job #838718) | Cod sursa (job #2934090) | Cod sursa (job #1067658) | Cod sursa (job #1341859)
#include<fstream>
#include<cstring>
using namespace std;
int t, n, L, nr, maxim, i, j;
char s[1000005];
ifstream fin("prefix.in");
ofstream fout("prefix.out");
int main(){
fin>> t;
for(; t; t--){
fin>> s + 1;
n = strlen(s + 1);
maxim = 0;
nr = 0;
L = 1;
j = 1;
for(i = 2; i <= n; i++){
if(s[i] == s[j]){
j++;
if(j == L + 1){
nr++;
j = 1;
}
}
else{
if(nr != 0){
if(maxim < (nr + 1) * L){
maxim = (nr + 1) * L;
}
}
L = L * (nr + 1) + 1;
i = L;
nr = 0;
j = 1;
}
}
if(nr != 0){
if(maxim < (nr + 1) * L){
maxim = (nr + 1) * L;
}
}
fout<< maxim <<"\n";
}
return 0;
}