Submission #717713

#TimeUsernameProblemLanguageResultExecution timeMemory
717713AndrijaMGarage (IOI09_garage)C++14
100 / 100
3 ms368 KiB
#include <bits/stdc++.h> using namespace std; int main() { long long ans=0; long long n,m; cin>>n>>m; long long cpp[n]; map<long long,long long>l; bool vis[n]; for(long long i=0;i<n;i++) { cin>>cpp[i]; vis[i]=false; } long long mass[m]; for(long long i=0;i<m;i++) { cin>>mass[i]; } long long idx; queue<long long>Q; for(long long i=0;i<2*m;i++) { cin>>idx; if(idx>0) { idx--; bool ok=false; for(long long pos=0;pos<n;pos++) { if(vis[pos]==false) { ans+=cpp[pos]*mass[idx]; l[idx]=pos; vis[pos]=true; ok=true; break; } } if(!ok) { Q.push(idx); } } else { idx*=(-1); idx--; if(Q.size()>0) { ans+=cpp[l[idx]]*mass[Q.front()]; l[Q.front()]=l[idx]; Q.pop(); } else { vis[l[idx]]=false; } } } cout<<ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...