Submission #890642

#TimeUsernameProblemLanguageResultExecution timeMemory
890642HasanV11010238Garage (IOI09_garage)C++17
100 / 100
2 ms684 KiB
#include <bits/stdc++.h> using namespace std; long long s = 0; int n, m, a, fr, val; vector<int> w; vector<int> r; vector<int> parks; int enter(int x){ for (int i = 0; i < n; i++){ if (parks[i] == -1){ parks[i] = x; s += w[x - 1] * r[i]; fr--; return 0; } } return 0; } int ex(int x){ for (int i = 0; i < n; i++){ if (parks[i] == x){ parks[i] = -1; fr++; return 0; } } return 0; } int main(){ cin>>n>>m; fr = n; for (int i = 0; i < n; i++){ cin>>a; r.push_back(a); parks.push_back(-1); } for (int i = 0; i < m; i++){ cin>>a; w.push_back(a); } queue<int> ord; for (int i = 0; i < 2 * m; i++){ cin>>a; if (a > 0){ ord.push(a); } else{ ex(-a); } while (!ord.empty() && fr > 0){ val = ord.front(); ord.pop(); enter(val); } } cout<<s; }
#Verdict Execution timeMemoryGrader output
Fetching results...