답안 #495532

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
495532 2021-12-19T09:29:14 Z PiejanVDC Garage (IOI09_garage) C++17
100 / 100
3 ms 332 KB
#include <bits/stdc++.h>
using namespace std;

signed main() {
    int n,m; cin>>n>>m;
    vector<int>s(n);
    for(auto &z : s)
        cin>>z;
    vector<int>w(m);
    for(auto &z : w)
        cin>>z;
    int64_t ans = 0LL;
    vector<int>place(m);
    priority_queue<int>pq;
    for(int i = 0 ; i < n ; i++) pq.push(-i);
    queue<int>line;
    for(int i = 0 ; i < 2*m ; i++) {
        while(!line.empty()) {
            if(pq.empty()) break;
            place[line.front()] = -pq.top();
            ans += (s[-pq.top()]) * (w[line.front()]);
            pq.pop();
            line.pop();
        }
        int x; cin>>x;
        if(x > 0) {
            x--;
            line.push(x);
        } else {
            x = -x;
            x--;
            pq.push(-(place[x]));
        }
    }
    cout << ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 292 KB Output is correct
4 Correct 1 ms 292 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 1 ms 204 KB Output is correct
7 Correct 0 ms 204 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 0 ms 204 KB Output is correct
10 Correct 1 ms 288 KB Output is correct
11 Correct 1 ms 204 KB Output is correct
12 Correct 1 ms 204 KB Output is correct
13 Correct 1 ms 204 KB Output is correct
14 Correct 1 ms 204 KB Output is correct
15 Correct 1 ms 204 KB Output is correct
16 Correct 1 ms 204 KB Output is correct
17 Correct 2 ms 204 KB Output is correct
18 Correct 2 ms 332 KB Output is correct
19 Correct 3 ms 332 KB Output is correct
20 Correct 2 ms 332 KB Output is correct