문제
링크텍스트
난관
- 다음과 같이 simulation하면 시간초과에 걸린다.
d0 = 0
V0 = V
while V0 > 0:
V0 -= A
d0 += 1
if V0 <= 0:
break
V0 += B
- 만약에, d0 (= (V-.1) // (A-B) + 1) 일 지나서 시작하면 그 전에 낮에 A 만큼 올라가다 V (= 나무 막대 높이)를 넘어 꼭대기에 닿아서 d0 일 보다 전에 모두 올라갔을 수 있다.
- 그러므로 낮 동안 최대 올라가는 거리 A 만큼은 남겨 놓은 거리 V0 (= V - A)를 갈 수 있는 날에서 시작 해야 한다.
- d = (V-A-0.1) // (A-B) + 2
- 위에서 -0.1과 +2와 같은 세부 detial에 많은 시간을 썼다.
- 역시 아직 '손으로 그려보는 연습 더 하기'가 부족하다 !!!
결과
A,B,V = map(int, input().split())
d = int((V - A - .1) // (A - B)) + 2
print(d)