Submission #253050

#TimeUsernameProblemLanguageResultExecution timeMemory
253050Tuk1352Semiexpress (JOI17_semiexpress)C++11
100 / 100
39 ms16864 KiB
#include <bits/stdc++.h>
using namespace std;

vector <long long> Ve;
int main()
{
    ios::sync_with_stdio(false); cin.tie(0);
    long long N, M, A, B, C, T, Su, k, Re=0;
    int K;
    cin >> N >> M >> K;
    K -= M;
    cin >> A >> B >> C >> T;
    long long S[M];
    cin >> S[0];
    for (int i = 1; i < M; i++)
    {
        cin >> S[i];
        Su = (S[i-1]-1)*B;
        if (Su <= T)
        {
            k = (T-Su) / A;
            long long ks = k+1, Mks=S[i]-S[i-1];
            Re += min(k+1, Mks);
            for (int y = 1; y <= K; y++)
            {
                if (Su + ks*C > T)
                {
                    break;
                }
                k = (T-Su-ks*C) / A;
                Ve.push_back(max(0ll, min(k+1, Mks-ks)));
                ks += k+1;
            }
        }
    }
    if ((S[M-1]-1)*B <= T)
    {
        Re++;
    }
    sort(Ve.rbegin(),Ve.rend());
    int VeS = Ve.size();
    for (int i = 0; i < min(K, VeS); i++)
    {
        Re += Ve[i];
    }
    cout << Re - 1;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...