Submission #1248907

#TimeUsernameProblemLanguageResultExecution timeMemory
1248907feukicGarage (IOI09_garage)C++20
100 / 100
1 ms328 KiB
#include <iostream> #include <vector> #include <queue> using namespace std; int findSpace(vector<int>& arr) { for (int i = 0; i < arr.size(); i++) { if (!arr[i]) { return i; } } return -1; } int findSpace(vector<int>& arr, int x) { for (int i = 0; i < arr.size(); i++) { if (arr[i] == x) { return i; } } return -1; } int main() { int n, m; cin >> n >> m; vector<int> prices(n); for (int i = 0; i < n; i++) { cin >> prices[i]; } vector<int> weights(m); for (int i = 0; i < m; i++) { cin >> weights[i]; } long long sum = 0; vector<int> spaces(n, 0); queue<int> cars; for (int i = 0; i < 2 * m; i++) { int x; cin >> x; if (x > 0) { int space = findSpace(spaces); if (space != -1) { spaces[space] = x; sum += prices[space] * weights[x - 1]; } else { cars.push(x); } } else { if (cars.size()) { int space = findSpace(spaces, -x); spaces[space] = cars.front(); sum += prices[space] * weights[cars.front() - 1]; cars.pop(); } else { int space = findSpace(spaces, -x); spaces[space] = 0; } } } cout << sum; }
#Verdict Execution timeMemoryGrader output
Fetching results...