Submission #267936

#TimeUsernameProblemLanguageResultExecution timeMemory
267936hhh07Garage (IOI09_garage)C++14
100 / 100
4 ms512 KiB
#include <iostream> #include <vector> #include <set> #include <queue> #include <cstring> using namespace std; typedef pair<int, int> ii; int main(){ int n, m; cin >> n >> m; int w[m], r[n]; priority_queue<int> rq; for (int i = 0; i < n; i++){ cin >> r[i]; rq.push(-(i + 1)); } for (int i = 0; i < m; i++) cin >> w[i]; int x[2*m]; for (int i = 0; i < 2*m; i++) cin >> x[i]; queue<int> q; int car[m]; int val = 0; for (int i = 0; i < 2*m; i++){ if (x[i] > 0) q.push(x[i] - 1); else rq.push(-(car[-x[i] - 1] + 1)); while(!rq.empty()){ if (q.empty()) break; int x = rq.top(); int y = q.front(); q.pop(); rq.pop(); val += w[y]*r[- x - 1]; //cout << w[y] << " " << r[- x - 1] << endl; car[y] = - x - 1; } } cout << val << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...