QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#557579 | #8672. 排队 | -xcxxx- | 15 | 260ms | 77504kb | C++14 | 3.2kb | 2024-09-11 10:21:18 | 2024-09-11 10:21:19 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int rd() {int x=0,f=1;char c=getchar();while(!isdigit(c))f=(c=='-'?-1:f),c=getchar();while(isdigit(c))x=x*10+c-'0',c=getchar();return x*f;}
const int N=1000005,inf=0x3f3f3f3f;
int n,Q,l[N],r[N],ans[N];
vector<int> ins[N],ers[N];
struct ChristmasTree {
#define ls (p<<1)
#define rs (p<<1|1)
#define mid ((T[p].l+T[p].r)>>1)
struct node {
int l,r,mx,mn,tag;
void upd(int x) {mx+=x,mn+=x,tag+=x;}
}T[N<<2];
void pushup(int p) {
T[p].mx=max(T[ls].mx,T[rs].mx);
T[p].mn=min(T[ls].mn,T[rs].mn);
}
void pushdown(int p) {
T[ls].upd(T[p].tag);
T[rs].upd(T[p].tag);
T[p].tag=0;
}
void build(int l=1,int r=Q,int p=1) {
T[p].l=l,T[p].r=r;
T[p].mx=-inf,T[p].mn=inf;
if(l==r) return;
build(l,mid,ls);
build(mid+1,r,rs);
}
void modify(int l,int r,int p=1) {
if(T[p].l==l&&T[p].r==r) {
T[p].upd(1);
return;
}
pushdown(p);
if(r<=mid) modify(l,r,ls);
else if(mid<l) modify(l,r,rs);
else modify(l,mid,ls),modify(mid+1,r,rs);
pushup(p);
}
int qfst(int k,int p=1) {
if(T[p].mn>k) return T[p].r+1;
if(T[p].l==T[p].r) return T[p].l;
pushdown(p);
if(T[ls].mn<=k) return qfst(k,ls);
else return qfst(k,rs);
}
int qlst(int k,int p=1) {
if(T[p].mx<k) return T[p].l-1;
if(T[p].l==T[p].r) return T[p].l;
pushdown(p);
if(T[rs].mx>=k) return qlst(k,rs);
else return qlst(k,ls);
}
void insert(int pos,int p=1) {
// fprintf(stderr,"insert [%d,%d] %d\n",T[p].l,T[p].r,pos);
if(T[p].l==T[p].r) {
T[p].mx=T[p].mn=0;
return;
}
pushdown(p);
if(pos<=mid) insert(pos,ls);
else insert(pos,rs);
pushup(p);
}
void erase(int pos,int p=1) {
// fprintf(stderr,"erase [%d,%d] %d\n",T[p].l,T[p].r,pos);
if(T[p].l==T[p].r) {
T[p].mx=-inf,T[p].mn=inf;
return;
}
pushdown(p);
if(pos<=mid) erase(pos,ls);
else erase(pos,rs);
pushup(p);
}
int ask(int pos,int p=1) {
if(T[p].l==T[p].r) return T[p].mx;
pushdown(p);
if(pos<=mid) return ask(pos,ls);
else return ask(pos,rs);
}
}tree;
signed main() {
// freopen("queue.in","r",stdin);
// freopen("queue.out","w",stdout);
n=rd(),Q=rd();
for(int i=1;i<=n;i++) l[i]=rd(),r[i]=rd();
for(int i=1;i<=Q;i++) ins[rd()].push_back(i),ers[rd()].push_back(i);
tree.build();
for(int i=1;i<=n;i++) {
// fprintf(stderr,"i=%d\n",i);
for(int p:ins[i]) tree.insert(p);
int L=tree.qfst(r[i]),R=tree.qlst(l[i]);
// fprintf(stderr,"L=%d R=%d\n",L,R);
// for(int j=1;j<=Q;j++) cerr<<tree.ask(j)<<' ';cerr<<endl;
if(L<=R) tree.modify(L,R);
// for(int j=1;j<=Q;j++) cerr<<tree.ask(j)<<' ';cerr<<endl;
for(int p:ers[i]) {
ans[p]=tree.ask(p);
tree.erase(p);
}
}
for(int i=1;i<=Q;i++) printf("%d\n",ans[i]);
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: 4ms
memory: 57212kb
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: 57640kb
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 22 11 11 22 66 66 22 11 22 22 121 25 55 33 77 124 168 99 44 22 145 179 56 124 11 11 179 268 245 77 99 22 97 173 11 133 261 86 18 235 44 315 279 22 290 99 196 153 75 44 203 169 157 232 235 62 341 88 384 504 195 88 281 481 333 370 178 355 24 291 342 235 396 276 22 166 38 477 453 42 244 125 215 1...
result:
wrong answer 3rd numbers differ - expected: '11', found: '22'
Subtask #2:
score: 15
Accepted
Test #12:
score: 15
Accepted
time: 136ms
memory: 75408kb
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: 134ms
memory: 77504kb
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: 130ms
memory: 72608kb
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: 139ms
memory: 72868kb
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: 154ms
memory: 72584kb
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: 199ms
memory: 72740kb
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: 165ms
memory: 71928kb
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: 168ms
memory: 72056kb
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: 148ms
memory: 75256kb
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: 149ms
memory: 75196kb
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: 260ms
memory: 75572kb
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 51336 67554 44940 27730 24781 54503 26903 73201 7554 3836 41741 67891 104580 43523 3766 13007 31661 17265 85353 16596 28684 64017 56462 23861 47826 22754 86131 37684 44831 88820 36311 15846 33729 10006...
result:
wrong answer 18th numbers differ - expected: '51335', found: '51336'
Subtask #4:
score: 0
Wrong Answer
Test #32:
score: 0
Wrong Answer
time: 236ms
memory: 75572kb
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%