Josif_tepe

Untitled

Jan 29th, 2026
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <queue>
  4. using namespace std;
  5.  
  6. long long A[100000];
  7.  
  8. int main() {
  9.    
  10.     int n, d;
  11.     long long P;
  12.     cin >> n >> P >> d;
  13.    
  14.     vector<long long> v(n);
  15.     for(int i = 0; i < n; i++) {
  16.         cin >> v[i];
  17.     }
  18.    
  19.     int L = 1, R = d;
  20.     int res = -1;
  21.    
  22.     while(L <= R) {
  23.         int days = (L + R) / 2;
  24.         priority_queue<long long> pq, greatest;
  25.        
  26.         for(int i = 0; i < n; i++) {
  27.             pq.push(v[i]);
  28.         }
  29.        
  30.         long long sum = 0;
  31.        
  32.         for(int i = 1; i <= d; i++) {
  33.             long long m = 0;
  34.             if(!pq.empty()) {
  35.                 m = pq.top();
  36.                 pq.pop();
  37.             }
  38.            
  39.             sum += m;
  40.             if(i > days) {
  41.                 pq.push(greatest.top());
  42.                 greatest.pop();
  43.             }
  44.             greatest.push(m);
  45.         }
  46.        
  47.         if(sum >= P) {
  48.             res = max(res, days);
  49.             L = days + 1;
  50.         }
  51.         else {
  52.             R = days - 1;
  53.         }
  54.        
  55.        
  56.     }
  57.    
  58.     if(res == d) {
  59.         cout << "seedno" << endl;
  60.     }
  61.     else {
  62.         cout << res << endl;
  63.     }
  64.    
  65.    
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment