백준/백준-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);

}