제출 #623440

#제출 시각아이디문제언어결과실행 시간메모리
623440nekiGarage (IOI09_garage)C++14
100 / 100
2 ms440 KiB
#include <bits/stdc++.h>
#define ll long long
#define vc vector

using namespace std;

int main() {
    ll n, m;cin >> n >> m;
    vc<ll> rate(n+1);
    for(ll i=1;i<=n;++i) cin>> rate[i];
    
    vc<ll> w(m+1);
    for(ll i=1;i<=m;++i) cin >>w[i];
    
    ll ans=0;
    
    queue<ll> q;
    set<ll> prosti; for(ll i=1;i<=n;++i) prosti.insert(i);
    vc<ll> plac(m+1);
    for(ll i=1;i<=2 * m;++i){
        ll t;cin >> t;
        if(t>0) q.push(t);
        if(t<0) prosti.insert(plac[-t]);
        
        while(prosti.size() and q.size()){
            ll u=q.front();q.pop();
            
            plac[u]=*prosti.begin();prosti.erase(prosti.begin());
            
            ans+=rate[plac[u]] * w[u];
        }
    }
    cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...