Statistics

Problem Statement for "RememberWords"

Problem Statement

For Fox Ciel it is the beginning of a new school year. Her school year will consist of two semesters. The first semester contains d1 days and the second semester contains d2 days. Surprisingly, there are no breaks during or between the semesters: the entire school year consists of d1+d2 consecutive days of classes.

Fox Ciel is taking an English class during both semesters. For the class she needs to learn a lot of new words: exactly w1 words during the first semester and exactly w2 words during the second semester.

Ciel can learn arbitrarily many words on any single day. However, she does not like to change her workload too much. Therefore, the number of words she will learn on any two consecutive days must differ by at most one.

Formally, suppose the days of the school year are numbered from 1 to d1+d2. Suppose that Ciel will learn x[i] words on day i. Ciel will be happy if the numbers x[i] have the following properties:
  • x[1] + ... + x[d1] is exactly equal to w1
  • x[d1+1] + ... + x[d1+d2] is exactly equal to w2
  • for each valid i, | x[i+1] - x[i] | is at most 1
You are given the ints d1, d2, w1, and w2. Return "Possible" if there is a schedule that makes Ciel happy, or "Impossible" if there is no such schedule.

Definition

Class:
RememberWords
Method:
isPossible
Parameters:
int, int, int, int
Returns:
String
Method signature:
String isPossible(int d1, int d2, int w1, int w2)
(be sure your method is public)

Constraints

  • d1 will be between 1 and 1,000,000,000, inclusive.
  • d2 will be between 1 and 1,000,000,000, inclusive.
  • w1 will be between 0 and 1,000,000,000, inclusive.
  • w2 will be between 0 and 1,000,000,000, inclusive.

