Problem Statement
Two missile silos may not seem like a lot, but Banania is also a small country with only two military bases. It takes a single missile to destroy a military base. The general has ordered you to destroy both of Banania's military bases in as little time as possible. You are given
Definition
- Class:
- FeudaliasBattle
- Method:
- getMinimumTime
- Parameters:
- int[], int[], int[], int[], int, int, int
- Returns:
- double
- Method signature:
- double getMinimumTime(int[] baseX, int[] baseY, int[] siloX, int[] siloY, int takeOffTime, int rechargeTime, int missileSpeed)
- (be sure your method is public)
Notes
- The Euclidean distance between the i-th silo and the j-th base is: SquareRoot( (siloX[i]-baseX[j])^2 + (siloY[i]-baseY[j])^2 ) .
- The returned value must be accurate to within a relative or absolute value of 1e-9.
Constraints
- takeOffTime will be between 1 and 60, inclusive.
- rechargeTime will be between 5 and 1000, inclusive.
- missileSpeed will be between 1 and 2000, inclusive.
- baseX, baseY, siloX and siloY will each contain exactly 2 elements.
- Each element of baseX, baseY, siloX and siloY will be between 0 and 1000000, inclusive.
- The locations for each base and silo will be distinct.
Examples
{100, 500}
{100, 100}
{100, 500}
{300, 300}
6
10
1
Returns: 200.1
At time 0, the silo located at (100, 300) should fire a missile at the base located at (100, 100), and the silo located at (500, 300) should fire a missile at the base located at (500, 100). Each silo is 200 units away from its target, and the missiles travel at a speed of 1 unit per minute. Therefore, it will take 200 minutes for the missiles to reach their targets after they take off. Add 6 seconds of take off time for a total of 200.1 minutes.
{100, 100}
{100, 500}
{100, 500}
{300, 300}
6
10
1
Returns: 210.2
This time it is more convenient to use silo 0 to attack both bases. The second missile launch will start 10.1 minutes after the first launch.
{100, 100}
{100, 500}
{100, 500}
{300, 300}
6
20
20
Returns: 22.4606797749979
Although the placement of the bases and silos is the same as in the last case, this time the recharge time and missile speed are high enough to make it more convenient to use both silos and make each silo attack a different base.
{100,100}
{100, 200}
{100,100}
{300, 400}
30
500
10
Returns: 20.5
{100,100}
{100, 200}
{100,100}
{400, 300}
30
500
10
Returns: 20.5
{100,100}
{1000,100}
{1000,1000}
{1000,100}
59
500
30
Returns: 30.983333333333334
{0,0}
{0,1}
{1000000,1000000}
{999999,1000000}
30
10
1
Returns: 1414213.3552664907
A large result.
{401, 208}
{622, 603}
{51, 387}
{411, 828}
59
518
1941
Returns: 1.1111118724871378
{901, 411}
{123, 218}
{965, 300}
{430, 367}
40
86
691
Returns: 1.1205017806688429
{916, 90}
{142, 186}
{937, 847}
{667, 699}
58
741
196
Returns: 5.6322256524398915
{668, 131}
{68, 187}
{910, 928}
{882, 159}
8
335
475
Returns: 1.9211468046748625
{472, 989}
{257, 165}
{360, 658}
{942, 628}
39
30
888
Returns: 1.4316394309814018
{358, 157}
{872, 469}
{41, 579}
{302, 154}
9
706
866
Returns: 0.903139170511309
{484, 125}
{111, 439}
{257, 299}
{266, 676}
43
704
329
Returns: 1.6103302099008272
{714, 368}
{264, 617}
{592, 263}
{932, 165}
57
107
741
Returns: 1.573128233414221
{793, 325}
{896, 465}
{197, 22}
{345, 150}
44
953
667
Returns: 1.9502380226015523
{656, 725}
{981, 385}
{454, 92}
{416, 840}
11
98
966
Returns: 0.7851530985632403
{46, 91}
{49, 61}
{55, 88}
{96, 15}
23
927
1131
Returns: 0.4256445132237149
{98, 26}
{7, 36}
{24, 6}
{91, 97}
18
858
868
Returns: 0.42897052506135047
{53, 53}
{61, 28}
{81, 31}
{84, 18}
10
842
1340
Returns: 0.1937079665651643
{14, 960}
{483, 197}
{869, 475}
{983, 218}
41
396
1719
Returns: 1.143630178278794
{29, 98}
{770, 928}
{515, 89}
{774, 540}
23
613
1633
Returns: 0.6555487891803413
{250, 155}
{444, 723}
{986, 909}
{628, 67}
50
1000
782
Returns: 1.9029146346369683
{512, 569}
{750, 807}
{248, 17}
{313, 317}
38
777
761
Returns: 1.4975356537210573
{626, 580}
{14, 950}
{523, 361}
{970, 491}
56
551
1206
Returns: 1.3857946911047354
{580, 734}
{121, 542}
{96, 472}
{628, 538}
10
175
1101
Returns: 0.7513806951097703
{102, 99}
{102, 99}
{100, 1000}
{100, 1000}
5
5
1
Returns: 6.580880229039762
{110, 99}
{110, 99}
{100, 1000}
{100, 1000}
5
5
1
Returns: 14.225468957064285
{99, 110}
{99, 110}
{100, 1000}
{100, 1000}
5
5
1
Returns: 14.225468957064285
{99, 102}
{99, 102}
{100, 1000}
{100, 1000}
5
5
1
Returns: 6.580880229039762
{110, 99}
{110, 99}
{1000, 100}
{1000, 100}
5
5
1
Returns: 14.225468957064285
{102, 99}
{102, 99}
{1000, 100}
{1000, 100}
60
75
1
Returns: 78.41421356237309
{99, 110}
{99, 110}
{1000, 100}
{1000, 100}
5
5
1
Returns: 14.225468957064285
{99, 102}
{99, 102}
{1000, 100}
{1000, 100}
5
5
1
Returns: 6.580880229039762
{110, 99}
{110, 99}
{1000, 100}
{1000, 100}
5
5
1000
Returns: 1.3419834038453877
{99, 110}
{99, 110}
{100, 1000}
{100, 1000}
5
5
1000
Returns: 1.3419834038453877
{99, 110}
{99, 110}
{1000, 100}
{1000, 100}
5
5
1000
Returns: 1.3419834038453877
{1, 499}
{1, 499}
{500, 100}
{500, 100}
5
5
1000
Returns: 0.22334047600826973
{666, 592}
{467, 945}
{324, 72}
{277, 39}
18
5
12
Returns: 60.279626170521894
{311, 158}
{665, 792}
{327, 72}
{282, 277}
39
75
4
Returns: 131.1828023908167
{493, 898}
{892, 825}
{444, 842}
{510, 995}
43
428
16
Returns: 24.787282181231305
{549, 138}
{861, 510}
{784, 527}
{170, 950}
4
54
4
Returns: 146.8916049435139
{580, 655}
{435, 102}
{35, 692}
{5, 861}
8
299
10
Returns: 62.887536379822585
{799, 593}
{253, 772}
{548, 290}
{602, 980}
31
5
100
Returns: 4.815526980749924
{805, 689}
{138, 126}
{926, 633}
{244, 563}
42
11
19
Returns: 20.866489263160574
{20, 9170}
{9630, 310 }
{250, 200}
{ 690, 80}
25
10
1
Returns: 8943.374790240767
{77, 72}
{700, 23}
{934, 1}
{373, 5}
45
17
3
Returns: 233.79768229317838
{940,828}
{696, 892}
{672, 213}
{722, 761}
32
7
8
Returns: 36.90782649077915
{509, 352}
{432, 436}
{531, 638}
{617, 38}
36
9
8
Returns: 33.48793947518758
{37, 91}
{197, 192}
{105, 277}
{989, 490}
27
18
20
Returns: 36.464168070250295
{587, 867}
{669, 520}
{0, 467}
{631, 525}
11
12
18
Returns: 22.780332901208872
{629, 606}
{468, 899}
{543, 742}
{957, 912}
41
18
11
Returns: 42.33368826718356
{760, 8}
{358, 520}
{653, 794}
{517, 518}
50
15
15
Returns: 43.833798447096925
{594, 39}
{744, 537}
{470, 552}
{315, 101}
46
6
1
Returns: 485.5810641426492
{0, 1}
{1, 0}
{1000, 999}
{999, 1000}
43
123
1
Returns: 1413.5160154773887
{456815, 832534}
{38213, 948216}
{935874, 645040}
{755098, 570249}
20
364
1200
Returns: 470.6250246751418
{160402, 709404}
{937929, 37793}
{314873, 741583}
{485621, 999906}
44
116
17
Returns: 35108.31034775473
{96633, 359328}
{572914, 636714}
{941859, 416968}
{205095, 435289}
23
429
8
Returns: 43581.33402605285
{679249, 397219}
{464037, 753847}
{224027, 156094}
{520748, 676981}
53
494
611
Returns: 751.6867586771623
{503361, 632342}
{61996, 617604}
{772566, 403575}
{713756, 187929}
25
256
203
Returns: 837.9706615896297
{393690, 709881}
{772448, 124151}
{997788, 687241}
{642480, 390246}
27
382
7
Returns: 68846.70853586929
{582822, 642804}
{704059, 885958}
{683440, 745942}
{803280, 487038}
40
32
1147
Returns: 123.86715905788805
{467047, 900730}
{52247, 211993}
{920976, 853308}
{706141, 493165}
54
425
865
Returns: 678.5640007445002
{221720, 723910}
{898487, 601444}
{284996, 768025}
{813997, 53194}
38
100
200
Returns: 2438.994859056088
{118773, 180409}
{334539, 375263}
{655599, 724842}
{189468, 413533}
43
884
296
Returns: 1879.3737688880644
{608639, 950449}
{166498, 336403}
{34440, 781674}
{24640, 884863}
37
416
723
Returns: 818.6840930323223
{749284, 801100}
{54567, 174404}
{212147, 841827}
{672840, 944056}
60
201
5
Returns: 163803.0340896901
{976129, 299109}
{962696, 243879}
{625246, 462700}
{275819, 652959}
39
47
187
Returns: 3207.1838868209497
{572549, 495146}
{175895, 498390}
{33026, 20417}
{320019, 948575}
46
43
601
Returns: 929.9536848276779
{264098, 283229}
{239275, 760039}
{182762, 653970}
{227052, 668401}
22
59
94
Returns: 4063.1159399327607
{592834, 619309}
{186537, 575962}
{95779, 420445}
{760856, 536982}
34
175
498
Returns: 784.8045472525982
{892557, 306610}
{201181, 528206}
{744029, 524910}
{737292, 725724}
33
351
24
Returns: 23179.936911927747
{241691, 979646}
{602283, 757268}
{179490, 643265}
{37072, 763623}
41
307
690
Returns: 795.9623548203563
{547064, 170057}
{157667, 972261}
{191936, 214052}
{97778, 338030}
6
469
1466
Returns: 433.76649366782016
{62912, 24566}
{246734, 758519}
{202358, 654540}
{247786, 486300}
10
104
188
Returns: 2876.730703581372
{794605, 186168}
{59047, 552034}
{142006, 927171}
{57602, 529563}
59
327
1296
Returns: 384.00827717893907
{306889, 740796}
{524410, 545881}
{212671, 864319}
{814695, 943768}
59
704
196
Returns: 2126.594181531546
{593118, 238289}
{288823, 871738}
{124882, 395261}
{661000, 289161}
3
15
1026
Returns: 233.3004528499303
{209364, 989328}
{928794, 389607}
{228333, 967076}
{207697, 816830}
38
19
1300
Returns: 555.5152208505549
{389365, 699171}
{665090, 224884}
{113621, 353563}
{861415, 470545}
45
407
838
Returns: 506.742221095199
{231093, 783966}
{742150, 734066}
{915285, 594725}
{503157, 858524}
10
121
1722
Returns: 221.88552155903008
{174423, 978758}
{878814, 738914}
{851163, 631609}
{910449, 153711}
44
330
1703
Returns: 400.2768727529473
{621540, 414716}
{783127, 345609}
{164556, 149}
{598738, 144818}
27
725
1207
Returns: 408.7197381123967
{395543, 763176}
{816796, 802454}
{49115, 105261}
{797205, 601051}
54
70
1955
Returns: 352.8446681689904
{391934, 831708}
{458846, 72545}
{383500, 814951}
{855266, 630382}
9
179
1686
Returns: 331.1634205385538
{490161, 730050}
{205491, 895812}
{518467, 301297}
{338609, 421703}
41
903
1796
Returns: 332.54428673927265
{320189, 163674}
{628521, 195334}
{222000, 871182}
{1413, 795031}
17
479
1562
Returns: 368.7872037808962
{152262, 990915}
{760631, 292707}
{60200, 638898}
{555509, 203034}
37
193
689
Returns: 527.8433097746101
{944143, 110213}
{366744, 217435}
{832173, 269809}
{104560, 1229}
9
274
1289
Returns: 221.32338641495315
{542920, 544149}
{481257, 833575}
{904568, 768513}
{578254, 352994}
47
276
107
Returns: 4128.733738579277
{821735, 475477}
{830329, 839413}
{870081, 395167}
{942794, 925984}
28
289
260
Returns: 471.2979839181147
{100, 100 }
{100, 500 }
{100, 500 }
{300, 300 }
6
10
1
Returns: 210.2
{100, 100 }
{100, 500 }
{100, 500 }
{300, 300 }
60
60
1
Returns: 262.0
{100, 100 }
{500, 100 }
{100, 500 }
{300, 300 }
6
10
1
Returns: 210.2
{102, 103 }
{0, 0 }
{0, 100 }
{0, 0 }
2
6
2
Returns: 7.066666666666666
{100, 100 }
{100, 500 }
{100, 9500 }
{200, 300 }
6
10
1
Returns: 300.1
{100, 500 }
{100, 100 }
{100, 500 }
{300, 300 }
6
10
1
Returns: 200.1
{100, 100 }
{100, 500 }
{500, 100 }
{300, 300 }
6
10
1
Returns: 210.2
{0, 1000000 }
{1, 1000000 }
{0, 0 }
{0, 1000000 }
1
5
1
Returns: 1000000.0166666667
{401, 208 }
{622, 603 }
{51, 387 }
{411, 828 }
59
518
1941
Returns: 1.1111118724871378
{2, 1 }
{1, 1 }
{1000000, 1000000 }
{1000000, 99999 }
1
10
3
Returns: 335005.15767728887
{50, 100 }
{0, 0 }
{10000, 0 }
{10000, 0 }
1
5
1
Returns: 100.01666666666667
{0, 0 }
{14324, 12341 }
{1000000, 1000000 }
{12343, 41341 }
60
5
100
Returns: 10004.648925712057
{0, 0 }
{3, 7 }
{0, 1000000 }
{0, 1000000 }
60
5
1
Returns: 10.0
{0, 0 }
{99, 100 }
{0, 500 }
{0, 500 }
60
50
1
Returns: 151.0
{0, 0 }
{0, 1 }
{1000000, 1000000 }
{100001, 100002 }
6
6
37
Returns: 27161.92869233245
{401123, 208786 }
{622345, 603321 }
{513, 387111 }
{41122, 828134 }
60
1000
2000
Returns: 300.76881013958075
{0, 100000 }
{0, 100000 }
{0, 1 }
{500, 0 }
60
5
1
Returns: 141069.24589538213
{544, 534 }
{234, 199 }
{244, 234 }
{242, 888 }
34
29
99
Returns: 7.877286247610533
{100, 100 }
{101, 1 }
{100, 500 }
{100, 500 }
6
10
1
Returns: 99.1
{100, 500 }
{500, 500 }
{101, 10000 }
{500, 10000 }
10
20
30
Returns: 20.366666666666667
{999999, 1000000 }
{1000000, 1000000 }
{1, 2 }
{2, 1 }
1
5
1
Returns: 1414211.457719595
{1, 1 }
{1, 1000000 }
{2, 1 }
{1, 1000 }
6
10
1
Returns: 999000.1
{0, 0 }
{1000, 5000 }
{0, 1000000 }
{0, 0 }
1
5
1000
Returns: 6.033333333333333
{100, 100 }
{100, 560 }
{100, 600 }
{300, 600 }
6
10
1
Returns: 260.1
{100, 100 }
{100, 500 }
{100, 50050 }
{200, 30030 }
6
10
1
Returns: 300.1
{2000, 12 }
{2000, 10 }
{1000000, 10 }
{1000000, 10 }
1
5
1
Returns: 2814.301655789126
{100, 100 }
{200, 500 }
{100, 500 }
{300, 300 }
6
10
1
Returns: 200.1
{0, 0 }
{3, 7 }
{1000000, 0 }
{1000000, 0 }
60
5
1
Returns: 10.0
{0, 1 }
{1, 0 }
{0, 1000000 }
{0, 1000000 }
6
20
1
Returns: 21.200000000000003
{100, 100 }
{100, 101 }
{500, 95 }
{500, 95 }
6
10
5
Returns: 11.614213562373095
{100, 100 }
{150, 200 }
{100, 100000 }
{100, 100000 }
60
49
1
Returns: 101.0
{6, 1 }
{0, 0 }
{0, 1000000 }
{0, 1000000 }
60
5
1
Returns: 8.0
{100, 500 }
{500, 500 }
{499, 10000 }
{500, 10000 }
10
20
30
Returns: 20.366666666666667
{0, 0 }
{1000, 10000 }
{0, 1000000 }
{0, 0 }
1
5
1000
Returns: 10.016666666666667
{50, 100 }
{2000, 1000 }
{10000, 0 }
{10000, 0 }
1
5
1
Returns: 2000.6415690409224
{1000000, 1000000 }
{1000000, 999999 }
{1, 1 }
{1, 0 }
60
1000
2000
Returns: 708.1060740797662
{100, 10100 }
{100, 10100 }
{500, 10200 }
{100, 10100 }
6
10
1
Returns: 400.1
{100, 100 }
{100, 400 }
{100, 500 }
{300, 300 }
6
10
1
Returns: 200.1
{99, 100 }
{1, 1 }
{1, 1000 }
{1, 1000 }
10
5
2
Returns: 54.33333333333333
{100, 0 }
{0, 200 }
{0, 1000000 }
{0, 1000000 }
6
10
1
Returns: 200.1
{100, 100 }
{90, 315 }
{100, 500 }
{210, 500 }
6
10
1
Returns: 120.1
{1, 1000000 }
{1, 1000000 }
{765432, 523423 }
{574354, 858565 }
60
1000
2000
Returns: 479.4783130848252
{0, 1 }
{0, 0 }
{999999, 1000000 }
{999999, 1000000 }
1
5
1
Returns: 1414212.8719331573
{600000, 999999 }
{600000, 999999 }
{0, 500000 }
{0, 500000 }
30
500
10
Returns: 70711.0366972985
{0, 1 }
{0, 0 }
{1000000, 999999 }
{1000000, 1000000 }
60
1000
1
Returns: 1414213.8552664907
{0, 1000000 }
{0, 1000000 }
{0, 1 }
{1, 0 }
2
10
1
Returns: 1414212.8885998242
{0, 0 }
{1, 1000 }
{0, 100000 }
{0, 100000 }
1
5
1
Returns: 1000.0166666666667
{1000000, 1000000 }
{0, 1 }
{0, 0 }
{0, 1 }
34
22
3
Returns: 333333.89999999997
{0, 10 }
{1, 10 }
{0, 100000 }
{0, 100000 }
1
5
1
Returns: 14.158802290397619