Advertisement
Guest User

Untitled

a guest
Jan 7th, 2024
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. void solve() {
  6.     long long n, m, X, Y, d;
  7.     cin >> n >> m >> X >> Y >> d;
  8.     int k;
  9.     cin >> k;
  10.     vector<pair<long long, long long>> p(k);
  11.     for (int i = 0; i < k; i++) {
  12.         long long x, y, h;
  13.         cin >> x >> y >> h;
  14.         long long dx = abs(X - x);
  15.         long long dy = abs(Y - y);
  16.         long long dist = max(dx, dy);
  17.         long long t = (h + d - 1) / d;
  18.         p[i] = {dist, t};
  19.     }
  20.     sort(p.begin(), p.end());
  21.     int ans = 0;
  22.     long long sumt = 0;
  23.     priority_queue<long long> pq;
  24.     for (auto [dist, t] : p) {
  25.         sumt += t;
  26.         pq.emplace(t);
  27.         if (sumt <= dist) {
  28.             continue;
  29.         }
  30.         while (!pq.empty()) {
  31.             sumt -= pq.top();
  32.             pq.pop();
  33.             sumt += 1;
  34.             ++ans;
  35.             if (sumt <= dist) {
  36.                 break;
  37.             }
  38.         }
  39.         if (sumt > dist) {
  40.             cout << -1 << '\n';
  41.             return;
  42.         }
  43.     }
  44.     cout << ans << '\n';
  45. }
  46.  
  47. int main() {
  48.     ios_base::sync_with_stdio(0);
  49.     cin.tie(0);
  50.    
  51.     int tc = 1;
  52.     cin >> tc;
  53.     for (int t = 1; t <= tc; t++) {
  54.         solve();
  55.     }
  56.    
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement