Submission #798046

#TimeUsernameProblemLanguageResultExecution timeMemory
798046aymanrsGarage (IOI09_garage)C++14
100 / 100
1 ms340 KiB
#include<bits/stdc++.h> const int MOD = 1e9+7; using namespace std; void solve(){ int n, m; cin >> n >> m; int ans = 0; int s[n], w[m], pc[m]; set<int> p; for(int i = 0;i < n;i++){ cin >> s[i]; p.insert(i); } for(int i = 0;i < m;i++) cin >> w[i]; queue<int> q; m*=2; while(m--){ int c;cin>>c; if(c < 0){ c=-c-1; if(!q.empty()){ pc[q.front()] = pc[c]; ans += w[q.front()]*s[pc[c]]; q.pop(); } else p.insert(pc[c]); } else { c--; if(p.empty()) { q.push(c); continue; } pc[c] = *p.begin(); ans += s[pc[c]]*w[c]; p.erase(p.begin()); } } cout << ans << '\n'; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...