# 분류 : 이진 탐색
# 정답률이 낮은데에 비해 쉽게 해결할 수 있던 문제, 어떠한 길이로 나무를 자를 때 음수가 되는 것만 주의하면 쉽게 해결
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
long M = Long.parseLong(st.nextToken());
long arr[] = new long[N];
st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++) {
arr[i] = Long.parseLong(st.nextToken());
}
Arrays.sort(arr);
long left = 0;
long right = 2000000000;
while(left<=right) {
long middle = (left+right)/2;
long sum=0;
for(int i=0; i<N; i++) {
if((arr[i]-middle)<0) {
sum+=0;
}else
sum+=arr[i]-middle;
}
if(sum < M) {
right = middle-1;
}else if(sum>=M)
left = middle+1;
}
System.out.println(right);
}
}
'백준' 카테고리의 다른 글
백준_11657 타임머신 - Java 자바 (출력초과 수정완료) (0) | 2020.01.11 |
---|---|
#백준_1654 랜선 자르기 - Java (0) | 2020.01.11 |
#백준_1992 쿼드트리 - Java (0) | 2020.01.11 |
#백준_11729 하노이 탑 이동 순서 - Java (0) | 2020.01.11 |
#백준_1780 종이의 개수 - Java (0) | 2020.01.11 |