Submission #531512

#TimeUsernameProblemLanguageResultExecution timeMemory
531512bonkGarage (IOI09_garage)C++14
45 / 100
2 ms332 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const int N = 102;
bool vis[N];
int pos[N];

int main(){
    int n, m; cin >> n >> m;
    ll r[n + 1], w[m + 1];
    ll ans = 0;

    for(int i = 1; i <= n; i++) cin >> r[i];
    for(int i = 1; i <= m; i++) cin >> w[i];

    queue<int>q;

    for(int i = 0; i < 2*m; i++){
        int x; cin >> x;

        if(x > 0) q.push(x);
        else if(x < 0) vis[pos[-1*x]] = false;

        if(!q.empty()){
            int now = q.front();
            for(int j = 1; j <= n; j++){
                if(!vis[j]){
                    pos[now] = j;
                    ans += r[j]*w[now];
                    vis[j] = true;
                    q.pop();
                    break;
                }
            }
        }
    }

    cout << ans << endl;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...