Submission #854669

#TimeUsernameProblemLanguageResultExecution timeMemory
854669BrineTwSemiexpress (JOI17_semiexpress)C++14
100 / 100
11 ms5332 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> #define debug(x) cerr << #x << ' ' << x << '\n' #define endl '\n' using namespace std; const int M = 1e9 + 7; typedef long long ll; int main() { ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); int N, M, K; cin >> N >> M >> K; K -= M; ll A, B, C; cin >> A >> B >> C; ll limit; cin >> limit; vector<ll> exprs(M); for (auto& n: exprs) cin >> n, --n; vector<ll> v; ll ans = -1; for (int i = 0; i < M - 1; i++) { ll T = limit - B * exprs[i]; if (T < 0) break; ll r = min(exprs[i] + T / A, exprs[i + 1] - 1); ans += r - exprs[i] + 1; for (int j = 0; j < K && r < exprs[i + 1] - 1; j++) { ll x = (T - (r + 1 - exprs[i]) * C < 0 ? r : r + 1); ll t = T - (x - exprs[i]) * C; ll nxtr = min(x + t / A, exprs[i + 1] - 1); v.push_back(nxtr - r); r = nxtr; } } sort(v.rbegin(), v.rend()); for (int i = 0; i < min(K, int(v.size())); i++) ans += v[i]; if (B * exprs.back() <= limit) ans++; cout << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...