Submission #597484

#TimeUsernameProblemLanguageResultExecution timeMemory
597484kabikaGarage (IOI09_garage)C++14
100 / 100
1 ms340 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define a first #define b second int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; vector<int> pr(n,0), wt(m+1,0); for(int i = 0; i < n; ++i) cin >> pr[i]; for(int i = 1; i <= m; ++i) cin >> wt[i]; vector<int> prk(m+1,0);//which parking the car is in vector<bool> fl(n,0);//is the parking filled queue<int> q; int rev = 0; for(int i = 0; i < 2*m; ++i) { int cr; cin >> cr; if(cr > 0) { auto it = find(fl.begin(),fl.end(),0); if(it == fl.end()) q.push(cr); else { int j = it - fl.begin(); prk[cr] = j; fl[j] = 1; rev += wt[cr]*pr[j]; } } if(cr < 0) { cr = -cr; int j = prk[cr]; prk[cr] = 0; fl[j] = 0; if(!q.empty()) { int tp = q.front(); q.pop(); prk[tp] = j; fl[j] = 1; rev += wt[tp]*pr[j]; } } } cout << rev << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...