제출 #1315077

#제출 시각아이디문제언어결과실행 시간메모리
1315077thaibaotran555Inspections (NOI23_inspections)C++20
29 / 100
2094 ms7952 KiB
///TRAN THAI BAO :3 #include <iostream> #include <cstdio> #include <map> #include <algorithm> using namespace std; #define maxN 200007 typedef pair<long long, int> pii; int n, m, q; int lastT[maxN] = {0}; map<long long, long long>cnt; long long ans[maxN] = {0}; int curT = 0; pii que[maxN]; bool cmp1(pii x, pii y) { return x.first > y.first; } void doOp(int l, int r) { for(int i = l; i <= r; i++) { ++curT; if(lastT[i] != 0) cnt[curT-lastT[i]-1]++; lastT[i] = curT; } cnt[-1] = 1; } void solve() { cin >> n >> m >> q; int l, r; for(int i = 0; i < m; i++) { cin >> l >> r; doOp(l, r); } for(int i = 1; i <= q; i++) { cin >> que[i].first; que[i].second = i; } sort(que+1, que+q+1, cmp1); long long curAns = 0; map<long long, long long>::iterator it = prev(cnt.end()); for(int i = 1; i <= q; i++) { while(it->first >= que[i].first) { curAns += it->second; it--; } ans[que[i].second] = curAns; } for(int i = 1; i <= q; i++) cout << ans[i] << " "; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); 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...