记录编号 392600 评测结果 AAAAAAAAAA
题目名称 [POJ2406]字符串的幂 最终得分 100
用户昵称 GravatarFoolMike 是否通过 通过
代码语言 C++ 运行时间 0.194 s
提交时间 2017-04-08 11:44:36 内存使用 5.06 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
using namespace std;
const int N=1e6+10;
int n,next[N];char s[N];
int main()
{
	freopen("powerstrings.in","r",stdin);
	freopen("powerstrings.out","w",stdout);
	while (1){
		scanf("%s",s+1);
		if (s[1]=='.') break;
		n=strlen(s+1);
		for (int i=2;i<=n;i++){
			int j=next[i-1];
			while (j&&s[j+1]!=s[i]) j=next[j];
			next[i]=(s[j+1]==s[i]?j+1:j);
		}
		int i=next[n];
		while (i&&n%(n-i)) i=next[i];
		printf("%d\n",n/(n-i));
	}
	return 0;
}