Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
45925 | xujindong | 【模拟赛3】罪恶的PQA | C++ | 通过 | 100 | 1 MS | 420 KB | 374 | 2022-02-25 20:51:11 |
#include <bits/stdc++.h> using namespace std; int n,x[1000005]; char s[1000005]; int main() { while(scanf("%s",s) && s[0]!='.') { n=strlen(s),x[1]=0; for(int i=2,j=0; i<=n; i++) { while(j>0 && s[i]!=s[j+1])j=x[j]; j+=(s[i]==s[j+1]),x[i]=j; } for(int i=n-1,f=1; i>=0&&f; i--)if(!x[i])cout<<(n==1?1:(n/(i)))<<'\n',f=0; } }