白俊答題2805木を切る
5242 ワード
boj 2805:木を切る
質問アドレス:https://www.acmicpc.net/problem/2805
難易度:silver 3
1.問題の説明
2.問題を解決する考え。
3.問題の処理方法
while low <= high:
total = 0
mid = (low + high) // 2
for tree in trees:
if tree > mid:
total += tree-mid
if total < M:
high = mid - 1
else:
ans = mid #밑의 과정을 통해 while문이 끝날수도 있기때문에 업데이트 해준다.
low = mid + 1
4.特別注意事項
5.コード実装
N, M = map(int, input().split())
trees = list(map(int, input().split()))
low = 0
high = max(trees)
ans = 0
while low <= high:
total = 0
mid = (low + high) // 2
for tree in trees:
if tree > mid:
total += tree-mid
if total < M:
high = mid - 1
else:
ans = mid
low = mid + 1
print(ans)
Reference
この問題について(白俊答題2805木を切る), 我々は、より多くの情報をここで見つけました https://velog.io/@qlql323/백준-문제풀이-2805-나무-자르기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol