

import math

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



m = [0] * n

for i in range(n):

  m[i] = int(eval(input()))

  



m.sort()





def enough(m,a,b,T):

  cnt = 0

  for hp in m:

    if hp > b*T:

      cnt += int(math.ceil((hp - b*T)/(a-b)))

      

  return True if  cnt <= T else False



r = 10**10

#r = 30

l = 0

mid = 0



while r - l > 1:

  mid = (r+l)//2

  if enough(m,a,b,mid) == True:

    r = mid

    #print("r:",r)

  else:

    l = mid

    #print("l:",l, " r:",r)



print(r)
import math

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



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





H.sort(reverse=True)

high = math.ceil(H[0] / B)

low = 0

while high > low+1:

    mid = (high+low) // 2

    cnt = 0

    for i in range(N):

        if H[i] - mid*B > 0:

            # 残りを減らすのに必要な回数を計上

            cnt += math.ceil((H[i] - mid*B)/(A - B))

        else:

            break

    # 残りを減らす回数がmidを超えているならその回数ではすべてを倒しきれない

    if cnt <= mid:

        high = mid

    else:

        low = mid



print(high)
import math

n, a, b = list(map(int, input().split()))
m = [0] * n
for i in range(n):
    m[i] = int(eval(input()))
m.sort()


def enough(m, a, b, T):
    cnt = 0
    for hp in m:
        if hp > b * T:
            cnt += int(math.ceil((hp - b * T) / (a - b)))
    return True if cnt <= T else False


r = 10**10
# r = 30
l = 0
mid = 0
while r - l > 1:
    mid = (r + l) // 2
    if enough(m, a, b, mid) == True:
        r = mid
        # print("r:",r)
    else:
        l = mid
        # print("l:",l, " r:",r)
print(r)

import math

N, A, B = list(map(int, input().split()))
H = [int(eval(input())) for _ in range(N)]
H.sort(reverse=True)
high = math.ceil(H[0] / B)
low = 0
while high > low + 1:
    mid = (high + low) // 2
    cnt = 0
    for i in range(N):
        if H[i] - mid * B > 0:
            # 残りを減らすのに必要な回数を計上
            cnt += math.ceil((H[i] - mid * B) / (A - B))
        else:
            break
    # 残りを減らす回数がmidを超えているならその回数ではすべてを倒しきれない
    if cnt <= mid:
        high = mid
    else:
        low = mid
print(high)

-n, a, b = list(map(int, input().split())) -m = [0] * n -for i in range(n): -    m[i] = int(eval(input())) -m.sort() - - -def enough(m, a, b, T): +N, A, B = list(map(int, input().split())) +H = [int(eval(input())) for _ in range(N)] +H.sort(reverse=True) +high = math.ceil(H[0] / B) +low = 0 +while high > low + 1: +    mid = (high + low) // 2 -    for hp in m: -        if hp > b * T: -            cnt += int(math.ceil((hp - b * T) / (a - b))) -    return True if cnt <= T else False - - -r = 10**10 -# r = 30 -l = 0 -mid = 0 -while r - l > 1: -    mid = (r + l) // 2 -    if enough(m, a, b, mid) == True: -        r = mid -        # print("r:",r) +    for i in range(N): +        if H[i] - mid * B > 0: +            # 残りを減らすのに必要な回数を計上 +            cnt += math.ceil((H[i] - mid * B) / (A - B)) +        else: +            break +    # 残りを減らす回数がmidを超えているならその回数ではすべてを倒しきれない +    if cnt <= mid: +        high = mid -        l = mid -        # print("l:",l, " r:",r) -print(r) +        low = mid +print(high)