import math

import io



nim, mike, kite = list(map(int, input().split()))

H = [int(eval(input())) for _ in range(nim)]



OK = max(H)//kite+1

NG = 0



ans = OK

while OK-NG > 1:

    mid = (OK+NG)//2  # 試行する値

    cnt = 0



    for h in H:

        if h > mid*kite:

            cnt += math.ceil((h-mid*kite)/(mike-kite))



    if cnt <= mid:

        OK = mid

    else:

        NG = mid



print(OK)

nim, mike, kite = list(map(int, input().split()))

H = [int(eval(input())) for _ in range(nim)]

C = mike - kite

l, r = 0, 1<<30

while r - l > 1:

    m = (l + r) // 2

    if sum([max((h - kite * m + C - 1) // C, 0) for h in H]) <= m:

        r = m

    else:

        l = m

print(r)
import math
import io

nim, mike, kite = list(map(int, input().split()))
H = [int(eval(input())) for _ in range(nim)]
OK = max(H) // kite + 1
NG = 0
ans = OK
while OK - NG > 1:
    mid = (OK + NG) // 2  # 試行する値
    cnt = 0
    for h in H:
        if h > mid * kite:
            cnt += math.ceil((h - mid * kite) / (mike - kite))
    if cnt <= mid:
        OK = mid
    else:
        NG = mid
print(OK)

nim, mike, kite = list(map(int, input().split()))
H = [int(eval(input())) for _ in range(nim)]
C = mike - kite
l, r = 0, 1 << 30
while r - l > 1:
    m = (l + r) // 2
    if sum([max((h - kite * m + C - 1) // C, 0) for h in H]) <= m:
        r = m
    else:
        l = m
print(r)

-import math -import io - -OK = max(H) // kite + 1 -NG = 0 -ans = OK -while OK - NG > 1: -    mid = (OK + NG) // 2  # 試行する値 -    cnt = 0 -    for h in H: -        if h > mid * kite: -            cnt += math.ceil((h - mid * kite) / (mike - kite)) -    if cnt <= mid: -        OK = mid +C = mike - kite +l, r = 0, 1 << 30 +while r - l > 1: +    m = (l + r) // 2 +    if sum([max((h - kite * m + C - 1) // C, 0) for h in H]) <= m: +        r = m -        NG = mid -print(OK) +        l = m +print(r)