ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#213995 | #2400. 椅子 | KXG | 75 | 268ms | 3520kb | C++11 | 2.1kb | 2024-11-14 21:56:10 | 2024-11-14 23:08:43 |
answer
#include <cstdio>
#include <algorithm>
using namespace std;
struct segmenttree {
int a[100010];
int maxv[400010], lazy[400010];
void pushup(int p) {
maxv[p] = max(maxv[p << 1], maxv[p << 1 | 1]);
}
void pushtag(int p, int x) {
maxv[p] += x;
lazy[p] += x;
}
void pushdown(int p) {
if (lazy[p]) {
pushtag(p << 1, lazy[p]);
pushtag(p << 1 | 1, lazy[p]);
lazy[p] = 0;
}
}
void build(int p, int l, int r) {
if (l == r) {
maxv[p] = a[l];
return;
}
int mid = (l + r) >> 1;
build(p << 1, l, mid);
build(p << 1 | 1, mid + 1, r);
pushup(p);
}
void modify(int p, int l, int r, int L, int R, int x) {
if (L <= l && r <= R) {
pushtag(p, x);
return;
}
pushdown(p);
int mid = (l + r) >> 1;
if (L <= mid) {
modify(p << 1, l, mid, L, R, x);
}
if (R > mid) {
modify(p << 1 | 1, mid + 1, r, L, R, x);
}
pushup(p);
}
int query(int p, int l, int r, int L, int R) {
if (L <= l && r <= R) {
return maxv[p];
}
pushdown(p);
int mid = (l + r) >> 1, ans = 0;
if (L <= mid) {
ans = max(ans, query(p, l, mid, L, R));
}
if (R > mid) {
ans = max(ans, query(p, mid + 1, r, L, R));
}
return ans;
}
} sgt;
struct node {
int l, r;
} x[100010];
bool cmp(node a, node b) {
return a.l < b.l;
}
int n, m;
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++) {
scanf("%d%d", &x[i].l, &x[i].r);
x[i].r = m - x[i].r + 1;
}
sort(x + 1, x + n + 1, cmp);
for (int i = 1; i <= m; i++) {
sgt.a[i] = -i;
}
sgt.build(1, 0, m);
int ans = 0;
for (int i = 1; i <= n; i++) {
sgt.modify(1, 0, m, x[i].r, m, 1);
ans = max(ans, sgt.query(1, 0, m, 0, m) - x[i].l);
}
printf("%d\n", ans);
return 0;
}
Details
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 0ms
memory: 548kb
input:
8 8 1 8 1 5 2 8 0 5 0 3 2 6 2 6 2 6
output:
1
result:
ok single line: '1'
Test #2:
score: 5
Accepted
time: 0ms
memory: 532kb
input:
10 10 0 5 2 9 3 10 2 7 1 6 0 10 0 9 2 10 0 9 1 10
output:
2
result:
ok single line: '2'
Test #3:
score: 5
Accepted
time: 0ms
memory: 548kb
input:
20 20 4 16 2 11 3 19 6 12 7 18 1 14 4 10 5 20 6 14 8 17 1 12 2 11 7 18 7 15 0 15 1 12 2 19 7 13 4 10...
output:
1
result:
ok single line: '1'
Test #4:
score: 5
Accepted
time: 0ms
memory: 544kb
input:
96 93 2 67 5 61 4 74 15 68 3 63 40 91 14 58 6 66 9 57 18 85 13 63 40 85 17 89 16 73 10 72 15 74 15 6...
output:
7
result:
ok single line: '7'
Test #5:
score: 5
Accepted
time: 0ms
memory: 544kb
input:
100 100 29 70 17 68 25 77 13 74 9 79 42 90 34 99 18 100 3 80 21 71 26 63 6 54 43 89 41 78 19 78 13 9...
output:
2
result:
ok single line: '2'
Test #6:
score: 5
Accepted
time: 0ms
memory: 560kb
input:
952 954 182 871 114 769 110 694 91 741 22 509 53 841 124 858 16 465 160 789 24 720 96 939 56 689 313...
output:
64
result:
ok single line: '64'
Test #7:
score: 5
Accepted
time: 1ms
memory: 572kb
input:
1000 1000 74 795 175 641 39 618 19 971 162 873 93 731 480 989 357 932 4 693 266 965 89 581 47 560 27...
output:
74
result:
ok single line: '74'
Test #8:
score: 5
Accepted
time: 3ms
memory: 704kb
input:
4516 4690 665 4024 1062 3765 1573 4200 1035 4155 441 2678 31 3472 87 3450 146 2286 310 4267 1231 450...
output:
69
result:
ok single line: '69'
Test #9:
score: 5
Accepted
time: 3ms
memory: 712kb
input:
5000 5000 62 4476 1146 3647 531 4569 1042 3464 2044 4817 2186 4584 2223 4892 1224 4761 1154 4943 147...
output:
250
result:
ok single line: '250'
Test #10:
score: 5
Accepted
time: 6ms
memory: 736kb
input:
10000 5000 1106 4454 1138 4746 926 4805 609 4507 259 4543 1435 4211 790 3399 528 3426 38 4665 87 404...
output:
5347
result:
ok single line: '5347'
Test #11:
score: 5
Accepted
time: 7ms
memory: 872kb
input:
10000 10000 2224 8599 3697 9779 1264 7760 266 8474 601 9386 5276 9907 4231 9619 2206 8589 3306 9731 ...
output:
574
result:
ok single line: '574'
Test #12:
score: 5
Accepted
time: 62ms
memory: 3520kb
input:
93875 99655 0 25859 0 30798 0 89053 0 29230 0 93483 0 83280 0 47502 0 39669 0 69861 0 64184 0 35067 ...
output:
14154
result:
ok single line: '14154'
Test #13:
score: 5
Accepted
time: 69ms
memory: 3512kb
input:
100000 100000 0 50602 0 56129 0 65965 0 75241 0 71832 0 26413 0 79671 0 73842 0 78772 0 94149 0 3483...
output:
25000
result:
ok single line: '25000'
Test #14:
score: 5
Accepted
time: 72ms
memory: 3244kb
input:
91057 96847 21419 89318 2406 89095 2941 51033 14888 77083 28023 74840 18260 62296 6297 51346 7735 88...
output:
134
result:
ok single line: '134'
Test #15:
score: 5
Accepted
time: 45ms
memory: 3328kb
input:
100000 100000 16723 78322 7205 66894 9839 72285 7661 85725 38680 93140 6182 88375 30785 99006 38538 ...
output:
5118
result:
ok single line: '5118'
Test #16:
score: 0
Runtime Error
input:
198495 197435 63738 165927 17757 117506 9207 170263 50748 141346 18132 120887 49285 188664 25304 190...
output:
result:
Test #17:
score: 0
Runtime Error
input:
199260 192470 22818 156104 9228 171776 43025 139453 39938 135662 18272 171006 68109 171295 28220 116...
output:
result:
Test #18:
score: 0
Runtime Error
input:
200000 200000 75002 167675 8656 181873 54606 156991 48075 167451 74414 194621 55633 180796 4565 1657...
output:
result:
Test #19:
score: 0
Runtime Error
input:
200000 200000 59298 170956 2760 194028 35447 153792 1945 163425 73195 176225 62065 185526 85886 1916...
output:
result:
Test #20:
score: 0
Runtime Error
input:
200000 200000 67496 171474 36806 170296 86759 193181 7951 171117 85324 184470 8949 171983 10465 1547...