# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
129006 |
2019-07-11T12:20:12 Z |
wilwxk |
Cake 3 (JOI19_cake3) |
C++14 |
|
1501 ms |
204956 KB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node {
ll v, s;
int l, r;
};
const int MAXN=2e5+5;
const int MAIOR=1e9+3;
const ll INF=1e18+9;
pair<ll, ll> v[MAXN]; //c, v
vector<node> seg;
ll dp[MAXN];
int opt[MAXN], raiz[MAXN];
int n, m;
int novo() {
node cur;
cur.l=cur.r=cur.v=cur.s=0;
seg.push_back(cur);
return seg.size()-1;
}
int update(int sind, int ini, int fim, int qind) {
int nsind=novo(); seg[nsind]=seg[sind];
if(ini==fim) {
seg[nsind].v++;
seg[nsind].s+=ini;
return nsind;
}
int m=(ini+fim)/2;
if(qind<=m) {
int ne=update(seg[sind].l, ini, m, qind);
seg[nsind].l=ne;
}
else {
int nd=update(seg[sind].r, m+1, fim, qind);
seg[nsind].r=nd;
}
seg[nsind].s=seg[seg[nsind].l].s+seg[seg[nsind].r].s;
seg[nsind].v=seg[seg[nsind].l].v+seg[seg[nsind].r].v;
return nsind;
}
ll query(int sind, int sind2, int ini, int fim, int val) {
if(val<=0) return 0;
if(seg[sind].v-seg[sind2].v<=val) return seg[sind].s-seg[sind2].s;
if(ini==fim&&seg[sind].v-seg[sind2].v>=val) return (ll)ini*val;
int m=(ini+fim)/2;
int direita=seg[seg[sind].r].v-seg[seg[sind2].r].v;
return query(seg[sind].l, seg[sind2].l, ini, m, val-direita)
+ query(seg[sind].r, seg[sind2].r, m+1, fim, val);
}
void solve(int ini, int fim, int rini, int rfim) {
if(fim<ini) return;
int mid=(ini+fim)/2;
dp[mid]=-INF; opt[mid]=rini;
for(int i=rini; i<=min(rfim, mid-m+1); i++) {
ll val=query(raiz[mid-1], raiz[i], 1, MAIOR, m-2);
val+=v[mid].second+v[i].second;
val-=(v[mid].first-v[i].first)*2LL;
if(val>dp[mid]) dp[mid]=val, opt[mid]=i;
}
solve(ini, mid-1, rini, opt[mid]);
solve(mid+1, fim, opt[mid], rfim);
}
int main() {
scanf("%d %d", &n, &m);
for(int i=1; i<=n; i++) scanf("%lld %lld", &v[i].second, &v[i].first);
sort(v+1, v+1+n);
novo(); raiz[0]=novo();
for(int i=1; i<=n; i++) raiz[i]=update(raiz[i-1], 1, MAIOR, v[i].second);
// while(1) scanf("%d %d", &n, &m), printf(">> %lld\n", query(raiz[m], raiz[n-1], 1, MAIOR, 3));
solve(m, n, 1, n); ll respf=-INF;
for(int i=m; i<=n; i++) respf=max(respf, dp[i]);
printf("%lld\n", respf);
}
Compilation message
cake3.cpp: In function 'int main()':
cake3.cpp:71:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &n, &m);
~~~~~^~~~~~~~~~~~~~~~~
cake3.cpp:72:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
for(int i=1; i<=n; i++) scanf("%lld %lld", &v[i].second, &v[i].first);
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
504 KB |
Output is correct |
2 |
Correct |
2 ms |
504 KB |
Output is correct |
3 |
Correct |
2 ms |
504 KB |
Output is correct |
4 |
Correct |
2 ms |
504 KB |
Output is correct |
5 |
Correct |
3 ms |
504 KB |
Output is correct |
6 |
Correct |
2 ms |
504 KB |
Output is correct |
7 |
Correct |
2 ms |
504 KB |
Output is correct |
8 |
Correct |
2 ms |
504 KB |
Output is correct |
9 |
Correct |
2 ms |
504 KB |
Output is correct |
10 |
Correct |
3 ms |
504 KB |
Output is correct |
11 |
Correct |
2 ms |
504 KB |
Output is correct |
12 |
Correct |
2 ms |
504 KB |
Output is correct |
13 |
Correct |
2 ms |
504 KB |
Output is correct |
14 |
Correct |
2 ms |
504 KB |
Output is correct |
15 |
Correct |
2 ms |
508 KB |
Output is correct |
16 |
Correct |
2 ms |
504 KB |
Output is correct |
17 |
Correct |
2 ms |
504 KB |
Output is correct |
18 |
Correct |
2 ms |
504 KB |
Output is correct |
19 |
Correct |
2 ms |
508 KB |
Output is correct |
20 |
Correct |
2 ms |
504 KB |
Output is correct |
21 |
Correct |
2 ms |
504 KB |
Output is correct |
22 |
Correct |
2 ms |
504 KB |
Output is correct |
23 |
Correct |
2 ms |
504 KB |
Output is correct |
24 |
Correct |
2 ms |
504 KB |
Output is correct |
25 |
Correct |
2 ms |
504 KB |
Output is correct |
26 |
Correct |
2 ms |
504 KB |
Output is correct |
27 |
Correct |
2 ms |
504 KB |
Output is correct |
28 |
Correct |
2 ms |
504 KB |
Output is correct |
29 |
Correct |
2 ms |
504 KB |
Output is correct |
30 |
Correct |
2 ms |
504 KB |
Output is correct |
31 |
Correct |
2 ms |
504 KB |
Output is correct |
32 |
Correct |
2 ms |
504 KB |
Output is correct |
33 |
Correct |
2 ms |
504 KB |
Output is correct |
34 |
Correct |
2 ms |
504 KB |
Output is correct |
35 |
Correct |
2 ms |
504 KB |
Output is correct |
36 |
Correct |
2 ms |
504 KB |
Output is correct |
37 |
Correct |
2 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
504 KB |
Output is correct |
2 |
Correct |
2 ms |
504 KB |
Output is correct |
3 |
Correct |
2 ms |
504 KB |
Output is correct |
4 |
Correct |
2 ms |
504 KB |
Output is correct |
5 |
Correct |
3 ms |
504 KB |
Output is correct |
6 |
Correct |
2 ms |
504 KB |
Output is correct |
7 |
Correct |
2 ms |
504 KB |
Output is correct |
8 |
Correct |
2 ms |
504 KB |
Output is correct |
9 |
Correct |
2 ms |
504 KB |
Output is correct |
10 |
Correct |
3 ms |
504 KB |
Output is correct |
11 |
Correct |
2 ms |
504 KB |
Output is correct |
12 |
Correct |
2 ms |
504 KB |
Output is correct |
13 |
Correct |
2 ms |
504 KB |
Output is correct |
14 |
Correct |
2 ms |
504 KB |
Output is correct |
15 |
Correct |
2 ms |
508 KB |
Output is correct |
16 |
Correct |
2 ms |
504 KB |
Output is correct |
17 |
Correct |
2 ms |
504 KB |
Output is correct |
18 |
Correct |
2 ms |
504 KB |
Output is correct |
19 |
Correct |
2 ms |
508 KB |
Output is correct |
20 |
Correct |
2 ms |
504 KB |
Output is correct |
21 |
Correct |
2 ms |
504 KB |
Output is correct |
22 |
Correct |
2 ms |
504 KB |
Output is correct |
23 |
Correct |
2 ms |
504 KB |
Output is correct |
24 |
Correct |
2 ms |
504 KB |
Output is correct |
25 |
Correct |
2 ms |
504 KB |
Output is correct |
26 |
Correct |
2 ms |
504 KB |
Output is correct |
27 |
Correct |
2 ms |
504 KB |
Output is correct |
28 |
Correct |
2 ms |
504 KB |
Output is correct |
29 |
Correct |
2 ms |
504 KB |
Output is correct |
30 |
Correct |
2 ms |
504 KB |
Output is correct |
31 |
Correct |
2 ms |
504 KB |
Output is correct |
32 |
Correct |
2 ms |
504 KB |
Output is correct |
33 |
Correct |
2 ms |
504 KB |
Output is correct |
34 |
Correct |
2 ms |
504 KB |
Output is correct |
35 |
Correct |
2 ms |
504 KB |
Output is correct |
36 |
Correct |
2 ms |
504 KB |
Output is correct |
37 |
Correct |
2 ms |
504 KB |
Output is correct |
38 |
Correct |
8 ms |
2028 KB |
Output is correct |
39 |
Correct |
8 ms |
2032 KB |
Output is correct |
40 |
Correct |
7 ms |
2032 KB |
Output is correct |
41 |
Correct |
7 ms |
2000 KB |
Output is correct |
42 |
Correct |
7 ms |
2032 KB |
Output is correct |
43 |
Correct |
7 ms |
2032 KB |
Output is correct |
44 |
Correct |
8 ms |
2032 KB |
Output is correct |
45 |
Correct |
9 ms |
2032 KB |
Output is correct |
46 |
Correct |
9 ms |
2028 KB |
Output is correct |
47 |
Correct |
9 ms |
2032 KB |
Output is correct |
48 |
Correct |
9 ms |
2032 KB |
Output is correct |
49 |
Correct |
8 ms |
2032 KB |
Output is correct |
50 |
Correct |
8 ms |
2032 KB |
Output is correct |
51 |
Correct |
8 ms |
2032 KB |
Output is correct |
52 |
Correct |
8 ms |
2032 KB |
Output is correct |
53 |
Correct |
8 ms |
2088 KB |
Output is correct |
54 |
Correct |
7 ms |
2028 KB |
Output is correct |
55 |
Correct |
7 ms |
2032 KB |
Output is correct |
56 |
Correct |
7 ms |
2032 KB |
Output is correct |
57 |
Correct |
7 ms |
2028 KB |
Output is correct |
58 |
Correct |
7 ms |
2028 KB |
Output is correct |
59 |
Correct |
8 ms |
2032 KB |
Output is correct |
60 |
Correct |
9 ms |
2032 KB |
Output is correct |
61 |
Correct |
8 ms |
2028 KB |
Output is correct |
62 |
Correct |
8 ms |
2032 KB |
Output is correct |
63 |
Correct |
9 ms |
2028 KB |
Output is correct |
64 |
Correct |
9 ms |
2032 KB |
Output is correct |
65 |
Correct |
10 ms |
2032 KB |
Output is correct |
66 |
Correct |
10 ms |
2032 KB |
Output is correct |
67 |
Correct |
10 ms |
2036 KB |
Output is correct |
68 |
Correct |
9 ms |
2004 KB |
Output is correct |
69 |
Correct |
10 ms |
2028 KB |
Output is correct |
70 |
Correct |
9 ms |
2068 KB |
Output is correct |
71 |
Correct |
8 ms |
2032 KB |
Output is correct |
72 |
Correct |
7 ms |
2032 KB |
Output is correct |
73 |
Correct |
7 ms |
2032 KB |
Output is correct |
74 |
Correct |
6 ms |
2032 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
504 KB |
Output is correct |
2 |
Correct |
2 ms |
504 KB |
Output is correct |
3 |
Correct |
2 ms |
504 KB |
Output is correct |
4 |
Correct |
2 ms |
504 KB |
Output is correct |
5 |
Correct |
3 ms |
504 KB |
Output is correct |
6 |
Correct |
2 ms |
504 KB |
Output is correct |
7 |
Correct |
2 ms |
504 KB |
Output is correct |
8 |
Correct |
2 ms |
504 KB |
Output is correct |
9 |
Correct |
2 ms |
504 KB |
Output is correct |
10 |
Correct |
3 ms |
504 KB |
Output is correct |
11 |
Correct |
2 ms |
504 KB |
Output is correct |
12 |
Correct |
2 ms |
504 KB |
Output is correct |
13 |
Correct |
2 ms |
504 KB |
Output is correct |
14 |
Correct |
2 ms |
504 KB |
Output is correct |
15 |
Correct |
2 ms |
508 KB |
Output is correct |
16 |
Correct |
2 ms |
504 KB |
Output is correct |
17 |
Correct |
2 ms |
504 KB |
Output is correct |
18 |
Correct |
2 ms |
504 KB |
Output is correct |
19 |
Correct |
2 ms |
508 KB |
Output is correct |
20 |
Correct |
2 ms |
504 KB |
Output is correct |
21 |
Correct |
2 ms |
504 KB |
Output is correct |
22 |
Correct |
2 ms |
504 KB |
Output is correct |
23 |
Correct |
2 ms |
504 KB |
Output is correct |
24 |
Correct |
2 ms |
504 KB |
Output is correct |
25 |
Correct |
2 ms |
504 KB |
Output is correct |
26 |
Correct |
2 ms |
504 KB |
Output is correct |
27 |
Correct |
2 ms |
504 KB |
Output is correct |
28 |
Correct |
2 ms |
504 KB |
Output is correct |
29 |
Correct |
2 ms |
504 KB |
Output is correct |
30 |
Correct |
2 ms |
504 KB |
Output is correct |
31 |
Correct |
2 ms |
504 KB |
Output is correct |
32 |
Correct |
2 ms |
504 KB |
Output is correct |
33 |
Correct |
2 ms |
504 KB |
Output is correct |
34 |
Correct |
2 ms |
504 KB |
Output is correct |
35 |
Correct |
2 ms |
504 KB |
Output is correct |
36 |
Correct |
2 ms |
504 KB |
Output is correct |
37 |
Correct |
2 ms |
504 KB |
Output is correct |
38 |
Correct |
8 ms |
2028 KB |
Output is correct |
39 |
Correct |
8 ms |
2032 KB |
Output is correct |
40 |
Correct |
7 ms |
2032 KB |
Output is correct |
41 |
Correct |
7 ms |
2000 KB |
Output is correct |
42 |
Correct |
7 ms |
2032 KB |
Output is correct |
43 |
Correct |
7 ms |
2032 KB |
Output is correct |
44 |
Correct |
8 ms |
2032 KB |
Output is correct |
45 |
Correct |
9 ms |
2032 KB |
Output is correct |
46 |
Correct |
9 ms |
2028 KB |
Output is correct |
47 |
Correct |
9 ms |
2032 KB |
Output is correct |
48 |
Correct |
9 ms |
2032 KB |
Output is correct |
49 |
Correct |
8 ms |
2032 KB |
Output is correct |
50 |
Correct |
8 ms |
2032 KB |
Output is correct |
51 |
Correct |
8 ms |
2032 KB |
Output is correct |
52 |
Correct |
8 ms |
2032 KB |
Output is correct |
53 |
Correct |
8 ms |
2088 KB |
Output is correct |
54 |
Correct |
7 ms |
2028 KB |
Output is correct |
55 |
Correct |
7 ms |
2032 KB |
Output is correct |
56 |
Correct |
7 ms |
2032 KB |
Output is correct |
57 |
Correct |
7 ms |
2028 KB |
Output is correct |
58 |
Correct |
7 ms |
2028 KB |
Output is correct |
59 |
Correct |
8 ms |
2032 KB |
Output is correct |
60 |
Correct |
9 ms |
2032 KB |
Output is correct |
61 |
Correct |
8 ms |
2028 KB |
Output is correct |
62 |
Correct |
8 ms |
2032 KB |
Output is correct |
63 |
Correct |
9 ms |
2028 KB |
Output is correct |
64 |
Correct |
9 ms |
2032 KB |
Output is correct |
65 |
Correct |
10 ms |
2032 KB |
Output is correct |
66 |
Correct |
10 ms |
2032 KB |
Output is correct |
67 |
Correct |
10 ms |
2036 KB |
Output is correct |
68 |
Correct |
9 ms |
2004 KB |
Output is correct |
69 |
Correct |
10 ms |
2028 KB |
Output is correct |
70 |
Correct |
9 ms |
2068 KB |
Output is correct |
71 |
Correct |
8 ms |
2032 KB |
Output is correct |
72 |
Correct |
7 ms |
2032 KB |
Output is correct |
73 |
Correct |
7 ms |
2032 KB |
Output is correct |
74 |
Correct |
6 ms |
2032 KB |
Output is correct |
75 |
Correct |
1276 ms |
200952 KB |
Output is correct |
76 |
Correct |
1357 ms |
200948 KB |
Output is correct |
77 |
Correct |
1204 ms |
200992 KB |
Output is correct |
78 |
Correct |
1228 ms |
204852 KB |
Output is correct |
79 |
Correct |
595 ms |
204632 KB |
Output is correct |
80 |
Correct |
641 ms |
204436 KB |
Output is correct |
81 |
Correct |
1282 ms |
203924 KB |
Output is correct |
82 |
Correct |
1501 ms |
204064 KB |
Output is correct |
83 |
Correct |
1386 ms |
204180 KB |
Output is correct |
84 |
Correct |
1425 ms |
204120 KB |
Output is correct |
85 |
Correct |
1246 ms |
203796 KB |
Output is correct |
86 |
Correct |
813 ms |
203672 KB |
Output is correct |
87 |
Correct |
850 ms |
203596 KB |
Output is correct |
88 |
Correct |
1120 ms |
203500 KB |
Output is correct |
89 |
Correct |
1058 ms |
203820 KB |
Output is correct |
90 |
Correct |
846 ms |
204080 KB |
Output is correct |
91 |
Correct |
676 ms |
203668 KB |
Output is correct |
92 |
Correct |
687 ms |
203560 KB |
Output is correct |
93 |
Correct |
749 ms |
203792 KB |
Output is correct |
94 |
Correct |
651 ms |
204040 KB |
Output is correct |
95 |
Correct |
833 ms |
204084 KB |
Output is correct |
96 |
Correct |
920 ms |
203600 KB |
Output is correct |
97 |
Correct |
1032 ms |
204088 KB |
Output is correct |
98 |
Correct |
1043 ms |
203964 KB |
Output is correct |
99 |
Correct |
957 ms |
204000 KB |
Output is correct |
100 |
Correct |
853 ms |
203720 KB |
Output is correct |
101 |
Correct |
868 ms |
203672 KB |
Output is correct |
102 |
Correct |
1197 ms |
203656 KB |
Output is correct |
103 |
Correct |
1121 ms |
203668 KB |
Output is correct |
104 |
Correct |
1268 ms |
203796 KB |
Output is correct |
105 |
Correct |
988 ms |
203968 KB |
Output is correct |
106 |
Correct |
1018 ms |
204040 KB |
Output is correct |
107 |
Correct |
925 ms |
203796 KB |
Output is correct |
108 |
Correct |
1297 ms |
204464 KB |
Output is correct |
109 |
Correct |
1127 ms |
204820 KB |
Output is correct |
110 |
Correct |
684 ms |
203060 KB |
Output is correct |
111 |
Correct |
824 ms |
203284 KB |
Output is correct |
112 |
Correct |
660 ms |
202960 KB |
Output is correct |
113 |
Correct |
609 ms |
204956 KB |
Output is correct |