結果

問題 No.281 門松と魔法(1)
ユーザー rlangevin
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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)
0