Submission #798074

#TimeUsernameProblemLanguageResultExecution timeMemory
798074Mouad_oujGarage (IOI09_garage)C++17
100 / 100
2 ms224 KiB
#include<bits/stdc++.h> using namespace std; int main() { int n,m; cin>>n>>m; int par[n+1],we[m+1],pos[m+1]; for(int x=1;x<n+1;x++) cin>>par[x]; for(int x=1;x<m+1;x++) cin>>we[x]; queue<int> q; set<int> s; for(int x=0;x<n;x++) s.insert(x+1); int ans=0,cur; for(int x=0;x<2*m;x++) { cin>>cur; if(cur>0) { if(s.empty()) q.push(cur); else { pos[cur]=*s.begin(); s.erase(*s.begin()); ans+=we[cur]*par[pos[cur]]; } } else { s.insert(pos[-cur]); if(!q.empty()) { cur=q.front(); q.pop(); pos[cur]=*s.begin(); s.erase(*s.begin()); ans+=we[cur]*par[pos[cur]]; } } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...