Submission #531504

#TimeUsernameProblemLanguageResultExecution timeMemory
531504bonkGarage (IOI09_garage)C++14
5 / 100
2 ms472 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; q.push(x); int now = q.front(); while(!q.empty() && now < 0){ now = q.front(); q.pop(); } 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...