Submission #110171

#TimeUsernameProblemLanguageResultExecution timeMemory
110171WLZSemiexpress (JOI17_semiexpress)C++17
100 / 100
92 ms33472 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); long long n; int m, k; cin >> n >> m >> k; long long a, b, c; cin >> a >> b >> c; long long t; cin >> t; vector<long long> s(m); for (int i = 0; i < m; i++) { cin >> s[i]; } long long ans = 0; if ((n - 1) * b <= t) { ans++; } priority_queue<long long> pq; for (int i = 0; i < m - 1; i++) { long long need = (s[i] - 1) * b; if (need > t) { break; } long long q = (t - need) / a; long long to = min(s[i] + q, s[i + 1] - 1); ans += to - s[i] + 1; for (int j = 0; j < k && to < s[i + 1] - 1; j++) { long long tmp = need + (to - s[i] + 1) * c; if (tmp > t) { break; } q = (t - tmp) / a; long long next = min(s[i + 1] - 1, to + q + 1); pq.push(next - to); to = next; } } for (int i = 0; i < k - m && !pq.empty(); i++) { ans += pq.top(); pq.pop(); } ans--; cout << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...