Submission #114100

# Submission time Handle Problem Language Result Execution time Memory
114100 2019-05-30T08:55:57 Z popovicirobert Semiexpress (JOI17_semiexpress) C++14
100 / 100
21 ms 2560 KB
#include <bits/stdc++.h>
#define lsb(x) (x & (-x))
#define ll long long
#define ull unsigned long long
// 217
// 44

using namespace std;

const int INF = 1e9;

int main() {
    //ifstream cin("A.in");
    //ofstream cout("A.out");
    int i, n, m, k, a, b, c;
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);

    cin >> n >> m >> k >> a >> b >> c;
    // b < c < a

    ll t;
    cin >> t;

    vector <int> st(m + 1);
    int ans = -1;

    for(i = 1; i <= m; i++) {
        cin >> st[i];
        if(1LL * b * (st[i] - 1) <= t) {
            ans++;
        }
    }

    k -= m;
    vector <int> vals;

    for(i = 1; i < m; i++) {
        ll now = 1LL * (st[i] - 1) * b;

        if(now > t) {
            break;
        }

        ll x = st[i];
        int cnt = 0;

        while(x + 1 < st[i + 1] && cnt <= k) {
            ll y = (x + (t - now) / a);

            if(x == st[i]) {
                ans += min(y, 1LL * st[i + 1] - 1) - x;
            }

            if(y + 1 >= st[i + 1]) {
                break;
            }

            if(now + 1LL * (y + 1 - x) * c <= t) {
                now += 1LL * (y + 1 - x) * c;

                x = y + 1;
                y = (x + (t - now) / a);
                cnt++;

                if(cnt <= k) {
                    vals.push_back(min(y, 1LL * st[i + 1] - 1) - x + 1);
                }
            }
            else {
                break;
            }
        }


    }

    sort(vals.begin(), vals.end(), greater<int>());

    for(i = 0; i < k && i < vals.size(); i++) {
        ans += vals[i];
    }

    cout << ans;

    //cin.close();
    //cout.close();
    return 0;
}

Compilation message

semiexpress.cpp: In function 'int main()':
semiexpress.cpp:80:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(i = 0; i < k && i < vals.size(); i++) {
                         ~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Correct 2 ms 384 KB Output is correct
14 Correct 2 ms 384 KB Output is correct
15 Correct 2 ms 384 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 3 ms 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Correct 2 ms 384 KB Output is correct
14 Correct 2 ms 384 KB Output is correct
15 Correct 2 ms 384 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 3 ms 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 2 ms 384 KB Output is correct
20 Correct 2 ms 384 KB Output is correct
21 Correct 2 ms 384 KB Output is correct
22 Correct 3 ms 512 KB Output is correct
23 Correct 21 ms 2552 KB Output is correct
24 Correct 3 ms 384 KB Output is correct
25 Correct 3 ms 384 KB Output is correct
26 Correct 2 ms 384 KB Output is correct
27 Correct 1 ms 384 KB Output is correct
28 Correct 3 ms 384 KB Output is correct
29 Correct 16 ms 2560 KB Output is correct
30 Correct 11 ms 1532 KB Output is correct