# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
120094 | Boxworld | Garage (IOI09_garage) | C++14 | 3 ms | 512 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int N=5100;
int x,n,m,r[N],w[N],a[N],ans=0;
priority_queue<int,vector<int>,greater<int> > pQ;//parklot
queue<int> wQ;//waiting
char s[N];
int main(){
scanf("%d%d",&m,&n);
for (int i=1;i<=m;i++)scanf("%d",&r[i]);
for (int i=1;i<=n;i++)scanf("%d",&w[i]);
for (int i=1;i<=m;i++)pQ.push(i);
for (int i=1;i<=n*2;i++){
scanf("%d",&x);
if (x<0){
x*=-1;
if (wQ.empty())pQ.push(a[x]);
else{int y=wQ.front();wQ.pop();a[y]=a[x];}
}else{
if (pQ.empty())wQ.push(x);
else {a[x]=pQ.top();pQ.pop();}
}
}
for (int i=1;i<=n;i++)ans+=r[a[i]]*w[i];
printf("%d\n",ans);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |