# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
121462 | TadijaSebez | Garage (IOI09_garage) | C++11 | 3 ms | 384 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 <stdio.h>
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
using namespace std;
const int N=2050;
int r[N],w[N],my[N];
set<int> Free;
queue<int> q;
int main()
{
int n,m,i,sol=0,x;
scanf("%i %i",&n,&m);
for(i=1;i<=n;i++) scanf("%i",&r[i]),Free.insert(i);
for(i=1;i<=m;i++) scanf("%i",&w[i]);
for(i=1;i<=m*2;i++)
{
scanf("%i",&x);
if(x>0) q.push(x);
else x=-x,Free.insert(my[x]);
while(q.size() && Free.size())
{
int car=q.front();
q.pop();
int space=*Free.begin();
Free.erase(space);
my[car]=space;
sol+=r[space]*w[car];
}
}
printf("%i\n",sol);
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |