Statistics

Problem Statement for "WeirdTriangle"

Problem Statement

You are given an array L containing N integers. Count the number of ways in which we can choose three indices (i,j,k) such that 0 <= i < j < k <= N-1 and it is possible to constuct a non-degenerate triangle whose side lengths are L[i]+L[j], L[j]+L[k], and L[k]+L[i].

In a non-degenerate triangle, all sides have positive lengths and the triangle has a positive area.

You are given N, the int[] B containing a prefix of L, and ints seed and MX. Use the following pseudocode to generate the array L:

A[0] = seed
for i=1 to N-1:
	A[i] = (A[i-1]*1103515245 + 12345) modulo 2147483648

for i=0 to len(B)-1:
        L[i] = B[i]

for i=len(B) to N-1:
	L[i] = 2*(A[i] modulo MX) - MX + 1

Definition

Class:
WeirdTriangle
Method:
findAllTriangle
Parameters:
int, int[], int, int
Returns:
long
Method signature:
long findAllTriangle(int N, int[] B, int seed, int MX)
(be sure your method is public)

Notes

  • The reference solution would correctly solve any case that matches the constraints. It does not depend on the properties of the pseudorandom generator.

Constraints

  • N will be between 1 and 10,000,000,000,000,000, inclusive.
  • P will be between 1 and 10,000,000,000,000,000, inclusive.
  • K will be between 1 and 1,000, inclusive.
  • Q will be between 1 and 1,000, inclusive.

