Submission #1279500

#TimeUsernameProblemLanguageResultExecution timeMemory
1279500AbdullahIshfaqInspections (NOI23_inspections)C++20
100 / 100
603 ms26848 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define MOD 998244353 void solve() { ll n, m, q, cnt = 0, l, r; map<ll, ll> mp, suff; cin >> n >> m >> q; mp[0] = -1; for (ll i = 1; i <= m; i++) { cin >> l >> r; l--; ll cur = cnt - l; cnt += r - l; mp.insert({l, prev(mp.upper_bound(l))->second}); mp.insert({r, prev(mp.upper_bound(r))->second}); auto L = mp.find(l), R = mp.find(r); while (L != R) { auto nxt = next(L); if (L->second != -1) { suff[cur - L->second] += nxt->first - L->first; } mp.erase(L); L = nxt; } mp[l] = cur; } ll tot = 0; suff[2e18] = 0; for (auto i = (--suff.end()); i != (--suff.begin()); i--) { tot += i->second; i->second = tot; } for (int i = 0; i != q; i++) { ll x; cin >> x; cout << suff.upper_bound(x)->second << " "; } cout << '\n'; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tests = 1; // cin >> tests; for (int i = 1; i <= tests; i++) { solve(); } return 0; }
#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...