제출 #401996

#제출 시각아이디문제언어결과실행 시간메모리
401996AzimjonGarage (IOI09_garage)C++17
100 / 100
2 ms332 KiB
// 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;
}
#Verdict Execution timeMemoryGrader output
Fetching results...