Submission #943340

#TimeUsernameProblemLanguageResultExecution timeMemory
943340maxFedorchukGarage (IOI09_garage)C++17
100 / 100
2 ms4560 KiB
#include <bits/stdc++.h> using namespace std; const long long MX=2e5+10; long long msq[MX],w[MX],cs[MX],ans=0; int main() { cin.tie(0); ios_base::sync_with_stdio(0); priority_queue < pair < long long , long long > , vector < pair < long long , long long > > , greater < pair < long long , long long > > > qp; long long n,m; cin>>n>>m; for(long long i=1;i<=n;i++) { cin>>cs[i]; qp.push({i,cs[i]}); } for(long long i=1;i<=m;i++) { cin>>w[i]; } queue < long long > qm; for(long long i=1;i<=2*m;i++) { long long a; cin>>a; if(a>0) { qm.push(a); } else { a=(-a); qp.push({msq[a],cs[msq[a]]}); msq[a]=0; } while(!qp.empty() && !qm.empty()) { long long o1=qp.top().first; qp.pop(); long long o2=qm.front(); qm.pop(); ans+=w[o2]*cs[o1]; msq[o2]=o1; } } cout<<ans<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...