백준공부/java
[백준] 1654번 랜선 자르기 (silver 2
gomduri43
2023. 10. 16. 17:19
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st=new StringTokenizer(br.readLine());
int k=Integer.valueOf(st.nextToken());
int n=Integer.valueOf(st.nextToken());
ArrayList<Integer> arr=new ArrayList<>();
int max=0;
for(int i=0; i<k; i++){
arr.add(Integer.valueOf(br.readLine()));
max= max < arr.get(i) ? arr.get(i) :max;
}
int temp = 0;
long s = 1;
long e = max;
long mid =0l;
int answer = Integer.MIN_VALUE;
while (s <= e) {
mid = (s + e) / 2;
temp = 0;
for (int i = 0; i < k; i++) {
temp += arr.get(i) / mid;
}
if (temp >= n) {
answer = answer < mid ? (int)mid : answer;
}
if (temp >= n) {
s = mid + 1;
} else {
e = mid - 1;
}
}
bw.write(answer + "");
bw.flush();
}
}