fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define MAXN 100009
  4. int F[MAXN];
  5. int FailureFunction(char* str)
  6. {
  7. int N = strlen(str);
  8. int j = 0;
  9. for(int i = 2;i<=N;i++)
  10. {
  11. while(j>0&&str[i-1]!=str[j])
  12. j = F[j];
  13. if(str[i-1]==str[j])
  14. j+=1;
  15. F[i] = j;
  16. }
  17. return F[N];
  18. }
  19. int main()
  20. {
  21. int tc,cs;
  22. char str[MAXN];
  23. while(scanf(" %s",str)){
  24. if(str[0]=='.')break;
  25. int len=strlen(str);
  26. int tmp=FailureFunction(str);
  27. if(len%(len-tmp)==0) printf("%d\n",len/(len-tmp));
  28. else printf("1\n");
  29. }
  30. return 0;
  31. }
  32.  
Runtime error #stdin #stdout 0s 15624KB
stdin
Standard input is empty
stdout
Standard output is empty