Advertisement
FoRPoP

Untitled

Jan 26th, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int maxConsecutiveOnes(vector<int>&array, int k)
  7. {
  8.     int left = 0, right = 0;
  9.    
  10.     int bestWindow = 0;
  11.     int zeroCount = 0;
  12.     while(right < array.size())
  13.     {
  14.         if(zeroCount <= k)
  15.         {
  16.             if(array[right] == 0)
  17.                 zeroCount++;
  18.                
  19.             right++;
  20.         }
  21.            
  22.         if(zeroCount > k)
  23.         {
  24.             if(array[left] == 0)
  25.                 zeroCount--;
  26.            
  27.             left++;
  28.         }
  29.            
  30.         if(zeroCount <= k && bestWindow < right-left)
  31.             bestWindow = right-left;
  32.     }
  33.    
  34.     return bestWindow;
  35. }
  36.  
  37. int main()
  38. {
  39.     int n, k;
  40.     cin >> n >> k;
  41.    
  42.     vector<int>array(n);
  43.     for(int i = 0; i < n; i++)
  44.         cin >> array[i];
  45.        
  46.     cout << maxConsecutiveOnes(array, k) << endl;
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement