Submission #1237817

#TimeUsernameProblemLanguageResultExecution timeMemory
1237817nerrrminSemiexpress (JOI17_semiexpress)C++20
100 / 100
7 ms4536 KiB
#include<bits/stdc++.h>
#define endl '\n'
#define pb push_back
using namespace std;
const long long maxn = 3005;
void speed()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}

long long n, m, k;
long long a, b, c;
long long t;
long long s[maxn];
int main()
{
    //speed();


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

    priority_queue < long long > q;
    long long ans = -1;
    for (long long i = 1; i <= m; ++ i)
    {
        long long pre = b * (s[i] - 1);
        if(i == m)
        {
            if(pre <= t)ans ++;
            break;
        }
        if(pre > t)break;
        long long av = s[i] + max(1LL * 0, (t - pre)) / a;
       // cout << "round " << endl;
       // cout << i << " " << av << endl;
        ans += (min(s[i+1] - 1, av) - s[i] + 1);
      //  cout << ans << endl;
        long long turn = 1;
       long long pos = av;
        while(av < s[i+1])
        {
           if(turn > k-m)break;
            long long onemore = t - pre - (pos - s[i] + 1) * c;
            //cout << onemore << endl;
            if(onemore < 0)break;
            long long addav = 1 + onemore / a;
           // cout << "+ " << addav << endl;
            av += addav;
            if(addav == 0)break;
            if(av >= s[i+1])
            {
                addav -= (av - s[i+1] + 1);
            }
            q.push(addav);
            pos = av;
            turn ++;
        }
    }

    long long op = k - m;
   // cout << ans << endl;
    while(op -- && q.size())
    {
        ans += q.top();
     //   cout << "? " << q.top() << endl;
        q.pop();
    }
    cout << ans << endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...