Cod sursa(job #1341859)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 13 februarie 2015 10:25:01
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#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;
}