Josif_tepe

Untitled

Feb 5th, 2026
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6.     int n, k;
  7.     cin >> n >> k;
  8.  
  9.     vector<int> v(n);
  10.     for (int i = 0; i < n; i++) {
  11.         cin >> v[i];
  12.         v[i] = 1 - v[i];  
  13.     }
  14.  
  15.    
  16.     vector<int> pref(n + 1, 0);
  17.     for (int i = 0; i < n; i++) {
  18.         pref[i + 1] = pref[i] + v[i];
  19.     }
  20.  
  21.     int najgolema_golemina = 0;
  22.     int start_idx = 0;
  23.  
  24.     int left = 0, right = n;
  25.  
  26.     while (left <= right) {
  27.         int mid = (left + right) / 2;
  28.  
  29.         int found_start = -1;
  30.  
  31.        
  32.         for (int i = 0; i + mid <= n; i++) {
  33.             int broken = pref[i + mid] - pref[i];
  34.             if (broken <= k) {
  35.                 found_start = i;
  36.                 break;
  37.             }
  38.         }
  39.  
  40.         if (found_start != -1) {
  41.            
  42.             najgolema_golemina = mid;
  43.             start_idx = found_start;
  44.             left = mid + 1;
  45.         } else {
  46.            
  47.             right = mid - 1;
  48.         }
  49.     }
  50.  
  51.     cout << najgolema_golemina << endl;
  52.     for (int i = start_idx; i < start_idx + najgolema_golemina; i++) {
  53.         if (v[i] == 1) {
  54.             cout << i + 1 << " ";
  55.         }
  56.     }
  57. }
  58.  
Advertisement
Add Comment
Please, Sign In to add comment