Examples

  1. 10

    {}

    1750922050

    8

    Returns: 4

  2. 7

    {}

    2075602252

    1

    Returns: 0

  3. 3

    {}

    494950342

    10

    Returns: 0

  4. 8

    {}

    70378672

    1

    Returns: 0

  5. 6

    {}

    264646134

    8

    Returns: 4

  6. 2

    {}

    676091577

    4

    Returns: 0

  7. 10

    {}

    1309482292

    3

    Returns: 1

  8. 2

    {}

    754008222

    10

    Returns: 0

  9. 10

    {}

    1205060313

    10

    Returns: 35

  10. 4

    {}

    1705037773

    9

    Returns: 0

  11. 5

    {}

    2136900802

    6

    Returns: 4

  12. 7

    {}

    1166000150

    7

    Returns: 0

  13. 10

    {}

    212246046

    2

    Returns: 10

  14. 8

    {}

    627040792

    3

    Returns: 4

  15. 9

    {}

    1411469942

    7

    Returns: 0

  16. 9

    {}

    540644843

    8

    Returns: 4

  17. 9

    {}

    653947645

    9

    Returns: 20

  18. 3

    {}

    1874331151

    10

    Returns: 0

  19. 5

    {}

    1127588379

    2

    Returns: 1

  20. 5

    {}

    378547861

    10

    Returns: 0

  21. 878

    {}

    1200488756

    591919704

    Returns: 7583156

  22. 783

    {}

    1654455436

    573133184

    Returns: 10507399

  23. 197

    {}

    1125921982

    443968234

    Returns: 166650

  24. 282

    {}

    761860527

    317419489

    Returns: 302621

  25. 790

    {}

    436660867

    785215622

    Returns: 7840920

  26. 722

    {}

    321452109

    516807615

    Returns: 7711320

  27. 408

    {}

    956976691

    664151721

    Returns: 1235780

  28. 129

    {}

    1047450488

    96979331

    Returns: 50116

  29. 619

    {}

    532092973

    300991558

    Returns: 4965115

  30. 710

    {}

    240310130

    898462571

    Returns: 3697960

  31. 372

    {}

    1865032335

    945249167

    Returns: 573800

  32. 505

    {}

    1034557013

    338164467

    Returns: 2081156

  33. 587

    {}

    518631548

    104258565

    Returns: 3466100

  34. 94

    {}

    1349479681

    515252864

    Returns: 15180

  35. 288

    {}

    500028333

    709593790

    Returns: 573800

  36. 497

    {}

    955817035

    931796815

    Returns: 1975354

  37. 11

    {}

    1201511483

    546198263

    Returns: 20

  38. 883

    {}

    1026808419

    73167262

    Returns: 14985824

  39. 43

    {}

    865795756

    484167898

    Returns: 1330

  40. 28

    {}

    1295542407

    669075737

    Returns: 969

  41. 610

    {}

    1523817532

    468518033

    Returns: 3428425

  42. 313

    {}

    1815017703

    724265351

    Returns: 644956

  43. 894

    {}

    16046445

    736293260

    Returns: 15187425

  44. 399

    {}

    54325464

    578066358

    Returns: 1004731

  45. 226

    {}

    634777297

    845882894

    Returns: 182104

  46. 881

    {}

    2146423612

    868848804

    Returns: 7456420

  47. 470

    {}

    992665623

    59960574

    Returns: 2135445

  48. 694

    {}

    1424252721

    944780527

    Returns: 4869634

  49. 76

    {}

    2132772181

    522132461

    Returns: 5984

  50. 711

    {}

    944713465

    127003263

    Returns: 7207200

  51. 104848

    {}

    1949438613

    606818147

    Returns: 15760547427720

  52. 193189

    {}

    14869290

    545323634

    Returns: 142814623706531

  53. 163115

    {}

    650693027

    217231727

    Returns: 87827649363146

  54. 151685

    {}

    43132439

    803334472

    Returns: 49279084910230

  55. 100670

    {}

    602849813

    590338671

    Returns: 15661127337064

  56. 155373

    {}

    1377440638

    458299728

    Returns: 63947649101160

  57. 116625

    {}

    2023748507

    948952604

    Returns: 23306461165120

  58. 117828

    {}

    1952174195

    597021011

    Returns: 23802971441040

  59. 108294

    {}

    945090185

    840301273

    Returns: 14842852869456

  60. 159475

    {}

    361914252

    218627967

    Returns: 79659162303445

  61. 152070

    {}

    1112731298

    362351933

    Returns: 70771934546764

  62. 156199

    {}

    1621359950

    297472662

    Returns: 72969341185884

  63. 165362

    {}

    1373975591

    532784606

    Returns: 92369524241180

  64. 105087

    {}

    678203608

    736355672

    Returns: 22360447539144

  65. 126115

    {}

    1280364321

    247574369

    Returns: 37155139414540

  66. 164272

    {}

    271121615

    928731693

    Returns: 59937103361464

  67. 150902

    {}

    1514948843

    626995903

    Returns: 47937783289165

  68. 115788

    {}

    1298226314

    382868759

    Returns: 26070880057160

  69. 168295

    {}

    944297987

    262279642

    Returns: 93660826203021

  70. 145379

    {}

    420641150

    766472152

    Returns: 51636912016105

  71. 186943

    {}

    53152274

    686746176

    Returns: 121143948351436

  72. 186716

    {}

    1470432491

    264076384

    Returns: 128532687331660

  73. 176665

    {}

    1147998265

    317445694

    Returns: 103296292581790

  74. 181433

    {}

    1539006921

    702607738

    Returns: 117692969589325

  75. 137177

    {}

    1934432670

    611254313

    Returns: 34913125159935

  76. 198346

    {}

    793053933

    821993910

    Returns: 99927931420324

  77. 194363

    {}

    1188980791

    756851177

    Returns: 127890423877600

  78. 143308

    {}

    1289281920

    215425689

    Returns: 61064234296010

  79. 170485

    {}

    2027162583

    940892359

    Returns: 68370348890304

  80. 160859

    {}

    1096150947

    583509508

    Returns: 64724322028159

  81. 200000

    {}

    1357410167

    1000000000

    Returns: 134735254241210

  82. 200000

    {}

    1841327620

    1000000000

    Returns: 134284499743926

  83. 200000

    {}

    369638263

    1000000000

    Returns: 134245539476244

  84. 200000

    {}

    1869900635

    1000000000

    Returns: 134561767948630

  85. 200000

    {}

    665449132

    1000000000

    Returns: 133877952998159

  86. 200000

    {}

    1341492706

    1000000000

    Returns: 135113101654444

  87. 200000

    {}

    2132616390

    1000000000

    Returns: 135400215268220

  88. 200000

    {}

    925114302

    1000000000

    Returns: 133618884593649

  89. 200000

    {}

    629354088

    1000000000

    Returns: 134301817837760

  90. 200000

    {}

    344393154

    1000000000

    Returns: 133886594373840

  91. 200000

    {}

    263564335

    1000000000

    Returns: 134579109872480

  92. 200000

    {}

    1120867350

    1000000000

    Returns: 132865177840724

  93. 200000

    {}

    1576180211

    1000000000

    Returns: 134267183138924

  94. 200000

    {}

    1747486995

    1000000000

    Returns: 135239207594396

  95. 200000

    {}

    1905566284

    1000000000

    Returns: 133817473779240

  96. 200000

    {}

    862900849

    1000000000

    Returns: 134094098960584

  97. 200000

    {}

    1250058840

    1000000000

    Returns: 135034868445400

  98. 200000

    {}

    1089798308

    1000000000

    Returns: 135413275542336

  99. 200000

    {}

    1197974970

    1000000000

    Returns: 133990319887820

  100. 200000

    {}

    2144832642

    1000000000

    Returns: 134813371696475

  101. 200000

    {}

    1400364773

    1000000000

    Returns: 131716432167320

  102. 200000

    {}

    2029146920

    1000000000

    Returns: 134011936110780

  103. 200000

    {}

    1655267225

    1000000000

    Returns: 135670298301740

  104. 200000

    {}

    350219294

    1000000000

    Returns: 134345119586405

  105. 200000

    {}

    1045239213

    1000000000

    Returns: 135047905215854

  106. 200000

    {}

    219528633

    1000000000

    Returns: 132088616998591

  107. 200000

    {}

    2011090959

    1000000000

    Returns: 134774309195660

  108. 200000

    {}

    1468167105

    1000000000

    Returns: 135300114397395

  109. 200000

    {}

    187060233

    1000000000

    Returns: 135849098736186

  110. 200000

    {}

    977976402

    1000000000

    Returns: 133623199659300

  111. 200000

    {}

    2072095429

    1000000000

    Returns: 135805474397901

  112. 200000

    {}

    412774151

    1000000000

    Returns: 134974041276620

  113. 200000

    {}

    2125840146

    1000000000

    Returns: 133942772379724

  114. 200000

    {}

    540967508

    1000000000

    Returns: 134822053277100

  115. 200000

    {}

    170509160

    1000000000

    Returns: 135060942825360

  116. 200000

    {}

    471757619

    1000000000

    Returns: 134016259634335

  117. 200000

    {}

    306130985

    1000000000

    Returns: 134457747690266

  118. 200000

    {}

    133300994

    1000000000

    Returns: 133795878473180

  119. 200000

    {}

    1053264425

    1000000000

    Returns: 134206586745045

  120. 200000

    {}

    1878683563

    1000000000

    Returns: 133502412933240

  121. 200000

    {}

    1202573680

    1000000000

    Returns: 134340788992760

  122. 200000

    {}

    1783925253

    1000000000

    Returns: 135617996162320

  123. 200000

    {}

    570529854

    1000000000

    Returns: 134566103289916

  124. 200000

    {}

    1894469241

    1000000000

    Returns: 133265365250280

  125. 200000

    {}

    1810761295

    1000000000

    Returns: 132933970147780

  126. 200000

    {}

    1500046312

    1000000000

    Returns: 133929806830005

  127. 200000

    {}

    1845972063

    1000000000

    Returns: 135587492789476

  128. 200000

    {}

    100541644

    1000000000

    Returns: 133450669483820

  129. 200000

    {}

    637357039

    1000000000

    Returns: 135465525037150

  130. 200000

    {}

    2092373660

    1000000000

    Returns: 134739593307956

  131. 200000

    {}

    980055881

    1000000000

    Returns: 135792388917800

  132. 200000

    {}

    1301607285

    1000000000

    Returns: 134765629664764

  133. 200000

    {}

    1298279874

    1000000000

    Returns: 134184949595060

  134. 200000

    {}

    1745660406

    1000000000

    Returns: 134739593307956

  135. 200000

    {}

    1137842239

    1000000000

    Returns: 134657166968489

  136. 200000

    {}

    823326571

    1000000000

    Returns: 133774285490595

  137. 200000

    {}

    1727941113

    1000000000

    Returns: 133446358133309

  138. 200000

    {}

    835551276

    1000000000

    Returns: 135004452577169

  139. 200000

    {}

    1805134212

    1000000000

    Returns: 134730915267620

  140. 200000

    {}

    378702407

    1000000000

    Returns: 134375436347824

  141. 200000

    {}

    1399612940

    1000000000

    Returns: 135740055403036

  142. 200000

    {}

    1415003740

    1000000000

    Returns: 134418753918284

  143. 200000

    {}

    1000635618

    1000000000

    Returns: 136727930133964

  144. 200000

    {}

    843485896

    1000000000

    Returns: 133239522491365

  145. 200000

    {}

    339297542

    1000000000

    Returns: 134947978082820

  146. 200000

    {}

    857122854

    1000000000

    Returns: 135000107826016

  147. 200000

    {984318927, 276683799, 537606889, 345598068, 319665682, 925880661, 918162212, 205615200, 417866444, 288849361, 651164576, 43836185, 83709695, 951092754, 271997836, 170681446, 656404863, 632136226, 104326044, 633925452, 200719182, 466081518, 408275179, 490432853, 387286117, 12845510, 958433643, 144755732, 985359531, 972181164, 279894601, 572306860, 299008902, 556356824, 266164049, 924537189, 233087990, 983993523, 850401612, 844772997, 444573491, 619485010, 842366007, 423229812, 119961382, 367702065, 230508372, 896650539, 764997128, 811489387, 326089113, 918907360, 911415908, 77759800, 31777102, 78799893, 944025028, 527678321, 749729433, 629787602, 993762040, 551064628, 29160255, 385576524, 21977171, 894099937, 97274455, 761943618, 880152010, 655594069, 404088197, 540614434, 264136423, 671365064, 432932637, 327608327, 625017379, 352265226, 688993713, 665911374, 135388687, 228135002, 477855651, 334518329, 251258840, 717797956, 160128989, 523449605, 382888282, 326305129, 53478520, 646812009, 762342359, 620808336, 632743553, 193029272, 145880074, 388948384, 443844578, 710303617}

    1265206609

    1000000000

    Returns: 135966931111680

  148. 200000

    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

    79772418

    1000000000

    Returns: 134327797770211

  149. 200000

    {-893407457, -210839383, -366045207, -110269421, -343408817, -385872951, -384139358, -946502183, -637952935, -748037738, -446672845, -343351919, -166356557, -695052450, -100532707, -523414318, -143645646, -459557726, -106127319, -374503879, -161046129, -576481927, -632006091, -970892592, -518340399, -493646128, -250287549, -320497114, -582006821, -124739221, -60895614, -991857462, -168030565, -515934470, -527248709, -347189703, -499695231, -351486947, -75821041, -739598422, -398068283, -868308617, -9304690, -811517391, -508393875, -840650024, -633188511, -852891883, -969204972, -985672256, -968173052, -702846104, -832791731, -653358308, -329348626, -89752026, -370039030, -247079471, -307662208, -625157659, -962226996, -33106926, -768172664, -87554133, -367672171, -709127843, -652746619, -800888813, -294375882, -506867661, -175532033, -843152922, -670255444, -18806398, -129099879, -1402459, -210528658, -560227844, -491608326, -437451061, -912721696, -843167471, -645269876, -448420540, -22076158, -778220396, -293501427, -584335233, -522370692, -205280400, -436867751, -339844838, -757711291, -93598233, -980699401, -134620042, -973646635, -255275719, -247172934, -609073943}

    1713629187

    1000000000

    Returns: 133964383488729

  150. 3

    {-2, -3, -5}

    0

    10

    Returns: 0

    L = B = {-2, -3, -5}. The only triple of indices is (0,1,2), but the corresponding side lengths are -5, -8, and -7. A non-degenerate triangle must have positive side lengths, so there are no valid triples of indices and the answer is zero.

  151. 4

    {1, 4, 6}

    200

    100

    Returns: 1

    Here, L = {1, 4, 6, -45}. The triple (i,j,k) = (0,1,2) gives us edge lengths 5, 10, and 7. These are indeed side lengths of a non-degenerate triangle. For any other triple of indices two of the side lengths will be negative, so there are no other valid triples.

  152. 3

    {2,10,16}

    0

    20

    Returns: 1

    Here we can prove that the triplet (0,1,2) is valid, so the answer is 1.

  153. 2

    {5,6}

    0

    10

    Returns: 0

    Since N=2, there are no triples of indices, hence the answer is zero.

  154. 200000

    {}

    777818934

    1000000000

    Returns: 133390319026380

    Note that B may be empty.

  155. 200000

    { }

    777818934

    1000000000

    Returns: 133390319026380

  156. 200000

    {-2, -3, -5 }

    0

    10

    Returns: 166386823420740

  157. 5

    {0, 0, 0, 0, 0 }

    0

    30

    Returns: 0

  158. 3

    {-2, -3, -5 }

    0

    10

    Returns: 0


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: