Submission #1176687

#TimeUsernameProblemLanguageResultExecution timeMemory
1176687discontinuousGarage (IOI09_garage)C++20
45 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back const ll MOD = 1e9 + 7; ll n, m, k, a, b, c, d, x, y; int main() { ios::sync_with_stdio(false); cout.tie(0); cin.tie(0); cin >> n >> m; vector<ll> parking(n); vector<ll> weights(m); for(int j = 0; j<n; j++) cin >> parking[j]; for(int j = 0; j<m; j++) cin >> weights[j]; // sort(parking.begin(), parking.end()); ll tt = 2*m; // int a = 0; ll totalEarnings = 0; queue<ll> carqueue; vector<bool> occupied(n, false); vector<ll> parked(m, -1); // bool allOccupied = false; while(tt--) { ll inp; cin >> inp; if(inp > 0) { bool done = false; for(int j = 0; j<n; j++) { if(occupied[j] == false) { occupied[j] = true; totalEarnings += weights[inp-1] * parking[j]; parked[inp-1] = j+1; done = true; break; } } if(done == false) { carqueue.push(inp); } } else { inp = abs(inp); occupied[parked[inp-1]-1] = false; if(!(carqueue.empty())) { totalEarnings += parking[parked[inp-1]-1] * weights[carqueue.front()-1]; occupied[inp-1] = true; carqueue.pop(); } } } cout << totalEarnings; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...