結果
問題 |
No.2099 [Cherry Alpha B] Time Machine
|
ユーザー |
![]() |
提出日時 | 2025-03-31 17:55:43 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,067 bytes |
コンパイル時間 | 139 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 75,848 KB |
最終ジャッジ日時 | 2025-03-31 17:56:47 |
合計ジャッジ時間 | 7,930 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 67 WA * 5 |
ソースコード
def main(): import sys import math T = int(sys.stdin.readline()) X, A = map(int, sys.stdin.readline().split()) Y, B = map(int, sys.stdin.readline().split()) min_cost = float('inf') # Case 0: Only waiting if T > 0: min_cost = min(min_cost, T) # Consider a=0 if A > 0: a = 0 numerator = a * A - T if numerator <= 0: b_min = 0 else: b_min = max(0, (numerator + B - 1) // B) s = a * A - b_min * B if s <= T: cost = a * X + b_min * Y + (T - s) if cost < min_cost: min_cost = cost # Iterate a from 0 to 200,000 max_a = 200000 for a in range(max_a + 1): numerator = a * A - T if numerator <= 0: b = 0 else: b = (numerator + B - 1) // B # ceil division b = max(b, 0) s = a * A - b * B if s <= T: cost = a * X + b * Y + (T - s) if cost < min_cost: min_cost = cost # Iterate b from 0 to 200,000 max_b = 200000 for b in range(max_b + 1): if B == 0: continue # shouldn't happen per input constraints s_part = -b * B target = T - s_part # required a*A = target if A == 0: a = 0 if target <= 0 else -1 else: a = (target) // A if a * A != target: a = (target) // A # floor for delta in [a-1, a, a+1, a+2, a+3]: if delta < 0: continue aa = delta s = aa * A - b * B if s <= T: cost = aa * X + b * Y + (T - s) if cost < min_cost: min_cost = cost # Handle a=0 for T < 0 if T < 0: required_b = (-T + B - 1) // B # ceil(-T / B) required_b = max(required_b, 0) cost = required_b * Y + (T + required_b * B) if cost < min_cost: min_cost = cost print(min_cost) if __name__ == '__main__': main()