Statistics

Problem Statement for "CatchTheBeat"

Problem Statement

One of the modes in the game "osu!" is called "catch the beat". In this mode, you control a character that catches falling fruit.


The game is played in the vertical plane. For simplicity, we will assume that both your character and all pieces of fruit are points in that plane.


You start the game at the coordinates (0, 0). Your character can only move along the x-axis. The maximum speed of your character is 1 unit of distance per second. For example, you need at least 3 seconds to move from (-2, 0) to (1, 0).


There are n pieces of fruit. The pieces are numbered 0 through n-1. For each i, fruit i starts at (x[i], y[i]). All pieces of fruit fall down with constant speed of 1 unit of distance per second. That is, a fruit currently located at (xf, yf) will move to (xf, yf-t) in t seconds. You will catch a fruit if the character is located at the same point as the fruit at some moment in time.


The initial coordinates x[] and y[] are generated using the following pseudocode:

x[0] = x0
for i = 1 to n-1:
    x[i] = (x[i-1] * a + b) % mod1

for i = 0 to n-1:
    x[i] = x[i] - offset

y[0] = y0
for i = 1 to n-1:
    y[i] = (y[i-1] * c + d) % mod2
(In the pseudocode, '%' represents the 'modulo' operator.)

You are given all the ints used in the above pseudocode. Return the maximum number of pieces of fruit you can catch.

Definition

Class:
CatchTheBeat
Method:
maxCatched
Parameters:
int, int, int, int, int, int, int, int, int, int
Returns:
int
Method signature:
int maxCatched(int n, int x0, int y0, int a, int b, int c, int d, int mod1, int mod2, int offset)
(be sure your method is public)

Constraints

  • n will be between 1 and 500,000, inclusive.
  • mod1 and mod2 will be between 1 and 1,000,000,000, inclusive.
  • x0, a and b will be between 0 and (mod1 - 1), inclusive.
  • y0, c and d will be between 0 and (mod2 - 1), inclusive.
  • offset will be between 0 and 1,000,000,000, inclusive.

Examples

  1. 3

    0

    0

    1

    1

    1

    1

    100

    100

    1

    Returns: 2

    There are 3 pieces of fruit. Their initial coordinates are (-1, 0), (0, 1), and (1, 2). Clearly you cannot catch fruit 0. You can catch the other two. One way of doing so: Wait at (0, 0) for 1 second. Catch fruit 1. Move to (1, 0) in 1 second. Immediately catch fruit 2.

  2. 1

    0

    1234

    0

    0

    0

    0

    1000000000

    1000000000

    1000

    Returns: 1

    The only fruit is located at (-1000, 1234). We can go to (-1000, 0) and then wait for 234 seconds to catch it.

  3. 1

    0

    999

    0

    0

    0

    0

    1000000000

    1000000000

    1000

    Returns: 0

    Now the only fruit is located at (-1000, 999). We can't catch it.

  4. 100

    0

    0

    1

    1

    1

    1

    3

    58585858

    1

    Returns: 66

  5. 500000

    123456

    0

    1

    0

    1

    1

    1000000000

    1000000000

    0

    Returns: 376544

    The fruits are located in (123456, 0), (123456, 1), ..., (123456, 499999).

  6. 500000

    0

    0

    0

    0

    0

    0

    1

    1

    0

    Returns: 500000

    In this case all the fruits start at (0, 0). Note that there can be more than one fruit at any position. We can catch all such fruit at the same time.

  7. 10

    999999957

    79

    993948167

    24597383

    212151897

    999940854

    999999986

    999940855

    3404

    Returns: 3

    Watch out for integer overflow when generating the coordinates.

  8. 293

    12815915

    0

    22628638

    12788120

    0

    0

    22648717

    1

    9274173

    Returns: 0

  9. 37712

    28743

    17

    17228

    26018

    572

    204

    65548

    758

    56848

    Returns: 32

  10. 447

    759978

    229622

    4919844

    6033250

    150353

    285631

    6706730

    515007

    5347689

    Returns: 8

  11. 91324

    75

    0

    95

    83

    0

    0

    119

    1

    109

    Returns: 0

  12. 778

    2

    503574

    1

    1

    491732

    577850

    3

    709162

    2

    Returns: 778

  13. 8

    35135

    5958362

    322064

    610965

    5714260

    8115202

    637754

    8358910

    560352

    Returns: 6

  14. 97625

    0

    7513

    1

    3

    29407

    7755

    4

    33603

    3

    Returns: 24408

  15. 1

    5259535

    833214

    7319021

    12271749

    242237

    355472

    13658128

    854894

    7247111

    Returns: 0

  16. 799

    1

    80253

    6

    2

    26490

    44118

    9

    84990

    5

    Returns: 799

  17. 8468

    5

    1086994

    1

    5

    4346748

    1446108

    10

    4369359

    2

    Returns: 8468

  18. 293

    12815915

    0

    22628638

    12788120

    0

    0

    22648717

    1

    9274173

    Returns: 0

  19. 37712

    28743

    17

    17228

    26018

    572

    204

    65548

    758

    56848

    Returns: 32

  20. 447

    759978

    229622

    4919844

    6033250

    150353

    285631

    6706730

    515007

    5347689

    Returns: 8

  21. 91324

    75

    0

    95

    83

    0

    0

    119

    1

    109

    Returns: 0

  22. 778

    2

    503574

    1

    1

    491732

    577850

    3

    709162

    2

    Returns: 778

  23. 8

    35135

    5958362

    322064

    610965

    5714260

    8115202

    637754

    8358910

    560352

    Returns: 6

  24. 97625

    0

    7513

    1

    3

    29407

    7755

    4

    33603

    3

    Returns: 24408

  25. 1

    5259535

    833214

    7319021

    12271749

    242237

    355472

    13658128

    854894

    7247111

    Returns: 0

  26. 799

    1

    80253

    6

    2

    26490

    44118

    9

    84990

    5

    Returns: 799

  27. 55282

    1658

    1621411

    7208

    5925

    544984

    2289116

    8010

    4183623

    1592

    Returns: 21541

  28. 29

    21

    0

    63

    65

    0

    0

    87

    1

    11

    Returns: 2

  29. 511

    0

    0

    0

    0

    0

    0

    1

    1

    0

    Returns: 511

  30. 977

    55955

    6154335

    59341

    34159

    2695241

    1614904

    68693

    6653435

    67466

    Returns: 362

  31. 10

    2377

    43096524

    2408

    2952

    27721571

    1739595

    3298

    48596106

    2732

    Returns: 10

  32. 41833

    5016387

    3

    6681507

    5968581

    6

    0

    9417757

    7

    7112608

    Returns: 0

  33. 1

    736

    3

    350

    654

    1

    2

    746

    4

    732

    Returns: 0

  34. 44373

    38059631

    2807

    20611346

    38050409

    9652

    5362

    55018071

    17519

    35523489

    Returns: 5

  35. 5

    57179

    0

    123734

    77838

    0

    0

    173062

    1

    64392

    Returns: 0

  36. 236

    31619

    4310

    30811

    30916

    4360

    6744

    55761

    7286

    12156

    Returns: 8

  37. 5485

    370

    2

    376

    603

    4

    2

    1120

    8

    125

    Returns: 0

  38. 78

    3958

    3714596

    2245

    725

    37928260

    12471844

    5628

    57865424

    5506

    Returns: 78

  39. 772

    0

    12

    0

    2

    15

    2

    4

    25

    2

    Returns: 772

  40. 2304

    686125

    0

    175609

    187015

    0

    0

    712325

    4

    546475

    Returns: 0

  41. 1

    276346

    215516

    90120

    429334

    780837

    92001

    481627

    793358

    8848

    Returns: 0

  42. 6560

    52

    5546249

    11

    27

    750880

    670958

    56

    8863585

    18

    Returns: 6493

  43. 1

    286528

    38490859

    52224

    256861

    24224803

    31719029

    352742

    43787826

    239604

    Returns: 1

  44. 7

    29648

    0

    45068

    34613

    0

    0

    70549

    1

    35632

    Returns: 0

  45. 73

    0

    77

    1

    6

    9

    27

    8

    96

    4

    Returns: 55

  46. 40336

    4

    5157

    0

    1

    3773

    2520

    6

    8504

    2

    Returns: 40335

  47. 8

    465798

    1

    467645

    115464

    1

    0

    498214

    2

    164801

    Returns: 0

  48. 95707

    161

    0

    144

    85

    0

    0

    172

    1

    19

    Returns: 0

  49. 9

    13671

    73711

    8111

    3421

    37187

    20532

    42914

    78713

    16139

    Returns: 3

  50. 1133

    4919

    191

    3597

    1671

    832

    445

    5088

    902

    3759

    Returns: 18

  51. 4682

    4

    11

    1

    1

    14

    47

    9

    59

    2

    Returns: 522

  52. 854

    449406

    3750

    115061

    9331

    176002

    762463

    735749

    802258

    375074

    Returns: 38

  53. 14

    1060728

    6

    3185076

    5710317

    3

    0

    5901949

    7

    2769786

    Returns: 0

  54. 3937

    0

    127

    0

    0

    33

    216

    1

    231

    0

    Returns: 3937

  55. 5

    0

    6700

    0

    0

    35611

    5278

    1

    51125

    0

    Returns: 5

  56. 903

    2020

    124494

    4320

    4196

    418353

    444281

    4949

    620675

    1307

    Returns: 362

  57. 14

    2647156

    6922

    2723440

    5188083

    88629

    49103

    7682723

    116411

    4297371

    Returns: 0

  58. 556

    33443350

    0

    1914615

    29990941

    2

    2

    49903040

    3

    43451268

    Returns: 0

  59. 8133

    0

    4590

    0

    0

    1283

    5338

    1

    5791

    0

    Returns: 8133

  60. 59677

    425052

    70

    240256

    74561

    54

    72

    502599

    87

    62198

    Returns: 0

  61. 65

    74912

    27939

    385795

    16651

    10241

    5993

    586022

    36065

    489615

    Returns: 1

  62. 3482

    229

    42

    64

    247

    57

    39

    631

    85

    347

    Returns: 217

  63. 89705

    0

    0

    0

    0

    0

    0

    1

    1

    0

    Returns: 89705

  64. 603

    852440

    0

    666788

    587366

    0

    0

    967831

    1

    589051

    Returns: 0

  65. 231

    624

    931

    369

    496

    348

    321

    659

    941

    580

    Returns: 21

  66. 5076

    0

    566517

    0

    0

    546338

    692273

    1

    853235

    0

    Returns: 5076

  67. 7

    1105

    2

    557

    1550

    3

    1

    2394

    5

    680

    Returns: 0

  68. 8653

    0

    60111

    6

    4

    110085

    63950

    7

    166250

    2

    Returns: 8653

  69. 167

    229272

    2

    98828

    201060

    2

    2

    233510

    4

    196432

    Returns: 0

  70. 5496

    3881776

    295730

    297829

    2952300

    589246

    99465

    6221365

    654461

    5995997

    Returns: 29

  71. 1

    0

    0

    0

    0

    0

    0

    1

    1

    0

    Returns: 1

  72. 57

    404

    0

    1072

    4285

    0

    0

    5022

    1

    3204

    Returns: 0

  73. 970

    29996

    98

    17787

    23201

    320

    116

    35678

    992

    13762

    Returns: 6

  74. 4

    0

    56435

    0

    0

    276892

    37701

    1

    353651

    0

    Returns: 4

  75. 1

    1159

    2441

    3867

    2007

    822

    2374

    4365

    8824

    1886

    Returns: 1

  76. 14

    324594

    0

    192601

    406914

    0

    0

    511287

    1

    404658

    Returns: 0

  77. 22757

    2653

    68849178

    4368

    753

    78332234

    52069810

    9490

    90982076

    2517

    Returns: 14391

  78. 83

    71282

    0

    3857

    32749

    0

    0

    71370

    1

    21288

    Returns: 0

  79. 1

    0

    73

    20

    51

    36

    56

    92

    91

    56

    Returns: 1

  80. 1

    1086

    710

    287

    283

    399

    1406

    1498

    1541

    96

    Returns: 0

  81. 1

    16

    0

    12

    2

    0

    0

    19

    1

    5

    Returns: 0

  82. 57

    0

    75584

    0

    0

    17423

    39295

    1

    85453

    0

    Returns: 57

  83. 18

    0

    30804

    0

    0

    284989

    380139

    1

    473524

    0

    Returns: 18

  84. 2679

    743

    0

    855

    873

    0

    0

    900

    1

    846

    Returns: 0

  85. 8

    47341

    0

    51390

    11861

    1

    1

    85875

    3

    35558

    Returns: 0

  86. 50181

    28

    0

    14

    25

    0

    0

    66

    1

    38

    Returns: 0

  87. 7433

    6651

    2051

    5983

    766

    7378

    2939

    8523

    7642

    2211

    Returns: 127

  88. 1

    93

    15

    572

    95

    5

    28

    861

    49

    88

    Returns: 1

  89. 1

    47363

    1

    29287

    35766

    2

    1

    49860

    4

    36875

    Returns: 0

  90. 7

    27

    32766559

    43

    13

    10102806

    18511973

    46

    48221551

    38

    Returns: 7

  91. 6

    44146

    0

    41511

    44556

    0

    1

    63990

    2

    27439

    Returns: 0

  92. 1970

    1

    26079

    9

    15

    15904

    1965

    16

    29169

    5

    Returns: 232

  93. 43581

    5624466

    2492

    2062424

    4497289

    2819

    2445

    8018388

    4508

    4169380

    Returns: 16

  94. 14

    37909

    35920

    6723

    76953

    11718

    46841

    77538

    47356

    54024

    Returns: 2

  95. 6

    3

    0

    1

    3

    1

    4

    5

    7

    1

    Returns: 4

  96. 13780

    0

    204

    0

    0

    168

    18

    1

    366

    0

    Returns: 13780

  97. 48468

    65

    1355460

    51

    25

    3309955

    30004314

    70

    44369359

    62

    Returns: 47437

  98. 90293

    443141538

    0

    247387582

    511059894

    3

    5

    522648717

    8

    7545947

    Returns: 0

  99. 237712

    28743

    543

    17228

    26018

    1000

    1958

    65548

    2758

    56848

    Returns: 442

  100. 7447

    41432978

    229622

    32179384

    25744730

    150353

    285631

    76706730

    515007

    48112059

    Returns: 11

  101. 500000

    1189

    0

    4343

    5783

    1

    0

    6119

    2

    3056

    Returns: 0

  102. 6778

    9

    4223452

    10

    1

    3120328

    943654

    13

    8709162

    0

    Returns: 6778

  103. 38

    7718339

    25698412

    5560662

    2217483

    4580520

    10570562

    8637754

    48358910

    6478640

    Returns: 14

  104. 500000

    20

    206611

    45

    3

    216909

    114745

    84

    233603

    31

    Returns: 132111

  105. 9

    106217167

    303444

    84874685

    58118053

    346973

    470492

    113658128

    1854894

    43828391

    Returns: 1

  106. 2799

    350

    182593

    880

    238

    33040

    200778

    1009

    284990

    588

    Returns: 1083

  107. 500000

    15818

    2023417

    11138

    14505

    5845252

    4939250

    68010

    14183623

    16652

    Returns: 14437

  108. 329

    266

    8

    341

    354

    6

    9

    887

    10

    66

    Returns: 2

  109. 2511

    0

    2

    0

    1

    2

    9

    2

    10

    1

    Returns: 2511

  110. 9977

    55955

    5082570

    59341

    34159

    5446381

    1019479

    68693

    16653435

    67466

    Returns: 2029

  111. 50

    49583

    772038114

    40688

    13556

    367894313

    730681185

    53298

    848596106

    16386

    Returns: 50

  112. 241833

    14434144

    33

    7947862

    18981665

    38

    19

    29417757

    47

    23924757

    Returns: 1

  113. 5

    3188

    5

    1914

    2336

    5

    10

    4746

    14

    2802

    Returns: 0

  114. 244373

    178204199

    594085

    160755914

    93068480

    166982

    13616

    355018071

    917519

    205776483

    Returns: 35

  115. 25

    2237145

    2

    4277222

    2940740

    2

    0

    9173062

    3

    2755008

    Returns: 0

  116. 100236

    300323

    7716

    264643

    41293

    11638

    14138

    355761

    17286

    192759

    Returns: 97

  117. 500000

    65

    1355460

    51

    25

    3309955

    30004314

    70

    44369359

    62

    Returns: 416847

  118. 500000

    443141538

    0

    247387582

    511059894

    3

    5

    522648717

    8

    7545947

    Returns: 0

  119. 500000

    28743

    543

    17228

    26018

    1000

    1958

    65548

    2758

    56848

    Returns: 918

  120. 500000

    41432978

    229622

    32179384

    25744730

    150353

    285631

    76706730

    515007

    48112059

    Returns: 79

  121. 500000

    1189

    0

    4343

    5783

    1

    0

    6119

    2

    3056

    Returns: 0

  122. 500000

    9

    4223452

    10

    1

    3120328

    943654

    13

    8709162

    0

    Returns: 500000

  123. 500000

    7718339

    25698412

    5560662

    2217483

    4580520

    10570562

    8637754

    48358910

    6478640

    Returns: 2350

  124. 500000

    20

    206611

    45

    3

    216909

    114745

    84

    233603

    31

    Returns: 132111

  125. 500000

    106217167

    303444

    84874685

    58118053

    346973

    470492

    113658128

    1854894

    43828391

    Returns: 222

  126. 500000

    350

    182593

    880

    238

    33040

    200778

    1009

    284990

    588

    Returns: 20868

  127. 500000

    15818

    2023417

    11138

    14505

    5845252

    4939250

    68010

    14183623

    16652

    Returns: 14437

  128. 500000

    266

    8

    341

    354

    6

    9

    887

    10

    66

    Returns: 565

  129. 500000

    0

    2

    0

    1

    2

    9

    2

    10

    1

    Returns: 500000

  130. 500000

    55955

    5082570

    59341

    34159

    5446381

    1019479

    68693

    16653435

    67466

    Returns: 15549

  131. 500000

    49583

    772038114

    40688

    13556

    367894313

    730681185

    53298

    848596106

    16386

    Returns: 115867

  132. 500000

    14434144

    33

    7947862

    18981665

    38

    19

    29417757

    47

    23924757

    Returns: 1

  133. 500000

    3188

    5

    1914

    2336

    5

    10

    4746

    14

    2802

    Returns: 0

  134. 500000

    178204199

    594085

    160755914

    93068480

    166982

    13616

    355018071

    917519

    205776483

    Returns: 51

  135. 500000

    2237145

    2

    4277222

    2940740

    2

    0

    9173062

    3

    2755008

    Returns: 0

  136. 500000

    300323

    7716

    264643

    41293

    11638

    14138

    355761

    17286

    192759

    Returns: 215

  137. 500000

    999999957

    79

    993948167

    24597383

    212151897

    999940854

    999999986

    999940855

    3404

    Returns: 992

  138. 500000

    12314

    53542

    532561259

    95385721

    25712847

    248217541

    1000000000

    999999937

    500000000

    Returns: 992

  139. 500000

    123456

    21

    32

    51

    93

    15

    100000075

    1000000000

    0

    Returns: 3139

  140. 500000

    0

    34

    34

    325342

    345

    325

    1000000000

    1000000000

    100000000

    Returns: 512

  141. 500000

    123456789

    987654321

    314159265

    271828182

    271828182

    314159265

    999999999

    999999999

    500000000

    Returns: 988

  142. 500000

    42

    1234

    13

    17

    12345

    5432

    100003

    100019

    50000

    Returns: 1006

  143. 500000

    0

    234

    1

    1235

    435

    233

    1000000000

    1000000000

    1

    Returns: 265

  144. 500000

    453

    65

    43

    312

    321

    543

    32323

    41245

    231

    Returns: 360

  145. 500000

    100

    100

    100

    100

    100

    100

    132134

    543787

    200000

    Returns: 1753

  146. 500000

    55

    3333

    55

    321

    54321

    123

    100007

    1234557

    50000

    Returns: 3463

  147. 500000

    123

    321

    33

    44

    5432

    2345

    100003

    100019

    50000

    Returns: 1158


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: