fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define dd double
  5. #define ld long double
  6. #define pi 3.14159265359
  7. #define ull unsigned long long
  8. #define yes cout<<"YES\n"
  9. #define no cout<<"NO\n"
  10. #define el "\n"
  11. #define Arwa ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  12. #define fix(x) cout<<fixed<<setprecision(x)
  13. ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
  14. ll lcm(int a,int b) {return a/gcd(a,b)*b;}
  15. bool prime(ll n)
  16. {
  17. if(n==2) return true;
  18. if(n%2==0||n==1) return false;
  19. else { for(ll i=3; i*i<=n; i+=2) {if(n%i==0) return false;}}return true;
  20. }
  21. //here we go again
  22. int main()
  23. {
  24. Arwa
  25. int t=1;
  26. //cin>>t;
  27. while(t--)
  28. {
  29. string s;
  30. cin>>s;
  31. int prea[s.length()]={},preb[s.length()]={};
  32. for(int i=0;i<s.length();i++)
  33. {
  34. if(s[i]=='a')
  35. {
  36. if(i-1>=0)
  37. prea[i]=prea[i-1]+1;
  38. else
  39. prea[i]=1;
  40. }
  41. else
  42. {
  43. if(i-1>=0)
  44. preb[i]=preb[i-1]+1;
  45. else
  46. preb[i]=1;
  47. }
  48. if(i-1>=0&&s[i]=='a')
  49. preb[i]=preb[i-1];
  50. else
  51. if(i-1>=0&&s[i]=='b')
  52. prea[i]=prea[i-1];
  53. }
  54. //for(int i=0;i<s.length();i++)
  55. //cout<<prea[i]<<' ';
  56. //cout<<el;
  57. //for(int i=0;i<s.length();i++)
  58. //cout<<preb[i]<<' ';
  59. int sum=0,max=0;
  60. for(int i=0;i<s.length();i++)
  61. {
  62. for(int j=i+1;j<s.length();j++)
  63. {
  64. sum+=prea[i];
  65. if(i-1>=0)
  66. sum+=(preb[j]-preb[i-1]);
  67. else
  68. {
  69. sum+=preb[j];
  70. //cout<<preb[j]<<el;
  71. }
  72. sum+=prea[s.length()-1]-prea[j-1];
  73. //cout<<sum<<el;
  74. if(sum>max)
  75. max=sum;
  76. sum=0;
  77. }
  78. }
  79. cout<<max<<el;
  80. }
  81. return 0;
  82. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
0