# int(input()) # 入力が1つ

from math import ceil

n, a, b = list(map(int, input().split())) # 入力が複数

# [int(i) for i in input().split()] # 配列で数字



monster = []

for i in range(n):

    monster.append(int(eval(input())))



def check(monster, t):

    temp = []

    for i in range(n):

        temp.append(monster[i] - b * t) 

    ans = 0

    for i in range(n):

        if temp[i] > 0:

            ans += ceil(temp[i] / (a - b))

    if ans <= t:

        return True

    return False



l = 0

r = 10 ** 10

ans = 10 ** 10

while l <= r:

    mid = (l + r) // 2

    if check(monster, mid):

        ans = min(ans, mid)

        r = mid - 1

    else:

        l = mid + 1

print(ans)
# https://atcoder.jp/contests/abc063/tasks/arc075_b

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



monster = []

for i in range(n):

    monster.append(int(eval(input())))



def damage(monster, t):

    temp = []

    for hp in monster:

        s = hp - t * b

        if s > 0:

            temp.append(s)

    ans = 0

    for hp in temp:

        if hp % (a - b) != 0:

            ans += 1

        ans += hp // (a - b)

    return True if ans <= t else False



ans = float('inf')

l = 0

r = 10 ** 9

while l <= r:

    mid = (l + r) // 2

    if damage(monster, mid):

        ans = min(ans, mid)

        r = mid - 1

    else:

        l = mid + 1

print(ans)
# int(input()) # 入力が1つ
from math import ceil

n, a, b = list(map(int, input().split()))  # 入力が複数
# [int(i) for i in input().split()] # 配列で数字
monster = []
for i in range(n):
    monster.append(int(eval(input())))


def check(monster, t):
    temp = []
    for i in range(n):
        temp.append(monster[i] - b * t)
    ans = 0
    for i in range(n):
        if temp[i] > 0:
            ans += ceil(temp[i] / (a - b))
    if ans <= t:
        return True
    return False


l = 0
r = 10**10
ans = 10**10
while l <= r:
    mid = (l + r) // 2
    if check(monster, mid):
        ans = min(ans, mid)
        r = mid - 1
    else:
        l = mid + 1
print(ans)

# https://atcoder.jp/contests/abc063/tasks/arc075_b
n, a, b = list(map(int, input().split()))
monster = []
for i in range(n):
    monster.append(int(eval(input())))


def damage(monster, t):
    temp = []
    for hp in monster:
        s = hp - t * b
        if s > 0:
            temp.append(s)
    ans = 0
    for hp in temp:
        if hp % (a - b) != 0:
            ans += 1
        ans += hp // (a - b)
    return True if ans <= t else False


ans = float("inf")
l = 0
r = 10**9
while l <= r:
    mid = (l + r) // 2
    if damage(monster, mid):
        ans = min(ans, mid)
        r = mid - 1
    else:
        l = mid + 1
print(ans)

-# int(input()) # 入力が1つ -from math import ceil - -n, a, b = list(map(int, input().split()))  # 入力が複数 -# [int(i) for i in input().split()] # 配列で数字 +# https://atcoder.jp/contests/abc063/tasks/arc075_b +n, a, b = list(map(int, input().split())) -def check(monster, t): +def damage(monster, t): -    for i in range(n): -        temp.append(monster[i] - b * t) +    for hp in monster: +        s = hp - t * b +        if s > 0: +            temp.append(s) -    for i in range(n): -        if temp[i] > 0: -            ans += ceil(temp[i] / (a - b)) -    if ans <= t: -        return True -    return False +    for hp in temp: +        if hp % (a - b) != 0: +            ans += 1 +        ans += hp // (a - b) +    return True if ans <= t else False +ans = float("inf") -r = 10**10 -ans = 10**10 +r = 10**9 -    if check(monster, mid): +    if damage(monster, mid):