Advertisement
Josif_tepe

Untitled

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