Submission #1265050

#TimeUsernameProblemLanguageResultExecution timeMemory
1265050danglayloi1Semiexpress (JOI17_semiexpress)C++20
100 / 100
9 ms3656 KiB
#include <bits/stdc++.h> #define int long long #define ii pair<int, int> #define fi first #define se second #define inf 0x3f3f3f3f3f3f3f3f using namespace std; using ll = long long; const ll mod=1e9+7; const int nx=1e6+5; int n, k, m, cur=0; ll A, B, C, t, a[nx], ans=0, sus[nx]; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>m>>k>>A>>B>>C>>t; for(int i = 1; i <= m; i++) cin>>a[i]; ans=(B*(a[m]-1)<=t); for(int i = 1; i < m; i++) { ll pos=a[i], tim=(a[i]-1)*B; int cnt=0; while(pos<a[i+1]) { ll left=(t-tim); if(left<0) break; left/=A; ll nxt=min(a[i+1], pos+left+1); if(pos==a[i]) ans+=nxt-pos; else sus[++cur]=nxt-pos; tim+=(nxt-pos)*C; pos=nxt; cnt++; if(cnt>k-m) break; } } sort(sus+1, sus+cur+1, greater<ll>()); for(int i = 1; i <= k-m; i++) ans+=sus[i]; cout<<ans-1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...