Submission #377133

#TimeUsernameProblemLanguageResultExecution timeMemory
377133kevinxiehkGarage (IOI09_garage)C++17
100 / 100
3 ms364 KiB
#include<bits/stdc++.h> using namespace std; int main(){ int n,m,cnt=0,t;cin>>n>>m; long long rev=0; int rate[n+5],park[n+5],weight[m+5]; queue<int>q; for(int i=0;i<=n;i++)park[i]=-1; for(int i=0;i<n;i++)cin>>rate[i]; for(int i=1;i<=m;i++)cin>>weight[i]; for(int i=0;i<m*2;i++){ cin>>t; if(t>0){ if(cnt==n)q.push(t); else{ int now=0; while(park[now]!=-1)now++; park[now]=t; rev+=rate[now]*weight[t]; cnt++; } } else{ t=-t; int now=0; while(park[now]!=t)now++; park[now]=-1; cnt--; if(!q.empty()){ t=q.front(); q.pop(); park[now]=t; rev+=rate[now]*weight[t]; cnt++; } } } cout<<rev<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...