cgy12306
[백준 BoJ] 1654 - 랜선 자르기 본문
// https://www.acmicpc.net/problem/1654
// 랜선 자르기
#include<iostream>
#include<algorithm>
using namespace std;
long long K, N, lan[10001], low, high, mid, res;
bool check(long long length) {
int cnt = 0;
for (int i = 0; i < K; i++) {
cnt += lan[i] / length;
}
if (cnt >= N) return true;
else return false;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> K >> N;
for (int i = 0; i < K; i++) {
cin >> lan[i];
}
low = 1;
high = *max_element(lan, lan+K);
while (low <= high) {
mid = (low + high) / 2;
if (check(mid)) {
if (res < mid) res = mid;
low = mid + 1;
}
else {
high = mid - 1;
}
}
cout << res << "\n";
}
알고리즘 분류
- 이분 탐색
- 매개 변수 탐색
'Algorithm > C++' 카테고리의 다른 글
[백준 BoJ] 1012 - 유기농 배추 (0) | 2021.06.30 |
---|---|
[백준 BoJ] 2606 - 바이러스 (0) | 2021.06.29 |
[백준 BoJ] 2331 - 반복수열 (0) | 2021.04.15 |
[백준 BoJ] 11724 - 연결 요소의 개수 (0) | 2021.04.15 |
[백준 BoJ] 1978 - 소수 찾기 (0) | 2021.04.14 |
Comments