Submission #854669

# Submission time Handle Problem Language Result Execution time Memory
854669 2023-09-28T12:05:24 Z BrineTw Semiexpress (JOI17_semiexpress) C++14
100 / 100
11 ms 5332 KB
#pragma GCC optimize("O3")
#include <bits/stdc++.h>

#define debug(x) cerr << #x << ' ' << x << '\n'
#define endl '\n'

using namespace std;

const int M = 1e9 + 7;
typedef long long ll;

int main() {
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

    int N, M, K;
    cin >> N >> M >> K;

    K -= M;

    ll A, B, C;
    cin >> A >> B >> C;

    ll limit;
    cin >> limit;

    vector<ll> exprs(M);
    for (auto& n: exprs) cin >> n, --n;
    
    vector<ll> v;
    ll ans = -1;
    for (int i = 0; i < M - 1; i++) {
        ll T = limit - B * exprs[i];
        if (T < 0) break;
        
        ll r = min(exprs[i] + T / A, exprs[i + 1] - 1);
        ans += r - exprs[i] + 1;
        
        for (int j = 0; j < K && r < exprs[i + 1] - 1; j++) {
            ll x = (T - (r + 1 - exprs[i]) * C < 0 ? r : r + 1);
            ll t = T - (x - exprs[i]) * C;
            
            ll nxtr = min(x + t / A, exprs[i + 1] - 1);
            v.push_back(nxtr - r);
            r = nxtr;
        }
    }
    
    sort(v.rbegin(), v.rend());

    for (int i = 0; i < min(K, int(v.size())); i++) ans += v[i];

    if (B * exprs.back() <= limit) ans++;
    cout << ans << '\n';

    return 0;   
}

# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 600 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 600 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 1 ms 600 KB Output is correct
23 Correct 11 ms 4820 KB Output is correct
24 Correct 1 ms 348 KB Output is correct
25 Correct 0 ms 348 KB Output is correct
26 Correct 0 ms 348 KB Output is correct
27 Correct 0 ms 600 KB Output is correct
28 Correct 0 ms 348 KB Output is correct
29 Correct 7 ms 5332 KB Output is correct
30 Correct 4 ms 2520 KB Output is correct