Submission #1269375

#TimeUsernameProblemLanguageResultExecution timeMemory
1269375MateiKing80Tower (JOI24_tower)C++20
5 / 100
274 ms13432 KiB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;
const ll inf = 1e13;


#define int ll


using pii = pair<int, int>;
#define fr first
#define sc second

signed main() {
	int n, q, d, a, b;
	cin >> n >> q >> d >> a >> b;
	vector<int> dp(1000001, inf);
	vector<bool> turip(1000001, true);
	dp[0] = 0;
	vector<pii> inter;
	for (int i = 1; i <= n; i ++) {
		int l, r;
		cin >> l >> r;
		inter.push_back({l, r});
		for (int j = l; j <= r; j ++)
			turip[j] = false;
	}
	for (int i = 1; i <= 1000000; i ++) {
		if (!turip[i])
			continue;
		dp[i] = dp[i - 1] + a;
		if (i - d >= 0)
			dp[i] = min(dp[i], dp[i - d] + b);
	}
	for (int i = 0; i < q; i ++) {
		int x;
		cin >> x;
		if (dp[x] >= inf)
			cout << -1 << '\n';
		else
			cout << 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...