제출 #1172274

#제출 시각아이디문제언어결과실행 시간메모리
1172274daniutaiyangGarage (IOI09_garage)C++20
100 / 100
1 ms328 KiB
#include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin >> n >> m; int rates[n],weights[m+1],events[m*2],occupies[m+1],ans=0; deque<int> waiting; priority_queue<int, vector<int>, greater<int>> space_av; for(int i=0; i<n; i++){ cin >> rates[i]; space_av.push(i); } for(int i=1; i<=m; i++){ cin >> weights[i]; occupies[i] = -1; } for(int i=0; i<m*2; i++) cin >> events[i]; for(auto event : events){ if(event>0){ if(!space_av.empty()){ occupies[event] = space_av.top(); space_av.pop(); ans+=weights[event]*rates[occupies[event]]; }else waiting.push_back(event); }else{ space_av.push(occupies[-event]); occupies[-event] = -1; if(!waiting.empty()){ occupies[waiting.front()] = space_av.top(); space_av.pop(); ans+=weights[waiting.front()]*rates[occupies[waiting.front()]]; waiting.pop_front(); } } } cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...