結果
問題 | No.281 門松と魔法(1) |
ユーザー |
![]() |
提出日時 | 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)