結果
問題 |
No.2099 [Cherry Alpha B] Time Machine
|
ユーザー |
![]() |
提出日時 | 2025-04-15 23:55:56 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,126 bytes |
コンパイル時間 | 349 ms |
コンパイル使用メモリ | 82,900 KB |
実行使用メモリ | 60,480 KB |
最終ジャッジ日時 | 2025-04-15 23:57:42 |
合計ジャッジ時間 | 5,165 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 55 WA * 17 |
ソースコード
T = int(input()) X, A = map(int, input().split()) Y, B = map(int, input().split()) min_cost = float('inf') if T > 0: # Candidate 1: Only waiting min_cost = T # Candidate 2: Using only A k_max = T // A cost = X * k_max + (T - k_max * A) if cost < min_cost: min_cost = cost # Candidate 3: Using A once more than k_max and then B k = k_max + 1 m_min = max(0, (k * A - T + B - 1) // B) if k * A - m_min * B <= T: cost = X * k + Y * m_min + (T - (k * A - m_min * B)) if cost < min_cost: min_cost = cost # Candidate 4: Explore combinations of A and B k_max_candidate = (T + 2 * B) // A + 2 for k in range(0, k_max_candidate + 1): m_min = max(0, (k * A - T + B - 1) // B) if k * A - m_min * B > T: continue cost = X * k + Y * m_min + (T - (k * A - m_min * B)) if cost < min_cost: min_cost = cost else: # T is negative, use B to go back abs_T = -T m = (abs_T + B - 1) // B # ceil division cost = Y * m + (m * B - abs_T) min_cost = cost print(min_cost)