import math



def bs(n, a, b, hp, min=0, max=10**9):

    left = min

    right = max

    def count(num):

        base = b * num

        attackcount = 0

        diff = a-b

        for i in range(n):

            tmp = math.ceil((hp[i] - base) / diff)

            if tmp <= 0:

                pass

            else:

                attackcount += tmp

        if attackcount <= num:

            return True

        else:

            return False

    while left != right:

        mid = (left + right) // 2

        if count(mid):

            right = mid

        else:

            left = mid + 1

    return left



if __name__ == '__main__':

    n, a, b = list(map(int, input().split()))

    hp = [int(eval(input())) for i in range(n)]

    print((bs(n, a, b, hp)))

def check(T):

    res = 0

    for h in H:

        tmp = (h - B * T + A - B - 1) // (A - B)

        if tmp <= 0:

            break

        res += tmp

    return True if res <= T else False



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

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

H.sort(reverse=True)

res = 0

left = 0

right = 10 ** 9

while right != left:

    mid = (left + right) // 2

    if check(mid):

        right = mid

    else:

        left = mid + 1

print(left)

import math


def bs(n, a, b, hp, min=0, max=10**9):
    left = min
    right = max

    def count(num):
        base = b * num
        attackcount = 0
        diff = a - b
        for i in range(n):
            tmp = math.ceil((hp[i] - base) / diff)
            if tmp <= 0:
                pass
            else:
                attackcount += tmp
        if attackcount <= num:
            return True
        else:
            return False

    while left != right:
        mid = (left + right) // 2
        if count(mid):
            right = mid
        else:
            left = mid + 1
    return left


if __name__ == "__main__":
    n, a, b = list(map(int, input().split()))
    hp = [int(eval(input())) for i in range(n)]
    print((bs(n, a, b, hp)))

def check(T):
    res = 0
    for h in H:
        tmp = (h - B * T + A - B - 1) // (A - B)
        if tmp <= 0:
            break
        res += tmp
    return True if res <= T else False


N, A, B = list(map(int, input().split()))
H = [int(eval(input())) for _ in range(N)]
H.sort(reverse=True)
res = 0
left = 0
right = 10**9
while right != left:
    mid = (left + right) // 2
    if check(mid):
        right = mid
    else:
        left = mid + 1
print(left)

-import math +def check(T): +    res = 0 +    for h in H: +        tmp = (h - B * T + A - B - 1) // (A - B) +        if tmp <= 0: +            break +        res += tmp +    return True if res <= T else False -def bs(n, a, b, hp, min=0, max=10**9): -    left = min -    right = max - -    def count(num): -        base = b * num -        attackcount = 0 -        diff = a - b -        for i in range(n): -            tmp = math.ceil((hp[i] - base) / diff) -            if tmp <= 0: -                pass -            else: -                attackcount += tmp -        if attackcount <= num: -            return True -        else: -            return False - -    while left != right: -        mid = (left + right) // 2 -        if count(mid): -            right = mid -        else: -            left = mid + 1 -    return left - - -if __name__ == "__main__": -    n, a, b = list(map(int, input().split())) -    hp = [int(eval(input())) for i in range(n)] -    print((bs(n, a, b, hp))) +N, A, B = list(map(int, input().split())) +H = [int(eval(input())) for _ in range(N)] +H.sort(reverse=True) +res = 0 +left = 0 +right = 10**9 +while right != left: +    mid = (left + right) // 2 +    if check(mid): +        right = mid +    else: +        left = mid + 1 +print(left)