제출 #1297577

#제출 시각아이디문제언어결과실행 시간메모리
1297577samarthkulkarniInspections (NOI23_inspections)C++20
29 / 100
2097 ms7432 KiB
// noi 2023 final round #include <bits/stdc++.h> using namespace std; #define ll long long #define vi vector<long long> #define all(x) x.begin(), x.end() #define endl "\n" #define pr pair<ll, ll> #define ff first #define ss second void solution(); int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); solution(); return 0; } void solution() { ll n, m, q; cin >> n >> m >> q; vector<pr> tasks(m); for (int i = 0; i < m; i++) { cin >> tasks[i].ff >> tasks[i].ss; } vector<pr> qw(q); for (int i = 0; i < q; i++) { cin >> qw[i].ff; qw[i].ss = i; } sort(all(qw)); vi diff(q+2); vi a(n+1); ll day = 1; for (auto [l, r] : tasks) { for (; l <= r; l++) { if (a[l] != 0) { ll k = day - a[l] - 1; ll d = -1; ll x = 0, y = q-1; while (x <= y) { ll mid = (x + y)/2; if (qw[mid].ff <= k) { x = mid+1; d = mid; } else { y = mid-1; } } if (d != -1) { diff[0]++; diff[d+1]--; } } a[l] = day; day++; } } for (int i = 1; i < q; i++) diff[i] += diff[i-1]; vi ans(q); for (int i = 0; i < q; i++) { ans[qw[i].ss] = diff[i]; } for (auto val : ans) cout << val << " "; cout << endl; }
#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...