답안 #401996

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
401996 2021-05-11T06:54:49 Z Azimjon Garage (IOI09_garage) C++17
100 / 100
2 ms 332 KB
// Muallif: Azimjon Mehmonali o'g'li

#include <bits/stdc++.h>

using namespace std;

#define int long long

const long double PI = 3.1415926535897;
const int mod = 1000000007LL;
const int INF = 1e18;

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int n, m;
	cin >> n >> m;

	vector<int> r(n + 1), o(m + 1);
	for (int i = 1; i <= n; i++) {
		cin >> r[i];
	}
	for (int i = 1; i <= m; i++) {
		cin >> o[i];
	}

	vector<int> p(n + 1, -1);
	queue<int> q;
	int nt = 0;

	for (int i = 1; i <= 2 * m; i++) {
		int x;
		cin >> x;

		if (x > 0) {
			q.push(x);
		} else {
			for (int j = 1; j <= n; j++) {
				if (p[j] == -x) {
					p[j] = -1;
					break;
				}
			}
		}

		while (any_of(p.begin() + 1, p.end(), [](int x) { return x == -1; })
			   && !q.empty()) {
			int y = q.front();
			q.pop();

			for (int j = 1; j <= n; j++) {
				if (p[j] == -1) {
					p[j] = y;
					nt += o[y] * r[j];
					break;
				}
			}
		}
	}

	// cout << q.empty() << endl;

	cout << nt << endl;

	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
11 Correct 1 ms 204 KB Output is correct
12 Correct 1 ms 332 KB Output is correct
13 Correct 1 ms 204 KB Output is correct
14 Correct 1 ms 332 KB Output is correct
15 Correct 1 ms 332 KB Output is correct
16 Correct 2 ms 328 KB Output is correct
17 Correct 1 ms 332 KB Output is correct
18 Correct 2 ms 332 KB Output is correct
19 Correct 2 ms 332 KB Output is correct
20 Correct 2 ms 332 KB Output is correct