import java.io.*;
import java.util.*;
public class Main {
static int N; // 만들고 싶은 랜선 수
static int K; // 가지고 있던 랜선 수
static int[] cable; // 각 랜선의 길이
static int result;
N
= Integer.
parseInt(st.
nextToken()); K
= Integer.
parseInt(st.
nextToken()); cable = new int[N];
for(int i = 0; i< N; i++){
cable
[i
] = Integer.
parseInt(br.
readLine()); }
Arrays.
sort(cable
); // 오름차순 정렬
// 범위내에서 최대값 찾기
br.close();
}
public static void findMax(int left, int right){
int mid = (left+right)/2;
// 탈출 조건 - 애매함..
if(left > right) return;
long count = 0 ;
for(int i = 0; i < N ; i++){
count += cable[i]/mid;
}
if(count >= K){
// 지금 길이가 답일수도 있고, 더 길수도 있음.
result = mid; // 답일수도 있으니까 저장
findMax(mid + 1, right);
}else{
findMax(left, mid-1);
}
}
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgc3RhdGljIGludCBOOyAvLyDrp4zrk6Tqs6Ag7Iu27J2AIOuenOyEoCDsiJgKICAgIHN0YXRpYyBpbnQgSzsgLy8g6rCA7KeA6rOgIOyeiOuNmCDrnpzshKAg7IiYCiAgICBzdGF0aWMgaW50W10gY2FibGU7IC8vIOqwgSDrnpzshKDsnZgg6ri47J20CgogICAgc3RhdGljIGludCByZXN1bHQ7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uewogICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pKTsKICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKGJyLnJlYWRMaW5lKCkpOwoKICAgICAgICBOID0gSW50ZWdlci5wYXJzZUludChzdC5uZXh0VG9rZW4oKSk7CiAgICAgICAgSyA9IEludGVnZXIucGFyc2VJbnQoc3QubmV4dFRva2VuKCkpOwogICAgICAgIGNhYmxlID0gbmV3IGludFtOXTsKCiAgICAgICAgZm9yKGludCBpID0gMDsgaTwgTjsgaSsrKXsKICAgICAgICAgICAgY2FibGVbaV0gPSBJbnRlZ2VyLnBhcnNlSW50KGJyLnJlYWRMaW5lKCkpOwogICAgICAgIH0KICAgICAgICBBcnJheXMuc29ydChjYWJsZSk7IC8vIOyYpOumhOywqOyInCDsoJXroKwKCiAgICAgICAgLy8g67KU7JyE64K07JeQ7IScIOy1nOuMgOqwkiDssL7quLAKICAgICAgICBmaW5kTWF4KDAsIEludGVnZXIuTUFYX1ZBTFVFKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocmVzdWx0KTsKICAgICAgICBici5jbG9zZSgpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBmaW5kTWF4KGludCBsZWZ0LCBpbnQgcmlnaHQpewogICAgICAgIGludCBtaWQgPSAobGVmdCtyaWdodCkvMjsKCiAgICAgICAgLy8g7YOI7LacIOyhsOqxtCAtIOyVoOunpO2VqC4uCiAgICAgICAgaWYobGVmdCA+IHJpZ2h0KSByZXR1cm47CgogICAgICAgIGxvbmcgY291bnQgPSAwIDsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgTiA7IGkrKyl7CiAgICAgICAgICAgIGNvdW50ICs9IGNhYmxlW2ldL21pZDsKICAgICAgICB9CiAgICAgICAgaWYoY291bnQgPj0gSyl7CiAgICAgICAgICAgIC8vIOyngOq4iCDquLjsnbTqsIAg64u17J287IiY64+EIOyeiOqzoCwg642UIOq4uOyImOuPhCDsnojsnYwuCiAgICAgICAgICAgIHJlc3VsdCA9IG1pZDsgLy8g64u17J287IiY64+EIOyeiOycvOuLiOq5jCDsoIDsnqUKICAgICAgICAgICAgZmluZE1heChtaWQgKyAxLCByaWdodCk7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIGZpbmRNYXgobGVmdCwgbWlkLTEpOwogICAgICAgIH0KICAgIH0KfQo=