제출 #851649

#제출 시각아이디문제언어결과실행 시간메모리
851649abcvuitunggioGarage (IOI09_garage)C++17
100 / 100
1 ms348 KiB
#include <bits/stdc++.h>
using namespace std;
int n,m,r[101],w[2001],p[2001],res,x;
queue <int> q;
priority_queue <int, vector <int>, greater <int>> pq;
void park(int i){
    if (pq.empty()){
        q.push(i);
        return;
    }
    res+=r[pq.top()]*w[i];
    p[i]=pq.top();
    pq.pop();
}
int main(){
    ios_base::sync_with_stdio(NULL);cin.tie(nullptr);
    cin >> n >> m;
    for (int i=1;i<=n;i++){
        cin >> r[i];
        pq.push(i);
    }
    for (int i=1;i<=m;i++)
        cin >> w[i];
    for (int i=1;i<=m*2;i++){
        cin >> x;
        if (x>0){
            park(x);
            continue;
        }
        pq.push(p[-x]);
        if (!q.empty()){
            park(q.front());
            q.pop();
        }
    }
    cout << res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...