记录编号 |
122467 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[POJ2406]字符串的幂 |
最终得分 |
100 |
用户昵称 |
cstdio |
是否通过 |
通过 |
代码语言 |
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;
}