Submission #1159927

#TimeUsernameProblemLanguageResultExecution timeMemory
1159927brover29Semiexpress (JOI17_semiexpress)C++17
0 / 100
0 ms320 KiB
#include <bits/stdc++.h>
//qwerty47924692
using namespace std;
using ll = long long;
const ll N=3005;
const string br="617283";
#define sz(a)(ll)a.size()
#define f first
#define s second
ll n,m,k,a,b,c,t,d[N],used[N],was[N],dp[N][N],s[N],p[N][N],dist[N],u[N];
ll cost(ll i,ll k){
    if(i>n)return 0;
    return min(n-i,(t-k)/a);
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin>>n>>m>>k>>a>>b>>c>>t;
    ll ans=0;
    for(ll i=1;i<=m;i++){
        cin>>s[i];

    }for(ll i=1;i<m;i++){
        dist[i]=(s[i+1]-1)-(s[i]+cost(s[i],(s[i]-1)*b));
        ans+=cost(s[i],(s[i]-1)*b)+1;
        ll x=(s[i]+cost(s[i],(s[i]-1)*c))+1;
        if(x>=s[i+1])continue;
        u[i]=min(dist[i],cost(x,(s[i]-1)*b+(x-s[i])*c));
    }sort(u+1,u+m);
    reverse(u+1,u+m);
    for(ll i=1;i<=k-m;i++)ans+=u[i];

//    for(ll i=1;i<=k;i++){
//        for(ll j=1;j<=m;j++){
//            cout<<dp[i][j]<<' ';
//        }
//        cout<<'\n';
//    }
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...