QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#72020#5026. 策略游戏Cyh29hao100 ✓211ms137008kbC++142.2kb2023-01-13 18:26:212023-01-13 18:26:25

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-01-13 18:26:25]
  • 评测
  • 测评结果:100
  • 用时:211ms
  • 内存:137008kb
  • [2023-01-13 18:26:21]
  • 提交

answer

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int mx=1e5+5,maxlog=17;
const ll INF=1e18;
int n,m,q,l1,r1,l2,r2;
int Log2[mx];
struct st{
	ll val[mx][maxlog],fl;
	inline ll query(int l,int r,int op)
	{
		int t=Log2[r-l+1];
		if(fl&1)return min(val[l][t],val[r-(1<<t)+1][t]);
		else return max(val[l][t],val[r-(1<<t)+1][t]);
	}
	inline void init(int len){
		if(fl==2)for(int i=1;i<=len;++i){if(val[i][0]>=0)val[i][0]=-INF;}
		else if(fl==3)for(int i=1;i<=len;++i){if(val[i][0]<=0)val[i][0]=INF;}
		else if(fl==4)for(int i=1;i<=len;++i){val[i][0]=val[i][0]==0;}
		
		for(int gap=1;gap<=Log2[len];++gap){
			for(int i=1;i+(1<<gap)-1<=len;++i){
				if(fl&1)val[i][gap]=min(val[i][gap-1],val[i+(1<<(gap-1))][gap-1]);
				else val[i][gap]=max(val[i][gap-1],val[i+(1<<(gap-1))][gap-1]);	
			}
		}
	}
}a[5],b[5];//0_max 1_min 2_<0max 3_>0min 4_equalto0(max)
inline void ckmin(ll &a,ll b){if(a>b)a=b;}
inline void ckmax(ll &a,ll b){if(a<b)a=b;}
ll _a[5],_b[5],_t[5];
inline ll work()
{
	memset(_a,0,sizeof _a);memset(_b,0,sizeof _b);for(int i=0;i<=4;++i)_t[i]=INF;
	for(int i=0;i<=3;++i)_a[i]=a[i].query(l1,r1,i),_b[i]=b[i].query(l2,r2,i);
	if(a[4].query(l1,r1,4))_a[4]=0;else _a[4]=-INF;
	if(b[4].query(l2,r2,4))_b[4]=0;else _b[4]=-INF;
	
	//for(int i=0;i<=4;++i)printf("a[%d]=%lld,b[%d]=%lld\n",i,_a[i],i,_b[i]);
	
	for(int i=0;i<=4;++i){
		if(abs(_a[i])==INF)continue;
		for(int j=0;j<=4;++j)
			if(abs(_b[j])!=INF)
				ckmin(_t[i],_a[i]*_b[j]);
	}
	ll ans=-INF;
	for(int i=0;i<=4;++i)if(_t[i]<INF)ckmax(ans,_t[i]);
	//for(int i=0;i<=4;++i)printf("t[%d]=%lld\n",i,_t[i]);
	return ans;
}
int main()
{
	//freopen("game.in","r",stdin);freopen("game.out","w",stdout);
	for(int i=0;i<=4;++i)a[i].fl=i,b[i].fl=i;
	scanf("%d%d%d",&n,&m,&q);
	Log2[1]=0;for(int i=2;i<=max(n,m);++i)Log2[i]=Log2[i/2]+1;
	
	for(int i=1;i<=n;++i)scanf("%lld",&a[0].val[i][0]),a[1].val[i][0]=a[2].val[i][0]=a[3].val[i][0]=a[4].val[i][0]=a[0].val[i][0];
	for(int i=1;i<=m;++i)scanf("%lld",&b[0].val[i][0]),b[1].val[i][0]=b[2].val[i][0]=b[3].val[i][0]=b[4].val[i][0]=b[0].val[i][0];
	for(int i=0;i<=4;++i)a[i].init(n),b[i].init(m);
	
	while(q--){
		scanf("%d%d%d%d",&l1,&r1,&l2,&r2);
		printf("%lld\n",work());
	}
	return 0;
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 5
Accepted
time: 3ms
memory: 22012kb

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: 1ms
memory: 26144kb

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: 24096kb

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: 4ms
memory: 24044kb

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: 1ms
memory: 22096kb

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: 1ms
memory: 20212kb

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: 3ms
memory: 20212kb

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: 3ms
memory: 18388kb

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: 7ms
memory: 18368kb

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: 18660kb

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: 2ms
memory: 18484kb

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: 18544kb

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: 205ms
memory: 136292kb

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: 198ms
memory: 136768kb

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: 211ms
memory: 136840kb

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: 186ms
memory: 136824kb

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: 184ms
memory: 137008kb

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: 196ms
memory: 136704kb

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: 202ms
memory: 136708kb

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: 176ms
memory: 136764kb

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