Statistics

Problem Statement for "SplittingFoxes"

Problem Statement

Fox Ciel learned a new skill of splitting! She can split into (S + L + R) foxes each time. Now she is practicing this skill on an infinite horizontal plane. At the beginning, Fox Ciel is the only fox on the plane. She stands at the point (0,0) and she is facing the point (1,0).


There will be n steps. In each step, each fox on the plane will split into exactly (S + L + R) foxes. Out of those foxes:
  • S will make a step forward, moving exactly one unit of distance in the direction they are facing.
  • L will stay in the same place and rotate 90 degrees to the left. (So for example if the original fox was facing the point (1,0), there will be L new foxes facing the point (0,1).)
  • R will stay in the same place and rotate 90 degrees to the right.
The score of a fox standing at the point (x,y) is x*y. Note that the score of a fox may be zero or even negative. The total score is the sum of the scores of all foxes on the plane. You are given the long n and the ints S, L, and R. Return the total score of all foxes after n steps, modulo 1,000,000,007 (10^9 + 7).

Definition

Class:
SplittingFoxes
Method:
sum
Parameters:
long, int, int, int
Returns:
int
Method signature:
int sum(long n, int S, int L, int R)
(be sure your method is public)

Notes

  • Note that you should return a number between 0 and 1,000,000,006, inclusive.
  • E.g., if the answer is -1, you should return 1,000,000,006 instead of -1.

Constraints

  • n will be between 1 and 10^18, inclusive.
  • S will be between 0 and 10^9, inclusive.
  • L will be between 0 and 10^9, inclusive.
  • R will be between 0 and 10^9, inclusive.

