結果
| 問題 |
No.2099 [Cherry Alpha B] Time Machine
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-04-16 16:33:48 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,126 bytes |
| コンパイル時間 | 462 ms |
| コンパイル使用メモリ | 82,224 KB |
| 実行使用メモリ | 59,776 KB |
| 最終ジャッジ日時 | 2025-04-16 16:37:37 |
| 合計ジャッジ時間 | 5,957 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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)
lam6er