fun main(args: Array<String>) {
    val (N, A, B) = readInts()
    val h = Array(N, { i -> i })
    for (i in 1..N) {
        h[i - 1] = readInt()
    }
    var (l, r) = listOf(h.min()!! / A, h.max()!! / B + 1)
    while (l + 1 < r) {
        val m = (l + r) / 2
        if (enough(m, h, A, B)) {
            r = m
        } else {
            l = m
        }
    }
    println(if (enough(l, h, A, B)) l else r)
}

fun enough(x: Int, h: Array<Int>, A: Int, B: Int): Boolean {
    var total = 0
    for (hi in h) {
        total += Math.max(0, Math.ceil((hi - x * B) / (A - B).toDouble()).toInt())
        if (total > x) {
            return false
        }
    }
    return true
}

fun readInt() = readLine()!!.toInt()
fun readInts() = readLine()!!.split(' ').map(String::toInt)