1 solutions
-
3
#include<bits/stdc++.h> #define N 1000005 using namespace std; string b; int lb; int f[N]; void border() { int j=0; for(int i=1;i<lb;i++) { while(j && b[i]!=b[j]) j=f[j-1]; if(b[i]==b[j]) j++; f[i]=j; } } int main() { cin>>b; while(b!=".") { lb=b.size(); border(); if(lb%(lb-f[lb-1])==0) cout<<lb/(lb-f[lb-1])<<"\n"; else cout<<"1\n"; cin>>b; } return 0; }
- 1
Information
- ID
- 37
- Time
- 1000ms
- Memory
- 512MiB
- Difficulty
- 6
- Tags
- # Submissions
- 37
- Accepted
- 13
- Uploaded By