fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. struct type{
  6. int ca,cb;
  7. };
  8.  
  9. int main() {
  10.  
  11. int n,k;
  12. cin>>n>>k;
  13. string s;
  14. cin>>s;
  15.  
  16. type aa;
  17. aa.ca=aa.cb=0;
  18. if(s[0]=='a')
  19. aa.ca++;
  20. else
  21. aa.cb++;
  22.  
  23. vector<type>vec;
  24.  
  25. for(int i=1;i<n;i++){
  26.  
  27. if(s[i]!=s[i-1]){
  28. vec.push_back(aa);
  29. aa.ca=aa.cb=0;
  30. }
  31. if(s[i]=='a')
  32. aa.ca++;
  33. else
  34. aa.cb++;
  35.  
  36. if(i==n-1){
  37. vec.push_back(aa);
  38. }
  39. }
  40.  
  41. int sta=0,stb=0;
  42. if(vec[0].ca==0){
  43. stb=0;
  44. for(int i=1;i<n;i++){
  45. if(vec[i].ca>0){
  46. sta=i;
  47. break;
  48. }
  49. }
  50. }
  51. else if(vec[0].cb==0){
  52. sta=0;
  53. for(int i=1;i<n;i++){
  54. if(vec[i].cb>0){
  55. stb=i;
  56. break;
  57. }
  58. }
  59. }
  60. int ans=0;
  61. for(int i=sta;i<vec.size();i++){
  62. if(vec[i].ca>0){
  63. int tmp=k;
  64. int len=vec[i].ca;
  65. bool flag=true;
  66. for(int j=i+1;j<n;j++){
  67. len+=vec[j].ca;
  68.  
  69. if(vec[j].cb>0 && flag ){
  70. if(tmp-vec[j].cb<=0 && flag){
  71. len+=tmp;
  72. flag=false;
  73. }
  74. else{
  75. len+=vec[j].cb;
  76. tmp-=vec[j].cb;
  77. }
  78. }
  79. else if(vec[j].cb>0 && !flag){
  80. break;
  81. }
  82. }
  83. // cout<<i<<" "<<len<<endl;
  84. ans=max(ans,len);
  85. }
  86. }
  87.  
  88. // cout<<endl<<endl;
  89. for(int i=stb;i<vec.size();i++){
  90. if(vec[i].cb>0){
  91. int tmp=k;
  92. int len=vec[i].cb;
  93. bool flag=true;
  94. for(int j=i+1;j<n;j++){
  95. len+=vec[j].cb;
  96.  
  97. if(vec[j].ca>0 && flag ){
  98. if(tmp-vec[j].ca<=0 && flag){
  99. len+=tmp;
  100. flag=false;
  101. }
  102. else{
  103. len+=vec[j].ca;
  104. tmp-=vec[j].ca;
  105. }
  106. }
  107. else if(vec[j].ca>0 && !flag){
  108. break;
  109. }
  110. }
  111. //cout<<i<<" "<<len<<endl;
  112.  
  113. ans=max(ans,len);
  114. }
  115. }
  116. // cout<<endl;
  117. cout<<ans<<endl;
  118. return 0;
  119. }
  120.  
Success #stdin #stdout 0s 3420KB
stdin
8 1
aabaabaa
stdout
5