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. ios_base::sync_with_stdio(0);
  9. cin.tie(0);
  10. if(fopen("B2.inp","r"))
  11. {
  12. freopen("B2.inp","r",stdin);
  13. freopen("B2.out","w",stdout);
  14. }
  15. cin >> s;
  16. m=s.size();
  17. s=" " + s;
  18. for (long long i=1; i<=m; i++)
  19. {
  20. for (long long j=1; j<=26;j++)
  21. {
  22. prefix[i][j]=prefix[i-1][j];
  23. if(j==s[i]-'a'+1)
  24. {
  25. prefix[i][j]++;
  26. }
  27. }
  28. }
  29. for (long long len =1; len<=m/2; len++)
  30. {
  31. for (long long l=1; l+2*len-1<=m; l++)
  32. {
  33. bool check = true;
  34. for (long long i=1; i<=26; i++)
  35. {
  36. long long t_1=prefix[l+len-1][i]-prefix[l-1][i];
  37. long long t_2=prefix[l+2*len-1][i]-prefix[l+len-1][i];
  38. if(!((t_1>0&&t_2>0)||(t_1==0&&t_2==0)))
  39. {
  40. check = false;
  41. }
  42. }
  43. if(check)
  44. {
  45. ans++;
  46. }
  47. }
  48. }
  49. cout << ans;
  50. }
  51.  
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
Standard output is empty