#include <bits/stdc++.h>
using namespace std;
#define all(a) (a).begin(), (a).end()
using ll = long long;
const int N = 1e5 + 24;
int n, m, k, s[N];
ll A, B, C, maxTime;
void solve() {
cin >> n >> m >> k;
cin >> A >> B >> C;
cin >> maxTime;
for (int i = 1; i <= m; i++) {
cin >> s[i];
}
s[m + 1] = n + 1;
ll ans = 0;
vector<ll> gain;
for (int i = 1; i <= m; i++) {
ll L = s[i], R = s[i + 1] - 1;
for (ll cnt = 0, l = L; l <= R; cnt++) {
ll current = (L - 1) * B + (l - L) * C;
if (current > maxTime) break;
ll r = min(R, (maxTime - current + l * A) / A);
if (r < l) break;
if (cnt == 0) {
ans += r - l + 1;
}
else {
// cout << l << ' ' << r << '\n';
gain.push_back(r - l + 1);
}
l = r + 1;
}
}
sort(all(gain));
int cntGet = min((int)gain.size(), k - m);
while (cntGet--) {
ll g = gain.back(); gain.pop_back();
ans += g;
}
cout << ans - 1 << '\n';
}
signed main() {
cin.tie(0) -> sync_with_stdio(0);
int T = 1; // cin >> T;
while (T--) {
solve();
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |