Submission #1177952

#TimeUsernameProblemLanguageResultExecution timeMemory
1177952TsaganaSemiexpress (JOI17_semiexpress)C++20
100 / 100
10 ms4536 KiB
#include<bits/stdc++.h> #define IOS ios_base::sync_with_stdio(false);cin.tie();cout.tie(); #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define int long long #define pq priority_queue #define eb emplace_back #define lb lower_bound #define ub upper_bound #define pb push_back #define pp pop_back #define F first #define S second using namespace std; int n, m, k, a, b, c, t; int v[3010]; vector<int> st; int ans; void read() { cin >> n >> m >> k >> a >> b >> c >> t; for(int i = 0; i < m; i++) cin >> v[i]; k -= m; v[m] = n + 1; } bool check(int i) { int time = t - (v[i] - 1) * b; int dis = v[i+1] - v[i]; if (time < 0) return 0; int d = min(dis, time / a + 1); ans += d; dis -= d; time -= c * d; int k1 = k; while (k1-- && dis && time >= 0) { d = min(dis, time / a + 1); st.pb(d); dis -= d; time -= d * c; } return 1; } void calc() { for (int i = 0; i < m; i++) { if (!check(i)) break ; } sort(rall(st)); k = min(k, (int)st.size()); for (int i = 0; i < k; i++) { ans += st[i]; } } void print() { cout << ans - 1; } void solve () { read(); calc(); print(); } signed main() {IOS solve(); return 0;}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...