Submission #1215313

#TimeUsernameProblemLanguageResultExecution timeMemory
1215313pedroslreyTower (JOI24_tower)C++20
5 / 100
118 ms11336 KiB
#include <bits/stdc++.h>

using namespace std;
using lli = long long;

int main() {
	int n, q;
	cin >> n >> q;

	lli D, A, B;
	cin >> D >> A >> B;

	vector<bool> marc(1e6 + 1);
	for (int i = 0; i < n; ++i) {
		int l, r;
		cin >> l >> r;

		for (int j = l; j <= r; ++j)
			marc[j] = true;
	}

	vector<int> queries(q);
	for (int &x: queries)
		cin >> x;

	vector<lli> dp(1e6 + 1);

	for (int i = 1; i <= 1e6; ++i)
		if (marc[i]) dp[i] = 1e18;
		else dp[i] = min(dp[i - 1] + A, (i >= D ? dp[i - D] + B : lli(1e18)));

	for (int x: queries)
		cout << (dp[x] >= 1e18 ? -1 : dp[x]) << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...