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



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



low = sum(H)//(len(H)*B+A-B) - 1

high = max(H)//B+1



d = A-B

ceildiv = lambda x,y: -(-x//y)



while low + 1 < high:

  mid = (low+high)//2

  offset = mid*B

  cnt = sum(max(ceildiv(h - offset, d),0) for h in H)

  if cnt > mid:

    low = mid

  else:

    high = mid



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



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



d = A-B



temp = max(H)

low = temp//A - 1

high = temp//B+1



while low + 1 < high:

  mid = (low+high)//2

  offset = mid*B

  cnt = -sum((offset-h)//d for h in H if h > offset)

  if cnt > mid:

    low = mid

  else:

    high = mid



print(high)
N, A, B = list(map(int, input().split()))
H = [int(eval(input())) for i in range(N)]
low = sum(H) // (len(H) * B + A - B) - 1
high = max(H) // B + 1
d = A - B
ceildiv = lambda x, y: -(-x // y)
while low + 1 < high:
    mid = (low + high) // 2
    offset = mid * B
    cnt = sum(max(ceildiv(h - offset, d), 0) for h in H)
    if cnt > mid:
        low = mid
    else:
        high = mid
print(high)

N, A, B = list(map(int, input().split()))
H = [int(eval(input())) for i in range(N)]
d = A - B
temp = max(H)
low = temp // A - 1
high = temp // B + 1
while low + 1 < high:
    mid = (low + high) // 2
    offset = mid * B
    cnt = -sum((offset - h) // d for h in H if h > offset)
    if cnt > mid:
        low = mid
    else:
        high = mid
print(high)

-low = sum(H) // (len(H) * B + A - B) - 1 -high = max(H) // B + 1 -ceildiv = lambda x, y: -(-x // y) +temp = max(H) +low = temp // A - 1 +high = temp // B + 1 -    cnt = sum(max(ceildiv(h - offset, d), 0) for h in H) +    cnt = -sum((offset - h) // d for h in H if h > offset)