몬스터 농장

시간 제한1초메모리 제한512 MB

요약
고정된 규칙으로 공격하는 상대와 번갈아 몬스터를 공격하며, 자신이 직접 처치하는 몬스터 수를 최대로 만드는 문제이다.
난이도

어려움10점 중 8점

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

문제

몬스터가 nn마리 있고, ii번째 몬스터는 처음에 체력 hih_i를 가진다.

체력이 0보다 큰 몬스터를 살아 있다고 부르자.

당신의 공격력은 aa이고, 상대의 공격력은 bb이다.

몬스터가 하나라도 살아 있는 동안, 당신과 상대는 당신부터 시작해서 번갈아 몬스터를 공격한다.

당신은 매우 똑똑해서, 자신의 차례에 살아 있는 아무 몬스터나 공격하거나 아무것도 하지 않을 수 있다. 몬스터 ii를 공격하기로 하면 그 몬스터의 체력 hih_i가 정확히 aa만큼 줄어든다.

공격한 뒤 그 몬스터가 죽어 있으면(살아 있지 않으면) 승리 점수 1점을 얻는다.

반면 상대는 그렇게 똑똑하지 않다. 상대는 자신의 차례에 살아 있는 몬스터 중 번호가 가장 작은 몬스터를 찾아 공격한다. 즉 hi>0h_i > 0인 가장 작은 ii를 찾아 hih_i를 정확히 bb만큼 줄인다.

당신이 얻을 수 있는 승리 점수의 최댓값은 얼마인가?

입력

첫째 줄에 세 정수 nn, aa, bb가 주어진다. (1≤n≤300 0001 \le n \le 300\,000, 1≤a,b≤1091 \le a, b \le 10^9) nn은 몬스터의 수이고, aa와 bb는 각각 당신과 상대의 공격력이다.

둘째 줄에 nn개의 정수 h1,h2,…,hnh_1, h_2, \ldots, h_n이 주어진다. (1≤hi≤1091 \le h_i \le 10^9) 이는 몬스터의 체력이다.

출력

당신이 얻을 수 있는 승리 점수의 최댓값을 정수 하나로 출력한다.

힌트

첫 번째 예제에서는 첫 차례에 세 번째 몬스터를 죽이고, 두 번째 차례에 두 번째 몬스터를 죽일 수 있다.

두 번째 예제에서는 가장 왼쪽 몬스터의 체력이 hi=1h_i = 1이 될 때까지 기다렸다가 직접 죽일 수 있다.

예제3

  1. 예제 1

    입력
    3 1 1
    1 1 1
    
    예상 출력
    2
    
  2. 예제 2

    입력
    3 1 1
    2 2 2
    
    예상 출력
    3
    
  3. 예제 3

    입력
    10 34 100
    17 27 73 17 60 12 25 53 31 46
    
    예상 출력
    5