#include <bits/stdc++.h>
using namespace std;
long long gdzie[3007];
int main()
{
long long n, m, k, a, b, c, t, odp = -1, nowek;
cin >> n >> m >> k >> a >> b >> c >> t;
nowek = k;
priority_queue<long long> pq;
for(long long i = 0; i < m; i++)
{
cin >> gdzie[i];
}
gdzie[m] = n + 1;
for(long long i = 0; i < m - 1; i++)
{
long long podst = (gdzie[i] - 1) * b;
if(podst <= t)
{
long long ile_dodatkowo = (t - podst) / a;
long long prawo = min(gdzie[i] + ile_dodatkowo, gdzie[i + 1] - 1);
odp += prawo + 1 - gdzie[i];
//cout << prawo + 1 - gdzie[i] << endl;
for(long long j = 0; j < k; j++)
{
if(podst + (prawo + 1 - gdzie[i]) * c <= t)
{
ile_dodatkowo = (t - (podst + (prawo + 1 - gdzie[i]) * c)) / a;
long long prawo2 = min(prawo + ile_dodatkowo + 1, gdzie[i + 1] - 1);
//cout << prawo2 - prawo << endl;
pq.push(prawo2 - prawo);
prawo = prawo2;
}
}
}
}
if(gdzie[m - 1] * b <= t)
{
odp++;
}
for(long long i = m; i < k && !pq.empty(); i++)
{
odp += pq.top();
pq.pop();
}
cout << odp << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |