记录编号 122467 评测结果 AAAAAAAAAA
题目名称 [POJ2406]字符串的幂 最终得分 100
用户昵称 Gravatarcstdio 是否通过 通过
代码语言 C++ 运行时间 0.169 s
提交时间 2014-09-23 20:07:37 内存使用 5.08 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int SIZEN=1000010;
int next[SIZEN];
char S[SIZEN];
int N;
void getnext(void){
	next[0]=-1;
	int i=0,j=-1;
	while(i<=N){
		while(j!=-1&&S[i]!=S[j]) j=next[j];
		next[++i]=++j;
	}
}
void work(void){
	int r=N-next[N];
	if(N%r==0) printf("%d\n",N/r);
	else printf("%d\n",1);
}
bool read(void){
	scanf("%s",S);
	N=strlen(S);
	return S[0]!='.';
}
int main(){
	freopen("powerstrings.in","r",stdin);
	freopen("powerstrings.out","w",stdout);
	while(read()){
		getnext();
		work();
	}
	return 0;
}