[백준]나무 자르기
6183 단어 Binary SearchBinary Search
유의할점
풀이
랜선 자르기와 동일
코드
C++
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int N, M;
cin >> N >> M;
vector<long long> arr(N);
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
sort(arr.begin(), arr.end(), greater<long long>());
long long start = 0;
long long end = arr[0];
while (start + 1 < end) {
long long mid = (start + end) / 2;
long long h = 0;
for (int i = 0; i < N; i++) {
long long dif = arr[i] - mid;
if (dif <= 0)
break;
h += dif;
}
if (h < M) {
end = mid;
}
else {
start = mid;
}
}
cout << start;
}
Author And Source
이 문제에 관하여([백준]나무 자르기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@6047198844/백준나무-자르기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)