아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

사탕 나눠주기

시간 제한2초메모리 제한1024 MB

요약
N명의 점수와 사탕 예산 K가 주어질 때, 점수가 X를 넘는 학생에게 (점수 - X)개의 사탕을 줄 때 총 사탕 수가 K 이하가 되는 가장 작은 기준 X를 구한다.
난이도

보통10점 중 6점

유형
이분 탐색, 정렬, 누적 합, 수학
정답자
아직 제출이 없습니다

문제

소수전공 수업을 마무리한 찬우는 축하의 의미로 학생들에게 사탕을 나누어 주려 한다. 구체적으로, 기준이 되는 음이 아닌 정수 XX를 정한 뒤 최종 점수가 XX점을 넘는 학생들에게 점수가 높은 만큼 많은 사탕을 줄 것이다. 즉, X+1X+1점을 받은 학생은 11개, X+2X+2점을 받은 학생은 22개, TT(T>XT > X)점을 받은 학생은 T−XT - X개의 사탕을 받게 된다.

찬우는 학생들에게 최대한 많은 사탕을 나누어주고 싶기 때문에 기준 점수 XX를 가능한 한 낮게 정하려 한다. 하지만, 지금 가지고 있는 돈으로는 사탕을 KK개까지만 살 수 있기 때문에 사탕의 총 개수가 KK개를 넘으면 안 된다.

찬우의 수업은 총 NN명이 수강했고, ii번째 학생은 A_iA\_i점을 받았다. 수강생의 수와 각 학생의 점수, 사탕의 최대 개수 KK가 주어질 때 찬우를 위해 가능한 XX의 최솟값을 구하는 프로그램을 작성해 주자.

입력

첫째 줄에 정수 NN, KK가 공백으로 구분되어 주어진다. (1≤N≤5×105;(1 \leq N \leq 5\times 10^5; 0≤K≤1012)0 \leq K \leq 10^{12})

둘째 줄에 NN개의 정수 A_1,A_2,⋯ ,A_NA\_1, A\_2, \dotsm, A\_N이 공백으로 구분되어 주어진다. (0≤A_i≤1012)(0 \leq A\_i \leq 10^{12})

출력

첫째 줄에 가능한 기준 XX의 최솟값을 출력한다.

힌트

입출력 양이 많으므로 문제지 2-4페이지의 언어 가이드에 있는 빠른 입출력을 사용하는 것을 권장한다.

예제2

  1. 예제 1

    입력
    4 80
    80 100 50 40
    
    예상 출력
    50
    
  2. 예제 2

    입력
    4 61
    80 100 50 40
    
    예상 출력
    60