Advertisement
Josif_tepe

Untitled

Mar 21st, 2025
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <cstring>
  5. #include <queue>
  6. using namespace std;
  7. typedef long long ll;
  8. const int maxn = 2e5 + 100;
  9.  
  10. int pref_sum[maxn];
  11.  
  12. int sum(int i, int j) {
  13.     if(i == 0) {
  14.         return pref_sum[j];
  15.     }
  16.     return pref_sum[j] - pref_sum[i - 1];
  17. }
  18. int main() {
  19.     int n, k;
  20.     cin >> n >> k;
  21.    
  22.     vector<int> v(n);
  23.    
  24.     int s = 0;
  25.     for(int i = 0; i < n; i++) {
  26.         cin >> v[i];
  27.        
  28.         v[i] = 1 - v[i];
  29.         s += v[i];
  30.         pref_sum[i] = s;
  31.     }
  32.     int res = 0;
  33.     int start_idx = -1;
  34.     for(int i = 0; i < n; i++) {
  35.         int L = i + 1, R = n - 1;
  36.        
  37.         while(L <= R) {
  38.             int middle = (L + R) / 2;
  39.             if(sum(i, middle) <= k) {
  40.                 if(res < middle - i + 1) {
  41.                     res = middle - i + 1;
  42.                     start_idx = i;
  43.                 }
  44.                 L = middle + 1;
  45.             }
  46.             else {
  47.                 R = middle - 1;
  48.             }
  49.         }
  50.     }
  51.    
  52.     cout << res << endl;
  53.     for(int i = start_idx; i < start_idx + res; i++) {
  54.         if(v[i] == 1) {
  55.             cout << i + 1 << " ";
  56.         }
  57.     }
  58.     return 0;
  59. }
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement