QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#243445 | #5026. 策略游戏 | LYT0122 | 100 ✓ | 81ms | 75380kb | C++14 | 4.1kb | 2023-11-08 11:35:26 | 2023-11-08 11:35:26 |
Judging History
answer
#include <iostream>
#include <cstring>
#include <ctime>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <set>
#include <map>
using namespace std;
typedef long long int ll;
const int N=1e6+9,INF=2e9;
const double eps=1e-5;
typedef pair <int,int> PII;
inline int read()
{
int x=0,f=1;char c=getchar();
while(c<'0' || c>'9') {if(c=='-') f=-1;c=getchar();}
while(c>='0' && c<='9') {x=x*10+c-48,c=getchar();}
return x*f;
}
inline ll readll()
{
ll x=0,f=1;char c=getchar();
while(c<'0' || c>'9') {if(c=='-') f=-1;c=getchar();}
while(c>='0' && c<='9') {x=x*10+c-48,c=getchar();}
return x*f;
}
int n,m,q,a[N],b[N],s1[2][N],s2[2][N],s3[2][N],lg[N];
int st1[N][20],st2[N][20],st3[N][20],st4[N][20],st5[N][20],st6[N][20];
int query1(int l,int r)
{
int k=lg[r-l+1];
return max(st1[l][k],st1[r-(1<<k)+1][k]);
}
int query2(int l,int r)
{
int k=lg[r-l+1];
return min(st2[l][k],st2[r-(1<<k)+1][k]);
}
int query3(int l,int r)
{
int k=lg[r-l+1];
return max(st3[l][k],st3[r-(1<<k)+1][k]);
}
int query4(int l,int r)
{
int k=lg[r-l+1];
return min(st4[l][k],st4[r-(1<<k)+1][k]);
}
int query5(int l,int r)
{
int k=lg[r-l+1];
return min(st5[l][k],st5[r-(1<<k)+1][k]);
}
int query6(int l,int r)
{
int k=lg[r-l+1];
return max(st6[l][k],st6[r-(1<<k)+1][k]);
}
int main()
{
// #define FILEIO
#ifdef FILEIO
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
#endif
n=read(),m=read(),q=read();
for(int i=1;i<=n;i++) a[i]=read();
for(int i=1;i<=m;i++) b[i]=read();
for(int i=1;i<=n;i++)
{
s1[0][i]=s1[0][i-1],s2[0][i]=s2[0][i-1],s3[0][i]=s3[0][i-1];
if(a[i]>0) s1[0][i]++;
else if(a[i]==0) s2[0][i]++;
else s3[0][i]++;
}
for(int i=1;i<=m;i++)
{
s1[1][i]=s1[1][i-1],s2[1][i]=s2[1][i-1],s3[1][i]=s3[1][i-1];
if(b[i]>0) s1[1][i]++;
else if(b[i]==0) s2[1][i]++;
else s3[1][i]++;
}
for(int i=2;i<=max(n,m);i++) lg[i]=lg[i>>1]+1;
for(int i=1;i<=n;i++)
{
st1[i][0]=st2[i][0]=a[i];
if(a[i]>0) st5[i][0]=a[i];
else st5[i][0]=INF;
if(a[i]<0) st6[i][0]=a[i];
else st6[i][0]=-INF;
}
for(int i=1;i<=lg[n];i++)
{
for(int j=1;j+(1<<i)-1<=n;j++)
{
st1[j][i]=max(st1[j][i-1],st1[j+(1<<i-1)][i-1]);
st6[j][i]=max(st6[j][i-1],st6[j+(1<<i-1)][i-1]);
st2[j][i]=min(st2[j][i-1],st2[j+(1<<i-1)][i-1]);
st5[j][i]=min(st5[j][i-1],st5[j+(1<<i-1)][i-1]);
}
}
for(int i=1;i<=m;i++) st3[i][0]=st4[i][0]=b[i];
for(int i=1;i<=lg[m];i++)
{
for(int j=1;j+(1<<i)-1<=m;j++)
{
st3[j][i]=max(st3[j][i-1],st3[j+(1<<i-1)][i-1]);
st4[j][i]=min(st4[j][i-1],st4[j+(1<<i-1)][i-1]);
}
}
while(q--)
{
int l=read(),r=read(),L=read(),R=read();
if(s1[1][R]==s1[1][L-1] && s3[1][R]==s3[1][L-1]) puts("0");
else if(s3[1][R]==s3[1][L-1])
{
if(s1[0][r]>s1[0][l-1]) cout<<1ll*query1(l,r)*query4(L,R)<<'\n';
else cout<<1ll*query1(l,r)*query3(L,R)<<'\n';
}
else if(s1[1][R]==s1[1][L-1])
{
if(s3[0][r]>s3[0][l-1]) cout<<1ll*query2(l,r)*query3(L,R)<<'\n';
else cout<<1ll*query2(l,r)*query4(L,R)<<'\n';
}
else
{
if(s2[0][r]>s2[0][l-1])
{
puts("0");
continue;
}
if(s3[0][r]==s3[0][l-1]) cout<<1ll*query4(L,R)*query5(l,r)<<'\n';
else if(s1[0][r]==s1[0][l-1]) cout<<1ll*query3(L,R)*query6(l,r)<<'\n';
else cout<<max(1ll*query4(L,R)*query5(l,r),1ll*query3(L,R)*query6(l,r))<<'\n';
}
}
cerr<<endl<<1e3*clock()/CLOCKS_PER_SEC<<"ms";
return 0;
}
//s1正,s2零,s3负 0是小L,1是小Q
//st1,st2小L区间最大最小 st3,st4小Q区间最大最小 st5,st6小L区间最小正和区间最大负
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 5
Accepted
time: 3ms
memory: 20384kb
input:
199 198 200 829356445 876154132 366196473 500467430 917305159 346326942 218752007 415989218 680974563 648334387 831557895 155130144 800300897 318071013 54298362 631081214 345825284 886004184 986180904 942780334 746218390 543172141 736412163 511590385 797181010 90914542 181139202 304461529 387694238 ...
output:
843122111982080 725953407053371874 317138430443920860 327010452253120 524910693619580 839096455980310650 923721465864024000 46321772604597840 472973793586479810 336440822197740 614297414243458077 25277183217460 527234830754920 9862439502733488 4118410302008348 933231158828740 664953217414960 7408868...
result:
ok 200 numbers
Test #2:
score: 5
Accepted
time: 0ms
memory: 18304kb
input:
200 200 200 235944964 54640771 304406578 126065964 689688283 105753491 981932994 870266268 901708548 696132313 614513971 659939358 58027346 192304620 493889485 560928927 276485106 202630736 618211268 829515324 396801879 77562494 660032577 687873138 459554564 179290365 581975802 37209425 26944593 357...
output:
3166628684062157 3166628684062157 3166628684062157 3032269786964216 31511305490085301 3112365720672572 3166628684062157 3105996882409483 3112365720672572 16511332520687938 3074966117489240 35567581473428004 3032269786964216 3166628684062157 3112365720672572 3112365720672572 3166628684062157 50929549...
result:
ok 200 numbers
Test #3:
score: 5
Accepted
time: 0ms
memory: 18260kb
input:
200 200 200 209987016 720640414 649066648 594421531 439149717 164414779 899259821 307327137 402057312 5490264 919766660 244841631 433923730 406670100 282624791 491089087 790917812 695398501 964006890 414148450 667088146 667404318 106587564 175970165 398435127 97600543 463090603 945287028 629330275 5...
output:
747141419945675718 -782402955875158757 -390625282017175058 -394060338539105875 831952056409284440 258452323751554344 -445748924229983532 -782402955875158757 -290104631465331744 -172153159021280185 -522818480426992120 -833672047785468939 -498024550064133714 -66013131387024525 182480769548648256 -7902...
result:
ok 200 numbers
Test #4:
score: 5
Accepted
time: 2ms
memory: 18220kb
input:
200 200 200 129305302 705562742 762261237 194352531 305009139 367822499 174934664 735309854 828714000 124811001 597140365 476507880 39939504 52356774 327859392 732515373 207524855 108201293 563183544 413587298 418128733 961339052 328456322 307792614 632354642 752724271 467614243 142018147 8430516 14...
output:
-8339568116083992 -8339568116083992 -8339568116083992 -8339568116083992 -8339568116083992 -8339568116083992 -171473448391978362 -34049296047582008 -8339568116083992 -8339568116083992 -11473972432333886 -8339568116083992 -8197266384673200 -5959751220300024 -5368831815920436 506923556252215560 -578582...
result:
ok 200 numbers
Test #5:
score: 5
Accepted
time: 0ms
memory: 18256kb
input:
200 200 200 880075964 885889568 526994042 480530675 589278192 348862697 823335457 846697046 278543832 684573357 254148184 414625902 951103442 488101393 186349793 20669537 166677185 304610830 122778971 225135960 777719400 533202945 289858033 595151183 841749229 722158580 180069514 34433914 443359290 ...
output:
-1705526030843895 -1975122008643207 -1975122008643207 -20500521431178131 -39191499508897677 -439733924681376270 -1975122008643207 107453995007907104 -1705526030843895 -16803985334056668 -17626564630618218 -1705526030843895 107453995007907104 -574418515129806 107453995007907104 -1705526030843895 -197...
result:
ok 200 numbers
Test #6:
score: 5
Accepted
time: 0ms
memory: 20464kb
input:
984 983 986 502215113 905041700 803864639 586211709 514907150 723280924 430914536 945121996 370538052 885973430 598216112 653209293 593061306 311228287 830717890 525122111 148433160 623934438 575165236 331446076 640625367 742262246 3656416 387416133 93104122 430510558 319184371 941294568 364388344 2...
output:
163859201472640 1001443323183705 824089527159160 703339565642287072 483099098392427520 260626653959486645 152373001001984 1319098277285472 928394355408952 1886519392358644 199617773897624 715178602847608 574458887660504 55681124786746526 517016442056640 704385755891408 799217588766992 76165510464207...
result:
ok 986 numbers
Test #7:
score: 5
Accepted
time: 0ms
memory: 18392kb
input:
1000 1000 1000 926087615 42570981 544093875 301592954 145684452 177926321 786417972 694242403 402442852 856403542 13397204 793624386 161704280 664078636 110678288 375072207 964703506 379092354 423639851 212655187 213217924 44996998 770238082 861568098 478291339 294497236 522614804 456652703 69317048...
output:
1242507845767390 1245488691457048 1245488691457048 1245488691457048 1245150041176122 1245488691457048 6651085211470017 1245150041176122 2995888767902982 154237911897419272 1245488691457048 2997094378195791 142254479345370936 1245488691457048 1245150041176122 1245488691457048 180326157276401776 64453...
result:
ok 1000 numbers
Test #8:
score: 5
Accepted
time: 0ms
memory: 18204kb
input:
1000 1000 1000 98185333 780343777 34465630 374317015 775562728 214050313 724864125 790118092 333646553 145442434 517003734 644979520 739798810 788032959 355439374 695634443 371632177 680293816 851102314 504051930 705326125 294016320 401562723 48649909 526807438 995507482 300591303 607353974 79443812...
output:
4018306615277118 12767279139020280 717398895713626 27296916262397996 10039073887832816 10190031829732688 4018306615277118 717398895713626 717398895713626 12542861107565040 10200379048797856 715010522231982 717398895713626 25681558992951136 717398895713626 10200379048797856 717398895713626 7173988957...
result:
ok 1000 numbers
Test #9:
score: 5
Accepted
time: 2ms
memory: 18200kb
input:
1000 1000 1000 620746834 788558233 369516333 163331675 752257671 568818389 955055572 579542367 700826734 993530012 664446170 580795534 160527438 890842481 408544838 755335341 233370326 252124752 936732879 45600099 432168041 944787130 257043215 117687253 145598872 956980493 318557655 675119338 962640...
output:
255437511799911651 -39023577161489761 503671783149045520 -300426095111726957 143674647570134400 182655248357188089 978698105474606480 -283351482946434832 143071920777175040 128173161714754501 -264929254557756360 135179226813935600 -449566245165185177 -135983903148379548 -103497419289816154 793170798...
result:
ok 1000 numbers
Test #10:
score: 5
Accepted
time: 0ms
memory: 18200kb
input:
1000 1000 1000 658025317 264523894 439592654 492426516 59473610 415198756 986800455 3264922 653986602 542411939 899582583 896433040 466563953 130460780 286868725 847433494 807577081 992644255 265496700 422058311 919353351 578522448 688060037 635325400 583938855 539011074 291940712 224821123 99108237...
output:
-427706140515479514 20411324012756012 -481205992293571815 863651983071303712 -624420645865583244 -371373404115836124 -50183206315146056 973500898542298443 -38092971374686019 345253015333352269 -81133050693306539 -174116559135873432 -931027798184438858 -71908237568271411 245527218294886385 2948495105...
result:
ok 1000 numbers
Test #11:
score: 5
Accepted
time: 0ms
memory: 18420kb
input:
1000 1000 1000 697997706 798249420 740271370 702414120 103182660 635234948 341792846 297416362 150477645 331669000 907127164 188929522 71293066 60785374 484319129 604482292 623034111 72182522 830108083 512273406 490025340 131989063 21838465 260558004 852471749 336482985 218080290 868578856 843159808...
output:
82488532174038920 -4911265427037555 -1291118138990440 -2551138347907479 -1410730665955780 -1410730665955780 -1410730665955780 -2687100121243810 -1410730665955780 -1410730665955780 -1410730665955780 1184625262013886 1796043639446940 -1182832011016420 -2564749622416765 -1579893210640647 -1410730665955...
result:
ok 1000 numbers
Test #12:
score: 5
Accepted
time: 0ms
memory: 18440kb
input:
1000 1000 1000 343398457 51500278 509586046 732955188 297935480 366838387 47044655 680374923 804235543 81145723 942946968 915251499 648437844 22182421 781287098 132292770 950185598 979136183 311674069 73256237 819627967 7590556 386953234 622433460 701033943 27003673 306313420 55501733 311700082 9842...
output:
4021616571702480 -238394688714833 -226842714282695 -238394688714833 -238394688714833 -1598559838384391 -226842714282695 -238394688714833 -238394688714833 -238394688714833 -238394688714833 -238394688714833 -180096939350405 -180271129261377 -238394688714833 0 -135328608507267 -238394688714833 -2313877...
result:
ok 1000 numbers
Test #13:
score: 5
Accepted
time: 81ms
memory: 72988kb
input:
99386 98598 98259 52303309 717708234 149973815 73198633 350296857 465819298 229584067 568862474 542551868 766063865 672259397 292382818 499736698 676154049 364125907 587758377 981311389 200655338 941386318 650943319 345734545 107228113 345623975 693192674 215529651 82268198 722226539 407680322 17573...
output:
870073747500821552 730841098648349612 838443583944246644 5790321380415 258903994912037452 17513201564268 292336410055348868 221119536845021320 225892670533347660 1874917478538 550273426554549040 475010145246 10404863821332 375901850360564908 550469784025272428 4691435828886 8814132737064 53354587403...
result:
ok 98259 numbers
Test #14:
score: 5
Accepted
time: 61ms
memory: 72736kb
input:
100000 100000 100000 299966497 175036058 82146733 94758047 387514649 926508839 425052773 93544932 718793889 517309122 10427503 357931705 430201365 538176353 595858994 810681414 92995075 403383631 887980393 311604422 236984909 462009351 513256602 924127551 230661703 213426095 637194489 43493935 64785...
output:
2120269357548 582078824479431 129533908444344 2120269357548 2120233820904 2120233820904 3938822581140 2120269357548 2120269357548 2120233820904 2120233820904 2120269357548 129536079525828 2120269357548 2120269357548 2120269357548 2120269357548 18265860971946 2120269357548 2120233820904 3939069154842...
result:
ok 100000 numbers
Test #15:
score: 5
Accepted
time: 46ms
memory: 71880kb
input:
100000 100000 100000 480694661 627637039 84899577 343915178 997926188 463439941 292764888 419026640 772410983 296373980 700991480 696439925 889776276 302995098 68439683 922351329 591363794 356917185 589126154 803893143 561880471 15841327 370407863 930556756 695851415 776649211 557426758 39736735 668...
output:
48639894930264 48639894930264 48642595735089 48642595735089 24721025340256 48640508915664 48640508915664 163242877168953 10067833671702 48640508915664 10068115918326 48642595735089 10067833671702 24722085944206 10068115918326 48642595735089 135871650009033 48640508915664 48642595735089 1342474222912...
result:
ok 100000 numbers
Test #16:
score: 5
Accepted
time: 48ms
memory: 73464kb
input:
100000 100000 100000 384006860 273671649 463320706 709942490 607444248 622154044 458603490 527573724 260777537 672197759 26551145 921374274 645049978 224687850 638023170 198874740 888606013 469576942 793942736 642156055 899484576 882572301 914432037 390194714 947698161 673747935 179229719 456228712 ...
output:
250936599669136916 -411407843721404166 92497933397679106 125762182381046657 397947201484363818 456005326758679140 -186569796044463399 754186475928984879 25469040405637 294414792500474352 704499817266428394 34170356997227840 868090357799506182 1067382437655614 131632769974657611 979675309336234784 48...
result:
ok 100000 numbers
Test #17:
score: 5
Accepted
time: 44ms
memory: 73292kb
input:
100000 100000 100000 366693309 811818738 416638225 84998992 543686402 258997296 488547395 652283008 238456671 660713920 4881659 81311105 936051140 108261790 833068069 500904004 493858118 364265388 848137777 724270138 20518877 229751569 486131936 139895372 738550284 894994037 361445200 218588222 2560...
output:
101828032119944165 -418305625141665600 216130189153671876 -397806875718736680 250710994861266240 -271202668013671550 390517889472693432 -592679562916084336 -160191688446831740 -173683853827907346 -653774467945627848 -340065456867652896 940754780771879000 -143846914350170295 705309996874422882 322588...
result:
ok 100000 numbers
Test #18:
score: 5
Accepted
time: 49ms
memory: 75380kb
input:
100000 100000 100000 443629168 745987680 87159145 9829340 12977807 681350693 975809515 310495826 248961562 192858248 589214973 557985548 733176823 674128152 345041326 685344113 745207157 143984283 975612601 916430065 704515664 725288903 765900630 125084276 351810981 26987427 843944897 438485164 8244...
output:
-11321056838212 -11321056838212 -20308430826156 -11321699668746 -11225874411268 -11321056838212 -11321056838212 -11322054083562 -11321699668746 -11322054083562 -11321699668746 -20308430826156 -12985920147695 -11322054083562 -12985920147695 -11322054083562 -11321056838212 -11321699668746 -11321699668...
result:
ok 100000 numbers
Test #19:
score: 5
Accepted
time: 50ms
memory: 70856kb
input:
100000 100000 100000 742329339 560092840 263025776 728695534 628002638 220393023 317350127 806124215 406197631 143750779 590868373 385527908 410902970 163439711 273352925 784532894 732906621 213265354 210759278 271140272 349291140 495378208 18053014 187406272 446260440 303277984 282769242 626976582 ...
output:
-158320185388932 -1619124369176 -1619124369176 -1619124369176 319289990220369 -107901680248730 -1619124369176 -270539859322036 -1619124369176 -180224735910912 -147881656948410 -108651684165948 -12218531607777 -109093348890624 -12218315015523 49483279454868 -1619124369176 -1619124369176 -122192980290...
result:
ok 100000 numbers
Test #20:
score: 5
Accepted
time: 60ms
memory: 72868kb
input:
100000 100000 100000 873195522 945359875 189793308 546620053 122387839 457144738 371890352 105106884 924902101 944641468 754179140 701937116 462051460 13206411 523112593 156939322 334610408 439946840 398814870 117978574 91748951 855570145 901027966 103212133 307955410 729227243 783786182 163318274 1...
output:
131770189895787 -1649079146708 -43732567402160 305165258102390 -1649079146708 -19750018715265 -43730129025180 -19750018715265 -19749548603880 -166300715634480 -66357467480275 -63985304113900 -43730674591110 -19750018715265 233141453955375 -1642432372616 1948253622457142 -115735080223840 113922554466...
result:
ok 100000 numbers
Extra Test:
score: 0
Extra Test Passed