Submission #1272547

#TimeUsernameProblemLanguageResultExecution timeMemory
1272547rafamiuneSemiexpress (JOI17_semiexpress)C++20
100 / 100
1 ms580 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define fr first #define sc second #define all(x) (x).begin(), (x).end() const int MOD = 1e9 + 7; const int MAXN = 2e5 + 5; //MUDAR O LIMITE const int INF1 = 1e9 + 5; const long long INF = 1e18 + 5; void solve() { int N, M, K, A, B, C, T; cin >> N >> M >> K >> A >> B >> C >> T; priority_queue<tuple<int,int,int>,vector<tuple<int,int,int>>> pq; K -= M; vector<int> s(M + 1); for(int i = 1; i <= M; i++) { cin >> s[i]; } int ans = -1; for(int i = 1; i < M; i++) { int L = s[i + 1] - s[i]; int t = B * (s[i] - 1); if(t > T) continue; int q = min(L, (T - t) / A + 1); L -= q; ans += q; t += q * C; if(t > T) continue; q = min(L, (T - t) / A + 1); pq.push({q, L - q, t}); } if((N - 1) * B <= T) ans++; while(K-- && pq.size()) { auto[q, L, t] = pq.top(); pq.pop(); ans += q; t += q * C; if(t > T) continue; q = min(L, (T - t) / A + 1); pq.push({q, L - q, t}); } cout << ans << "\n"; } int32_t main() { ios::sync_with_stdio(false); cin.tie(NULL); int tt; tt = 1; //cin >> tt; while(tt--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...