結果
問題 | No.281 門松と魔法(1) |
ユーザー |
|
提出日時 | 2016-06-14 19:19:11 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 34 ms / 1,000 ms |
コード長 | 1,048 bytes |
コンパイル時間 | 190 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 11,136 KB |
最終ジャッジ日時 | 2024-11-06 20:46:48 |
合計ジャッジ時間 | 3,318 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 57 |
ソースコード
import math d = int(input()) H = [] H.append(int(input())) H.append(int(input())) H.append(int(input())) if H[1] == 0 and (H[0] == H[1] or H[1] == H[2]): print(-1) exit() if H[0] == H[2] and H[0] == 0: print(-1) exit() if (H[1] == max(H) or H[1] == min(H)) and (H[0] != H[2]): print(0) exit() if d == 0: print(-1) exit() cnt = 0 if H[0] == H[2]: H[2] = max(H[2]-d, 0) cnt += 1 if (H[1] == max(H) or H[1] == min(H)) and not (H[0] == H[1] or H[1] == H[2] or H[0] == H[2]): print(1) exit() if H[0] < H[2]: H[0], H[2] = H[2], H[0] diff = 0 tar = 0 if H[2] == 0: diff = H[0] - H[1] tar = 0 else: diff = min(H[0] - H[1], H[1] - H[2]) if H[0] - H[1] < H[1] - H[2]: tar = 0 else: tar = 1 c = int(math.ceil((diff+0.5)/d)) H[tar] = max(H[tar] - d*c, 0) cnt += c if H[0] == H[1] or H[1] == H[2] and H[1] == 0: print(-1) elif H[0] == H[2] and H[0] == 0: print(-1) elif H[0] == H[1] or H[1] == H[2] or H[0]==H[2]: print(cnt+1) else: print(cnt)