Statistics

Problem Statement for "TriangleTriples"

Problem Statement

An ordered triple (a, b, c) is called a triangle triple if a, b, c are positive integers such that there is a triangle with side lengths a, b, c and a positive area.

For example, (4, 5, 6) and (5, 4, 6) are two different triangle triples. On the other hand, (1, 2, 3) and (47, 5, 5) are not triangle triples.

You are given the ints A, B, and C. Let X be the number of triangle triples (a, b, c) such that 1 <= a <= A, 1 <= b <= B, and 1 <= c <= C. Compute and return the value (X modulo 1,000,000,007).

Definition

Class:
TriangleTriples
Method:
count
Parameters:
int, int, int
Returns:
int
Method signature:
int count(int A, int B, int C)
(be sure your method is public)

Constraints

  • A will be between 1 and 1,000,000,000, inclusive.
  • B will be between 1 and 1,000,000,000, inclusive.
  • C will be between 1 and 1,000,000,000, inclusive.

Examples

  1. 1

    10

    20

    Returns: 10

    We have 10 such triples: (1,1,1), (1,2,2), (1,3,3), ..., (1,10,10).

  2. 2

    2

    1000000000

    Returns: 6

    This time we have: (1,1,1), (1,2,2), (2,1,2), (2,2,1), (2,2,2) and (2,2,3).

  3. 10

    10

    10

    Returns: 505

  4. 1

    1

    1

    Returns: 1

  5. 123456789

    987654321

    555555555

    Returns: 64296241

  6. 1000000000

    1000000000

    1000000000

    Returns: 999999832

  7. 1

    1

    1000000000

    Returns: 1

  8. 1

    10000

    100000000

    Returns: 10000

  9. 69811163

    90025235

    5595343

    Returns: 228370792

  10. 804

    473

    40

    Returns: 735480

  11. 113762249

    181321

    66166501

    Returns: 383188519

  12. 4249

    70809093

    6668

    Returns: 813596010

  13. 1727

    5629684

    886588144

    Returns: 978731368

  14. 830788710

    40

    142

    Returns: 205880

  15. 9065268

    878421

    56

    Returns: 754669722

  16. 15947

    147445

    505665633

    Returns: 456977605

  17. 449799

    382058

    54646417

    Returns: 742624189

  18. 693223150

    3657229

    91419

    Returns: 99815985

  19. 6365945

    6890383

    736

    Returns: 274022744

  20. 10

    20166

    12060

    Returns: 1205670

  21. 7832

    492012

    5

    Returns: 195760

  22. 8177

    40126

    332620

    Returns: 710777602

  23. 731

    780566

    8977

    Returns: 666752949

  24. 6

    514

    410144

    Returns: 18434

  25. 341576

    14175876

    45

    Returns: 691661040

  26. 4559421

    2

    8180

    Returns: 32718

  27. 682651

    121441

    2582684

    Returns: 292293818

  28. 12108528

    76

    62337944

    Returns: 938710945

  29. 961845415

    190141743

    34795

    Returns: 248717879

  30. 17

    611842486

    8869429

    Returns: 563263335

  31. 5632931

    7925

    3

    Returns: 71317

  32. 4

    3

    3

    Returns: 18

  33. 10053

    801

    375

    Returns: 95062625

  34. 803730874

    175061

    710403

    Returns: 373053385

  35. 254640

    755

    40

    Returns: 1186680

  36. 722674

    701983086

    9571759

    Returns: 370114198

  37. 96

    150725

    932672012

    Returns: 388786713

  38. 864

    2

    2839

    Returns: 3454

  39. 4865052

    29469887

    476715

    Returns: 225578793

  40. 127

    5545

    10

    Returns: 12370

  41. 7195014

    407

    4255767

    Returns: 941069943

  42. 18659705

    329

    9

    Returns: 26409

  43. 21489756

    83

    56545

    Returns: 389347937

  44. 110

    947

    33192

    Returns: 11015070

  45. 40587

    1913

    89046

    Returns: 197341453

  46. 10

    39353356

    349496

    Returns: 34949270

  47. 446266782

    901

    26316451

    Returns: 477278110

  48. 2

    21529871

    9

    Returns: 34

  49. 5

    714201

    8567850

    Returns: 17854985

  50. 87859789

    224070340

    4740

    Returns: 82712239

  51. 517399

    950236

    240436

    Returns: 590671350

  52. 97381243

    950169

    99

    Returns: 312282906

  53. 87466260

    73299

    2015

    Returns: 883313097

  54. 916078

    626154

    461791006

    Returns: 861501836

  55. 65

    628172227

    434

    Returns: 1742130

  56. 497039059

    9827

    319125

    Returns: 547484466

  57. 5459

    2155

    29

    Returns: 1804235

  58. 18

    2

    782715611

    Returns: 70

  59. 997491

    97621

    3

    Returns: 878581

  60. 7

    97150

    860989

    Returns: 4760238

  61. 607919

    26

    546867

    Returns: 369676242

  62. 984338

    2747029

    890227

    Returns: 88697127

  63. 8

    364964090

    2425853

    Returns: 155254424

  64. 8136764

    9

    797118

    Returns: 64566318

  65. 602009653

    98543023

    4873559

    Returns: 703673405

  66. 6690

    97450959

    381038197

    Returns: 29469155

  67. 415597033

    52355

    88593707

    Returns: 891294705

  68. 4797

    7674

    51588961

    Returns: 793095301

  69. 999999997

    999999993

    999999992

    Returns: 999999117

  70. 575555555

    623456789

    987654321

    Returns: 918509114

  71. 132112523

    613186942

    912243301

    Returns: 477772502

  72. 6

    6

    6

    Returns: 111

  73. 999999999

    999999999

    999999999

    Returns: 999999747

  74. 999999929

    999999937

    999999929

    Returns: 999789608

  75. 999999991

    999999995

    999999999

    Returns: 999999625

  76. 999999999

    999999998

    999999997

    Returns: 999999657

  77. 2

    3

    3

    Returns: 9


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: