가지고 있는 랜선의 개수 K, 필요한 랜선의 개수 N이 입력될 때 랜선 최대 길이 구하기
mid 길이로 만들 수 있으면 더 긴 길이도 시도해본다 (st = mid)mid보다 짧은 길이만 고려한다 (en = mid - 1)#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int k, n;
int arr[10005];
bool solve(ll x){
ll cur = 0;
for(int i = 0; i < k; i++) cur += arr[i] / x;
return cur >= n;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> k >> n;
for(int i = 0; i < k; i++) cin >> arr[i];
ll st = 1;
ll en = 0x7fffffff; // 2^31 - 1
while(st < en){
ll mid = (st + en + 1)/2;
if(solve(mid)) st = mid;
else en = mid-1;
}
cout << st;
}