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

Aadd=A-B

H=[0]*N

for i in range(N):

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

MAXV=max(H)//B+(max(H)%B>0)

ng=-1

ok=MAXV+1



def isOK(n):

  Anum=0

  Bdamage=n*B

  for i in range(len(H)):

    rest=H[i]-Bdamage

    if rest>0:

      Anum+=rest//Aadd+(rest%Aadd>0)

  if Anum<=n:

    return True

  return False

        

while abs(ok-ng)>1:

  mid=abs(ok+ng)//2

  if isOK(mid):

    ok=mid

  else:

    ng=mid

    

print(ok)
import sys

readline = sys.stdin.readline



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

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



# AをA - Bと読み替え、一回の攻撃で全体にBダメージと1体にAダメージと考える

# X回で達成できるかの二分探索



A -= B



ng = 0

ok = 10 ** 9

def isOk(x):

  # 各H_iを倒すのに必要な攻撃Aの回数をカウントする

  cnt = 0

  for i in range(len(H)):

    h = H[i] - x * B

    if h > 0:

      cnt += (h + A - 1) // A

  return cnt <= x

  

while abs(ok - ng)>1:

  mid = abs(ok + ng) // 2

  if isOk(mid):

    ok = mid

  else:

    ng = mid



print(ok)
N, A, B = list(map(int, input().split()))
Aadd = A - B
H = [0] * N
for i in range(N):
    H[i] = int(eval(input()))
MAXV = max(H) // B + (max(H) % B > 0)
ng = -1
ok = MAXV + 1


def isOK(n):
    Anum = 0
    Bdamage = n * B
    for i in range(len(H)):
        rest = H[i] - Bdamage
        if rest > 0:
            Anum += rest // Aadd + (rest % Aadd > 0)
    if Anum <= n:
        return True
    return False


while abs(ok - ng) > 1:
    mid = abs(ok + ng) // 2
    if isOK(mid):
        ok = mid
    else:
        ng = mid
print(ok)

import sys

readline = sys.stdin.readline
N, A, B = list(map(int, readline().split()))
H = [int(readline()) for i in range(N)]
# AをA - Bと読み替え、一回の攻撃で全体にBダメージと1体にAダメージと考える
# X回で達成できるかの二分探索
A -= B
ng = 0
ok = 10**9


def isOk(x):
    # 各H_iを倒すのに必要な攻撃Aの回数をカウントする
    cnt = 0
    for i in range(len(H)):
        h = H[i] - x * B
        if h > 0:
            cnt += (h + A - 1) // A
    return cnt <= x


while abs(ok - ng) > 1:
    mid = abs(ok + ng) // 2
    if isOk(mid):
        ok = mid
    else:
        ng = mid
print(ok)

-N, A, B = list(map(int, input().split())) -Aadd = A - B -H = [0] * N -for i in range(N): -    H[i] = int(eval(input())) -MAXV = max(H) // B + (max(H) % B > 0) -ng = -1 -ok = MAXV + 1 +import sys + +readline = sys.stdin.readline +N, A, B = list(map(int, readline().split())) +H = [int(readline()) for i in range(N)] +# AをA - Bと読み替え、一回の攻撃で全体にBダメージと1体にAダメージと考える +# X回で達成できるかの二分探索 +A -= B +ng = 0 +ok = 10**9 -def isOK(n): -    Anum = 0 -    Bdamage = n * B +def isOk(x): +    # 各H_iを倒すのに必要な攻撃Aの回数をカウントする +    cnt = 0 -        rest = H[i] - Bdamage -        if rest > 0: -            Anum += rest // Aadd + (rest % Aadd > 0) -    if Anum <= n: -        return True -    return False +        h = H[i] - x * B +        if h > 0: +            cnt += (h + A - 1) // A +    return cnt <= x -    if isOK(mid): +    if isOk(mid):