Submission #228447

#TimeUsernameProblemLanguageResultExecution timeMemory
228447s_avila_gGarage (IOI09_garage)C++14
5 / 100
9 ms640 KiB
#include <bits/stdc++.h> using namespace std; queue<long long> col; map<long long,long long> mp; int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); long long n,m; cin>>n>>m; vector<long long> parks(n); vector<long long> cars(n); for(long long i = 0 ; i < n; i++)cin>>parks[i]; for(long long i = 0 ; i < m; i++)cin>>cars[i]; long long vis[n]; memset(vis,0,sizeof vis); long long ans = 0; for(long long i = 0 ; i < (2*m); i++){ long long x; cin>>x; bool libre = false; if(x > 0){ long long pos; for(long long j = 0; j < n; j++){ if(vis[j] == 0){ libre = true; pos = j; break; } } if(!libre){ col.push(x); }else{ mp[x] = pos; ans += cars[x-1] * parks[pos]; vis[pos] = 1; } }else{ vis[mp[abs(x)]] = 0; if(!col.empty()){ long long nxt = col.front(); vis[mp[abs(x)]] = 1; col.pop(); ans += cars[nxt-1] * parks[mp[abs(x)]]; } mp[abs(x)] = -1; } } cout<<ans<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...