結果
問題 | No.281 門松と魔法(1) |
ユーザー |
![]() |
提出日時 | 2021-02-24 06:14:14 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 40 ms / 1,000 ms |
コード長 | 827 bytes |
コンパイル時間 | 194 ms |
コンパイル使用メモリ | 82,004 KB |
実行使用メモリ | 53,768 KB |
最終ジャッジ日時 | 2024-09-23 04:21:04 |
合計ジャッジ時間 | 3,847 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 57 |
ソースコード
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 if d==0: if a != b != c != a and (a < b > c or a > b < c): print(0) else: print(-1) exit() 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)