from math import ceil

N,A,B = list(map(int,input().split()))

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



def attack(n):

    s = 0

    for h in H:

        h -= B*n

        if h > 0:

            s += ceil(h/(A-B))

    return s <= n



l = 0

r = 0

for h in H:

    r = max(ceil(h/B),r)



for _ in range(30):

    mid = (l+r)//2

    if attack(mid):

        r = mid

    else:

        l = mid



print(r)
from math import ceil

N,A,B = list(map(int,input().split()))

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



def attack(n):

    s = 0

    for h in H:

        h -= B*n

        if h > 0:

            s += ceil(h/(A-B))

    return s <= n



l = 0

r = 0

for h in H:

    r = max(ceil(h/B),r)



while l != r-1:

    mid = (l+r)//2

    if attack(mid):

        r = mid

    else:

        l = mid



print(r)
from math import ceil

N, A, B = list(map(int, input().split()))
H = [int(eval(input())) for _ in range(N)]


def attack(n):
    s = 0
    for h in H:
        h -= B * n
        if h > 0:
            s += ceil(h / (A - B))
    return s <= n


l = 0
r = 0
for h in H:
    r = max(ceil(h / B), r)
for _ in range(30):
    mid = (l + r) // 2
    if attack(mid):
        r = mid
    else:
        l = mid
print(r)

from math import ceil

N, A, B = list(map(int, input().split()))
H = [int(eval(input())) for _ in range(N)]


def attack(n):
    s = 0
    for h in H:
        h -= B * n
        if h > 0:
            s += ceil(h / (A - B))
    return s <= n


l = 0
r = 0
for h in H:
    r = max(ceil(h / B), r)
while l != r - 1:
    mid = (l + r) // 2
    if attack(mid):
        r = mid
    else:
        l = mid
print(r)

-for _ in range(30): +while l != r - 1: