QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#557640 | #8672. 排队 | piggy123 | 15 | 117ms | 29024kb | C++20 | 4.0kb | 2024-09-11 10:40:04 | 2024-09-11 10:40:05 |
Judging History
answer
#include <bits/stdc++.h>
#define ll long long
using namespace std;
struct B{
ll l,r,id;
}p[1000005],q[1000005];
struct node{
ll tag,mx;
}tree[4000005];
ll ans[1000005];
inline void pushdown(ll root){
if (tree[root].tag){
tree[root<<1].tag+=tree[root].tag;
tree[root<<1|1].tag+=tree[root].tag;
tree[root<<1].mx+=tree[root].tag;
tree[root<<1|1].mx+=tree[root].tag;
tree[root].tag=0;
}
}
ll getpos(ll root,ll l,ll r,ll v){
if (l==r){
if (tree[root].mx>v)return l+1;
return l;
}
ll mid=(l+r)>>1;
pushdown(root);
if (tree[root<<1].mx>v)return getpos(root<<1|1,mid+1,r,v);
else return getpos(root<<1,l,mid,v);
}
void add(ll root,ll l,ll r,ll L,ll R){
if (L>R)return;
if (L<=l&&r<=R){
tree[root].tag++;
tree[root].mx++;
return;
}
ll mid=(l+r)>>1;
pushdown(root);
if (L<=mid)add(root<<1,l,mid,L,R);
if (R>mid)add(root<<1|1,mid+1,r,L,R);
tree[root].mx=max(tree[root<<1].mx,tree[root<<1|1].mx);
}
ll query(ll root,ll l,ll r,ll pos){
if (l==r)return tree[root].mx;
ll mid=(l+r)>>1;
pushdown(root);
if (pos<=mid)return query(root<<1,l,mid,pos);
else return query(root<<1|1,mid+1,r,pos);
}
int main(){
cin.tie(0);cout.tie(0);
ios::sync_with_stdio(false);
ll n,Q;
cin >> n >> Q;
for (ll i=1;i<=n;i++){
cin >> p[i].l >> p[i].r;
}
for (ll i=1;i<=Q;i++){
cin >> q[i].l >> q[i].r;
q[i].id=i;
}
sort(q+1,q+1+Q,[](B a,B b){
return a.r<b.r;
});
ll tp=0;
for (ll i=1;i<=n;i++){
ll lp=getpos(1,1,n,p[i].r),rp=getpos(1,1,n,p[i].l-1)-1;
add(1,1,n,lp,min(rp,i));
while (tp+1<=Q&&q[tp+1].r==i)++tp,ans[q[tp].id]=query(1,1,n,q[tp].l);
}
for (ll i=1;i<=Q;i++)cout<< ans[i]<<"\n";
return 0;
}
/*
■■■■■ ■■ ■■■ ■■■ ■ ■ ■ ■■■■ ■■■■
■ ■■ ■■ ■ ■■ ■ ■■ ■ ■ ■■ ■ ■■ ■■ ■
■ ■ ■■ ■ ■ ■ ■ ■ ■ ■■■ ■■ ■■ ■ ■■
■ ■ ■■ ■ ■ ■ ■ ■ ■ ■■ ■ ■■ ■■
■ ■ ■■ ■ ■ ■■ ■■ ■■ ■
■ ■■ ■■ ■ ■■■ ■ ■■■ ■■ ■■ ■■ ■■■
■■■■■ ■■ ■ ■ ■ ■ ■■ ■■ ■■ ■■
■ ■■ ■ ■ ■ ■ ■■ ■■ ■■ ■
■ ■■ ■ ■ ■ ■ ■■ ■■ ■ ■ ■■
■ ■■ ■■ ■■ ■■ ■■ ■■ ■■ ■ ■■ ■■
■ ■■ ■■■■ ■■■■ ■■ ■■ ■■■■■■ ■■■■
*/
详细
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 7768kb
input:
3 3 0 0 1 2 0 2 1 1 1 3 2 3
output:
1 3 2
result:
wrong answer 3rd numbers differ - expected: '1', found: '2'
Subtask #2:
score: 15
Accepted
Test #12:
score: 15
Accepted
time: 66ms
memory: 19800kb
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 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
Test #13:
score: 15
Accepted
time: 58ms
memory: 20384kb
input:
200000 200000 5 45 27 99 7 23 51 88 16 62 10 24 16 80 43 70 12 45 35 55 6 99 77 91 40 82 66 99 30 47 18 80 9 36 4 12 26 51 37 64 39 52 2 11 2 69 57 81 15 98 8 36 19 27 32 34 35 97 22 23 15 89 53 77 2 89 25 55 25 90 4 91 13 77 37 65 67 89 8 52 20 58 10 18 31 81 35 59 41 56 71 74 18 61 56 77 51 74 40 ...
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 0 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 10...
result:
ok 200000 numbers
Test #14:
score: 15
Accepted
time: 58ms
memory: 19900kb
input:
200000 200000 193 894 142 229 346 553 197 496 389 718 370 600 650 853 476 695 764 767 220 571 238 714 516 700 137 692 1 293 835 962 34 536 208 482 148 225 377 804 75 864 277 925 278 864 296 647 390 757 179 283 338 602 571 746 447 852 315 365 7 390 634 689 76 239 16 60 244 388 385 822 451 836 301 373...
output:
1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 961 999 1001 1001 1001 1001 1001 1001 981 1001 1001 1001 1001 1001 1001 1001 966 1001 1001 1001 1001 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 #15:
score: 15
Accepted
time: 69ms
memory: 24956kb
input:
200000 200000 3145 7698 6037 6154 6483 6707 6834 7442 7373 9621 5166 8045 7346 8938 2235 5518 2240 4134 586 3188 3845 8054 1258 5380 2409 2631 3360 5706 19 2771 1925 9642 6687 8264 4305 8055 2844 5474 2282 7810 1738 4706 1462 7466 17 6282 2481 6022 2363 2987 3633 4157 1460 2634 4866 8159 3154 5079 2...
output:
9965 10001 0 10001 10001 10001 9991 10001 4831 9935 5274 10001 10001 2 10001 10001 10001 10001 9991 10001 10001 10001 10001 9935 9994 10001 9742 10001 10001 0 9982 10001 10001 10001 10001 10001 80 0 9991 9763 8 10001 9975 9939 10001 10001 9092 9983 9333 10001 10001 10001 10001 10001 10001 10001 9965...
result:
ok 200000 numbers
Test #16:
score: 15
Accepted
time: 72ms
memory: 20768kb
input:
200000 200000 15540 44932 12196 33126 776 23774 35673 42863 31231 44618 16521 19781 8467 9747 5319 42216 13940 21955 3389 6981 22 11576 15248 17307 5734 35942 12762 45217 30349 47977 8869 11242 11199 25942 3415 10196 20104 40771 8813 28517 29726 34188 13420 13731 17526 30474 1033 44930 3143 10541 46...
output:
8 31 33781 8 161 3 618 14580 3 25947 1415 455 2 147 16877 21598 539 56 7425 6686 4 393 4 4 4378 176 24 1407 837 19 14 7146 7 19626 21422 9 20472 0 200 3514 2 380 35942 35129 1 216 3 312 1200 2519 4046 9 1734 1318 21862 3361 27414 52 38201 2303 635 235 1 17 271 24468 29 1029 1071 38200 10968 95 4 125...
result:
ok 200000 numbers
Test #17:
score: 15
Accepted
time: 96ms
memory: 28864kb
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:
74058 156458 175945 88572 145372 79026 163392 139232 188241 158454 17719 20452 171150 171343 104047 159458 132045 70328 136937 64711 174467 69614 125002 131739 81388 166709 80139 138489 34431 142820 179669 125831 148484 115982 184021 189596 73421 151270 194210 134276 117448 129846 127920 160607 1132...
result:
ok 200000 numbers
Test #18:
score: 15
Accepted
time: 93ms
memory: 27596kb
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:
173310 165951 120854 142558 87420 163018 160623 76341 172338 95167 169845 31220 168100 132276 165092 84047 128575 138423 171800 154331 137251 163376 79848 167392 43722 41974 133487 110272 168461 91407 103766 57088 165360 154903 110464 80792 144277 102908 146051 175704 77052 168422 56979 126413 14964...
result:
ok 200000 numbers
Test #19:
score: 15
Accepted
time: 94ms
memory: 28916kb
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:
131384 192629 61130 80247 87887 198740 163105 103211 176599 77117 195385 125105 27678 146598 146076 171154 143664 106375 184677 176668 63515 47861 66512 94607 61773 118863 110829 90228 162033 193193 118985 114311 63857 156350 94535 157429 67223 146494 96304 188983 139817 196687 121473 115649 160519 ...
result:
ok 200000 numbers
Test #20:
score: 15
Accepted
time: 103ms
memory: 29024kb
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:
191039 169762 165539 174400 68195 177129 154654 147432 156994 76044 194413 99752 191624 151075 197252 164294 18272 88957 158459 84713 87887 43439 179674 131694 123135 59410 106882 159392 139714 64645 69698 100948 140917 103251 45494 170482 166885 104101 194216 145914 120315 76168 77653 141867 198409...
result:
ok 200000 numbers
Test #21:
score: 15
Accepted
time: 70ms
memory: 19796kb
input:
200000 200000 17611 69131 59430 76978 15340 23731 45422 61357 24684 32905 12111 30945 3173 53122 1908 18775 21868 25563 43076 69772 23316 73134 37315 71711 16622 29769 5311 27384 7573 9838 45306 81042 21408 85530 32497 55253 12816 72989 13973 55180 2256 48643 39562 81719 47954 61844 8166 64533 5302 ...
output:
1 2 6 0 2 0 0 0 3 7 1 2 0 0 2 10 1 0 0 1 13 0 2 2 0 4 0 1 7 0 4 14 1 1 0 2 0 0 0 0 5 0 14 4 0 2 14 0 2 0 0 2 1 0 2 1 0 8 10 0 0 8 3 0 10 4 1 1 0 0 13 3 0 4 0 1 1 2 0 1 8 4 1 0 0 5 2 8 0 0 0 1 1 0 0 0 4 9 9 7 2 0 2 13 3 0 0 2 0 0 0 1 0 5 10 5 13 1 0 7 10 1 2 3 0 0 1 5 1 5 0 0 1 0 1 0 1 0 1 7 4 1 0 3 ...
result:
ok 200000 numbers
Subtask #3:
score: 0
Wrong Answer
Test #22:
score: 0
Wrong Answer
time: 105ms
memory: 27760kb
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 2825 78084 64069 55481 2565 15173 24866 57627 35886 51335 67552 44938 27730 24781 54502 26902 73199 7553 3836 41740 67889 104576 43521 3766 13007 31659 17263 85349 16595 28680 64011 56456 23856 47820 22752 86122 37679 44828 88810 36304 15842 33728 10005...
result:
wrong answer 9th numbers differ - expected: '2826', found: '2825'
Subtask #4:
score: 0
Wrong Answer
Test #32:
score: 0
Wrong Answer
time: 117ms
memory: 27584kb
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:
71225 21392 65746 47219 62293 29293 146311 136624 165312 81582 25124 120262 104926 12518 90916 31784 50073 15588 1518 106447 92329 71506 16695 4846 38213 34902 133281 98868 700 26264 6639 173461 61316 71682 15564 112193 125788 15305 41842 30380 24109 17436 10900 115179 22281 37582 101778 120170 1264...
result:
wrong answer 1st numbers differ - expected: '71224', found: '71225'
Subtask #5:
score: 0
Skipped
Dependency #1:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%