제출 #554376

#제출 시각아이디문제언어결과실행 시간메모리
554376alextodoranGarage (IOI09_garage)C++17
100 / 100
1 ms352 KiB
/** ____ ____ ____ ____ ____ ||a |||t |||o |||d |||o || ||__|||__|||__|||__|||__|| |/__\|/__\|/__\|/__\|/__\| **/ #include <bits/stdc++.h> using namespace std; typedef long long ll; int main () { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int N, M; cin >> N >> M; int R[N]; for (int i = 0; i < N; i++) { cin >> R[i]; } int W[M]; for (int j = 0; j < M; j++) { cin >> W[j]; } int pos[M]; set <int> sfree; queue <int> waiting; for (int i = 0; i < N; i++) { sfree.insert(i); } int answer = 0; for (int k = 0; k < M * 2; k++) { int j; cin >> j; if (j < 0) { j = -j; j--; sfree.insert(pos[j]); } else { j--; waiting.push(j); } if (sfree.empty() == false && waiting.empty() == false) { int j = waiting.front(); waiting.pop(); pos[j] = *sfree.begin(); sfree.erase(sfree.begin()); answer += R[pos[j]] * W[j]; } } cout << answer << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...