#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
cin.tie(nullptr);
ios_base::sync_with_stdio(false);
ll N, M, x, ans;
cin>>N>>M;
ans = 0;
vector<ll> R(N), W(M), p(M);
set<ll> d;
queue<ll> q;
for(ll i=0;i<N;i++){
cin>>R[i];
d.insert(i);
}
for(ll i=0;i<M;i++){cin>>W[i];}
for(ll i=0;i<2*M;i++){
cin>>x;
if(x > 0){
x--;
q.push(x);
} else {
x = (-x-1);
d.insert(p[x]);
}
if(q.size() == 0 or d.size() == 0){continue;}
ll e = *(d.begin());
ll c = q.front();
p[c] = e;
ans += W[c]*R[e];
q.pop();
d.erase(e);
}
cout<<ans;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |