fork download
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. //Check on swapping a's or extracting the max length string
  5. int a_check(string s,int n,int k){
  6. int i=0;
  7. int sum=0;
  8. int t=0;
  9. int maxsum=0;
  10. while(i<=n-1){
  11. if(s[i]=='a'){
  12. sum++;
  13. }
  14. else{
  15. if(t!=k){
  16. t++;
  17. sum++;
  18. }
  19. else{
  20. t=0;
  21. sum=0;
  22. }
  23. }
  24. if(sum>maxsum){
  25. maxsum=sum;
  26. }
  27. i++;
  28. }
  29. return maxsum;
  30. }
  31.  
  32. //Check on swapping b's or extracting the max length string
  33. int b_check(string s,int n,int k){
  34. int i=0;
  35. int sum=0;
  36. int t=0;
  37. int maxsum=0;
  38. while(i<=n-1){
  39. if(s[i]=='b'){
  40. sum++;
  41. }
  42. else{
  43. if(t!=k){
  44. t++;
  45. sum++;
  46. }
  47. else{
  48. t=0;
  49. sum=0;
  50. }
  51. }
  52. if(sum>maxsum){
  53. maxsum=sum;
  54. }
  55. i++;
  56. }
  57. return maxsum;
  58. }
  59.  
  60.  
  61. int main() {
  62. int k;
  63. cin>>k;
  64. string s;
  65. cin>>s;
  66. int n=s.size();
  67.  
  68. int itr_a=a_check(s,n,k);
  69. int itr_b=b_check(s,n,k);
  70.  
  71. cout<<max(itr_a,itr_b);
  72. return 0;
  73. }
Success #stdin #stdout 0s 4912KB
stdin
2
abbba
stdout
5