#include<bits/stdc++.h>
using namespace std;
set<int> st;
queue<int> Q;
long long A[9999],W[9999],pos[9999];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>A[i];
st.insert(i);
}
long long ans=0;
for(int i=1;i<=m;i++) cin>>W[i];
for(int i=1;i<=m*2;i++)
{
int res;
cin>>res;
if(res>0)
{
if(st.empty()) Q.push(res);
else ans+=A[pos[res]=*st.begin()]*W[res],st.erase(st.begin());
}
else
{
st.insert(pos[-res]);
if(!Q.empty()) ans+=A[pos[Q.front()]=*st.begin()]*W[Q.front()],Q.pop(),st.erase(st.begin());
}
}
cout<<ans;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |