結果
問題 |
No.281 門松と魔法(1)
|
ユーザー |
![]() |
提出日時 | 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)