https://www.acmicpc.net/problem/2805
1654번 문제와 동일하다.
https://aigong.tistory.com/397
다만 어이없는 것은 동일한 문제인데 시간 초과가 난다는 것이다.
import sys
input = sys.stdin.readline
위 코드를 추가함으로써 간신히 코드 통과
희한하다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
l = sorted(list(map(int, input().split())))
start, end = 1, l[-1]
while start <= end:
mid = (start+end)//2
cl = 0
for i in l:
if i > mid:
cl += i-mid
if cl >= m:
start = mid + 1
else:
end = mid - 1
print(end)
sys 없이 sumation을 다른 방식으로 진행했더니 더 빨라진 후 통과하였다.
희한.
n, m = map(int, input().split())
l = list(map(int, input().split()))
start, end = 1, max(l)
while start <= end:
mid = (start+end)//2
cl = sum(i-mid if i>mid else 0 for i in l)
if cl >= m:
start = mid + 1
else:
end = mid - 1
print(end)