結果
問題 | No.281 門松と魔法(1) |
ユーザー |
![]() |
提出日時 | 2021-02-24 06:09:39 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 707 bytes |
コンパイル時間 | 186 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 65,408 KB |
最終ジャッジ日時 | 2024-09-23 04:16:50 |
合計ジャッジ時間 | 4,301 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 47 RE * 10 |
ソースコード
def make_b_max(a,b,c,d): r = 0 if a >= b: v = (a-b)//d + 1 a = max(0,a-d*v) r += v if c >= b: v = (c-b)//d + 1 c = max(0,c-d*v) r += v # b: maxになった if a != c: return r if a: return r+1 else: return INF def make_b_min(a,b,c,d): r = int(a==c) if a==c: a = max(a-d,0) x = min(a,c) if x <= b: v = (b-x)//d + 1 b = max(0,b-d*v) r += v # b: minになった if a != b and c != b: return r else: return INF d,a,b,c = map(int,open(0).read().split()) ans = INF = 1<<60 ans = min(ans,make_b_min(a,b,c,d)) ans = min(ans,make_b_max(a,b,c,d)) print(ans if ans != INF else -1)