답안 #554376

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
554376 2022-04-28T09:54:45 Z alextodoran Garage (IOI09_garage) C++17
100 / 100
1 ms 352 KB
/**
 ____ ____ ____ ____ ____
||a |||t |||o |||d |||o ||
||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|

**/

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int main () {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int N, M;
    cin >> N >> M;
    int R[N];
    for (int i = 0; i < N; i++) {
        cin >> R[i];
    }
    int W[M];
    for (int j = 0; j < M; j++) {
        cin >> W[j];
    }
    int pos[M];
    set <int> sfree;
    queue <int> waiting;
    for (int i = 0; i < N; i++) {
        sfree.insert(i);
    }
    int answer = 0;
    for (int k = 0; k < M * 2; k++) {
        int j;
        cin >> j;
        if (j < 0) {
            j = -j; j--;
            sfree.insert(pos[j]);
        } else {
            j--;
            waiting.push(j);
        }
        if (sfree.empty() == false && waiting.empty() == false) {
            int j = waiting.front();
            waiting.pop();
            pos[j] = *sfree.begin();
            sfree.erase(sfree.begin());
            answer += R[pos[j]] * W[j];
        }
    }
    cout << answer << "\n";

    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 312 KB Output is correct
5 Correct 0 ms 320 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 320 KB Output is correct
11 Correct 1 ms 320 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 332 KB Output is correct
14 Correct 1 ms 340 KB Output is correct
15 Correct 1 ms 336 KB Output is correct
16 Correct 1 ms 340 KB Output is correct
17 Correct 1 ms 340 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Correct 1 ms 352 KB Output is correct
20 Correct 1 ms 340 KB Output is correct