Statistics

Problem Statement for "FeudaliasBattle"

Problem Statement

Feudalia's military is preparing a preemptive strike against Banania's military installations. Feudalia has two missile silos. Each silo has an unlimited number of missiles at its disposal, but can only fire a single missile at a time. When a missile is fired, it requires takeOffTime seconds before it can take off from its silo. Once it takes off, it requires distance/missileSpeed minutes to reach its target, where distance is the Euclidean distance between the silo and the target. When the missile reaches its target, the target is instantly destroyed. After a missile takes off, its silo requires rechargeTime minutes of preparation before it can launch another missile.

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 int[]s siloX, siloY, baseX and baseY. Your silos are located at (siloX[0], siloY[0]) and (siloX[1], siloY[1]), and the enemy bases are located at (baseX[0], baseY[0]) and (baseX[1], baseY[1]). Return the minimum time in minutes required to destroy both enemy bases.

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

  1. {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.

  2. {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.

  3. {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.

  4. {100,100}

    {100, 200}

    {100,100}

    {300, 400}

    30

    500

    10

    Returns: 20.5

  5. {100,100}

    {100, 200}

    {100,100}

    {400, 300}

    30

    500

    10

    Returns: 20.5

  6. {100,100}

    {1000,100}

    {1000,1000}

    {1000,100}

    59

    500

    30

    Returns: 30.983333333333334

  7. {0,0}

    {0,1}

    {1000000,1000000}

    {999999,1000000}

    30

    10

    1

    Returns: 1414213.3552664907

    A large result.

  8. {401, 208}

    {622, 603}

    {51, 387}

    {411, 828}

    59

    518

    1941

    Returns: 1.1111118724871378

  9. {901, 411}

    {123, 218}

    {965, 300}

    {430, 367}

    40

    86

    691

    Returns: 1.1205017806688429

  10. {916, 90}

    {142, 186}

    {937, 847}

    {667, 699}

    58

    741

    196

    Returns: 5.6322256524398915

  11. {668, 131}

    {68, 187}

    {910, 928}

    {882, 159}

    8

    335

    475

    Returns: 1.9211468046748625

  12. {472, 989}

    {257, 165}

    {360, 658}

    {942, 628}

    39

    30

    888

    Returns: 1.4316394309814018

  13. {358, 157}

    {872, 469}

    {41, 579}

    {302, 154}

    9

    706

    866

    Returns: 0.903139170511309

  14. {484, 125}

    {111, 439}

    {257, 299}

    {266, 676}

    43

    704

    329

    Returns: 1.6103302099008272

  15. {714, 368}

    {264, 617}

    {592, 263}

    {932, 165}

    57

    107

    741

    Returns: 1.573128233414221

  16. {793, 325}

    {896, 465}

    {197, 22}

    {345, 150}

    44

    953

    667

    Returns: 1.9502380226015523

  17. {656, 725}

    {981, 385}

    {454, 92}

    {416, 840}

    11

    98

    966

    Returns: 0.7851530985632403

  18. {46, 91}

    {49, 61}

    {55, 88}

    {96, 15}

    23

    927

    1131

    Returns: 0.4256445132237149

  19. {98, 26}

    {7, 36}

    {24, 6}

    {91, 97}

    18

    858

    868

    Returns: 0.42897052506135047

  20. {53, 53}

    {61, 28}

    {81, 31}

    {84, 18}

    10

    842

    1340

    Returns: 0.1937079665651643

  21. {14, 960}

    {483, 197}

    {869, 475}

    {983, 218}

    41

    396

    1719

    Returns: 1.143630178278794

  22. {29, 98}

    {770, 928}

    {515, 89}

    {774, 540}

    23

    613

    1633

    Returns: 0.6555487891803413

  23. {250, 155}

    {444, 723}

    {986, 909}

    {628, 67}

    50

    1000

    782

    Returns: 1.9029146346369683

  24. {512, 569}

    {750, 807}

    {248, 17}

    {313, 317}

    38

    777

    761

    Returns: 1.4975356537210573

  25. {626, 580}

    {14, 950}

    {523, 361}

    {970, 491}

    56

    551

    1206

    Returns: 1.3857946911047354

  26. {580, 734}

    {121, 542}

    {96, 472}

    {628, 538}

    10

    175

    1101

    Returns: 0.7513806951097703

  27. {102, 99}

    {102, 99}

    {100, 1000}

    {100, 1000}

    5

    5

    1

    Returns: 6.580880229039762

  28. {110, 99}

    {110, 99}

    {100, 1000}

    {100, 1000}

    5

    5

    1

    Returns: 14.225468957064285

  29. {99, 110}

    {99, 110}

    {100, 1000}

    {100, 1000}

    5

    5

    1

    Returns: 14.225468957064285

  30. {99, 102}

    {99, 102}

    {100, 1000}

    {100, 1000}

    5

    5

    1

    Returns: 6.580880229039762

  31. {110, 99}

    {110, 99}

    {1000, 100}

    {1000, 100}

    5

    5

    1

    Returns: 14.225468957064285

  32. {102, 99}

    {102, 99}

    {1000, 100}

    {1000, 100}

    60

    75

    1

    Returns: 78.41421356237309

  33. {99, 110}

    {99, 110}

    {1000, 100}

    {1000, 100}

    5

    5

    1

    Returns: 14.225468957064285

  34. {99, 102}

    {99, 102}

    {1000, 100}

    {1000, 100}

    5

    5

    1

    Returns: 6.580880229039762

  35. {110, 99}

    {110, 99}

    {1000, 100}

    {1000, 100}

    5

    5

    1000

    Returns: 1.3419834038453877

  36. {99, 110}

    {99, 110}

    {100, 1000}

    {100, 1000}

    5

    5

    1000

    Returns: 1.3419834038453877

  37. {99, 110}

    {99, 110}

    {1000, 100}

    {1000, 100}

    5

    5

    1000

    Returns: 1.3419834038453877

  38. {1, 499}

    {1, 499}

    {500, 100}

    {500, 100}

    5

    5

    1000

    Returns: 0.22334047600826973

  39. {666, 592}

    {467, 945}

    {324, 72}

    {277, 39}

    18

    5

    12

    Returns: 60.279626170521894

  40. {311, 158}

    {665, 792}

    {327, 72}

    {282, 277}

    39

    75

    4

    Returns: 131.1828023908167

  41. {493, 898}

    {892, 825}

    {444, 842}

    {510, 995}

    43

    428

    16

    Returns: 24.787282181231305

  42. {549, 138}

    {861, 510}

    {784, 527}

    {170, 950}

    4

    54

    4

    Returns: 146.8916049435139

  43. {580, 655}

    {435, 102}

    {35, 692}

    {5, 861}

    8

    299

    10

    Returns: 62.887536379822585

  44. {799, 593}

    {253, 772}

    {548, 290}

    {602, 980}

    31

    5

    100

    Returns: 4.815526980749924

  45. {805, 689}

    {138, 126}

    {926, 633}

    {244, 563}

    42

    11

    19

    Returns: 20.866489263160574

  46. {20, 9170}

    {9630, 310 }

    {250, 200}

    { 690, 80}

    25

    10

    1

    Returns: 8943.374790240767

  47. {77, 72}

    {700, 23}

    {934, 1}

    {373, 5}

    45

    17

    3

    Returns: 233.79768229317838

  48. {940,828}

    {696, 892}

    {672, 213}

    {722, 761}

    32

    7

    8

    Returns: 36.90782649077915

  49. {509, 352}

    {432, 436}

    {531, 638}

    {617, 38}

    36

    9

    8

    Returns: 33.48793947518758

  50. {37, 91}

    {197, 192}

    {105, 277}

    {989, 490}

    27

    18

    20

    Returns: 36.464168070250295

  51. {587, 867}

    {669, 520}

    {0, 467}

    {631, 525}

    11

    12

    18

    Returns: 22.780332901208872

  52. {629, 606}

    {468, 899}

    {543, 742}

    {957, 912}

    41

    18

    11

    Returns: 42.33368826718356

  53. {760, 8}

    {358, 520}

    {653, 794}

    {517, 518}

    50

    15

    15

    Returns: 43.833798447096925

  54. {594, 39}

    {744, 537}

    {470, 552}

    {315, 101}

    46

    6

    1

    Returns: 485.5810641426492

  55. {0, 1}

    {1, 0}

    {1000, 999}

    {999, 1000}

    43

    123

    1

    Returns: 1413.5160154773887

  56. {456815, 832534}

    {38213, 948216}

    {935874, 645040}

    {755098, 570249}

    20

    364

    1200

    Returns: 470.6250246751418

  57. {160402, 709404}

    {937929, 37793}

    {314873, 741583}

    {485621, 999906}

    44

    116

    17

    Returns: 35108.31034775473

  58. {96633, 359328}

    {572914, 636714}

    {941859, 416968}

    {205095, 435289}

    23

    429

    8

    Returns: 43581.33402605285

  59. {679249, 397219}

    {464037, 753847}

    {224027, 156094}

    {520748, 676981}

    53

    494

    611

    Returns: 751.6867586771623

  60. {503361, 632342}

    {61996, 617604}

    {772566, 403575}

    {713756, 187929}

    25

    256

    203

    Returns: 837.9706615896297

  61. {393690, 709881}

    {772448, 124151}

    {997788, 687241}

    {642480, 390246}

    27

    382

    7

    Returns: 68846.70853586929

  62. {582822, 642804}

    {704059, 885958}

    {683440, 745942}

    {803280, 487038}

    40

    32

    1147

    Returns: 123.86715905788805

  63. {467047, 900730}

    {52247, 211993}

    {920976, 853308}

    {706141, 493165}

    54

    425

    865

    Returns: 678.5640007445002

  64. {221720, 723910}

    {898487, 601444}

    {284996, 768025}

    {813997, 53194}

    38

    100

    200

    Returns: 2438.994859056088

  65. {118773, 180409}

    {334539, 375263}

    {655599, 724842}

    {189468, 413533}

    43

    884

    296

    Returns: 1879.3737688880644

  66. {608639, 950449}

    {166498, 336403}

    {34440, 781674}

    {24640, 884863}

    37

    416

    723

    Returns: 818.6840930323223

  67. {749284, 801100}

    {54567, 174404}

    {212147, 841827}

    {672840, 944056}

    60

    201

    5

    Returns: 163803.0340896901

  68. {976129, 299109}

    {962696, 243879}

    {625246, 462700}

    {275819, 652959}

    39

    47

    187

    Returns: 3207.1838868209497

  69. {572549, 495146}

    {175895, 498390}

    {33026, 20417}

    {320019, 948575}

    46

    43

    601

    Returns: 929.9536848276779

  70. {264098, 283229}

    {239275, 760039}

    {182762, 653970}

    {227052, 668401}

    22

    59

    94

    Returns: 4063.1159399327607

  71. {592834, 619309}

    {186537, 575962}

    {95779, 420445}

    {760856, 536982}

    34

    175

    498

    Returns: 784.8045472525982

  72. {892557, 306610}

    {201181, 528206}

    {744029, 524910}

    {737292, 725724}

    33

    351

    24

    Returns: 23179.936911927747

  73. {241691, 979646}

    {602283, 757268}

    {179490, 643265}

    {37072, 763623}

    41

    307

    690

    Returns: 795.9623548203563

  74. {547064, 170057}

    {157667, 972261}

    {191936, 214052}

    {97778, 338030}

    6

    469

    1466

    Returns: 433.76649366782016

  75. {62912, 24566}

    {246734, 758519}

    {202358, 654540}

    {247786, 486300}

    10

    104

    188

    Returns: 2876.730703581372

  76. {794605, 186168}

    {59047, 552034}

    {142006, 927171}

    {57602, 529563}

    59

    327

    1296

    Returns: 384.00827717893907

  77. {306889, 740796}

    {524410, 545881}

    {212671, 864319}

    {814695, 943768}

    59

    704

    196

    Returns: 2126.594181531546

  78. {593118, 238289}

    {288823, 871738}

    {124882, 395261}

    {661000, 289161}

    3

    15

    1026

    Returns: 233.3004528499303

  79. {209364, 989328}

    {928794, 389607}

    {228333, 967076}

    {207697, 816830}

    38

    19

    1300

    Returns: 555.5152208505549

  80. {389365, 699171}

    {665090, 224884}

    {113621, 353563}

    {861415, 470545}

    45

    407

    838

    Returns: 506.742221095199

  81. {231093, 783966}

    {742150, 734066}

    {915285, 594725}

    {503157, 858524}

    10

    121

    1722

    Returns: 221.88552155903008

  82. {174423, 978758}

    {878814, 738914}

    {851163, 631609}

    {910449, 153711}

    44

    330

    1703

    Returns: 400.2768727529473

  83. {621540, 414716}

    {783127, 345609}

    {164556, 149}

    {598738, 144818}

    27

    725

    1207

    Returns: 408.7197381123967

  84. {395543, 763176}

    {816796, 802454}

    {49115, 105261}

    {797205, 601051}

    54

    70

    1955

    Returns: 352.8446681689904

  85. {391934, 831708}

    {458846, 72545}

    {383500, 814951}

    {855266, 630382}

    9

    179

    1686

    Returns: 331.1634205385538

  86. {490161, 730050}

    {205491, 895812}

    {518467, 301297}

    {338609, 421703}

    41

    903

    1796

    Returns: 332.54428673927265

  87. {320189, 163674}

    {628521, 195334}

    {222000, 871182}

    {1413, 795031}

    17

    479

    1562

    Returns: 368.7872037808962

  88. {152262, 990915}

    {760631, 292707}

    {60200, 638898}

    {555509, 203034}

    37

    193

    689

    Returns: 527.8433097746101

  89. {944143, 110213}

    {366744, 217435}

    {832173, 269809}

    {104560, 1229}

    9

    274

    1289

    Returns: 221.32338641495315

  90. {542920, 544149}

    {481257, 833575}

    {904568, 768513}

    {578254, 352994}

    47

    276

    107

    Returns: 4128.733738579277

  91. {821735, 475477}

    {830329, 839413}

    {870081, 395167}

    {942794, 925984}

    28

    289

    260

    Returns: 471.2979839181147

  92. {100, 100 }

    {100, 500 }

    {100, 500 }

    {300, 300 }

    6

    10

    1

    Returns: 210.2

  93. {100, 100 }

    {100, 500 }

    {100, 500 }

    {300, 300 }

    60

    60

    1

    Returns: 262.0

  94. {100, 100 }

    {500, 100 }

    {100, 500 }

    {300, 300 }

    6

    10

    1

    Returns: 210.2

  95. {102, 103 }

    {0, 0 }

    {0, 100 }

    {0, 0 }

    2

    6

    2

    Returns: 7.066666666666666

  96. {100, 100 }

    {100, 500 }

    {100, 9500 }

    {200, 300 }

    6

    10

    1

    Returns: 300.1

  97. {100, 500 }

    {100, 100 }

    {100, 500 }

    {300, 300 }

    6

    10

    1

    Returns: 200.1

  98. {100, 100 }

    {100, 500 }

    {500, 100 }

    {300, 300 }

    6

    10

    1

    Returns: 210.2

  99. {0, 1000000 }

    {1, 1000000 }

    {0, 0 }

    {0, 1000000 }

    1

    5

    1

    Returns: 1000000.0166666667

  100. {401, 208 }

    {622, 603 }

    {51, 387 }

    {411, 828 }

    59

    518

    1941

    Returns: 1.1111118724871378

  101. {2, 1 }

    {1, 1 }

    {1000000, 1000000 }

    {1000000, 99999 }

    1

    10

    3

    Returns: 335005.15767728887

  102. {50, 100 }

    {0, 0 }

    {10000, 0 }

    {10000, 0 }

    1

    5

    1

    Returns: 100.01666666666667

  103. {0, 0 }

    {14324, 12341 }

    {1000000, 1000000 }

    {12343, 41341 }

    60

    5

    100

    Returns: 10004.648925712057

  104. {0, 0 }

    {3, 7 }

    {0, 1000000 }

    {0, 1000000 }

    60

    5

    1

    Returns: 10.0

  105. {0, 0 }

    {99, 100 }

    {0, 500 }

    {0, 500 }

    60

    50

    1

    Returns: 151.0

  106. {0, 0 }

    {0, 1 }

    {1000000, 1000000 }

    {100001, 100002 }

    6

    6

    37

    Returns: 27161.92869233245

  107. {401123, 208786 }

    {622345, 603321 }

    {513, 387111 }

    {41122, 828134 }

    60

    1000

    2000

    Returns: 300.76881013958075

  108. {0, 100000 }

    {0, 100000 }

    {0, 1 }

    {500, 0 }

    60

    5

    1

    Returns: 141069.24589538213

  109. {544, 534 }

    {234, 199 }

    {244, 234 }

    {242, 888 }

    34

    29

    99

    Returns: 7.877286247610533

  110. {100, 100 }

    {101, 1 }

    {100, 500 }

    {100, 500 }

    6

    10

    1

    Returns: 99.1

  111. {100, 500 }

    {500, 500 }

    {101, 10000 }

    {500, 10000 }

    10

    20

    30

    Returns: 20.366666666666667

  112. {999999, 1000000 }

    {1000000, 1000000 }

    {1, 2 }

    {2, 1 }

    1

    5

    1

    Returns: 1414211.457719595

  113. {1, 1 }

    {1, 1000000 }

    {2, 1 }

    {1, 1000 }

    6

    10

    1

    Returns: 999000.1

  114. {0, 0 }

    {1000, 5000 }

    {0, 1000000 }

    {0, 0 }

    1

    5

    1000

    Returns: 6.033333333333333

  115. {100, 100 }

    {100, 560 }

    {100, 600 }

    {300, 600 }

    6

    10

    1

    Returns: 260.1

  116. {100, 100 }

    {100, 500 }

    {100, 50050 }

    {200, 30030 }

    6

    10

    1

    Returns: 300.1

  117. {2000, 12 }

    {2000, 10 }

    {1000000, 10 }

    {1000000, 10 }

    1

    5

    1

    Returns: 2814.301655789126

  118. {100, 100 }

    {200, 500 }

    {100, 500 }

    {300, 300 }

    6

    10

    1

    Returns: 200.1

  119. {0, 0 }

    {3, 7 }

    {1000000, 0 }

    {1000000, 0 }

    60

    5

    1

    Returns: 10.0

  120. {0, 1 }

    {1, 0 }

    {0, 1000000 }

    {0, 1000000 }

    6

    20

    1

    Returns: 21.200000000000003

  121. {100, 100 }

    {100, 101 }

    {500, 95 }

    {500, 95 }

    6

    10

    5

    Returns: 11.614213562373095

  122. {100, 100 }

    {150, 200 }

    {100, 100000 }

    {100, 100000 }

    60

    49

    1

    Returns: 101.0

  123. {6, 1 }

    {0, 0 }

    {0, 1000000 }

    {0, 1000000 }

    60

    5

    1

    Returns: 8.0

  124. {100, 500 }

    {500, 500 }

    {499, 10000 }

    {500, 10000 }

    10

    20

    30

    Returns: 20.366666666666667

  125. {0, 0 }

    {1000, 10000 }

    {0, 1000000 }

    {0, 0 }

    1

    5

    1000

    Returns: 10.016666666666667

  126. {50, 100 }

    {2000, 1000 }

    {10000, 0 }

    {10000, 0 }

    1

    5

    1

    Returns: 2000.6415690409224

  127. {1000000, 1000000 }

    {1000000, 999999 }

    {1, 1 }

    {1, 0 }

    60

    1000

    2000

    Returns: 708.1060740797662

  128. {100, 10100 }

    {100, 10100 }

    {500, 10200 }

    {100, 10100 }

    6

    10

    1

    Returns: 400.1

  129. {100, 100 }

    {100, 400 }

    {100, 500 }

    {300, 300 }

    6

    10

    1

    Returns: 200.1

  130. {99, 100 }

    {1, 1 }

    {1, 1000 }

    {1, 1000 }

    10

    5

    2

    Returns: 54.33333333333333

  131. {100, 0 }

    {0, 200 }

    {0, 1000000 }

    {0, 1000000 }

    6

    10

    1

    Returns: 200.1

  132. {100, 100 }

    {90, 315 }

    {100, 500 }

    {210, 500 }

    6

    10

    1

    Returns: 120.1

  133. {1, 1000000 }

    {1, 1000000 }

    {765432, 523423 }

    {574354, 858565 }

    60

    1000

    2000

    Returns: 479.4783130848252

  134. {0, 1 }

    {0, 0 }

    {999999, 1000000 }

    {999999, 1000000 }

    1

    5

    1

    Returns: 1414212.8719331573

  135. {600000, 999999 }

    {600000, 999999 }

    {0, 500000 }

    {0, 500000 }

    30

    500

    10

    Returns: 70711.0366972985

  136. {0, 1 }

    {0, 0 }

    {1000000, 999999 }

    {1000000, 1000000 }

    60

    1000

    1

    Returns: 1414213.8552664907

  137. {0, 1000000 }

    {0, 1000000 }

    {0, 1 }

    {1, 0 }

    2

    10

    1

    Returns: 1414212.8885998242

  138. {0, 0 }

    {1, 1000 }

    {0, 100000 }

    {0, 100000 }

    1

    5

    1

    Returns: 1000.0166666666667

  139. {1000000, 1000000 }

    {0, 1 }

    {0, 0 }

    {0, 1 }

    34

    22

    3

    Returns: 333333.89999999997

  140. {0, 10 }

    {1, 10 }

    {0, 100000 }

    {0, 100000 }

    1

    5

    1

    Returns: 14.158802290397619


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: