Submission #1261235

#TimeUsernameProblemLanguageResultExecution timeMemory
1261235islam_2010Garage (IOI09_garage)C++20
100 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; const int sz = 105; int n, m; signed main(){ cin >> n >> m; vector<int> rate(n); vector<int> weight(m); vector<int> car(m + 1, 0); vector<bool> used(n, false); for(int i = 0; i < n; i++){ cin >> rate[i]; }for(int i = 0; i < m; i++){ cin >> weight[i]; }queue<int> wait; int ans = 0; for(int i = 0; i < 2*m; i++){ int x; cin >> x; if(x > 0){ bool ok=false; for(int i = 0; i < n; i++){ if(!used[i]){ car[x] = i+1; ok=true; used[i] = true; ans += weight[x-1] * rate[i]; break; } }if(!ok){ wait.push(x); } }else { int id = -x; int p = car[id]; used[p-1] = false; car[id] = 0; if(!wait.empty()){ int curr = wait.front(); wait.pop(); used[p-1] = true; car[curr] = p; ans += weight[curr-1] * rate[p-1]; } } }cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...