Submission #1155459

#TimeUsernameProblemLanguageResultExecution timeMemory
1155459tsengangSemiexpress (JOI17_semiexpress)C++20
100 / 100
4 ms1544 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
#define pb push_back
#define ertunt return
const int MOD = 998244353;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
int main() {
    ll n,m,k;
    cin >> n >> m >> k;
    ll a,b,c;
    cin >> a >> b >> c;
    ll t;
    cin >> t;
    ll s[m];
    for(ll i = 0; i < m; i++)cin >> s[i];
    k-=m;
    ll ans = 0;
    vector<ll>v;
    ll cnt = 0;
    for(ll i = 1; i < m; i++){
        ll x = s[i-1];
        ll cur = s[i-1]*b - b;
        while(x < s[i]){
            if(cur > t)break;
            ll res = x+(t-cur)/a;
            res = min(res,s[i]-1);
            if(x == s[i-1]){
                ans+=res-x+1;
            }
            else v.pb(res-x+1);
            cur+=c*(res-x+1);
            x = res+1;
            cnt++;
            if(cnt >= 1e5)break;
        }
    }
    sort(all(v));
    reverse(all(v));
    for(ll i = 0; i < min(k,(ll)(v.size())); i++)ans+=v[i];
    if((n-1)*b <= t)ans++;
    cout << ans-1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...