제출 #1103483

#제출 시각아이디문제언어결과실행 시간메모리
1103483overwatch9Garage (IOI09_garage)C++17
100 / 100
2 ms596 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; vector <int> rate(n); for (int i = 0; i < n; i++) cin >> rate[i]; vector <int> wt(m+1); multiset <int> available; for (int i = 1; i <= m; i++) cin >> wt[i]; for (int i = 0; i < n; i++) available.insert(i); vector <int> occ(m+1); queue <int> q; int ans = 0; for (int i = 0; i < 2 * m; i++) { int x; cin >> x; if (x > 0) { if (available.empty()) q.push(x); else { occ[x] = *available.begin(); available.erase(available.begin()); ans += wt[x] * rate[occ[x]]; } } else { x = -x; if (!q.empty()) { ans += rate[occ[x]] * wt[q.front()]; occ[q.front()] = occ[x]; q.pop(); } else { available.insert(occ[x]); } } } cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...