제출 #685052

#제출 시각아이디문제언어결과실행 시간메모리
685052acceptifyGarage (IOI09_garage)C++17
100 / 100
2 ms348 KiB
#include <bits/stdc++.h> using namespace std; const int mxn = 105; const int mxm = 2005; int n, m, x, r[mxn], w[mxm], pos[mxm], res = 0; set<int> ok; queue<int> q; int main(){ cin >> n >> m; for (int i = 1; i <= n; i++) cin >> r[i], ok.insert(i); for (int i = 1; i <= m; i++) cin >> w[i]; for (int i = 1; i <= m * 2; i++) { cin >> x; if (x > 0) { if (ok.empty()) q.push(x); else { pos[x] = *ok.begin(); ok.erase(ok.begin()); } } else { x = -x; ok.insert(pos[x]); if (!q.empty()) { pos[q.front()] = *ok.begin(); ok.erase(ok.begin()); q.pop(); } } } for (int i = 1; i <= m; i++) res += r[pos[i]] * w[i]; cout << res << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...