제출 #1291054

#제출 시각아이디문제언어결과실행 시간메모리
1291054Jawad_Akbar_JJGarage (IOI09_garage)C++20
100 / 100
2 ms576 KiB
#include <iostream> #include <queue> using namespace std; const int N = 1e5; int r[N], w[N], carAt[N]; int main(){ int n, m, Ans = 0; cin>>n>>m; for (int i=1;i<=n;i++) cin>>r[i]; for (int i=1;i<=m;i++) cin>>w[i]; queue<int> Q; for (int i=1, empty = n;i<=m + m;i++){ int cr; cin>>cr; if (cr < 0){ for (int i=1;i<=n;i++){ if (carAt[i] != -cr) continue; empty++; carAt[i] = 0; break; } } else Q.push(cr); if (empty > 0 and Q.size() > 0){ int nxt = Q.front(); Q.pop(); for (int i=1;i<=n;i++){ if (carAt[i]) continue; carAt[i] = nxt; Ans += w[nxt] * r[i]; break; } empty--; } } cout<<Ans<<'\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...