fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const long long MaxN = 1e5 + 5;
  4. string s;
  5. long long prefix[MaxN][30],ans=0,m;
  6. int main()
  7. {
  8. freopen("file.inp", "r", stdin);
  9. freopen("file.ans", "w", stdout);
  10. cin >> s;
  11. m=s.size();
  12. s=" " + s;
  13. for (long long i=1; i<=m; i++)
  14. {
  15. for (long long j=1; j<=26;j++)
  16. {
  17. prefix[i][j]=prefix[i-1][j];
  18. if(j==s[i]-'a'+1)
  19. {
  20. prefix[i][j]++;
  21. }
  22. }
  23. }
  24. for (long long len =1; len<=m/2; len++)
  25. {
  26. for (long long l=1; l+2*len-1<=m; l++)
  27. {
  28. bool check = true;
  29. for (long long i=1; i<=26; i++)
  30. {
  31. long long t_1=prefix[l+len-1][i]-prefix[l-1][i];
  32. long long t_2=prefix[l+2*len-1][i]-prefix[l+len-1][i];
  33. if(!((t_1>0&&t_2>0)||(t_1==0&&t_2==0)))
  34. {
  35. check = false;
  36. }
  37. }
  38. if(check)
  39. {
  40. ans++;
  41. }
  42. }
  43. }
  44. cout << ans;
  45. }
  46.  
Success #stdin #stdout 0.01s 5292KB
stdin
Standard input is empty
stdout
Standard output is empty