Submission #242628

#TimeUsernameProblemLanguageResultExecution timeMemory
242628nvmdavaSemiexpress (JOI17_semiexpress)C++17
100 / 100
12 ms2552 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ff first #define ss second mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); #define N 5005 const ll MOD = 1000000007; const int INF = 0x3f3f3f3f; int n, m, k; ll a, b, c, t; priority_queue<int> pq; ll ans = 0; int d[N]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>m>>k; cin>>a>>b>>c>>t; for(int i = 0; i < m; ++i){ cin>>d[i]; --d[i]; } d[m] = n; k -= m; for(int i = 1; i <= m; ++i){ ll w = t - d[i - 1] * b; n = d[i] - d[i - 1]; if(w < 0) break; int s = min((ll)n, w / a + 1); ans += s; n -= s; w -= s * c; int q = k; while(w >= 0 && n && q--){ s = min((ll)n, w / a + 1); pq.push(s); w -= s * c; n -= s; } } while(!pq.empty() && k--){ ans += pq.top(); pq.pop(); } cout<<ans - 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...