#include <bits/stdc++.h>
using namespace std;
int n, m, x;
int rt[105];
int cw[2005];
int oc[105];
queue<int> q;
int money=0;
int main() {
cin >> n >> m;
for(int i=1;i<=n;i++) cin >> rt[i];
for(int i=1;i<=m;i++) cin >> cw[i];
memset(oc, -1, sizeof oc);
for(int i=1;i<=2*m;i++) {
cin >> x;
if(x<0) {
x=-x;
int idx=1; for(;oc[idx]!=x;idx++);
oc[idx] = -1;
if(!q.empty()) {
money += cw[q.front()] * rt[idx];
oc[idx] = q.front();
q.pop();
}
} else {
int idx = 1; for(;oc[idx]!=-1&&idx<=n;idx++);
if(idx <= n) {
money += cw[x]*rt[idx];
oc[idx] = x;
}
else q.push(x);
}
//cout << money << '\n';
}
cout << money;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |