Submission #832646

#TimeUsernameProblemLanguageResultExecution timeMemory
832646LiudasInspections (NOI23_inspections)C++17
11 / 100
2070 ms39132 KiB
#include <iostream> #include <vector> #include <set> #include <map> #include <algorithm> using namespace std; int main(){ int N, Q, M; cin >> N >> M >> Q; vector<vector<int>> arr(N); int day = 0; for(int i = 0; i < M; i ++){ int a, b; cin >> a >> b; for(int j = a-1; j < b; j ++){ arr[j].push_back(day++); } } //for(int i : arr[2])cout << i << endl; vector<vector<pair<long long, long long>>> pref(N); for(int i = 0; i < N; i ++){ map<long long, long long> vals; for(int j = 1; j < (int)arr[i].size(); j ++){ vals[arr[i][j] - arr[i][j-1] - 1]++; } for(auto[l, r] : vals){ pref[i].push_back(make_pair(l, r)); } pref[i].push_back({(long long)1e16,0ll}); for(int j = ((int)pref[i].size())-2; j >= 0; j --){ pref[i][j].second += pref[i][j+1].second; } } for(int i = 0; i < Q; i ++){ long long q; cin >> q; int c = 0; for(int j = 0; j < N; j ++){ c += (*lower_bound(pref[j].begin(), pref[j].end(), make_pair(q, 0ll))).second; } cout << c << " "; } cout << endl; 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...