#include <bits/stdc++.h>
using namespace std;
int parcare[105];
queue<int>coada;
int n,m;
int cost[105],kg[2005];
int total;
void read(){
int i;
cin>>n>>m;
for(i=1;i<=n;++i)
cin>>cost[i];
for(i=1;i<=m;++i)
cin>>kg[i];
}
void insert_car(int id){
int pos;
for(pos=1;parcare[pos];++pos);
if(pos<=n){
parcare[pos]=id;
total+=kg[id]*cost[pos];
}
else
coada.push(id);
}
void erase_car(int id){
int pos;
for(pos=1;parcare[pos]!=id;++pos);
parcare[pos]=0;
if(!coada.empty()){
insert_car(coada.front());
coada.pop();
}
}
void process_queries(){
int i;
for(i=1;i<=2*m;++i){
int id;
cin>>id;
if(id>0)
insert_car(id);
else
erase_car(-id);
}
}
int main()
{
read();
process_queries();
cout<<total;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |