Advertisement
Josif_tepe

Untitled

Jul 13th, 2024
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.   int n, m;
  7.   cin >> n >> m;
  8.  
  9.   int niza[n];
  10.   int pref_sums[n];
  11.  
  12.   int sum = 0;
  13.   for(int i = 0; i < n; i++) {
  14.     cin >> niza[i];
  15.  
  16.     if(niza[i] == 0) {
  17.       sum += 1;
  18.     }
  19.     pref_sums[i] = sum;
  20.   }
  21.  
  22.   int res = 0, S = 0;
  23.   for(int i = 0; i < n; i++) {
  24.     int L = i + 1;
  25.     int R = n - 1;
  26.     while(L <= R) {
  27.       int middle = (L + R) / 2;
  28.  
  29.       if(i == 0) {
  30.         sum = pref_sums[middle];
  31.       }
  32.       else {
  33.         sum = pref_sums[middle] - pref_sums[i - 1];
  34.       }
  35.       if(sum <= m) {
  36.         if(res < middle - i + 1) {
  37.           res = middle - i + 1;
  38.           S = i;
  39.         }
  40.  
  41.         L = middle + 1;
  42.       }
  43.       else {
  44.         R = middle - 1;
  45.       }
  46.  
  47.     }
  48.   }
  49.   cout << res << endl;
  50.  
  51.   for(int i = S; i < S + res; i++) {
  52.     if(niza[i] == 0) {
  53.       cout << i + 1 << " ";
  54.     }
  55.   }
  56.  
  57.  
  58.  
  59.   return 0;
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement