Statistics

Problem Statement for "NoQuickGrowth"

Problem Statement

The sequence S is growing too quickly if you can point to two of its elements S[i] and S[j] with i < j such that the difference S[j] - S[i] is greater than 10*(j-i).


(Note that the difference can be negative, which is allowed. For example, the sequence {500, 400, 300, 200, 100} isn't growing too quickly.)


You are given a sequence A of N integers. You have a blaster. In each step, you can use the blaster to shoot any element of A. When you do so, you may choose an arbitrary new integer value for that element.


Return the minimum number of shots needed to turn A into a sequence that isn't growing too quickly.


In order to keep the input size small, the sequence A will be pseudorandomly generated. Please use the pseudocode below.

state = seed
for i = 0 to N-1:
    state = (state * 1103515245 + 12345) modulo 2^31
    diff = state modulo (2*spread + 1)
    A[i] = i*delta + diff - spread

Definition

Class:
NoQuickGrowth
Method:
solve
Parameters:
int, int, int, int
Returns:
int
Method signature:
int solve(int N, int delta, int spread, int seed)
(be sure your method is public)

Notes

  • The reference solution does not depend on any properties of the pseudorandom input. It would correctly solve any input of the given size.

Constraints

  • N will be between 1 and 200,000, inclusive.
  • delta will be between -20 and 20, inclusive.
  • spread will be between 0 and 10^7, inclusive.
  • seed will be between 0 and 2^31 - 1, inclusive.

Examples

  1. 7

    10

    0

    47

    Returns: 0

    The sequence is A = {0, 10, 20, 30, 40, 50, 60}. We do not need to use the blaster.

  2. 7

    11

    0

    47

    Returns: 6

    The sequence is A = {0, 11, 22, 33, 44, 55, 66}. We have to blast at least 6 of its 7 elements. One valid solution that uses blaster six times is to turn the sequence into {22, 22, 22, 23, 23, 23, -47}.

  3. 7

    -3

    10000000

    4747

    Returns: 4

    The pseudocode should produce the following sequence: A = {4262855, 5911200, 6624873, -1410345, 1378369, -6155535, -1297177}.

  4. 10

    10

    10

    4747

    Returns: 4

  5. 200000

    10

    0

    42

    Returns: 0

  6. 200000

    10

    47

    47

    Returns: 197045

  7. 200000

    9

    47

    47

    Returns: 160253

  8. 200000

    -9

    10

    235

    Returns: 444

  9. 200000

    11

    100

    324545

    Returns: 199980

  10. 200000

    -11

    1

    244

    Returns: 0

  11. 200000

    -11

    11

    32535

    Returns: 381

  12. 14

    0

    8

    1948501517

    Returns: 1

  13. 31

    9

    8

    1660249968

    Returns: 15

  14. 49

    11

    12

    1797583853

    Returns: 44

  15. 16

    11

    4

    2068253425

    Returns: 13

  16. 10

    -11

    5

    1836955051

    Returns: 0

  17. 25

    -9

    8

    1542245923

    Returns: 0

  18. 25

    11

    8

    1607036031

    Returns: 20

  19. 48

    9

    8

    841741944

    Returns: 24

  20. 12

    10

    5

    420679459

    Returns: 6

  21. 47

    0

    8

    1085916001

    Returns: 4

  22. 183181

    -10

    3

    1438208187

    Returns: 0

  23. 187161

    0

    11

    473072173

    Returns: 27480

  24. 193653

    -9

    5

    1229727803

    Returns: 0

  25. 187830

    -11

    8

    1123519141

    Returns: 0

  26. 191696

    -9

    9

    172270288

    Returns: 0

  27. 195857

    9

    9

    1698564564

    Returns: 112894

  28. 188527

    -10

    8

    948917258

    Returns: 0

  29. 199868

    11

    10

    889428824

    Returns: 199859

  30. 192447

    0

    4

    640818900

    Returns: 0

  31. 194545

    11

    2

    355519765

    Returns: 194540

  32. 182444

    9

    8

    2046595582

    Returns: 101092

  33. 194274

    9

    12

    142514072

    Returns: 121571

  34. 199916

    9

    10

    2026408624

    Returns: 118906

  35. 190321

    -11

    0

    1043761029

    Returns: 0

  36. 186925

    9

    6

    790342737

    Returns: 92983

  37. 185789

    0

    3

    549224465

    Returns: 0

  38. 183224

    10

    11

    1477705088

    Returns: 174486

  39. 197281

    0

    1

    1146177193

    Returns: 0

  40. 194546

    11

    10

    525600088

    Returns: 194537

  41. 193568

    11

    5

    88998632

    Returns: 193561

  42. 188658

    11

    2

    778158833

    Returns: 188653

  43. 196766

    -11

    7

    863925910

    Returns: 0

  44. 196210

    -9

    7

    42895311

    Returns: 0

  45. 182419

    10

    2

    1453170456

    Returns: 145446

  46. 181529

    -9

    3

    263002937

    Returns: 0

  47. 192410

    11

    0

    380485713

    Returns: 192409

  48. 189919

    11

    8

    1321413367

    Returns: 189910

  49. 187835

    -9

    11

    649419618

    Returns: 2076

  50. 198020

    -9

    12

    1173215853

    Returns: 4780

  51. 198705

    11

    9

    2109919775

    Returns: 198696

  52. 191230

    -9

    0

    492182829

    Returns: 0

  53. 193548

    0

    5

    1300568894

    Returns: 0

  54. 198491

    -11

    12

    2101334812

    Returns: 1890

  55. 199584

    10

    1

    502796335

    Returns: 132609

  56. 195114

    -10

    12

    1948911863

    Returns: 3134

  57. 180585

    0

    12

    284290351

    Returns: 30341

  58. 189425

    -11

    11

    2105402687

    Returns: 319

  59. 196462

    11

    12

    1052781061

    Returns: 196452

  60. 191540

    -11

    5

    716905769

    Returns: 0

  61. 195157

    11

    9

    421704849

    Returns: 195148

  62. 195055

    0

    4

    102151484

    Returns: 0

  63. 198356

    10

    10

    1232890504

    Returns: 188046

  64. 181339

    -11

    4

    2073107849

    Returns: 0

  65. 192573

    11

    11

    468300517

    Returns: 192564

  66. 197067

    -10

    9

    2050067571

    Returns: 0

  67. 197601

    -10

    12

    1554617535

    Returns: 3256

  68. 198955

    9

    6

    879909240

    Returns: 99088

  69. 182996

    11

    8

    1309953612

    Returns: 182987

  70. 193273

    9

    8

    1546714289

    Returns: 107163

  71. 183565

    -11

    1

    1830200175

    Returns: 0

  72. 191813

    -17

    1139

    1683014802

    Returns: 153362

  73. 188778

    -4

    50

    898538742

    Returns: 79941

  74. 195237

    -1

    15408

    1363446327

    Returns: 187936

  75. 181794

    -11

    256822

    2642986

    Returns: 179342

  76. 180901

    7

    15366

    1106908031

    Returns: 177255

  77. 189632

    -14

    319

    729061624

    Returns: 125858

  78. 193863

    1

    30343

    1007203776

    Returns: 189127

  79. 196493

    16

    50010

    1344280466

    Returns: 196352

  80. 198179

    -19

    461017

    1983527925

    Returns: 195823

  81. 198294

    -9

    1839232

    183808378

    Returns: 197032

  82. 185951

    19

    18

    2082862941

    Returns: 185947

  83. 193468

    -17

    123

    755530463

    Returns: 92341

  84. 199593

    5

    0

    597387838

    Returns: 0

  85. 182385

    15

    2051

    1650855086

    Returns: 182349

  86. 196361

    9

    915616

    526066028

    Returns: 195446

  87. 196752

    5

    4

    1805133931

    Returns: 14252

  88. 193498

    15

    5

    2141323295

    Returns: 193495

  89. 195591

    8

    311282

    1698673775

    Returns: 194474

  90. 197187

    12

    954

    844576579

    Returns: 197148

  91. 190367

    5

    2

    2094311409

    Returns: 0

  92. 6

    1

    10

    428341411

    Returns: 0

    The generated sequence is A = {3, 2, 5, 12, 5, 11}. This sequence does not grow too quickly anywhere, so we don't have to use the blaster at all.

  93. 200000

    5

    9000

    123123

    Returns: 193338

  94. 200000

    10

    100000

    123456

    Returns: 199123

  95. 200000

    20

    10000000

    428341411

    Returns: 199173

  96. 200000

    10

    1245

    12456

    Returns: 199028


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: