QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#930716 | #10147. 幸运数字 | RDFZchenyy | 100 ✓ | 336ms | 11700kb | C++14 | 2.0kb | 2025-03-10 08:27:21 | 2025-03-10 08:27:21 |
Judging History
answer
#include<bits/stdc++.h>
using ll=long long;
struct Num{
int l1,r1;
int l2,r2;
};
#define MAXN 400005
int n;
Num num[MAXN];
int id[MAXN];
ll lcl,lcr;
ll mcl,mcr;
ll rcl,rcr;
int get(int x){
return (x<0)?num[-x].l2:num[x].r2;
}
int pos[MAXN];
int m;
int ans;
void cntans(int val){
if(lcr<rcl){
ll sum=lcr+rcl+mcr;
ll pos=(sum+1)/2;
if(pos>lcr&&pos<=lcr+mcr) ans+=val;
}else if(lcl>rcr){
ll sum=lcl+rcr+mcr;
ll pos=(sum+1)/2;
if(pos>lcl&&pos<=lcl+mcr) ans+=val;
}else if(mcr) ans+=val;
return;
}
void run(){
ans=0;
lcl=lcr=mcl=mcr=rcl=rcr=0;
std::cin>>n;
for(int i=1;i<=n;i++){
std::cin>>num[i].l1>>num[i].r1>>num[i].l2>>num[i].r2;
rcl+=num[i].l1,rcr+=num[i].r1;
id[2*i-1]=-i,id[2*i]=i;
pos[2*i-1]=num[i].l2,pos[2*i]=num[i].r2;
}
m=2*n; std::sort(pos+1,pos+m+1);
m=std::unique(pos+1,pos+m+1)-pos-1;
std::sort(id+1,id+2*n+1,[](int x,int y){
int xv=get(x),yv=get(y);
if(xv!=yv) return xv<yv;
else return x<y;
});
ans=0;
int pn=1;
for(int i=1;i<=m;i++){
int pr=pn;
while(pr<=2*n){
if(get(id[pr])>pos[i]) break;
++pr;
}
for(int j=pn;j<pr;j++){
if(id[j]<0){
rcl-=num[-id[j]].l1,rcr-=num[-id[j]].r1;
mcl+=num[-id[j]].l1,mcr+=num[-id[j]].r1;
}
}
cntans(1);
for(int j=pn;j<pr;j++){
if(id[j]>0){
mcl-=num[id[j]].l1,mcr-=num[id[j]].r1;
lcl+=num[id[j]].l1,lcr+=num[id[j]].r1;
}
}
if(i!=m){
cntans(pos[i+1]-pos[i]-1);
}
pn=pr;
}
std::cout<<ans<<'\n';
return;
}
int c,T;
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(0),std::cout.tie(0);
std::cin>>c>>T; for(int i=0;i<T;i++) run();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Pretests
Final Tests
Test #1:
score: 10
Accepted
time: 0ms
memory: 7784kb
input:
1 126 4 2 2 3 4 3 3 2 3 4 4 1 4 1 1 2 4 4 1 1 2 3 1 1 1 2 2 2 1 1 2 2 1 3 4 1 1 4 4 3 3 1 2 3 3 1 2 1 1 1 1 4 1 1 2 2 2 2 4 4 2 2 3 3 1 1 4 4 4 1 1 2 2 2 2 4 4 4 4 1 2 4 4 1 2 4 1 1 1 4 1 1 3 4 1 1 1 3 3 3 3 4 4 3 3 1 3 4 4 1 1 1 1 2 3 1 1 2 3 4 4 4 1 2 3 3 1 3 4 4 1 4 4 4 3 3 4 2 2 2 2 2 2 4 4 4 4 ...
output:
3 2 2 1 2 2 3 3 1 2 2 2 2 4 1 1 3 1 3 2 2 2 3 2 4 2 2 2 1 3 2 3 2 3 1 1 4 1 1 3 2 2 2 2 2 3 2 2 3 1 2 2 2 3 3 1 2 3 2 2 2 2 2 2 2 2 1 3 3 1 1 1 1 2 1 1 2 2 2 1 1 2 1 1 2 2 1 1 2 1 1 1 2 2 1 1 2 3 1 1 2 2 1 1 2 2 1 1 1 1 1 1 1 2 1 1 1 1 2 1 2 1 1 1 2 2
result:
ok 126 numbers
Test #2:
score: 10
Accepted
time: 1ms
memory: 5736kb
input:
2 126 4 3 3 2 3 1 3 2 4 2 4 1 4 3 4 3 4 4 2 2 2 3 3 3 2 3 3 3 3 4 1 1 2 2 4 1 2 1 1 2 3 2 2 1 2 2 2 1 2 1 2 4 1 1 1 1 2 2 1 1 1 1 4 4 3 3 1 1 4 3 3 1 1 4 4 1 3 1 1 1 2 1 1 2 3 4 1 3 1 1 2 2 1 1 4 4 1 1 3 3 4 4 4 2 4 2 2 3 4 4 4 2 2 1 4 1 2 1 4 4 2 2 1 1 1 2 1 2 1 2 4 4 1 1 2 2 4 2 2 3 4 4 4 3 4 3 3 ...
output:
3 2 2 1 3 1 3 2 2 2 3 2 3 3 1 3 1 3 3 2 1 3 3 3 1 3 2 2 1 3 2 3 2 2 2 4 3 2 2 2 2 3 3 1 1 3 2 3 3 2 3 3 3 2 2 2 2 2 2 3 1 2 3 3 2 2 1 2 1 2 1 1 2 1 1 1 2 2 2 1 2 2 1 1 2 3 1 1 2 2 2 1 2 2 1 1 2 1 1 1 1 2 2 1 2 2 1 1 2 2 1 1 1 2 1 1 2 2 1 1 2 2 2 1 2 2
result:
ok 126 numbers
Test #3:
score: 10
Accepted
time: 5ms
memory: 5868kb
input:
3 56 2000 804 804 879 911 345 345 1098 1104 750 750 1826 1827 829 829 397 428 1475 1475 1267 1352 365 365 444 451 240 240 1285 1372 874 874 880 1017 1350 1350 352 468 87 87 877 1025 723 723 893 1086 739 739 890 1027 379 379 46 131 501 501 1945 1979 1024 1024 348 423 1723 1723 905 1003 784 784 1179 1...
output:
109 855 55 28 2 11 5 26 50 3 11 3 6 13 2 26 48 4 1 4 2 27 4 24 49 3 9 9 13 9 6 31 50 11 11 13 2 14 11 25 48 18 1 5 14 11 12 35 27 30 17 12 36 6 21 1
result:
ok 56 numbers
Test #4:
score: 10
Accepted
time: 3ms
memory: 5732kb
input:
4 56 2000 1580 1938 589 599 828 1162 1133 1145 88 1981 540 541 446 885 996 997 190 495 572 575 701 865 1767 1770 1053 1709 1619 1622 203 814 1974 1982 1393 1729 1032 1033 669 1574 1042 1046 1544 1842 1137 1148 384 1732 19 21 143 1770 1049 1049 1600 1600 658 661 283 1156 188 191 523 615 1531 1535 50 ...
output:
456 1043 174 234 303 6 15 33 49 6 9 1 5 8 12 34 50 10 19 2 15 11 5 40 50 13 13 10 1 5 1 37 49 7 11 16 1 20 15 32 49 21 15 11 2 20 11 19 6 33 47 8 31 6 22 1
result:
ok 56 numbers
Test #5:
score: 10
Accepted
time: 4ms
memory: 5696kb
input:
5 56 2000 870512284 870512284 951509564 958747373 136573587 136573587 289193230 350149447 368420995 368420995 340803982 371094421 277140388 277140388 323255704 337417674 779043829 779043829 368128055 397477070 475653112 475653112 187762787 232025929 97950778 97950778 515822232 523065667 396702827 39...
output:
50203070 416281478 12522658 17615577 202048 468936439 110138988 385268445 904979564 109447877 104458874 70650768 254262533 270605986 116032566 559906190 990648768 96442474 29970565 184285483 432658 199900503 108430831 541019500 994793729 66004995 105538789 36002709 81847544 364224872 469139665 60903...
result:
ok 56 numbers
Test #6:
score: 10
Accepted
time: 4ms
memory: 7916kb
input:
6 56 2000 741806741 829584121 455938129 458717224 514608806 998783650 134791550 136498142 345198836 569047785 146366207 149922159 358278416 997453197 335253802 349067279 554147170 904884016 37378469 38520628 66917592 514821827 911695124 912144969 745768313 823598218 754456792 758281523 705570878 973...
output:
251861637 539408341 210287040 405537444 186346703 231158319 275151629 672738179 980297634 340393477 197949960 20730748 149487889 94074831 281821752 762569151 983412297 349477958 148394674 21464800 17501580 349330621 337791659 629203806 992387504 170027265 187562569 11272572 578150 208603346 94668159...
result:
ok 56 numbers
Test #7:
score: 10
Accepted
time: 329ms
memory: 10324kb
input:
7 399 200000 162255 162255 102428 117978 113191 113191 111192 124478 12167 12167 99358 106251 191926 191926 132962 135165 161520 161520 166578 169736 176528 176528 51469 55001 89810 89810 116767 116850 82340 82340 96479 110932 94136 94136 101613 124565 50350 50350 183969 191699 71591 71591 96305 993...
output:
11270 89 169 1 4982 9971 917 180 1 4992 9916 549 59 17 101 78 20 117 27 106 10 21 35 54 15 11 56 209 60 1 16 125 36 20 7 28 84 85 53 21 4 17 43 53 9 13 41 2 48 87 8 10 6 43 32 26 11 1 42 89 24 2 6 39 22 23 19 1 54 100 1 18 2 53 39 27 16 1 51 100 19 7 2 48 11 4 52 2 45 95 1 2 5 42 40 13 24 2 51 92 5 ...
result:
ok 399 numbers
Test #8:
score: 10
Accepted
time: 334ms
memory: 11668kb
input:
8 399 200000 106862 122247 191253 191366 11745 170840 142894 143141 12231 68013 109393 112129 52879 188600 186794 187307 62560 135254 179888 183201 60259 67231 132836 133187 34065 129954 34790 36973 73398 164385 165718 166743 180857 180872 187716 188147 140719 194465 75868 77367 5441 173142 140333 1...
output:
63171 15307 13308 3127 6674 9999 3333 419 3062 6712 10000 3396 2782 195 74 716 155 289 370 80 895 973 788 5 461 189 333 265 362 795 648 61 511 408 84 199 597 756 867 535 594 152 733 65 37 3 18 31 70 99 42 40 35 64 57 3 11 33 62 100 37 35 49 54 23 10 9 37 73 100 17 43 22 57 59 4 16 33 60 100 15 47 19...
result:
ok 399 numbers
Test #9:
score: 10
Accepted
time: 336ms
memory: 11304kb
input:
9 399 200000 379152868 379152868 217239760 243341982 6273270 6273270 190043475 257037637 188655171 188655171 43946711 74660059 852006388 852006388 170956065 245550827 536255742 536255742 470814826 476827105 139542819 139542819 286936499 292897922 4724934 4724934 517899124 546909848 914029461 9140294...
output:
54195490 1896387 17266 182285 506199346 999837223 70856471 6649199 76370 513497545 999883645 121016920 13464157 2333204 22541528 53123332 13705604 13135704 13183398 28185234 7946299 426658 22268154 3135391 1867731 3738325 30183065 4907517 7818941 90887186 26647419 47172491 12514473 3373602 4754690 1...
result:
ok 399 numbers
Test #10:
score: 10
Accepted
time: 334ms
memory: 11700kb
input:
10 399 200000 116655743 688211253 621269119 628519492 219282398 797277949 399404950 400728611 130797569 705422865 570842621 572620311 761311940 823004444 621954238 628501025 253204185 949427576 514382621 524496392 444838631 852194814 808491861 829911764 781457487 927247645 969849505 978967277 352988...
output:
464351704 484135459 290742722 191028318 686981331 999767459 319737341 80784047 186191720 693505588 999858146 309178740 425413394 288877890 165958471 475203548 464217295 195388516 371059537 79897760 50750006 169139521 242372233 251346173 474922504 80220665 125081647 73151662 409454565 256077807 26324...
result:
ok 399 numbers
Extra Test:
score: 0
Extra Test Passed