# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
257480 | 2020-08-04T10:42:36 Z | karma | Feast (NOI19_feast) | C++14 | 139 ms | 14972 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] = max(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] = max(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 = 1e15; while(low <= high) { mid = (low + high) >> 1; if(check(mid) >= k) low = mid + 1; else high = mid - 1; } check(high); cout << f[n][0] + 1ll * high * k; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 109 ms | 11824 KB | Output is correct |
2 | Correct | 139 ms | 14972 KB | Output is correct |
3 | Correct | 128 ms | 12664 KB | Output is correct |
4 | Correct | 120 ms | 12408 KB | Output is correct |
5 | Correct | 111 ms | 11992 KB | Output is correct |
6 | Correct | 112 ms | 12024 KB | Output is correct |
7 | Correct | 114 ms | 12152 KB | Output is correct |
8 | Correct | 111 ms | 11384 KB | Output is correct |
9 | Correct | 104 ms | 11256 KB | Output is correct |
10 | Correct | 105 ms | 11256 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 82 ms | 9464 KB | Output is correct |
2 | Correct | 89 ms | 9720 KB | Output is correct |
3 | Correct | 77 ms | 9472 KB | Output is correct |
4 | Correct | 111 ms | 12672 KB | Output is correct |
5 | Correct | 96 ms | 11196 KB | Output is correct |
6 | Correct | 84 ms | 9540 KB | Output is correct |
7 | Correct | 127 ms | 14692 KB | Output is correct |
8 | Correct | 103 ms | 11384 KB | Output is correct |
9 | Correct | 97 ms | 11256 KB | Output is correct |
10 | Correct | 104 ms | 11136 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 121 ms | 11512 KB | Output is correct |
2 | Correct | 122 ms | 11428 KB | Output is correct |
3 | Correct | 121 ms | 11512 KB | Output is correct |
4 | Correct | 122 ms | 11512 KB | Output is correct |
5 | Correct | 118 ms | 11564 KB | Output is correct |
6 | Correct | 122 ms | 11512 KB | Output is correct |
7 | Correct | 125 ms | 11644 KB | Output is correct |
8 | Correct | 122 ms | 11512 KB | Output is correct |
9 | Correct | 125 ms | 11640 KB | Output is correct |
10 | Correct | 120 ms | 11640 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Incorrect | 1 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Incorrect | 1 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Incorrect | 1 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 109 ms | 11824 KB | Output is correct |
2 | Correct | 139 ms | 14972 KB | Output is correct |
3 | Correct | 128 ms | 12664 KB | Output is correct |
4 | Correct | 120 ms | 12408 KB | Output is correct |
5 | Correct | 111 ms | 11992 KB | Output is correct |
6 | Correct | 112 ms | 12024 KB | Output is correct |
7 | Correct | 114 ms | 12152 KB | Output is correct |
8 | Correct | 111 ms | 11384 KB | Output is correct |
9 | Correct | 104 ms | 11256 KB | Output is correct |
10 | Correct | 105 ms | 11256 KB | Output is correct |
11 | Correct | 82 ms | 9464 KB | Output is correct |
12 | Correct | 89 ms | 9720 KB | Output is correct |
13 | Correct | 77 ms | 9472 KB | Output is correct |
14 | Correct | 111 ms | 12672 KB | Output is correct |
15 | Correct | 96 ms | 11196 KB | Output is correct |
16 | Correct | 84 ms | 9540 KB | Output is correct |
17 | Correct | 127 ms | 14692 KB | Output is correct |
18 | Correct | 103 ms | 11384 KB | Output is correct |
19 | Correct | 97 ms | 11256 KB | Output is correct |
20 | Correct | 104 ms | 11136 KB | Output is correct |
21 | Correct | 121 ms | 11512 KB | Output is correct |
22 | Correct | 122 ms | 11428 KB | Output is correct |
23 | Correct | 121 ms | 11512 KB | Output is correct |
24 | Correct | 122 ms | 11512 KB | Output is correct |
25 | Correct | 118 ms | 11564 KB | Output is correct |
26 | Correct | 122 ms | 11512 KB | Output is correct |
27 | Correct | 125 ms | 11644 KB | Output is correct |
28 | Correct | 122 ms | 11512 KB | Output is correct |
29 | Correct | 125 ms | 11640 KB | Output is correct |
30 | Correct | 120 ms | 11640 KB | Output is correct |
31 | Correct | 1 ms | 384 KB | Output is correct |
32 | Incorrect | 1 ms | 384 KB | Output isn't correct |
33 | Halted | 0 ms | 0 KB | - |