結果
問題 |
No.281 門松と魔法(1)
|
ユーザー |
![]() |
提出日時 | 2023-07-22 18:58:07 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 39 ms / 1,000 ms |
コード長 | 684 bytes |
コンパイル時間 | 307 ms |
コンパイル使用メモリ | 82,132 KB |
実行使用メモリ | 53,688 KB |
最終ジャッジ日時 | 2024-09-22 18:27:18 |
合計ジャッジ時間 | 4,167 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 57 |
ソースコード
d = int(input()) inf = 10 ** 18 H = [0] * 3 for i in range(3): H[i] = int(input()) def check(A, d): if d == 0: if A[0] > A[1] > A[2]: return 0 else: return inf cnt = 0 if A[1] >= A[0]: cnt = (A[1] - A[0] + 1 + d - 1)//d A[1] -= cnt * d if A[1] <= 0: return inf if A[2] >= A[1]: cnt += (A[2] - A[1] + 1 + d - 1)//d return cnt ans = inf ans = min(ans, check([H[1], H[0], H[2]], d)) ans = min(ans, check([H[1], H[2], H[0]], d)) ans = min(ans, check([H[2], H[0], H[1]], d)) ans = min(ans, check([H[0], H[2], H[1]], d)) print(ans) if ans != inf else print(-1)