Submission #1224192

#TimeUsernameProblemLanguageResultExecution timeMemory
1224192al1biGarage (IOI09_garage)C++20
100 / 100
2 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long int int main(){ int n, m; cin >> n >> m; vector<int> r(n); for(auto &i: r) cin >> i; vector<int> w(m); for(auto &i: w) cin >> i; ll tt = 0; map<int, int> mp; set<int> st; queue<int> q; for(int i = 1; i <= n; i++) st.insert(i); for(int i = 0; i < 2*m; i++){ int e; cin >> e; if(e > 0){ auto it = st.begin(); if(it == st.end()) q.push(e); else{ mp[e] = *it; st.erase(it); } }else{ tt += w[-e-1]*r[mp[-e]-1]; st.insert(mp[-e]); if(!q.empty()){ int ne = q.front(); q.pop(); auto it = st.begin(); mp[ne] = *it; st.erase(it); } } } cout << tt << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...