운동

면접 대비

시간 제한2초메모리 제한16 MB

요약
운동 시 T만큼 오르고 휴식 시 R만큼 내려가는 심박수를 m과 M 사이로 제한하면서, N분의 운동을 채우는 데 필요한 최소 시간을 구하거나 불가능함을 판단합니다.
난이도

보통10점 중 5점

유형
그리디, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

영식이의 운동 과정은 1분 단위로 나뉜다. 매 분마다 영식이는 운동하거나 휴식하는 것 중 하나를 선택해야 한다.

운동을 선택하면 맥박이 T만큼 증가한다. 현재 맥박이 X라면, 1분 동안 운동한 뒤 맥박은 X+T가 된다. 영식이는 맥박이 M을 넘지 않기를 원하므로, X+T가 M 이하일 때만 운동할 수 있다.

휴식을 선택하면 맥박이 R만큼 감소한다. 현재 맥박이 X라면, 1분 동안 휴식한 뒤 맥박은 X-R이 된다. 단, 맥박은 절대로 m보다 낮아지지 않으므로 X-R이 m보다 작으면 맥박은 m이 된다.

영식이의 초기 맥박은 m이다. 영식이는 총 N분 동안 운동하려고 한다. 운동하는 시간이 연속될 필요는 없다. 총 N분의 운동을 끝내는 데 필요한 최소 경과 시간을 구하라.

입력

첫째 줄에 다섯 정수 N, m, M, T, R이 주어진다.

출력

총 N분 동안 운동하는 데 필요한 최소 경과 시간을 출력한다. N분 동안 운동할 수 없다면 -1을 출력한다.

제한

  • 1 <= N, T, R <= 200
  • 50 <= m <= M <= 200

힌트

첫 번째 공개 테스트 케이스에서 가능한 최적의 진행 과정은 다음과 같다.

시간행동행동을 한 후의 맥박
1운동95
2운동120
3휴식105
4휴식90
5운동115
6휴식100
7휴식85
8운동110
9휴식95
10운동120

예제5

  1. 예제 1

    입력
    5 70 120 25 15
    
    예상 출력
    10
    
  2. 예제 2

    입력
    100 50 100 5 200
    
    예상 출력
    109
    
  3. 예제 3

    입력
    1 60 70 11 11
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    200 50 200 150 1
    
    예상 출력
    30050
    
  5. 예제 5

    입력
    19 89 143 17 13
    
    예상 출력
    40