# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
257482 | 2020-08-04T10:45:03 Z | karma | Feast (NOI19_feast) | C++14 | 137 ms | 13440 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 = 1, 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 | 105 ms | 8824 KB | Output is correct |
2 | Correct | 134 ms | 12024 KB | Output is correct |
3 | Correct | 110 ms | 9640 KB | Output is correct |
4 | Correct | 111 ms | 9592 KB | Output is correct |
5 | Correct | 105 ms | 9080 KB | Output is correct |
6 | Correct | 105 ms | 9208 KB | Output is correct |
7 | Correct | 107 ms | 9336 KB | Output is correct |
8 | Correct | 100 ms | 8600 KB | Output is correct |
9 | Correct | 99 ms | 8312 KB | Output is correct |
10 | Correct | 100 ms | 8568 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 80 ms | 8440 KB | Output is correct |
2 | Correct | 78 ms | 8576 KB | Output is correct |
3 | Correct | 76 ms | 8312 KB | Output is correct |
4 | Correct | 106 ms | 11520 KB | Output is correct |
5 | Correct | 100 ms | 8380 KB | Output is correct |
6 | Correct | 76 ms | 8312 KB | Output is correct |
7 | Correct | 127 ms | 13440 KB | Output is correct |
8 | Correct | 101 ms | 8568 KB | Output is correct |
9 | Correct | 100 ms | 8312 KB | Output is correct |
10 | Correct | 100 ms | 10104 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 137 ms | 8440 KB | Output is correct |
2 | Correct | 132 ms | 8312 KB | Output is correct |
3 | Correct | 131 ms | 8444 KB | Output is correct |
4 | Correct | 119 ms | 8312 KB | Output is correct |
5 | Correct | 133 ms | 8440 KB | Output is correct |
6 | Correct | 122 ms | 8440 KB | Output is correct |
7 | Correct | 122 ms | 8568 KB | Output is correct |
8 | Correct | 118 ms | 8440 KB | Output is correct |
9 | Correct | 123 ms | 8568 KB | Output is correct |
10 | Correct | 129 ms | 8568 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 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 | 1 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 | 1 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 | 105 ms | 8824 KB | Output is correct |
2 | Correct | 134 ms | 12024 KB | Output is correct |
3 | Correct | 110 ms | 9640 KB | Output is correct |
4 | Correct | 111 ms | 9592 KB | Output is correct |
5 | Correct | 105 ms | 9080 KB | Output is correct |
6 | Correct | 105 ms | 9208 KB | Output is correct |
7 | Correct | 107 ms | 9336 KB | Output is correct |
8 | Correct | 100 ms | 8600 KB | Output is correct |
9 | Correct | 99 ms | 8312 KB | Output is correct |
10 | Correct | 100 ms | 8568 KB | Output is correct |
11 | Correct | 80 ms | 8440 KB | Output is correct |
12 | Correct | 78 ms | 8576 KB | Output is correct |
13 | Correct | 76 ms | 8312 KB | Output is correct |
14 | Correct | 106 ms | 11520 KB | Output is correct |
15 | Correct | 100 ms | 8380 KB | Output is correct |
16 | Correct | 76 ms | 8312 KB | Output is correct |
17 | Correct | 127 ms | 13440 KB | Output is correct |
18 | Correct | 101 ms | 8568 KB | Output is correct |
19 | Correct | 100 ms | 8312 KB | Output is correct |
20 | Correct | 100 ms | 10104 KB | Output is correct |
21 | Correct | 137 ms | 8440 KB | Output is correct |
22 | Correct | 132 ms | 8312 KB | Output is correct |
23 | Correct | 131 ms | 8444 KB | Output is correct |
24 | Correct | 119 ms | 8312 KB | Output is correct |
25 | Correct | 133 ms | 8440 KB | Output is correct |
26 | Correct | 122 ms | 8440 KB | Output is correct |
27 | Correct | 122 ms | 8568 KB | Output is correct |
28 | Correct | 118 ms | 8440 KB | Output is correct |
29 | Correct | 123 ms | 8568 KB | Output is correct |
30 | Correct | 129 ms | 8568 KB | Output is correct |
31 | Correct | 1 ms | 384 KB | Output is correct |
32 | Incorrect | 0 ms | 384 KB | Output isn't correct |
33 | Halted | 0 ms | 0 KB | - |