답안 #1080760

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1080760 2024-08-29T13:48:04 Z juicy Garage (IOI09_garage) C++17
100 / 100
1 ms 348 KB
#include <bits/stdc++.h>

using namespace std;

#ifdef LOCAL
#include "debug.h"
#else
#define debug(...) 42
#endif

int main() {
  ios::sync_with_stdio(false); cin.tie(nullptr);

  int n, m; cin >> n >> m;
  vector<int> a(n), b(m);
  for (int i = 0; i < n; ++i) {
	cin >> a[i];
  }
  for (int i = 0; i < m; ++i) {
	cin >> b[i];
  }
  priority_queue<int> pq;
  for (int i = 0; i < n; ++i) {
	pq.push(-i);
  }
  vector<int> vis(n), pos(m);
  queue<int> q;
  int res = 0;
  for (int i = 0; i < 2 * m; ++i) {
	int x; cin >> x;
	if (x > 0) {
		q.push(x - 1);
	} else {
		int p = pos[-1 - x];
		vis[p] ^= 1;
		pq.push(-p);
	}
	while (q.size()) {
		while (pq.size() && vis[-pq.top()]) {
			pq.pop();
		}
		if (!pq.size()) {
			break;
		}
		int u = q.front(); q.pop();
		int j = -pq.top(); pq.pop();
		res += a[j] * b[u];
		pos[u] = j;
		vis[j] ^= 1;
	}
  }
  cout << res;
  return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct