Submission #518592

#TimeUsernameProblemLanguageResultExecution timeMemory
518592blueGarage (IOI09_garage)C++17
100 / 100
3 ms332 KiB
#include <iostream> #include <set> #include <queue> using namespace std; int main() { int N, M; cin >> N >> M; int R[N+1]; for(int i = 1; i <= N; i++) cin >> R[i]; int W[M+1]; for(int i = 1; i <= M; i++) cin >> W[i]; queue<int> Q; set<int> S; for(int i = 1; i <= N; i++) S.insert(i); int res = 0; int a; int P[M+1]; for(int i = 1; i <= 2*M; i++) { cin >> a; if(a > 0) Q.push(a); else S.insert(P[-1*a]); while(!Q.empty() && !S.empty()) { P[Q.front()] = *S.begin(); res += W[Q.front()] * R[*S.begin()]; S.erase(*S.begin()); Q.pop(); } } cout << res << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...