제출 #973025

#제출 시각아이디문제언어결과실행 시간메모리
973025kiddiGarage (IOI09_garage)C++17
30 / 100
2 ms600 KiB
#include <bits/stdc++.h>
#include <queue>
using namespace std;

int n, m;
int val[101];
int tingd[2001];
map<int, int> hvar;
priority_queue<int> rod;
queue<int> bilar;
int tala;
int svar = 0;

int main() {
    cin >> n >> m;
    for (int x = 1; x < 1+n; x++) {
        cin >> val[x];
        rod.push(-x);
    }
    for (int x = 1; x < 1+m; x++) {
        cin >> tingd[x];
    }
    for (int x = 0; x < m*2; x++) {
        cin >> tala;
        if (tala > 0) {
            if (!rod.empty()) {
                hvar[tala] = abs(rod.top());
                rod.pop();
                //cout << hvar[tala] << ' ' << tala << ' ' << val[hvar[tala]]*tingd[tala] << endl;
                svar += val[hvar[tala]]*tingd[tala];
            }
            else {
                bilar.push(tala);
            }
        }
        else {
            tala = -tala;
            rod.push(hvar[tala]);
            if (!bilar.empty()) {
                tala = bilar.front();
                bilar.pop();
                hvar[tala] = abs(rod.top());
                rod.pop();
                //cout << "??" << endl;
                svar += val[hvar[tala]]*tingd[tala];
            }
        }
        
    }
    cout << svar << endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...