結果
| 問題 |
No.281 門松と魔法(1)
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 21:23:43 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,178 bytes |
| コンパイル時間 | 182 ms |
| コンパイル使用メモリ | 82,252 KB |
| 実行使用メモリ | 69,248 KB |
| 最終ジャッジ日時 | 2025-06-12 21:25:24 |
| 合計ジャッジ時間 | 6,389 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 50 WA * 7 |
ソースコード
d = int(input())
h1 = int(input())
h2 = int(input())
h3 = int(input())
if d == 0:
# Check if all are distinct and middle is max or min
if h1 == h2 or h2 == h3 or h1 == h3:
print(-1)
else:
if (h2 == max(h1, h2, h3)) or (h2 == min(h1, h2, h3)):
print(0)
else:
print(-1)
else:
def get_candidates(H):
candidates = []
max_k = 200
for k in range(max_k + 1):
h = max(0, H - k * d)
candidates.append((k, h))
return candidates
c1 = get_candidates(h1)
c2 = get_candidates(h2)
c3 = get_candidates(h3)
min_total = float('inf')
found = False
for (k1, h1_val) in c1:
for (k2, h2_val) in c2:
for (k3, h3_val) in c3:
if h1_val == h2_val or h2_val == h3_val or h1_val == h3_val:
continue
if (h2_val == max(h1_val, h2_val, h3_val)) or (h2_val == min(h1_val, h2_val, h3_val)):
total = k1 + k2 + k3
if total < min_total:
min_total = total
found = True
print(min_total if found else -1)
gew1fw