Submission #1224176

#TimeUsernameProblemLanguageResultExecution timeMemory
1224176diegoangulo5Garage (IOI09_garage)C++20
100 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; vector<int> R(n); for (int i = 0; i < n; ++i) { cin >> R[i]; } vector<int> W(m); for (int i = 0; i < m; ++i) { cin >> W[i]; } queue<int> carsWaiting; vector<int> carIsIn(m + 1, -1); priority_queue<int, vector<int>, greater<int>> lotsAvailable; for (int i = 1; i <= n; ++i) { lotsAvailable.push(i); } m *= 2; int val; long long revenue = 0; while (m--) { cin >> val; if (val > 0) { carsWaiting.push(val); } else { lotsAvailable.push(carIsIn[-val]); carIsIn[-val] = -1; } while (!carsWaiting.empty() && !lotsAvailable.empty()) { int car = carsWaiting.front(); int lot = lotsAvailable.top(); carsWaiting.pop(); lotsAvailable.pop(); carIsIn[car] = lot; revenue += R[lot - 1] * W[car - 1]; } } cout << revenue << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...