Submission #1311799

#TimeUsernameProblemLanguageResultExecution timeMemory
131179912345678Inspections (NOI23_inspections)C++17
55 / 100
2095 ms9392 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const ll nx=2e5+5; ll n, m, q, l, r, s, t, x; vector<pair<ll, ll>> ins; map<ll, pair<ll, ll>> mp; void split(ll x) { if (!x) return; auto itr=mp.lower_bound(x); if (itr->first==x) return; mp[x]={itr->second.first, itr->second.second-(itr->first-x)}; itr->second.first=x+1; } int main() { cin.tie(NULL)->sync_with_stdio(false); cin>>n>>m>>q; mp[n]={1, -1e18}; for (int i=1; i<=m; i++) { cin>>l>>r; split(l-1); split(r); // for (auto x:mp) cout<<"mp "<<x.second.first<<' '<<x.first<<" : "<<x.second.second<<'\n'; for (auto itr=mp.lower_bound(l); itr!=mp.end()&&itr->first<=r; itr=mp.erase(itr)) { ll sz=itr->first-itr->second.first+1; t+=sz; ins.push_back({t-itr->second.second, sz}); } mp[r]={l, t}; } sort(ins.begin(), ins.end()); // for (auto [x, y]:ins) cout<<"ins "<<x<<' '<<y<<'\n'; for (int i=1; i<=q; i++) { cin>>x; ll sm=0; for (auto [t, sz]:ins) if (t<1e18&&t>x) sm+=sz; cout<<sm<<' '; } }
#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...