結果
| 問題 |
No.281 門松と魔法(1)
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2022-09-28 01:53:02 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 34 ms / 1,000 ms |
| コード長 | 826 bytes |
| コンパイル時間 | 245 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 11,008 KB |
| 最終ジャッジ日時 | 2024-12-22 17:19:53 |
| 合計ジャッジ時間 | 3,726 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 57 |
ソースコード
d=int(input())
H=[int(input()) for i in range(3)]
if d==0:
if H[1]>H[0] and H[1]>H[2] and H[0]!=H[2]:
print(0)
exit()
if H[1]<H[0] and H[1]<H[2] and H[0]!=H[2]:
print(0)
exit()
print(-1)
exit()
A=1<<60
# H[1]>H[0],H[2]にする
k=max(0,(H[0]-H[1])//d+1)
l=max(0,(H[2]-H[1])//d+1)
X=[max(0,H[0]-d*k),H[1],max(0,H[2]-d*l)]
if X[1]>X[0] and X[1]>X[2]:
if X[0]!=X[2]:
A=k+l
elif X[0]!=0 or X[2]!=0:
A=k+l+1
else:
A=1<<60
# H[1]<H[0],H[2]にする
k=0
B=1<<60
if H[0]==H[2]:
H[0]=max(0,H[0]-d)
k+=1
k+=max(0,(H[1]-min(H[0],H[2]))//d+1)
X=[H[0],max(0,H[1]-d*k),H[2]]
if X[1]<X[0] and X[1]<X[2]:
if X[0]!=X[2]:
B=k
else:
B=1<<60
ANS=min(A,B)
if ANS==1<<60:
print(-1)
else:
print(ANS)
titia