Examples

  1. 58

    2

    0

    0

    Returns: 0

    After step 1: there are 2^1 foxes at (1, 0), After step 2: there are 2^2 foxes at (2, 0), ... After step 58: there are 2^58 foxes at (58, 0). For each fox at (58, 0), her score is 58 * 0 = 0, so the answer is 0.

  2. 3

    1

    1

    0

    Returns: 1

    There will be 8 foxes at the end. The fox at (1,1) has score 1. Each of the other 7 foxes has score 0.

  3. 5

    1

    3

    2

    Returns: 34

  4. 5

    1

    2

    3

    Returns: 999999973

    The answer is (-34) % 1,000,000,007.

  5. 123456789

    987654321

    544

    544

    Returns: 0

    By symmetry, if L = R, then the answer will be zero.

  6. 65536

    1024

    512

    4096

    Returns: 371473914

  7. 660813542121999053

    882803579

    874896056

    705234023

    Returns: 261143543

  8. 766775761821710067

    845887643

    533982753

    115747299

    Returns: 434616057

  9. 695207666619531728

    155592680

    562998418

    533219542

    Returns: 910823973

  10. 588301871297543347

    120480313

    848149037

    474843694

    Returns: 409785381

  11. 173235083857908783

    981498462

    927319236

    249140212

    Returns: 508656847

  12. 857380839765139476

    417383386

    217580301

    988254240

    Returns: 485106363

  13. 609513282708337523

    764677874

    962938268

    133082076

    Returns: 332250277

  14. 161953961742003357

    554114881

    914609945

    493204256

    Returns: 285565352

  15. 667136952830723363

    706766746

    902573993

    474609430

    Returns: 240953424

  16. 462515461125923286

    613392195

    234025167

    916284925

    Returns: 642320004

  17. 496080614158705351

    719610584

    101478311

    278282221

    Returns: 401389536

  18. 759273103765959495

    454236305

    419048169

    965202829

    Returns: 261239500

  19. 500181948678347239

    522821422

    744240704

    204386682

    Returns: 368338074

  20. 646389296909453433

    550318494

    418518924

    789623598

    Returns: 430242943

  21. 794093457605225484

    308791445

    522423066

    841454568

    Returns: 22776853

  22. 419337366712433907

    901483584

    207151442

    780160221

    Returns: 414267778

  23. 970687994890833597

    382711859

    927940169

    910748041

    Returns: 647508165

  24. 860188996775665725

    566850954

    124735999

    831668776

    Returns: 951384959

  25. 109296038737750915

    478521873

    609769865

    49836835

    Returns: 820256309

  26. 676402505315218912

    959477683

    112712025

    158396785

    Returns: 149750098

  27. 213508806352183269

    615919700

    424096915

    568347684

    Returns: 273318714

  28. 391918472459793763

    226139391

    602594702

    958724759

    Returns: 77697937

  29. 881153627020164459

    43645725

    299424725

    213666626

    Returns: 75249250

  30. 900978599314721358

    119247111

    807188159

    897480237

    Returns: 485605562

  31. 527243772939356573

    342254321

    998906274

    443167179

    Returns: 23468093

  32. 692623640428418090

    129388712

    395838143

    919743234

    Returns: 445661806

  33. 938219539338509828

    949443293

    569482952

    145952861

    Returns: 792089845

  34. 73221043634316925

    544529055

    584721417

    508502065

    Returns: 846480425

  35. 269837182151772199

    956335685

    668458123

    463969564

    Returns: 137017087

  36. 272976770419738834

    453254138

    886984676

    326682623

    Returns: 486689195

  37. 273214971447216526

    116707347

    612890962

    280911504

    Returns: 146861830

  38. 563358447332767406

    363428243

    609279088

    368997672

    Returns: 289775761

  39. 516516384864032706

    881529372

    544104264

    997209487

    Returns: 595122841

  40. 361918364408242075

    334395103

    785257738

    587668951

    Returns: 261735014

  41. 938206012427942986

    95310575

    875143802

    822274993

    Returns: 285150257

  42. 128596380943607584

    831369420

    52467905

    653589294

    Returns: 179194023

  43. 624944182861526190

    42201081

    814399795

    537751606

    Returns: 969539916

  44. 469557750768739526

    707634373

    244495318

    85057455

    Returns: 189615445

  45. 926336066205282935

    561202102

    649562663

    685230187

    Returns: 879759804

  46. 362254017551082515

    223747939

    639012016

    298480817

    Returns: 513284413

  47. 117373482147601196

    644770793

    810332802

    30126493

    Returns: 732064058

  48. 824553956498941073

    825976421

    668590209

    372915985

    Returns: 703197359

  49. 66017712176760917

    437436615

    12787815

    251774917

    Returns: 987360148

  50. 21677663029696968

    456733891

    950452497

    822134918

    Returns: 688931367

  51. 681210238602381179

    172629555

    471447765

    599515929

    Returns: 113224660

  52. 937016307826240319

    919473446

    137427375

    56221407

    Returns: 982151672

  53. 796575486613002789

    344265459

    971922327

    608248811

    Returns: 87787498

  54. 700467958998054014

    954872247

    422251412

    254050404

    Returns: 195096117

  55. 62501611844023771

    439932004

    425209120

    812446495

    Returns: 212489391

  56. 259398081068221709

    102362675

    534590823

    623903250

    Returns: 728897556

  57. 703047274265800365

    4

    4

    0

    Returns: 533239865

  58. 513750524984834570

    4

    2

    0

    Returns: 822289733

  59. 828200077710873557

    5

    6

    7

    Returns: 211062035

  60. 799504371557728375

    6

    9

    8

    Returns: 857170286

  61. 257180145626451352

    1

    2

    9

    Returns: 271324407

  62. 237916468858348067

    2

    10

    7

    Returns: 84152263

  63. 313522628867264064

    1

    9

    9

    Returns: 0

  64. 238693049195518807

    1

    10

    0

    Returns: 69261272

  65. 162095043263814675

    8

    9

    0

    Returns: 189339896

  66. 722144401930419291

    6

    8

    10

    Returns: 886467446

  67. 33173008951284058

    9

    6

    0

    Returns: 953671638

  68. 674270380673427831

    7

    10

    0

    Returns: 637826872

  69. 114098797555375196

    5

    1

    2

    Returns: 522425771

  70. 815328412213795571

    8

    6

    4

    Returns: 734646739

  71. 435235899832500067

    6

    0

    4

    Returns: 14972067

  72. 707752708951776534

    3

    1

    0

    Returns: 119748168

  73. 91089262711427253

    4

    4

    10

    Returns: 690311385

  74. 425425984597397545

    9

    1

    10

    Returns: 833028586

  75. 134074920278833819

    7

    5

    2

    Returns: 509703182

  76. 106372394000656500

    0

    3

    5

    Returns: 0

  77. 3

    656510120

    180931241

    498355505

    Returns: 920142490

  78. 8

    418411685

    251372732

    251082452

    Returns: 844000405

  79. 7

    443558903

    105815372

    600042535

    Returns: 972152184

  80. 6

    919495157

    532784218

    513379689

    Returns: 894539033

  81. 6

    324023008

    22541540

    357776539

    Returns: 412416886

  82. 6

    482155516

    558041208

    952259863

    Returns: 755938649

  83. 4

    183980741

    655743494

    943240702

    Returns: 471568710

  84. 10

    677068357

    234747810

    637436633

    Returns: 193091390

  85. 9

    401203474

    572770441

    430586826

    Returns: 809059322

  86. 1

    459723434

    653757931

    939033653

    Returns: 0

  87. 7

    316873363

    31053991

    280859477

    Returns: 600631675

  88. 4

    688812506

    795350012

    736664124

    Returns: 383675380

  89. 5

    179111968

    988733400

    134578803

    Returns: 5393829

  90. 1

    223782353

    163590214

    315446113

    Returns: 0

  91. 8

    23578770

    725856499

    562638443

    Returns: 632213234

  92. 5

    894373793

    287783661

    941685022

    Returns: 302862426

  93. 8

    355793585

    314513054

    273450488

    Returns: 305667481

  94. 1

    235889584

    942147068

    850379849

    Returns: 0

  95. 4

    906384393

    371319451

    307044406

    Returns: 51373689

  96. 3

    691613293

    875884977

    34008640

    Returns: 423108396

  97. 1

    1

    5

    1

    Returns: 0

  98. 8

    2

    1

    6

    Returns: 999172807

  99. 3

    8

    5

    3

    Returns: 128

  100. 9

    2

    8

    9

    Returns: 853496519

  101. 10

    4

    2

    4

    Returns: 332057095

  102. 8

    4

    5

    2

    Returns: 12768768

  103. 3

    8

    3

    4

    Returns: 999999943

  104. 7

    3

    5

    6

    Returns: 999639683

  105. 6

    4

    0

    4

    Returns: 999918087

  106. 2

    3

    7

    5

    Returns: 0

  107. 5

    10

    7

    10

    Returns: 999616007

  108. 7

    3

    1

    6

    Returns: 999587267

  109. 4

    8

    0

    9

    Returns: 999981575

  110. 2

    5

    5

    9

    Returns: 0

  111. 5

    1

    6

    1

    Returns: 170

  112. 3

    7

    7

    5

    Returns: 98

  113. 8

    0

    3

    10

    Returns: 0

  114. 2

    2

    5

    1

    Returns: 0

  115. 7

    8

    9

    5

    Returns: 107728896

  116. 1

    3

    9

    9

    Returns: 0

  117. 1000000000000000000

    1000000000

    1000000000

    1000000000

    Returns: 0

  118. 1000000000000000000

    999999999

    999999999

    1000000000

    Returns: 789460183

  119. 1000000000000000000

    999999234

    999999123

    999999453

    Returns: 736114829

  120. 1000000000

    1000000000

    999999999

    555555555

    Returns: 894236504


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: