# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
219588 |
2020-04-05T16:24:48 Z |
manh9203 |
Cake 3 (JOI19_cake3) |
C++17 |
|
823 ms |
141692 KB |
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
const int N = 2e5 + 5;
int n, m;
ll V[N], C[N];
pair<ll, ll> a[N];
int inDex[N];
int nNode, rootVer[N];
ll ans;
struct node {
ll val, cnt, lef, rig;
} st[40 * N];
int build(int l, int r) {
if (l == r) {
int id = ++nNode;
st[id] = {0, 0, 0, 0};
return id;
}
int mid = (l + r) >> 1;
int id = ++nNode;
st[id].lef = build(l, mid);
st[id].rig = build(mid + 1, r);
st[id].val = st[id].cnt = 0;
return id;
}
int update(int old, int l, int r, int i, ll x) {
if (l == r) {
int id = ++nNode;
st[id] = {st[old].val + x, st[old].cnt + 1, st[old].lef, st[old].rig};
return id;
}
int mid = (l + r) >> 1;
int id = ++nNode;
if (i <= mid) {
st[id].lef = update(st[old].lef, l, mid, i, x);
st[id].rig = st[old].rig;
} else {
st[id].lef = st[old].lef;
st[id].rig = update(st[old].rig, mid + 1, r, i, x);
}
st[id].val = st[st[id].lef].val + st[st[id].rig].val;
st[id].cnt = st[st[id].lef].cnt + st[st[id].rig].cnt;
return id;
}
ll get(int idL, int idR, int l, int r, int x) {
if (l == r) {
return st[idR].val - st[idL].val;
} else {
int mid = (l + r) >> 1;
int L = st[idL].lef, R = st[idR].lef;
if (st[R].cnt - st[L].cnt < x) {
ll sum = st[R].val - st[L].val;
ll hav = st[R].cnt - st[L].cnt;
L = st[idL].rig;
R = st[idR].rig;
return sum + get(L, R, mid + 1, r, x - hav);
} else {
return get(L, R, l, mid, x);
}
}
}
void solve(int l, int r, int opL, int opR) {
if (l > r) return;
int mid = (l + r) >> 1;
ll res = -1e18, opt = -1;
for (int i = opL; i <= min(opR, mid - m + 1); i++) {
ll tmp = V[i] + V[mid] + get(rootVer[i], rootVer[mid - 1], 1, n, m - 2) - 2 * (C[mid] - C[i]);
if(tmp > res) {
res = tmp;
opt = i;
}
}
ans = max(ans, res);
solve(l, mid - 1, opL, opt);
solve(mid + 1, r, opt, opR);
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> a[i].se >> a[i].fi;
}
sort(a + 1, a + 1 + n);
for (int i = 1; i <= n; i++) {
V[i] = a[i].se;
C[i] = a[i].fi;
a[i] = {V[i], i};
}
sort(a + 1, a + 1 + n);
for (int i = 1; i <= n; i++) {
inDex[a[i].se] = n - i + 1;
}
rootVer[0] = build(1, n);
for (int i = 1; i <= n; i++) {
rootVer[i] = update(rootVer[i - 1], 1, n, inDex[i], V[i]);
}
ans = -1e18;
solve(m, n, 1, n);
cout << ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Correct |
5 ms |
512 KB |
Output is correct |
3 |
Correct |
5 ms |
384 KB |
Output is correct |
4 |
Correct |
5 ms |
384 KB |
Output is correct |
5 |
Correct |
5 ms |
384 KB |
Output is correct |
6 |
Correct |
5 ms |
384 KB |
Output is correct |
7 |
Correct |
4 ms |
384 KB |
Output is correct |
8 |
Correct |
5 ms |
384 KB |
Output is correct |
9 |
Correct |
5 ms |
384 KB |
Output is correct |
10 |
Correct |
5 ms |
384 KB |
Output is correct |
11 |
Correct |
5 ms |
384 KB |
Output is correct |
12 |
Correct |
5 ms |
384 KB |
Output is correct |
13 |
Correct |
5 ms |
384 KB |
Output is correct |
14 |
Correct |
5 ms |
384 KB |
Output is correct |
15 |
Correct |
5 ms |
384 KB |
Output is correct |
16 |
Correct |
5 ms |
384 KB |
Output is correct |
17 |
Correct |
5 ms |
384 KB |
Output is correct |
18 |
Correct |
5 ms |
384 KB |
Output is correct |
19 |
Correct |
5 ms |
384 KB |
Output is correct |
20 |
Correct |
4 ms |
384 KB |
Output is correct |
21 |
Correct |
5 ms |
384 KB |
Output is correct |
22 |
Correct |
5 ms |
384 KB |
Output is correct |
23 |
Correct |
5 ms |
384 KB |
Output is correct |
24 |
Correct |
5 ms |
384 KB |
Output is correct |
25 |
Correct |
5 ms |
384 KB |
Output is correct |
26 |
Correct |
5 ms |
384 KB |
Output is correct |
27 |
Correct |
5 ms |
384 KB |
Output is correct |
28 |
Correct |
4 ms |
384 KB |
Output is correct |
29 |
Correct |
5 ms |
384 KB |
Output is correct |
30 |
Correct |
5 ms |
384 KB |
Output is correct |
31 |
Correct |
5 ms |
384 KB |
Output is correct |
32 |
Correct |
5 ms |
384 KB |
Output is correct |
33 |
Correct |
5 ms |
384 KB |
Output is correct |
34 |
Correct |
5 ms |
384 KB |
Output is correct |
35 |
Correct |
5 ms |
384 KB |
Output is correct |
36 |
Correct |
5 ms |
384 KB |
Output is correct |
37 |
Correct |
5 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Correct |
5 ms |
512 KB |
Output is correct |
3 |
Correct |
5 ms |
384 KB |
Output is correct |
4 |
Correct |
5 ms |
384 KB |
Output is correct |
5 |
Correct |
5 ms |
384 KB |
Output is correct |
6 |
Correct |
5 ms |
384 KB |
Output is correct |
7 |
Correct |
4 ms |
384 KB |
Output is correct |
8 |
Correct |
5 ms |
384 KB |
Output is correct |
9 |
Correct |
5 ms |
384 KB |
Output is correct |
10 |
Correct |
5 ms |
384 KB |
Output is correct |
11 |
Correct |
5 ms |
384 KB |
Output is correct |
12 |
Correct |
5 ms |
384 KB |
Output is correct |
13 |
Correct |
5 ms |
384 KB |
Output is correct |
14 |
Correct |
5 ms |
384 KB |
Output is correct |
15 |
Correct |
5 ms |
384 KB |
Output is correct |
16 |
Correct |
5 ms |
384 KB |
Output is correct |
17 |
Correct |
5 ms |
384 KB |
Output is correct |
18 |
Correct |
5 ms |
384 KB |
Output is correct |
19 |
Correct |
5 ms |
384 KB |
Output is correct |
20 |
Correct |
4 ms |
384 KB |
Output is correct |
21 |
Correct |
5 ms |
384 KB |
Output is correct |
22 |
Correct |
5 ms |
384 KB |
Output is correct |
23 |
Correct |
5 ms |
384 KB |
Output is correct |
24 |
Correct |
5 ms |
384 KB |
Output is correct |
25 |
Correct |
5 ms |
384 KB |
Output is correct |
26 |
Correct |
5 ms |
384 KB |
Output is correct |
27 |
Correct |
5 ms |
384 KB |
Output is correct |
28 |
Correct |
4 ms |
384 KB |
Output is correct |
29 |
Correct |
5 ms |
384 KB |
Output is correct |
30 |
Correct |
5 ms |
384 KB |
Output is correct |
31 |
Correct |
5 ms |
384 KB |
Output is correct |
32 |
Correct |
5 ms |
384 KB |
Output is correct |
33 |
Correct |
5 ms |
384 KB |
Output is correct |
34 |
Correct |
5 ms |
384 KB |
Output is correct |
35 |
Correct |
5 ms |
384 KB |
Output is correct |
36 |
Correct |
5 ms |
384 KB |
Output is correct |
37 |
Correct |
5 ms |
384 KB |
Output is correct |
38 |
Correct |
7 ms |
1280 KB |
Output is correct |
39 |
Correct |
7 ms |
1280 KB |
Output is correct |
40 |
Correct |
7 ms |
1280 KB |
Output is correct |
41 |
Correct |
7 ms |
1280 KB |
Output is correct |
42 |
Correct |
6 ms |
1280 KB |
Output is correct |
43 |
Correct |
6 ms |
1280 KB |
Output is correct |
44 |
Correct |
7 ms |
1280 KB |
Output is correct |
45 |
Correct |
7 ms |
1408 KB |
Output is correct |
46 |
Correct |
7 ms |
1408 KB |
Output is correct |
47 |
Correct |
7 ms |
1408 KB |
Output is correct |
48 |
Correct |
7 ms |
1280 KB |
Output is correct |
49 |
Correct |
7 ms |
1408 KB |
Output is correct |
50 |
Correct |
8 ms |
1280 KB |
Output is correct |
51 |
Correct |
6 ms |
1280 KB |
Output is correct |
52 |
Correct |
7 ms |
1280 KB |
Output is correct |
53 |
Correct |
7 ms |
1280 KB |
Output is correct |
54 |
Correct |
6 ms |
1280 KB |
Output is correct |
55 |
Correct |
6 ms |
1280 KB |
Output is correct |
56 |
Correct |
8 ms |
1280 KB |
Output is correct |
57 |
Correct |
6 ms |
1280 KB |
Output is correct |
58 |
Correct |
6 ms |
1280 KB |
Output is correct |
59 |
Correct |
6 ms |
1408 KB |
Output is correct |
60 |
Correct |
6 ms |
1280 KB |
Output is correct |
61 |
Correct |
6 ms |
1280 KB |
Output is correct |
62 |
Correct |
6 ms |
1280 KB |
Output is correct |
63 |
Correct |
7 ms |
1408 KB |
Output is correct |
64 |
Correct |
6 ms |
1280 KB |
Output is correct |
65 |
Correct |
7 ms |
1280 KB |
Output is correct |
66 |
Correct |
7 ms |
1280 KB |
Output is correct |
67 |
Correct |
7 ms |
1280 KB |
Output is correct |
68 |
Correct |
7 ms |
1408 KB |
Output is correct |
69 |
Correct |
8 ms |
1280 KB |
Output is correct |
70 |
Correct |
6 ms |
1408 KB |
Output is correct |
71 |
Correct |
6 ms |
1280 KB |
Output is correct |
72 |
Correct |
6 ms |
1280 KB |
Output is correct |
73 |
Correct |
7 ms |
1280 KB |
Output is correct |
74 |
Correct |
7 ms |
1408 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Correct |
5 ms |
512 KB |
Output is correct |
3 |
Correct |
5 ms |
384 KB |
Output is correct |
4 |
Correct |
5 ms |
384 KB |
Output is correct |
5 |
Correct |
5 ms |
384 KB |
Output is correct |
6 |
Correct |
5 ms |
384 KB |
Output is correct |
7 |
Correct |
4 ms |
384 KB |
Output is correct |
8 |
Correct |
5 ms |
384 KB |
Output is correct |
9 |
Correct |
5 ms |
384 KB |
Output is correct |
10 |
Correct |
5 ms |
384 KB |
Output is correct |
11 |
Correct |
5 ms |
384 KB |
Output is correct |
12 |
Correct |
5 ms |
384 KB |
Output is correct |
13 |
Correct |
5 ms |
384 KB |
Output is correct |
14 |
Correct |
5 ms |
384 KB |
Output is correct |
15 |
Correct |
5 ms |
384 KB |
Output is correct |
16 |
Correct |
5 ms |
384 KB |
Output is correct |
17 |
Correct |
5 ms |
384 KB |
Output is correct |
18 |
Correct |
5 ms |
384 KB |
Output is correct |
19 |
Correct |
5 ms |
384 KB |
Output is correct |
20 |
Correct |
4 ms |
384 KB |
Output is correct |
21 |
Correct |
5 ms |
384 KB |
Output is correct |
22 |
Correct |
5 ms |
384 KB |
Output is correct |
23 |
Correct |
5 ms |
384 KB |
Output is correct |
24 |
Correct |
5 ms |
384 KB |
Output is correct |
25 |
Correct |
5 ms |
384 KB |
Output is correct |
26 |
Correct |
5 ms |
384 KB |
Output is correct |
27 |
Correct |
5 ms |
384 KB |
Output is correct |
28 |
Correct |
4 ms |
384 KB |
Output is correct |
29 |
Correct |
5 ms |
384 KB |
Output is correct |
30 |
Correct |
5 ms |
384 KB |
Output is correct |
31 |
Correct |
5 ms |
384 KB |
Output is correct |
32 |
Correct |
5 ms |
384 KB |
Output is correct |
33 |
Correct |
5 ms |
384 KB |
Output is correct |
34 |
Correct |
5 ms |
384 KB |
Output is correct |
35 |
Correct |
5 ms |
384 KB |
Output is correct |
36 |
Correct |
5 ms |
384 KB |
Output is correct |
37 |
Correct |
5 ms |
384 KB |
Output is correct |
38 |
Correct |
7 ms |
1280 KB |
Output is correct |
39 |
Correct |
7 ms |
1280 KB |
Output is correct |
40 |
Correct |
7 ms |
1280 KB |
Output is correct |
41 |
Correct |
7 ms |
1280 KB |
Output is correct |
42 |
Correct |
6 ms |
1280 KB |
Output is correct |
43 |
Correct |
6 ms |
1280 KB |
Output is correct |
44 |
Correct |
7 ms |
1280 KB |
Output is correct |
45 |
Correct |
7 ms |
1408 KB |
Output is correct |
46 |
Correct |
7 ms |
1408 KB |
Output is correct |
47 |
Correct |
7 ms |
1408 KB |
Output is correct |
48 |
Correct |
7 ms |
1280 KB |
Output is correct |
49 |
Correct |
7 ms |
1408 KB |
Output is correct |
50 |
Correct |
8 ms |
1280 KB |
Output is correct |
51 |
Correct |
6 ms |
1280 KB |
Output is correct |
52 |
Correct |
7 ms |
1280 KB |
Output is correct |
53 |
Correct |
7 ms |
1280 KB |
Output is correct |
54 |
Correct |
6 ms |
1280 KB |
Output is correct |
55 |
Correct |
6 ms |
1280 KB |
Output is correct |
56 |
Correct |
8 ms |
1280 KB |
Output is correct |
57 |
Correct |
6 ms |
1280 KB |
Output is correct |
58 |
Correct |
6 ms |
1280 KB |
Output is correct |
59 |
Correct |
6 ms |
1408 KB |
Output is correct |
60 |
Correct |
6 ms |
1280 KB |
Output is correct |
61 |
Correct |
6 ms |
1280 KB |
Output is correct |
62 |
Correct |
6 ms |
1280 KB |
Output is correct |
63 |
Correct |
7 ms |
1408 KB |
Output is correct |
64 |
Correct |
6 ms |
1280 KB |
Output is correct |
65 |
Correct |
7 ms |
1280 KB |
Output is correct |
66 |
Correct |
7 ms |
1280 KB |
Output is correct |
67 |
Correct |
7 ms |
1280 KB |
Output is correct |
68 |
Correct |
7 ms |
1408 KB |
Output is correct |
69 |
Correct |
8 ms |
1280 KB |
Output is correct |
70 |
Correct |
6 ms |
1408 KB |
Output is correct |
71 |
Correct |
6 ms |
1280 KB |
Output is correct |
72 |
Correct |
6 ms |
1280 KB |
Output is correct |
73 |
Correct |
7 ms |
1280 KB |
Output is correct |
74 |
Correct |
7 ms |
1408 KB |
Output is correct |
75 |
Correct |
731 ms |
131448 KB |
Output is correct |
76 |
Correct |
823 ms |
127736 KB |
Output is correct |
77 |
Correct |
668 ms |
131832 KB |
Output is correct |
78 |
Correct |
721 ms |
133844 KB |
Output is correct |
79 |
Correct |
263 ms |
134392 KB |
Output is correct |
80 |
Correct |
290 ms |
130168 KB |
Output is correct |
81 |
Correct |
576 ms |
132472 KB |
Output is correct |
82 |
Correct |
714 ms |
134264 KB |
Output is correct |
83 |
Correct |
645 ms |
138892 KB |
Output is correct |
84 |
Correct |
663 ms |
138232 KB |
Output is correct |
85 |
Correct |
578 ms |
133368 KB |
Output is correct |
86 |
Correct |
372 ms |
128760 KB |
Output is correct |
87 |
Correct |
372 ms |
126840 KB |
Output is correct |
88 |
Correct |
513 ms |
125944 KB |
Output is correct |
89 |
Correct |
490 ms |
133372 KB |
Output is correct |
90 |
Correct |
394 ms |
139880 KB |
Output is correct |
91 |
Correct |
302 ms |
128760 KB |
Output is correct |
92 |
Correct |
310 ms |
127736 KB |
Output is correct |
93 |
Correct |
336 ms |
133496 KB |
Output is correct |
94 |
Correct |
306 ms |
139640 KB |
Output is correct |
95 |
Correct |
380 ms |
140024 KB |
Output is correct |
96 |
Correct |
315 ms |
129400 KB |
Output is correct |
97 |
Correct |
342 ms |
140280 KB |
Output is correct |
98 |
Correct |
351 ms |
138232 KB |
Output is correct |
99 |
Correct |
326 ms |
138488 KB |
Output is correct |
100 |
Correct |
285 ms |
130060 KB |
Output is correct |
101 |
Correct |
308 ms |
130264 KB |
Output is correct |
102 |
Correct |
611 ms |
130228 KB |
Output is correct |
103 |
Correct |
539 ms |
128376 KB |
Output is correct |
104 |
Correct |
658 ms |
135768 KB |
Output is correct |
105 |
Correct |
461 ms |
135288 KB |
Output is correct |
106 |
Correct |
485 ms |
138872 KB |
Output is correct |
107 |
Correct |
437 ms |
133832 KB |
Output is correct |
108 |
Correct |
647 ms |
132988 KB |
Output is correct |
109 |
Correct |
555 ms |
141304 KB |
Output is correct |
110 |
Correct |
265 ms |
130424 KB |
Output is correct |
111 |
Correct |
323 ms |
131960 KB |
Output is correct |
112 |
Correct |
262 ms |
125688 KB |
Output is correct |
113 |
Correct |
283 ms |
141692 KB |
Output is correct |