만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

지하철

면접 대비

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

요약
잔액이 a_i인 카드 n장에 추가 금액 p를 나눠 넣을 때, 요금 k로 탈 수 있는 최대 승차 횟수를 구합니다.
난이도

보통10점 중 5점

유형
그리디, 정렬, 수학
정답자
아직 제출이 없습니다

문제

파프누티는 목적지에 가려고 지하철을 이용하고 싶어 한다.

개찰구를 통과하려면 특수 카드 SLON(Subterranean Lowcost Orientational Network)을 써야 한다. 각 카드에는 0 이상의 정수 잔액이 있으며, 이는 카드에 기록된 부리의 개수다. 잔액이 최소 kk부리 이상이면 개찰구를 통과할 수 있고, 통과하면 잔액이 kk부리 줄어든다. 잔액이 kk부리보다 적으면 그 카드로는 통과할 수 없다.

처음에 파프누티는 nn장의 카드를 가지고 있고, ii번째 카드의 잔액은 aia_i부리다. 또 그는 pp부리를 모아 두었고, 이 돈을 카드들에 자유롭게 나눌 수 있다. 형식적으로, ii번째 카드에 addi≥0add_i \ge 0부리를 더한다면 add1+add2+…+addn≤padd_1 + add_2 + \ldots + add_n \le p를 만족해야 한다. 카드 사이에서 돈을 옮길 수는 없다. 카드 잔액은 이 pp부리의 일부로만 늘어나고, 개찰구를 통과할 때만 줄어든다.

파프누티가 pp부리를 최적으로 나눴을 때 지하철을 최대 몇 번 탈 수 있는지 구하라.

입력

첫 줄에 세 정수 nn, pp, kk가 주어진다 (1≤n≤1051 \leq n \leq 10^5, 0≤p≤10180 \leq p \leq 10^{18}, 1≤k≤1091 \leq k \leq 10^9). 각각 카드의 개수, 모아 둔 돈, 한 번 통과할 때의 요금이다.

둘째 줄에 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다 (0≤ai≤1090 \leq a_i \leq 10^9). 각 카드의 잔액이다.

출력

파프누티가 지하철을 최대 몇 번 탈 수 있는지 나타내는 정수 하나를 출력한다.

힌트

첫 번째 예제에서 처음에는 3번만 탈 수 있다. 그러나 첫 번째, 두 번째, 세 번째 카드 중 하나에 1부리를 더하면 4번 탈 수 있다.

두 번째 예제에서 1000부리는 두 카드의 잔액을 모두 2000부리로 맞추기에만 충분하다.

예제2

  1. 예제 1

    입력
    5 1 4
    7 7 3 4 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    2 1000 2000
    1299 1701
    
    예상 출력
    2