Submission #307325

#TimeUsernameProblemLanguageResultExecution timeMemory
307325sofapudenGarage (IOI09_garage)C++14
100 / 100
4 ms384 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int n, m; cin >> n >> m; int carpark = 0; vector<int> v(n,0), rate(n), weight(m); for(auto &i : rate)cin >> i; for(auto &i : weight)cin >> i; queue<int> overflow; vector<int> used(m,-1); int ans = 0; for(int i = 0; i < 2*m; ++i){ int x; cin >> x; if(x < 0){ if(overflow.size()){ int w = overflow.front(); overflow.pop(); ans+=weight[w]*rate[used[-x-1]]; used[w] = used[-x-1]; } else{ v[used[-x-1]] = 0; carpark--; } } else{ if(carpark == n){ overflow.push(x-1); } else{ carpark++; for(int j = 0; j < n; ++j){ if(!v[j]){ v[j] = 1; ans+=weight[x-1]*rate[j]; used[x-1] = j; break; } } } } } cout << ans << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...