def main():

    N, A, B = (int(i) for i in input().split())

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



    def is_ok(H, mid):

        H = [h - mid*B for h in H]

        need = 0

        for h in H:

            if h > 0:

                need += (h + (A - B) - 1)//(A - B)

        if need <= mid:

            return True

        else:

            return False



    def binary_search_meguru(H):

        ng = -1

        ok = 10**9 + 1

        while abs(ok - ng) > 1:

            mid = ng + (ok - ng) // 2  # 爆破回数

            if is_ok(H, mid):

                ok = mid

            else:

                ng = mid

        return ok



    print((binary_search_meguru(H)))





if __name__ == '__main__':

    main()

def main():

    import sys

    input = sys.stdin.buffer.readline

    N, A, B = (int(i) for i in input().split())

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



    def is_ok(x):

        need = 0

        cur = [0]*N

        for i, h in enumerate(H):

            cur.append(max(0, h - B*x))

        for i, less in enumerate(cur):

            need += (less+(A-B)-1)//(A-B)

        if need <= x:

            return True

        else:

            return False



    def binary_search_meguru():

        ng = -1

        ok = 10**9 + 1

        while abs(ok - ng) > 1:

            mid = ng + (ok - ng) // 2

            if is_ok(mid):

                ok = mid

            else:

                ng = mid

        return ok



    print((binary_search_meguru()))





if __name__ == '__main__':

    main()

def main():
    N, A, B = (int(i) for i in input().split())
    H = [int(eval(input())) for i in range(N)]

    def is_ok(H, mid):
        H = [h - mid * B for h in H]
        need = 0
        for h in H:
            if h > 0:
                need += (h + (A - B) - 1) // (A - B)
        if need <= mid:
            return True
        else:
            return False

    def binary_search_meguru(H):
        ng = -1
        ok = 10**9 + 1
        while abs(ok - ng) > 1:
            mid = ng + (ok - ng) // 2  # 爆破回数
            if is_ok(H, mid):
                ok = mid
            else:
                ng = mid
        return ok

    print((binary_search_meguru(H)))


if __name__ == "__main__":
    main()

def main():
    import sys

    input = sys.stdin.buffer.readline
    N, A, B = (int(i) for i in input().split())
    H = [int(eval(input())) for i in range(N)]

    def is_ok(x):
        need = 0
        cur = [0] * N
        for i, h in enumerate(H):
            cur.append(max(0, h - B * x))
        for i, less in enumerate(cur):
            need += (less + (A - B) - 1) // (A - B)
        if need <= x:
            return True
        else:
            return False

    def binary_search_meguru():
        ng = -1
        ok = 10**9 + 1
        while abs(ok - ng) > 1:
            mid = ng + (ok - ng) // 2
            if is_ok(mid):
                ok = mid
            else:
                ng = mid
        return ok

    print((binary_search_meguru()))


if __name__ == "__main__":
    main()

+    import sys + +    input = sys.stdin.buffer.readline -    def is_ok(H, mid): -        H = [h - mid * B for h in H] +    def is_ok(x): -        for h in H: -            if h > 0: -                need += (h + (A - B) - 1) // (A - B) -        if need <= mid: +        cur = [0] * N +        for i, h in enumerate(H): +            cur.append(max(0, h - B * x)) +        for i, less in enumerate(cur): +            need += (less + (A - B) - 1) // (A - B) +        if need <= x: -    def binary_search_meguru(H): +    def binary_search_meguru(): -            mid = ng + (ok - ng) // 2  # 爆破回数 -            if is_ok(H, mid): +            mid = ng + (ok - ng) // 2 +            if is_ok(mid): -    print((binary_search_meguru(H))) +    print((binary_search_meguru()))