# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
257485 | 2020-08-04T10:48:19 Z | karma | Feast (NOI19_feast) | C++14 | 133 ms | 13536 KB |
#include <bits/stdc++.h> #define pb emplace_back #define ll long long #define fi first #define se second #define mp make_pair //#define int int64_t using namespace std; const int N = int(6e5) + 7; typedef pair<int, int> pii; ll f[N][2]; int cnt[N][2], n, k, a[N]; /// 0 - ok /// 1 - opening int check(ll mid) { f[0][0] = 0, f[0][1] = -mid; cnt[0][0] = 0, cnt[0][1] = 1; for(int i = 1; i <= n; ++i) { if(f[i - 1][0] > f[i - 1][1] + a[i]) { f[i][0] = f[i - 1][0]; cnt[i][0] = cnt[i - 1][0]; } else if(f[i - 1][0] < f[i - 1][1] + a[i]) { f[i][0] = f[i - 1][1] + a[i]; cnt[i][0] = cnt[i - 1][1]; } else { f[i][0] = f[i - 1][0]; cnt[i][0] = min(cnt[i - 1][0], cnt[i - 1][1]); } if(f[i - 1][1] + a[i] > f[i - 1][0] + a[i] - mid) { f[i][1] = f[i - 1][1] + a[i]; cnt[i][1] = cnt[i - 1][1]; } else if(f[i - 1][1] + a[i] < f[i - 1][0] + a[i] - mid) { f[i][1] = f[i - 1][0] + a[i] - mid; cnt[i][1] = cnt[i - 1][0] + 1; } else { f[i][1] = f[i - 1][1] + a[i]; cnt[i][1] = min(cnt[i - 1][0] + 1, cnt[i - 1][1]); } } return cnt[n][0]; } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); #define Task "test" if(fopen(Task".inp", "r")) { freopen(Task".inp", "r", stdin); freopen(Task".out", "w", stdout); } cin >> n >> k; for(int i = 1; i <= n; ++i) cin >> a[i]; n += k; ll low = 0, mid, high = 1ll * n * (int)1e9; while(low <= high) { mid = (low + high) >> 1; if(check(mid) > k) low = mid + 1; else high = mid - 1; } check(low); cout << f[n][0] + 1ll * low * k; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 99 ms | 8828 KB | Output is correct |
2 | Correct | 131 ms | 12024 KB | Output is correct |
3 | Correct | 106 ms | 9592 KB | Output is correct |
4 | Correct | 107 ms | 9592 KB | Output is correct |
5 | Correct | 110 ms | 9080 KB | Output is correct |
6 | Correct | 104 ms | 9208 KB | Output is correct |
7 | Correct | 108 ms | 9396 KB | Output is correct |
8 | Correct | 99 ms | 8440 KB | Output is correct |
9 | Correct | 96 ms | 8400 KB | Output is correct |
10 | Correct | 97 ms | 8440 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 74 ms | 8320 KB | Output is correct |
2 | Correct | 84 ms | 8696 KB | Output is correct |
3 | Correct | 81 ms | 8536 KB | Output is correct |
4 | Correct | 105 ms | 11512 KB | Output is correct |
5 | Correct | 96 ms | 8312 KB | Output is correct |
6 | Correct | 80 ms | 8320 KB | Output is correct |
7 | Correct | 123 ms | 13536 KB | Output is correct |
8 | Correct | 98 ms | 8444 KB | Output is correct |
9 | Correct | 96 ms | 8312 KB | Output is correct |
10 | Correct | 94 ms | 9976 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 119 ms | 8444 KB | Output is correct |
2 | Correct | 121 ms | 8424 KB | Output is correct |
3 | Correct | 112 ms | 8444 KB | Output is correct |
4 | Correct | 111 ms | 8312 KB | Output is correct |
5 | Correct | 118 ms | 8508 KB | Output is correct |
6 | Correct | 118 ms | 8440 KB | Output is correct |
7 | Correct | 114 ms | 8568 KB | Output is correct |
8 | Correct | 115 ms | 8440 KB | Output is correct |
9 | Correct | 133 ms | 8568 KB | Output is correct |
10 | Correct | 118 ms | 8568 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 384 KB | Output is correct |
2 | Incorrect | 0 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 384 KB | Output is correct |
2 | Incorrect | 0 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 384 KB | Output is correct |
2 | Incorrect | 0 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 99 ms | 8828 KB | Output is correct |
2 | Correct | 131 ms | 12024 KB | Output is correct |
3 | Correct | 106 ms | 9592 KB | Output is correct |
4 | Correct | 107 ms | 9592 KB | Output is correct |
5 | Correct | 110 ms | 9080 KB | Output is correct |
6 | Correct | 104 ms | 9208 KB | Output is correct |
7 | Correct | 108 ms | 9396 KB | Output is correct |
8 | Correct | 99 ms | 8440 KB | Output is correct |
9 | Correct | 96 ms | 8400 KB | Output is correct |
10 | Correct | 97 ms | 8440 KB | Output is correct |
11 | Correct | 74 ms | 8320 KB | Output is correct |
12 | Correct | 84 ms | 8696 KB | Output is correct |
13 | Correct | 81 ms | 8536 KB | Output is correct |
14 | Correct | 105 ms | 11512 KB | Output is correct |
15 | Correct | 96 ms | 8312 KB | Output is correct |
16 | Correct | 80 ms | 8320 KB | Output is correct |
17 | Correct | 123 ms | 13536 KB | Output is correct |
18 | Correct | 98 ms | 8444 KB | Output is correct |
19 | Correct | 96 ms | 8312 KB | Output is correct |
20 | Correct | 94 ms | 9976 KB | Output is correct |
21 | Correct | 119 ms | 8444 KB | Output is correct |
22 | Correct | 121 ms | 8424 KB | Output is correct |
23 | Correct | 112 ms | 8444 KB | Output is correct |
24 | Correct | 111 ms | 8312 KB | Output is correct |
25 | Correct | 118 ms | 8508 KB | Output is correct |
26 | Correct | 118 ms | 8440 KB | Output is correct |
27 | Correct | 114 ms | 8568 KB | Output is correct |
28 | Correct | 115 ms | 8440 KB | Output is correct |
29 | Correct | 133 ms | 8568 KB | Output is correct |
30 | Correct | 118 ms | 8568 KB | Output is correct |
31 | Correct | 0 ms | 384 KB | Output is correct |
32 | Incorrect | 0 ms | 384 KB | Output isn't correct |
33 | Halted | 0 ms | 0 KB | - |