Submission #1273145

#TimeUsernameProblemLanguageResultExecution timeMemory
1273145kaiboySemiexpress (JOI17_semiexpress)C++20
100 / 100
8 ms2080 KiB
#include <algorithm>
#include <iostream>

using namespace std;

const int M = 3000;
const int K = 3000;

int qu[M * K];

int main() {
	ios_base::sync_with_stdio(false), cin.tie(NULL);
	int n, m, k; cin >> n >> m >> k, k -= m;
	long long a, b, c; cin >> a >> b >> c;
	long long t; cin >> t;
	int x = b * (n - 1) <= t, cnt = 0, l; cin >> l, l--;
	while (--m) {
		int r; cin >> r, r--;
		int i = l;
		for (int h = 0; h <= k && i < r && b * l + c * (i - l) <= t; h++) {
			int j = min(i + max(t - b * l - c * (i - l), 0LL) / a, r - 1LL);
			if (!h)
				x += j - i + 1;
			else
				qu[cnt++] = j - i + 1;
			i = j + 1;
		}
		l = r;
	}
	sort(qu, qu + cnt, greater<>());
	for (k = min(k, cnt); k--; )
		x += qu[k];
	cout << x - 1 << '\n';
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...