#include <bits/stdc++.h>
using namespace std;
int main() {
int n , m,res = 0;
cin >> n >> m;
priority_queue<int, vector<int>, greater<int>> pq;
for (int i = 1; i <= n; ++i) {
pq.push(i);
}
map<int,int>mp;
vector<int>rates(n);
for(int i = 0;i < n;++i)
{
cin >> rates[i];
}
vector<int>weight(m);
for(int i = 0;i < m;++i)
{
cin >> weight[i];
}
for(int i = 0;i < 2*m;++i)
{
int j;
cin >> j;
if(j < 0)
{
pq.push(mp[abs(j)]);
}
else
{
res += rates[pq.top()-1] * weight[j-1];
mp[j] = pq.top();
pq.pop();
}
}
cout << res << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |