온라인저지
[BOJ] 1654번: 랜선 자르기
plzfday
2018. 8. 9. 00:50
https://www.acmicpc.net/problem/1654
랜선 하나의 길이를 이분탐색하자.
#include <cstdio>
#include <algorithm>
using namespace std;
int k, n, lan[1000001], Max = -987654321;
int main()
{
scanf("%d %d", &k, &n);
for (int i = 0; i < k; ++i) {
scanf("%d", lan + i);
Max = max(Max, lan[i]);
}
long long s = 1, f = Max, ans = 0;
long long mid = 1;
while (s <= f)
{
mid = (s + f) >> 1;
int cnt = 0;
for (int i = 0; i < k; ++i) cnt += (lan[i] / mid);
if (cnt >= n) ans = mid, s = mid + 1;
else f = mid - 1;
}
printf("%lld", ans);
return 0;
}