Examples

  1. 2

    3

    7

    18

    Returns: "Possible"

    The school year has 2+3 = 5 days. Ciel needs to learn exactly 7 words during the first semester and exactly 18 words during the second semester. The only valid way to do so is to learn 3, 4, 5, 6, and 7 words during the five days of the school year. Note that 3+4 = 7 and 5+6+7 = 18.

  2. 1

    1

    3

    5

    Returns: "Impossible"

    Here the school year has just 1+1 = 2 days. Ciel must learn 3 words on the first day and 5 words on the second day. However, |3 - 5| is more than 1, so Ciel will not be happy with this schedule.

  3. 3

    5

    300

    500

    Returns: "Possible"

    One possible solution is to learn 100 words every day.

  4. 100

    1

    0

    2

    Returns: "Impossible"

  5. 1000000000

    1000000000

    1000000000

    1000000000

    Returns: "Possible"

  6. 8

    2537

    25

    83

    Returns: "Possible"

  7. 26662

    46

    173072

    9

    Returns: "Possible"

  8. 353029

    4854

    7456921

    1845874

    Returns: "Possible"

  9. 811327

    59382

    92

    8651426

    Returns: "Possible"

  10. 3984576

    57712665

    18949

    9805118

    Returns: "Possible"

  11. 26052

    48134

    26936548

    8

    Returns: "Possible"

  12. 3631846

    7927

    346

    3514

    Returns: "Possible"

  13. 15789

    66807687

    23469

    3270

    Returns: "Possible"

  14. 585

    8393

    73

    4574100

    Returns: "Possible"

  15. 75276

    1493191

    202

    22

    Returns: "Possible"

  16. 225

    1523

    471

    302

    Returns: "Possible"

  17. 24241313

    1502

    3135139

    3751

    Returns: "Possible"

  18. 234

    6805

    0

    4710

    Returns: "Possible"

  19. 45324

    9924

    31897

    1893

    Returns: "Possible"

  20. 86842

    138236

    6056638

    7976243

    Returns: "Possible"

  21. 35880

    532592

    57404715

    21415073

    Returns: "Possible"

  22. 33348897

    981

    78695

    381972

    Returns: "Possible"

  23. 40111456

    21502289

    758

    119522

    Returns: "Possible"

  24. 23537198

    29962949

    2783139

    839

    Returns: "Possible"

  25. 1924440

    2861

    5055

    9482

    Returns: "Possible"

  26. 3477541

    8661

    6

    248

    Returns: "Possible"

  27. 93464914

    8461

    671485

    65

    Returns: "Possible"

  28. 898458

    78

    228

    2872

    Returns: "Possible"

  29. 7571493

    5213

    943895

    3

    Returns: "Possible"

  30. 57

    87643

    8

    5

    Returns: "Possible"

  31. 75498

    680602

    181

    42

    Returns: "Possible"

  32. 98

    56164

    9399

    7072756

    Returns: "Possible"

  33. 8673

    6878510

    418209

    3571758

    Returns: "Possible"

  34. 2023257

    79

    7016

    8723

    Returns: "Possible"

  35. 288

    558739

    1445

    81465

    Returns: "Possible"

  36. 4156162

    51

    8683382

    9664

    Returns: "Possible"

  37. 3204966

    3406

    660939

    638

    Returns: "Possible"

  38. 5

    4153209

    51

    912

    Returns: "Possible"

  39. 8496

    86641

    2454

    47

    Returns: "Possible"

  40. 8640533

    731

    1390829

    992

    Returns: "Possible"

  41. 968944

    10

    5421

    352

    Returns: "Possible"

  42. 216699

    5894375

    1678951

    75

    Returns: "Possible"

  43. 33622003

    757471

    9

    44

    Returns: "Possible"

  44. 635555

    7821772

    85496937

    558

    Returns: "Possible"

  45. 8309

    3737415

    6637

    3037

    Returns: "Possible"

  46. 6169

    5885

    840537

    2

    Returns: "Possible"

  47. 48

    5804

    523

    6338

    Returns: "Possible"

  48. 951

    6657072

    6

    5952004

    Returns: "Possible"

  49. 24738

    75759

    65

    344

    Returns: "Possible"

  50. 39268

    1737

    171

    7351

    Returns: "Possible"

  51. 509399

    62582

    5065866

    56559930

    Returns: "Possible"

  52. 512623

    3473740

    1254

    1531

    Returns: "Possible"

  53. 8

    10720

    2

    9451835

    Returns: "Possible"

  54. 4677

    117393

    3

    886

    Returns: "Possible"

  55. 14437

    9909

    1256

    789

    Returns: "Possible"

  56. 28

    76753667

    2152777

    734

    Returns: "Impossible"

  57. 2

    12261088

    4031

    421

    Returns: "Impossible"

  58. 7

    84166018

    962395

    990924

    Returns: "Impossible"

  59. 41379

    159

    9370

    7362333

    Returns: "Impossible"

  60. 6

    9153

    77

    9

    Returns: "Impossible"

  61. 134

    62

    889206

    18463

    Returns: "Impossible"

  62. 99

    93

    6969

    59

    Returns: "Impossible"

  63. 52402

    1648

    85681

    50401704

    Returns: "Impossible"

  64. 212180

    6089

    424194

    52332962

    Returns: "Impossible"

  65. 77

    956223

    776558

    1

    Returns: "Impossible"

  66. 910279

    92

    2550

    88651132

    Returns: "Impossible"

  67. 7708

    6

    4946

    2633

    Returns: "Impossible"

  68. 3037

    25

    78172445

    537

    Returns: "Impossible"

  69. 96802

    1054

    801

    9485748

    Returns: "Impossible"

  70. 2277

    5417

    8200350

    62

    Returns: "Impossible"

  71. 36

    9

    516809

    5255

    Returns: "Impossible"

  72. 775

    44

    6286

    88473

    Returns: "Impossible"

  73. 8

    9029

    99604553

    2605253

    Returns: "Impossible"

  74. 2

    1334

    5278650

    9018

    Returns: "Impossible"

  75. 44685

    2774

    0

    60432979

    Returns: "Impossible"

  76. 10

    89201717

    42841

    2656198

    Returns: "Impossible"

  77. 4698923

    1

    3638716

    57855402

    Returns: "Impossible"

  78. 28

    6

    94

    7651

    Returns: "Impossible"

  79. 6

    7342093

    9566

    8

    Returns: "Impossible"

  80. 2505

    898093

    46301244

    26

    Returns: "Impossible"

  81. 55

    8956133

    2333036

    2144

    Returns: "Impossible"

  82. 42188134

    8

    979484

    634069

    Returns: "Impossible"

  83. 258

    2670535

    59868821

    3

    Returns: "Impossible"

  84. 18813

    2

    62

    6413

    Returns: "Impossible"

  85. 56

    8029

    463899

    6721329

    Returns: "Impossible"

  86. 236

    89

    2

    4071699

    Returns: "Impossible"

  87. 9

    9

    4596

    3

    Returns: "Impossible"

  88. 10

    6179704

    8184

    88558

    Returns: "Impossible"

  89. 2

    71459

    74889

    4639

    Returns: "Impossible"

  90. 5

    4486

    7247

    1476

    Returns: "Impossible"

  91. 7

    2

    75306709

    9519327

    Returns: "Impossible"

  92. 2

    1

    9

    32518

    Returns: "Impossible"

  93. 1209640

    6

    653

    5305

    Returns: "Impossible"

  94. 27938545

    374

    6

    53211402

    Returns: "Impossible"

  95. 675

    8

    57

    34321

    Returns: "Impossible"

  96. 67

    35

    5387

    472

    Returns: "Impossible"

  97. 49

    744342

    1931

    4

    Returns: "Impossible"

  98. 1353

    3

    9354

    9508

    Returns: "Impossible"

  99. 71

    2

    70

    57705

    Returns: "Impossible"

  100. 679571

    43

    7

    233077

    Returns: "Impossible"

  101. 1

    99

    92

    8

    Returns: "Impossible"

  102. 29

    45

    9991

    948468

    Returns: "Impossible"

  103. 97

    629

    17149104

    4

    Returns: "Impossible"

  104. 997

    9091

    949279

    96899147

    Returns: "Impossible"

  105. 91219865

    3

    89707

    740639

    Returns: "Impossible"

  106. 3

    3

    6

    15

    Returns: "Possible"

  107. 4

    12

    23

    34

    Returns: "Possible"

  108. 5

    1

    2

    3

    Returns: "Impossible"

  109. 1

    3

    0

    7

    Returns: "Impossible"

  110. 1

    1

    1000000

    1000000

    Returns: "Possible"

  111. 1

    1

    1000

    7

    Returns: "Impossible"

  112. 3

    4

    11

    23

    Returns: "Possible"

  113. 4

    1

    2

    3

    Returns: "Impossible"

  114. 1

    1

    1000000000

    999999999

    Returns: "Possible"

  115. 49

    6

    64

    46

    Returns: "Possible"

  116. 5

    3

    12

    0

    Returns: "Possible"

  117. 101

    1

    101

    50

    Returns: "Impossible"

  118. 5

    5

    3

    3

    Returns: "Possible"

  119. 2

    2

    4

    0

    Returns: "Impossible"

  120. 3

    4

    11

    27

    Returns: "Impossible"

  121. 1

    1

    999999999

    999999999

    Returns: "Possible"

  122. 5

    1

    14

    6

    Returns: "Impossible"

  123. 1

    1

    1

    100

    Returns: "Impossible"

  124. 1

    1

    0

    0

    Returns: "Possible"

  125. 31

    1

    28

    9

    Returns: "Impossible"

  126. 2

    1

    14

    5

    Returns: "Impossible"

  127. 89

    7

    41

    43

    Returns: "Possible"

  128. 6

    6

    123

    140

    Returns: "Possible"

  129. 957461902

    42533

    844159813

    990317651

    Returns: "Possible"

  130. 3

    1

    18

    5

    Returns: "Possible"

  131. 1

    1

    1000000000

    1000000000

    Returns: "Possible"

  132. 10000

    10000

    50005000

    150005000

    Returns: "Possible"

  133. 6

    5

    10

    45

    Returns: "Impossible"

  134. 1

    1

    1000000000

    999999998

    Returns: "Impossible"

  135. 4

    3

    47

    24

    Returns: "Impossible"

  136. 6181

    334539678

    331080498

    42863604

    Returns: "Impossible"


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: