제출 #1265050

#제출 시각아이디문제언어결과실행 시간메모리
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...