日期:2026年2月4日
ZeroJudge 題目連結:c036. 00573 - The Snail
解題想法
用 $y$ 儲存目前的高度,預設值為 0。用一個無窮迴圈,不斷更新每天的高度,更新的順序為
- 白天往上爬高度 $u$,如果 $y > h$ 印出 success on day {days},中止迴圈。
- 晚上向下滑高度 $d$,如果 $y < 0$ 印出 failure on day {days},中止迴圈。
- 更新下一天向上爬的高度 $u$,如果 $u < 0$ 時歸零。
Python 程式碼
使用時間約為 18 ms,記憶體約為 3.3 MB,通過測試。
import sys
for line in sys.stdin:
if line.rstrip() == "0 0 0 0": break
h, u, d, f = map(float, line.split())
days = 0
dec = u*f*0.01
y = 0.0
while True:
days += 1
y += u
if y > h:
print(f"success on day {days:d}")
break
y -= d
if y < 0:
print(f"failure on day {days:d}")
break
u -= dec
if u < 0: u = 0.0