Statistics

Problem Statement for "GymTraining"

Problem Statement

You are at the gym and you want to do some training. The training process is divided into one-minute segments. During each minute, you can either train or rest.

If you choose to train during a minute, it increases your pulse by trainChange. That is, if your pulse was X, it becomes X + trainChange after a minute of training. You never want your pulse to exceed maxPulse, so you can train only if X + trainChange is less than or equal to maxPulse.

If you choose to rest during a minute, it decreases your pulse by restChange. That is, if your pulse was X, it becomes X - restChange after a minute of rest. However, your pulse never falls below minPulse, so if X - restChange is less than minPulse, your pulse becomes minPulse instead of X - restChange.

Your pulse is initially minPulse. You want to train for a total of needToTrain minutes (these minutes don't need to be consecutive). Return the minimum number of minutes your complete training process will take. If you can't train for needToTrain minutes, return -1 instead.

Definition

Class:
GymTraining
Method:
trainingTime
Parameters:
int, int, int, int, int
Returns:
int
Method signature:
int trainingTime(int needToTrain, int minPulse, int maxPulse, int trainChange, int restChange)
(be sure your method is public)

Constraints

  • minPulse will be between 50 and 200, inclusive.
  • maxPulse will be between minPulse and 200, inclusive.
  • needToTrain, trainChange and restChange will each be between 1 and 200, inclusive.

Examples

  1. 5

    70

    120

    25

    15

    Returns: 10

    Your training process goes as follows: Time Activity Pulse after activity 1 train 95 2 train 120 3 rest 105 4 rest 90 5 train 115 6 rest 100 7 rest 85 8 train 110 9 rest 95 10 train 120

  2. 100

    50

    100

    5

    200

    Returns: 109

    After 10 consecutive minutes of training, your pulse rises from 50 to 100. Then, after a minute of rest, it falls back to 50. You will do this nine times and then finish with 10 consecutive minutes of training, for a total of 9*(10+1)+10 = 109 minutes.

  3. 1

    60

    70

    11

    11

    Returns: -1

    A minute of training raises your pulse from 60 to 71, which exceeds your maximum pulse. Therefore, it is not possible to do any training.

  4. 200

    50

    200

    150

    1

    Returns: 30050

    In this case, you need a lot of time to finish your training.

  5. 19

    89

    143

    17

    13

    Returns: 40

  6. 1

    50

    50

    1

    1

    Returns: -1

  7. 1

    199

    200

    1

    1

    Returns: 1

  8. 200

    50

    200

    150

    150

    Returns: 399

  9. 200

    50

    200

    1

    150

    Returns: 201

  10. 200

    50

    200

    1

    1

    Returns: 250

  11. 200

    50

    200

    200

    200

    Returns: -1

  12. 187

    79

    170

    177

    154

    Returns: -1

  13. 189

    140

    164

    29

    140

    Returns: -1

  14. 16

    72

    199

    177

    117

    Returns: -1

  15. 163

    95

    164

    186

    74

    Returns: -1

  16. 52

    55

    153

    146

    135

    Returns: -1

  17. 149

    89

    170

    79

    35

    Returns: 593

  18. 101

    167

    183

    14

    53

    Returns: 201

  19. 159

    63

    126

    2

    169

    Returns: 164

  20. 173

    94

    181

    64

    75

    Returns: 345

  21. 173

    63

    166

    50

    29

    Returns: 468

  22. 91

    72

    136

    2

    65

    Returns: 93

  23. 25

    77

    168

    8

    160

    Returns: 27

  24. 120

    55

    112

    39

    67

    Returns: 239

  25. 12

    108

    171

    59

    109

    Returns: 23

  26. 163

    52

    166

    38

    125

    Returns: 217

  27. 138

    55

    172

    69

    29

    Returns: 463

  28. 7

    77

    160

    29

    148

    Returns: 10

  29. 134

    85

    137

    8

    169

    Returns: 156

  30. 135

    76

    147

    62

    45

    Returns: 403

  31. 175

    65

    188

    21

    109

    Returns: 209

  32. 185

    81

    196

    80

    10

    Returns: 1654

  33. 152

    77

    187

    33

    173

    Returns: 202

  34. 154

    57

    133

    53

    67

    Returns: 307

  35. 39

    59

    196

    123

    158

    Returns: 77

  36. 135

    102

    166

    34

    102

    Returns: 269

  37. 146

    155

    198

    9

    76

    Returns: 182

  38. 36

    158

    186

    18

    185

    Returns: 71

  39. 61

    110

    192

    21

    117

    Returns: 81

  40. 140

    88

    184

    57

    135

    Returns: 279

  41. 32

    74

    187

    2

    19

    Returns: 32

  42. 38

    69

    192

    58

    154

    Returns: 56

  43. 17

    71

    134

    9

    100

    Returns: 19

  44. 1

    72

    200

    25

    182

    Returns: 1

  45. 108

    53

    149

    96

    59

    Returns: 322

  46. 22

    130

    192

    61

    191

    Returns: 43

  47. 1

    137

    167

    11

    160

    Returns: 1

  48. 2

    66

    142

    60

    178

    Returns: 3

  49. 4

    87

    124

    4

    180

    Returns: 4

  50. 6

    125

    155

    22

    149

    Returns: 11

  51. 24

    88

    198

    1

    175

    Returns: 24

  52. 26

    55

    91

    23

    168

    Returns: 51

  53. 118

    66

    170

    3

    124

    Returns: 121

  54. 137

    118

    196

    13

    185

    Returns: 159

  55. 171

    53

    115

    59

    72

    Returns: 341

  56. 69

    50

    173

    85

    9

    Returns: 707

  57. 121

    72

    126

    35

    4

    Returns: 1167

  58. 140

    76

    185

    59

    3

    Returns: 2857

  59. 149

    81

    146

    63

    2

    Returns: 4810

  60. 89

    56

    188

    125

    1

    Returns: 11082

  61. 161

    58

    191

    115

    1

    Returns: 18543

  62. 20

    60

    150

    5

    13

    Returns: 21

  63. 100

    100

    101

    5

    1

    Returns: -1

  64. 40

    60

    80

    10

    5

    Returns: 116

  65. 50

    100

    101

    10

    1

    Returns: -1

  66. 3

    70

    100

    20

    50

    Returns: 5

  67. 10

    100

    101

    1

    10

    Returns: 19

  68. 1

    50

    200

    1

    1

    Returns: 1

  69. 10

    50

    55

    1

    10

    Returns: 11

  70. 100

    50

    50

    10

    1

    Returns: -1

  71. 10

    50

    100

    30

    80

    Returns: 19

  72. 200

    199

    199

    20

    1

    Returns: -1

  73. 2

    60

    70

    10

    20

    Returns: 3

  74. 200

    50

    200

    100

    160

    Returns: 399

  75. 50

    100

    120

    19

    17

    Returns: 148

  76. 10

    100

    200

    100

    1

    Returns: 910

  77. 3

    50

    100

    30

    100

    Returns: 5

  78. 5

    80

    90

    9

    20

    Returns: 9

  79. 10

    100

    200

    150

    50

    Returns: -1

  80. 184

    79

    126

    29

    66

    Returns: 367

  81. 50

    50

    100

    5

    2

    Returns: 150

  82. 150

    50

    60

    8

    10

    Returns: 299

  83. 5

    50

    200

    2

    1

    Returns: 5

  84. 100

    50

    51

    100

    50

    Returns: -1

  85. 100

    60

    70

    20

    30

    Returns: -1

  86. 8

    50

    60

    11

    9

    Returns: -1

  87. 5

    50

    100

    1

    5

    Returns: 5

  88. 5

    50

    60

    10

    6

    Returns: 13

  89. 10

    50

    100

    25

    100

    Returns: 14

  90. 200

    50

    200

    74

    47

    Returns: 512

  91. 20

    50

    200

    150

    100

    Returns: 58

  92. 2

    50

    55

    7

    6

    Returns: -1

  93. 10

    50

    60

    9

    200

    Returns: 19

  94. 5

    100

    104

    2

    6

    Returns: 7

  95. 80

    50

    100

    1

    80

    Returns: 81

  96. 1

    100

    200

    1

    1

    Returns: 1

  97. 10

    50

    100

    30

    10

    Returns: 35

  98. 20

    50

    200

    50

    101

    Returns: 29

  99. 199

    100

    120

    1

    100

    Returns: 208

  100. 2

    50

    200

    2

    2

    Returns: 2


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: