QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#557018 | #8672. 排队 | forgotmyhandle | 15 | 267ms | 49252kb | C++14 | 2.8kb | 2024-09-11 00:05:45 | 2024-09-11 00:05:45 |
Judging History
answer
#include <iostream>
#include <cassert>
#include <vector>
using namespace std;
int n, q;
int al[1000005], ar[1000005];
vector<pair<int, int> > vec[1000005];
struct Segment_Tree {
int tg[4000005], mn[4000005], mx[4000005];
void tag(int o, int v) { tg[o] += v, mn[o] += v, mx[o] += v; }
void pushdown(int o) {
if (!tg[o])
return;
tag(o << 1, tg[o]);
tag(o << 1 | 1, tg[o]);
tg[o] = 0;
}
void Add(int o, int l, int r, int L, int R, int v) {
if (L <= l && r <= R) {
tag(o, v);
return;
}
pushdown(o);
int mid = (l + r) >> 1;
if (L <= mid)
Add(o << 1, l, mid, L, R, v);
if (R > mid)
Add(o << 1 | 1, mid + 1, r, L, R, v);
mn[o] = min(mn[o << 1], mn[o << 1 | 1]);
mx[o] = max(mx[o << 1], mx[o << 1 | 1]);
}
int Query(int o, int l, int r, int x) {
if (l == r)
return mn[o];
pushdown(o);
int mid = (l + r) >> 1;
if (x <= mid)
return Query(o << 1, l, mid, x);
else
return Query(o << 1 | 1, mid + 1, r, x);
}
// first position which is less than or equal to v
int Query1(int o, int l, int r, int x, int v) {
if (l == r)
return mn[o] <= v ? l : 0;
pushdown(o);
int mid = (l + r) >> 1;
if (x <= mid)
return Query1(o << 1, l, mid, x, v);
if (mn[o << 1] <= v)
return Query1(o << 1, l, mid, x, v);
else
return Query1(o << 1 | 1, mid + 1, r, x, v);
}
// last position which is greater than or equal to v
int Query2(int o, int l, int r, int x, int v) {
if (mx[o] < v)
return 0;
if (l == r)
return l;
pushdown(o);
int mid = (l + r) >> 1;
if (x <= mid)
return Query2(o << 1, l, mid, x, v);
int tmp = Query2(o << 1 | 1, mid + 1, r, x, v);
if (tmp == 0)
return Query2(o << 1, l, mid, x, v);
else
return tmp;
}
} seg;
int ans[1000005];
int main() {
cin >> n >> q;
for (int i = 1; i <= n; i++) cin >> al[i] >> ar[i];
for (int i = 1; i <= q; i++) {
int l, r;
cin >> l >> r;
vec[r].emplace_back(make_pair(l, i));
}
for (int i = 1; i <= n; i++) {
int l, r;
l = seg.Query1(1, 1, n, i, ar[i]);
r = seg.Query2(1, 1, n, i, al[i]);
assert(l);
if (l > r)
continue;
seg.Add(1, 1, n, l, r, 1);
for (auto v : vec[i]) ans[v.second] = seg.Query(1, 1, n, v.first);
}
for (int i = 1; i <= q; i++) cout << ans[i] << "\n";
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 10
Accepted
time: 3ms
memory: 30360kb
input:
3 3 0 0 1 2 0 2 1 1 1 3 2 3
output:
1 3 1
result:
ok 3 number(s): "1 3 1"
Test #2:
score: 0
Wrong Answer
time: 7ms
memory: 32704kb
input:
5000 5000 5 10 3 9 3 8 2 7 2 5 3 6 1 5 0 2 7 8 2 10 0 3 3 6 4 6 1 6 4 8 7 8 2 7 3 4 4 9 7 8 2 9 2 5 3 6 0 5 6 7 1 2 2 4 2 10 1 5 7 9 6 9 2 3 9 10 5 5 2 9 3 3 2 7 2 4 0 6 0 3 1 7 7 7 4 8 2 9 4 8 0 10 1 8 1 1 2 7 5 9 1 7 1 7 1 4 2 4 1 4 2 9 1 7 4 7 3 8 1 3 4 6 1 5 1 6 0 0 3 9 4 7 2 8 1 8 1 2 7 8 2 7 2...
output:
11 11 11 11 11 11 11 11 11 11 11 0 11 11 11 11 11 11 11 11 11 0 11 11 11 11 11 11 11 11 0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 11 11 11 11 11 11 11 0 11 11 11 0 11 11 0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 0 11 11 11 11 0 11 0 11 11 0 0 11 0 0 11 11 0 11 10 11 1...
result:
wrong answer 12th numbers differ - expected: '11', found: '0'
Subtask #2:
score: 0
Wrong Answer
Test #12:
score: 0
Wrong Answer
time: 162ms
memory: 47380kb
input:
200000 200000 3 6 3 3 6 10 1 7 2 7 6 9 4 6 3 4 0 8 0 6 3 5 3 4 1 8 7 8 4 5 0 3 1 5 2 9 1 2 1 2 3 4 5 7 6 10 3 9 4 7 1 6 2 6 1 7 2 5 1 7 6 8 1 1 0 7 7 8 0 9 1 7 3 8 3 7 1 2 4 8 5 6 0 6 5 6 2 7 2 6 0 6 0 6 1 7 2 5 0 3 0 3 7 10 3 8 0 2 3 4 3 7 4 9 0 6 4 7 2 6 8 10 2 10 4 10 3 3 2 6 4 5 3 9 1 8 1 2 2 9 ...
output:
11 11 11 11 11 0 11 11 11 11 11 11 11 11 0 11 11 11 11 11 11 11 0 0 11 11 11 11 0 11 11 11 0 11 11 11 11 11 11 11 11 11 11 11 0 11 11 11 11 11 0 11 11 0 11 11 11 11 11 11 11 11 0 11 11 11 11 11 11 11 11 11 11 11 11 11 0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 11 11 11 11 11 11 11 11 11 0 11 11 1...
result:
wrong answer 6th numbers differ - expected: '11', found: '0'
Subtask #3:
score: 15
Accepted
Test #22:
score: 15
Accepted
time: 223ms
memory: 45196kb
input:
200000 200000 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 0 0 9 0 10 0 0 0 0 0 13 0 14 0 0 0 16 0 17 0 18 0 19 0 0 0 21 0 22 0 23 0 0 0 0 0 0 0 0 0 28 0 0 0 30 0 31 0 32 0 33 0 34 0 35 0 0 0 0 0 38 0 39 0 40 0 41 0 42 0 43 0 44 0 45 0 46 0 0 0 48 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 57 0 0 0 59 0 60 0 0 0 0 ...
output:
19141 39288 14841 58655 15427 4999 26338 93250 2826 78084 64070 55481 2565 15173 24866 57627 35887 51335 67552 44939 27730 24781 54502 26903 73199 7553 3836 41740 67889 104576 43522 3766 13007 31659 17264 85349 16595 28681 64012 56457 23856 47820 22752 86123 37679 44828 88810 36305 15843 33728 10005...
result:
ok 200000 numbers
Test #23:
score: 15
Accepted
time: 232ms
memory: 47108kb
input:
200000 200000 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 0 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 25 0 0 0 27 0 28 0 29 0 30 0 0 0 32 0 33 0 34 0 35 0 36 0 0 0 0 0 39 0 40 0 41 0 42 0 43 0 44 0 45 0 46 0 47 0 48 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 0 0 58 0 59 0 60 0...
output:
168949 95410 33682 47935 82249 25613 65578 22342 60917 30684 99457 21252 87719 9508 41909 17405 96346 6219 110867 56725 71026 2090 45186 37640 26229 36720 91410 64919 7095 29903 44679 40307 100104 41603 87434 53924 53758 80720 59404 164539 38810 117092 13565 110110 38606 32273 93240 81294 10356 1504...
result:
ok 200000 numbers
Test #24:
score: 15
Accepted
time: 232ms
memory: 48812kb
input:
200000 200000 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 27 0 28 0 29 0 30 0 31 0 32 0 33 0 34 0 35 0 36 0 37 0 38 0 39 0 40 0 41 0 42 0 43 0 44 0 45 0 46 0 47 0 48 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 57 0 58 0 59 ...
output:
69217 146306 97579 32894 129999 10418 98425 25273 33368 29464 14306 2073 112582 140228 24801 40781 52137 17338 110491 48418 54730 20451 84100 80588 2089 108163 29975 56448 14978 35560 102453 18613 30516 18699 83182 28795 25862 126187 116576 99593 36207 13935 27150 75205 66741 91089 151786 19917 2529...
result:
ok 200000 numbers
Test #25:
score: 15
Accepted
time: 223ms
memory: 48756kb
input:
200000 200000 0 5 0 99 0 23 0 88 0 62 0 24 0 80 0 70 0 45 0 55 0 99 0 91 0 82 0 99 0 47 0 80 0 9 0 4 0 51 0 64 0 52 0 2 0 2 0 81 0 98 0 36 0 27 0 34 0 97 0 22 0 89 0 77 0 89 0 25 0 90 0 91 0 77 0 37 0 89 0 52 0 58 0 18 0 81 0 35 0 56 0 71 0 18 0 56 0 74 0 40 0 76 0 47 0 87 0 11 0 81 0 48 0 59 0 17 0...
output:
101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 ...
result:
ok 200000 numbers
Test #26:
score: 15
Accepted
time: 231ms
memory: 45580kb
input:
200000 200000 0 193 0 229 0 553 0 197 0 718 0 370 0 853 0 695 0 764 0 571 0 714 0 700 0 692 0 293 0 962 0 536 0 482 0 148 0 804 0 864 0 925 0 864 0 296 0 757 0 283 0 338 0 746 0 447 0 365 0 390 0 689 0 239 0 60 0 388 0 822 0 836 0 373 0 703 0 107 0 894 0 468 0 125 0 851 0 568 0 914 0 391 0 759 0 66 ...
output:
1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 986 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 834 1001 999 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 995 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001...
result:
ok 200000 numbers
Test #27:
score: 15
Accepted
time: 253ms
memory: 46996kb
input:
200000 200000 0 7698 0 6154 0 6707 0 7442 0 9621 0 8045 0 8938 0 5518 0 4134 0 3188 0 8054 0 5380 0 2409 0 3360 0 2771 0 9642 0 8264 0 4305 0 2844 0 7810 0 4706 0 1462 0 6282 0 2481 0 2987 0 3633 0 2634 0 4866 0 5079 0 2325 0 4394 0 8361 0 322 0 2614 0 7668 0 9067 0 452 0 2834 0 3340 0 2193 0 4070 0...
output:
9992 10001 10001 10000 10001 10001 9910 9932 2155 6995 10001 9347 10001 10001 10000 8952 9997 10000 9996 9999 10001 9996 10001 10000 9949 8842 9944 10000 10000 6517 9719 7997 10001 9875 10000 10001 10001 10001 10001 7481 10001 564 9962 8180 10001 7708 9902 9995 6677 10000 10000 9993 9841 6942 9584 1...
result:
ok 200000 numbers
Test #28:
score: 15
Accepted
time: 267ms
memory: 45136kb
input:
200000 200000 0 44932 0 12196 0 776 0 35673 0 44618 0 16521 0 9747 0 42216 0 21955 0 3389 0 22 0 15248 0 5734 0 45217 0 47977 0 8869 0 25942 0 3415 0 40771 0 28517 0 29726 0 13420 0 30474 0 44930 0 10541 0 4648 0 26903 0 19507 0 2998 0 24757 0 10645 0 47790 0 25779 0 41892 0 37322 0 34913 0 36562 0 ...
output:
48090 32992 22437 48207 21332 45359 39653 11005 43989 17371 8176 34898 30342 43305 36171 34310 36953 26580 26406 40517 30042 24009 21601 48636 34590 44645 6569 1680 36941 44685 8184 29538 47471 13134 37634 44021 16542 45480 34004 2798 44629 42393 43534 32749 42758 39005 46942 906 35042 32188 39406 4...
result:
ok 200000 numbers
Test #29:
score: 15
Accepted
time: 255ms
memory: 47208kb
input:
200000 200000 0 17611 0 59430 0 23731 0 61357 0 32905 0 30945 0 53122 0 18775 0 25563 0 43076 0 23316 0 71711 0 16622 0 27384 0 9838 0 81042 0 85530 0 32497 0 12816 0 55180 0 2256 0 81719 0 61844 0 64533 0 5302 0 33711 0 18419 0 98385 0 48813 0 58297 0 63392 0 29066 0 12542 0 14198 0 27695 0 23110 0...
output:
20413 33643 27062 9573 23562 70288 46728 62984 61505 69707 52256 43819 42924 84768 46751 32254 29961 25002 61760 47063 54538 23381 4229 40146 56797 35682 73141 55198 81237 4145 14779 79432 46593 8554 55961 48948 59145 73439 77423 43568 51349 68840 23328 1413 10825 33789 61183 12488 53414 60374 77583...
result:
ok 200000 numbers
Test #30:
score: 15
Accepted
time: 209ms
memory: 42816kb
input:
200000 200000 0 19 0 50 0 16 0 8 0 27 0 35 0 43 0 42 0 8 0 45 0 39 0 16 0 23 0 29 0 10 0 10 0 50 0 23 0 50 0 45 0 16 0 17 0 30 0 17 0 35 0 50 0 2 0 15 0 33 0 41 0 38 0 12 0 2 0 5 0 37 0 11 0 26 0 35 0 25 0 12 0 38 0 28 0 5 0 46 0 46 0 39 0 26 0 36 0 22 0 9 0 1 0 45 0 36 0 6 0 15 0 31 0 2 0 3 0 0 0 4...
output:
51 51 51 51 51 51 51 51 51 27 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 ...
result:
ok 200000 numbers
Test #31:
score: 15
Accepted
time: 201ms
memory: 42700kb
input:
200000 200000 0 3 0 3 0 10 0 1 0 7 0 6 0 6 0 4 0 8 0 0 0 5 0 4 0 8 0 7 0 5 0 0 0 1 0 9 0 1 0 1 0 3 0 7 0 10 0 9 0 4 0 6 0 6 0 1 0 5 0 7 0 8 0 1 0 0 0 8 0 9 0 7 0 8 0 7 0 2 0 8 0 6 0 6 0 5 0 7 0 2 0 0 0 6 0 7 0 5 0 3 0 3 0 10 0 3 0 0 0 3 0 3 0 9 0 0 0 7 0 2 0 10 0 10 0 10 0 3 0 2 0 5 0 9 0 1 0 1 0 9 ...
output:
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ...
result:
ok 200000 numbers
Subtask #4:
score: 0
Wrong Answer
Test #32:
score: 15
Accepted
time: 242ms
memory: 48500kb
input:
200000 200000 0 200000 1 200000 1 200000 0 200000 0 200000 1 200000 1 200000 1 200000 0 200000 1 200000 0 200000 0 200000 1 200000 0 200000 0 200000 0 200000 0 200000 1 200000 0 200000 0 200000 1 200000 0 200000 1 200000 1 200000 1 200000 1 200000 0 200000 0 200000 1 200000 2 200000 1 200000 2 20000...
output:
71224 21392 65746 47218 62293 29293 146310 136621 165312 81582 25124 120262 104926 12518 90915 31784 50073 15588 1517 106447 92329 71506 16694 4846 38213 34902 133281 98867 697 26263 6631 173459 61316 71682 15564 112191 125788 15305 41840 30379 24107 17435 10898 115177 22279 37582 101778 120170 1264...
result:
ok 200000 numbers
Test #33:
score: 15
Accepted
time: 236ms
memory: 46532kb
input:
200000 200000 5 200000 0 200000 1 200000 0 200000 2 200000 1 200000 0 200000 3 200000 4 200000 1 200000 0 200000 2 200000 1 200000 0 200000 0 200000 5 200000 2 200000 0 200000 2 200000 2 200000 0 200000 1 200000 3 200000 4 200000 2 200000 0 200000 5 200000 0 200000 3 200000 0 200000 0 200000 5 20000...
output:
51850 27495 33433 90638 103054 58851 115355 44294 80395 72594 155250 20604 154366 112939 168447 70437 134688 175930 112777 43168 73760 136485 95405 115772 19580 14448 85020 8135 266 66591 24765 14783 101583 182811 27593 75020 64180 50889 69744 140901 99500 62001 74634 142631 93413 188391 25666 29627...
result:
ok 200000 numbers
Test #34:
score: 15
Accepted
time: 237ms
memory: 49252kb
input:
200000 200000 6 200000 3 200000 6 200000 7 200000 2 200000 9 200000 4 200000 3 200000 0 200000 6 200000 3 200000 3 200000 1 200000 8 200000 4 200000 3 200000 5 200000 2 200000 2 200000 2 200000 4 200000 5 200000 6 200000 3 200000 7 200000 1 200000 2 200000 7 200000 2 200000 1 200000 6 200000 1 20000...
output:
48539 120803 28813 145711 29729 172683 112151 52277 31739 73432 63297 64022 176699 103343 145926 110637 5216 25387 86738 39373 77641 3608 134147 26930 117814 50832 9240 59137 73006 34370 34497 804 96016 101388 3489 30001 85307 17852 1324 32486 37351 12503 28321 42856 196324 95124 119392 87948 28069 ...
result:
ok 200000 numbers
Test #35:
score: 15
Accepted
time: 228ms
memory: 43276kb
input:
200000 200000 45 200000 27 200000 7 200000 51 200000 16 200000 10 200000 16 200000 43 200000 12 200000 35 200000 6 200000 77 200000 40 200000 66 200000 30 200000 18 200000 36 200000 12 200000 26 200000 37 200000 39 200000 11 200000 69 200000 57 200000 15 200000 8 200000 19 200000 32 200000 35 200000...
output:
102146 138864 3922 35890 61622 45382 45112 14900 58606 39462 173762 102549 8848 81805 48479 48103 10353 63948 139153 34744 24441 35639 58427 40153 41974 28423 106874 11420 118809 141816 59608 59417 25106 134727 11556 40866 27752 61000 52123 94606 325 144695 24421 115649 156435 132658 25786 136006 18...
result:
ok 200000 numbers
Test #36:
score: 0
Wrong Answer
time: 239ms
memory: 47396kb
input:
200000 200000 894 200000 142 200000 346 200000 496 200000 389 200000 600 200000 650 200000 476 200000 767 200000 220 200000 238 200000 516 200000 137 200000 1 200000 835 200000 34 200000 208 200000 225 200000 377 200000 75 200000 277 200000 278 200000 647 200000 390 200000 179 200000 602 200000 571 ...
output:
82980 71975 66684 28250 111297 44819 114569 54121 107328 25452 72738 53632 23692 426 71363 73241 154868 34365 20278 17775 146745 22972 136874 69984 53 79587 2967 124150 52120 87623 89603 4325 87876 13984 119053 27551 69825 112363 84048 157846 1462 94224 79643 115628 117698 116223 38012 32665 94002 1...
result:
wrong answer 656th numbers differ - expected: '1', found: '0'
Subtask #5:
score: 0
Skipped
Dependency #1:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%