Submission #462906

#TimeUsernameProblemLanguageResultExecution timeMemory
462906danielsuhGarage (IOI09_garage)C++17
40 / 100
4 ms384 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, M; cin >> N >> M; vector<int> prices(N + 1), cars(M + 1); for(int i = 1; i <= N; i++) cin >> prices[i]; for(int i = 1; i <= M; i++) cin >> cars[i]; set<int> free; for(int i = 1; i <= N; i++) { free.insert(i); } deque<int> line; map<int, int> spots; int ans = 0; for(int i = 0; i < 2 * M; i++) { int step; cin >> step; if(step > 0) { if(free.empty()) { line.push_back(step); continue; } assert(!free.empty()); int space = *free.begin(); free.erase(*free.begin()); ans += cars[step] * prices[space]; spots[step] = space; }else { free.insert(spots[-step]); if(!line.empty()) { int car = *line.begin(); ans += cars[car] * prices[spots[-step]]; line.pop_front(); } } } cout << ans << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...