比赛 字符串练习 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 字符串最大值 最终得分 100
用户昵称 Hyoi_0Koto 运行时间 0.001 s
代码语言 C++ 内存使用 0.89 MiB
提交时间 2017-07-25 08:16:10
显示代码纯文本
#include<cstdio>
#include<cctype>
#include<cstring>
#include<iostream>
using namespace std;
const int maxl=1000001;
char c[maxl];
int next[maxl],cnt[maxl],ans,l;
inline int mian(){
	freopen("string_maxval.in","r",stdin);
	freopen("string_maxval.out","w",stdout);
	scanf("%s",c+1);int j=0;l=strlen(c+1);
	for(int i=2;i<=l;i++){
		while(j&&c[j+1]!=c[i]) j=next[j];
		if(c[j+1]==c[i]) j++;
		next[i]=j;
	}
	ans=0;
	for(int i=l;i;i--){
		cnt[i]++;
		cnt[next[i]]+=cnt[i];
		ans=max(ans,i*cnt[i]);
	}
	printf("%d",ans);
}
int shimakaze=mian();
int main(){;}