제출 #1214477

#제출 시각아이디문제언어결과실행 시간메모리
1214477VMaksimoski008Fuel Station (NOI20_fuelstation)C++20
100 / 100
593 ms55608 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; struct segment_tree { int n; vector<ll> tree, lazy; segment_tree(int _n) : n(_n), tree(4*n, -1e18), lazy(4*n) {} void push(int u, int tl, int tr) { tree[u] += lazy[u]; if(tl != tr) { lazy[2*u] += lazy[u]; lazy[2*u+1] += lazy[u]; } lazy[u] = 0; } void update(int u, int tl, int tr, int l, int r, ll v) { push(u, tl, tr); if(tl > r || l > tr) return ; if(l <= tl && tr <= r) { lazy[u] += v; push(u, tl, tr); return ; } int tm = (tl + tr) / 2; update(2*u, tl, tm, l, r, v); update(2*u+1, tm+1, tr, l, r, v); tree[u] = max( tree[2*u], tree[2*u+1] ); } ll query(int u, int tl, int tr, int l, int r) { if(tl > r || l > tr) return -1e18; push(u, tl, tr); if(l <= tl && tr <= r) return tree[u]; int tm = (tl + tr) / 2; return max( query(2*u, tl, tm, l, r), query(2*u+1, tm+1, tr, l, r) ); } void update(int l, int r, ll v) { update(1, 1, n, l, r, v); } ll query(int l, int r) { return query(1, 1, n, l, r); } }; signed main() { int n, m; cin >> n >> m; vector<array<int, 3> > a(n+1); map<int, vector<int> > mp; for(int i=1; i<=n; i++) { cin >> a[i][0] >> a[i][1] >> a[i][2]; } a.push_back({ m, 0, m }); sort(a.begin()+1, a.end()); for(int i=1; i<=n+1; i++) mp[-a[i][2]].push_back(i); ll ans = 1e9; n++; segment_tree sgt(n); for(auto [x, vec] : mp) { ll d = -x; for(int i : vec) { sgt.update(i, i, (ll)1e18 + a[i][0]); sgt.update(i+1, n, -a[i][1]); } ll mx = sgt.query(1, 1, n, 1, n); if(d >= mx) ans = min(ans, mx); } cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...