Josif_tepe

Untitled

Jun 29th, 2026
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5. typedef long long ll;
  6.  
  7. int main() {
  8.     ios_base::sync_with_stdio(false);
  9.     int n;
  10.     ll R, D;
  11.     cin >> n >> R >> D;
  12.    
  13.     vector<pair<ll, ll>> discos(n);
  14.    
  15.     for(int i = 0; i < n; i++) {
  16.         cin >> discos[i].first >> discos[i].second;
  17.     }
  18.    
  19.     sort(discos.begin(), discos.end());
  20.     ll total_R = 2 * R;
  21.    
  22.     vector<pair<ll, ll>> q;
  23.     q.reserve(n);
  24.     ll active = 0, total = 0;
  25.     int F =0 ;
  26.     for(int i = 0; i < n; i++) {
  27.         ll pos = discos[i].first, y = discos[i].second;
  28.         ll need = (y + D - 1) / D;
  29.        
  30.         while(F < (int) q.size() and q[F].first < pos) {
  31.             active -= q[F].second;
  32.             F++;
  33.         }
  34.        
  35.         if(need > active) {
  36.             ll add = need - active;
  37.             total += add;
  38.             q.push_back(make_pair(pos + total_R, add));
  39.             active += add;
  40.         }
  41.     }
  42.    
  43.     cout << total << endl;
  44.     return 0;
  45. }
  46.  
Advertisement
Add Comment
Please, Sign In to add comment