import sys

from math import ceil

"""

def input():

    return sys.stdin.readline().strip()

"""

def check(k):

    tmp = list(h)

    for i in range(N):

        tmp[i] -= B*k

    

    flag = False

    for i in tmp:

        if i > 0:

            flag = True

            break

    if not flag:

        return True



    lf = 0

    for i in tmp:

        if i > 0:

            lf += ceil(i/(A-B))



    if lf <= k:

        return True

    else:

        return False



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

h = tuple(int(eval(input())) for _ in range(N))



left = -1

right = 1e9



while abs(left-right) > 1:



    mid = (left+right)//2

    if check(mid):

        right = mid

    else:

        left = mid



print((int(right)))
from math import ceil



def is_ok(m):



    tmp = h[:]



    for i in range(N):

        tmp[i] -= m*B

    

    flag = True



    for i in tmp:

        if i > 0:

            flag = False

            break



    if flag:##全部0以下

        return True

    else:

        rem = 0

        for i in tmp:

            if i > 0:

                rem += ceil(i/(A-B))



        if rem > m:

            return False



        return True



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

h = list(int(eval(input())) for _ in range(N))

s = sum(h)

##二分散策



r = 10**10

l = 0



while abs(l-r) > 1:



    m = (r+l)//2



    if is_ok(m):

        r = m

    else:

        l = m



print(r)
import sys
from math import ceil

"""
def input():
    return sys.stdin.readline().strip()
"""


def check(k):
    tmp = list(h)
    for i in range(N):
        tmp[i] -= B * k
    flag = False
    for i in tmp:
        if i > 0:
            flag = True
            break
    if not flag:
        return True
    lf = 0
    for i in tmp:
        if i > 0:
            lf += ceil(i / (A - B))
    if lf <= k:
        return True
    else:
        return False


N, A, B = list(map(int, input().split()))
h = tuple(int(eval(input())) for _ in range(N))
left = -1
right = 1e9
while abs(left - right) > 1:
    mid = (left + right) // 2
    if check(mid):
        right = mid
    else:
        left = mid
print((int(right)))

from math import ceil


def is_ok(m):
    tmp = h[:]
    for i in range(N):
        tmp[i] -= m * B
    flag = True
    for i in tmp:
        if i > 0:
            flag = False
            break
    if flag:  ##全部0以下
        return True
    else:
        rem = 0
        for i in tmp:
            if i > 0:
                rem += ceil(i / (A - B))
        if rem > m:
            return False
        return True


N, A, B = list(map(int, input().split()))
h = list(int(eval(input())) for _ in range(N))
s = sum(h)
##二分散策
r = 10**10
l = 0
while abs(l - r) > 1:
    m = (r + l) // 2
    if is_ok(m):
        r = m
    else:
        l = m
print(r)

-import sys -""" -def input(): -    return sys.stdin.readline().strip() -""" - -def check(k): -    tmp = list(h) +def is_ok(m): +    tmp = h[:] -        tmp[i] -= B * k -    flag = False +        tmp[i] -= m * B +    flag = True -            flag = True +            flag = False -    if not flag: -        return True -    lf = 0 -    for i in tmp: -        if i > 0: -            lf += ceil(i / (A - B)) -    if lf <= k: +    if flag:  ##全部0以下 -        return False +        rem = 0 +        for i in tmp: +            if i > 0: +                rem += ceil(i / (A - B)) +        if rem > m: +            return False +        return True -h = tuple(int(eval(input())) for _ in range(N)) -left = -1 -right = 1e9 -while abs(left - right) > 1: -    mid = (left + right) // 2 -    if check(mid): -        right = mid +h = list(int(eval(input())) for _ in range(N)) +s = sum(h) +##二分散策 +r = 10**10 +l = 0 +while abs(l - r) > 1: +    m = (r + l) // 2 +    if is_ok(m): +        r = m -        left = mid -print((int(right))) +        l = m +print(r)