Submission #988882

#TimeUsernameProblemLanguageResultExecution timeMemory
988882lo0kerGarage (IOI09_garage)C++17
100 / 100
1 ms476 KiB
/* * AUTHOR : lo0ker * Problem : Garage * source : https://dmoj.ca/problem/ioi09p5 */ #include <bits/stdc++.h> using namespace std; using ll = long long; using vi = vector<int>; using pii = pair<int, int>; #define pb push_back #define all(x) begin(x), end(x) #define sz(x) (int) (x).size() const int MOD = 1e9+7; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n, m; cin >> n >> m; vi rate(n); priority_queue<int, vector<int>, greater<int>> pq; for(int i = 0; i < n; i++){ cin >> rate[i]; pq.push(i); } vi w(m+1); vi park(m+1, -1); for(int i = 1; i <= m; i++){ cin >> w[i]; } int in; int ans = 0; queue<int> q; for(int i = 0; i < m*2; i++){ cin >> in; if(in > 0){ if(pq.empty()){ q.push(in); } else{ int cur = pq.top(); pq.pop(); park[in] = cur; ans += (w[in] * rate[cur]); } } else{ in = -in; pq.push(park[in]); if(!q.empty()){ int temp = q.front(); q.pop(); int cur = pq.top(); pq.pop(); park[temp] = cur; ans += (w[temp] * rate[cur]); } } } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...