백준/백준-C++
1654번: 랜선 자르기
Beabletoet
2017. 6. 14. 18:36
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int k, n, have[10000];
long long lo = 0, hi = (long long)(pow(2, 31) - 1), mid, now;
scanf("%d %d", &k, &n);
for (int i = 0; i < k; ++i)
scanf("%d", &have[i]);
while (lo <= hi)
{
now = 0;
mid = (lo + hi) / 2;
for (int i = 0; i < k; ++i)
now += have[i] / mid;
if (now >= n)
lo = mid + 1;
else if (now < n)
hi = mid - 1;
}
printf("%lld", lo - 1);
}