Submission #531506

#TimeUsernameProblemLanguageResultExecution timeMemory
531506bonkGarage (IOI09_garage)C++14
5 / 100
2 ms460 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int main(){ int n, m; cin >> n >> m; ll r[n + 1], w[m + 1]; vector<int>tmp(n + 1); priority_queue<int, vector<int>, greater<int>>pq; queue<int>q; for(int i = 1; i <= n; i++){ cin >> r[i]; pq.push(i); } for(int i = 1; i <= m; i++) cin >> w[i]; ll ans = 0; for(int i = 0; i < 2*m; i++){ int x; cin >> x; if(x > 0) q.push(x); int now = (q.empty()) ? 0 : q.front(); if(x < 0){ pq.push(tmp[-x]); } if(now > 0 && !pq.empty()){ tmp[now] = pq.top(); ans += r[pq.top()] * w[now]; pq.pop(); q.pop(); } } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...