Submission #971469

#TimeUsernameProblemLanguageResultExecution timeMemory
97146912345678Garage (IOI09_garage)C++17
100 / 100
1 ms604 KiB
#include <bits/stdc++.h> using namespace std; const int nx=2e3+5; int n, m, w[nx], s[nx], x, l[nx], res; priority_queue<int, vector<int>, greater<int>> pq; queue<int> q; int main() { cin.tie(NULL)->sync_with_stdio(false); cin>>n>>m; for (int i=1; i<=n; i++) cin>>s[i], pq.push(i); for (int i=1; i<=m; i++) cin>>w[i]; for (int i=1; i<=2*m; i++) { cin>>x; if (x<0) pq.push(l[-x]); else { if (!pq.empty()) { l[x]=pq.top(); pq.pop(); res+=s[l[x]]*w[x]; } else q.push(x); } while (!pq.empty()&&!q.empty()) { auto t=pq.top(); pq.pop(); res+=s[t]*w[q.front()]; l[q.front()]=t; q.pop(); } } cout<<res; }
#Verdict Execution timeMemoryGrader output
Fetching results...