import scala.io.Source

object Main {

  def main(args: Array[String]) {
    val lines = Source.stdin.getLines.toSeq
    val arr = lines.head.split(" ")
    val n = arr(0).toLong
    val a = arr(1).toLong
    val b = arr(2).toLong
    val hs = lines.tail.map(_.toLong)

    def isSat(xs: Seq[Long], count: Long): Boolean =
      if (count < 0) false
      else xs match {
        case Nil => true
        case x +: rest => isSat(rest, count - ((x - 1) / (a - b) + 1))
      }

    def elim(xs: Seq[Long], count: Long): Long =
      if (xs.isEmpty) count
      else {
        val p = a + b * (xs.length - 1)
        val k = xs.min / p
        if (k > 0) elim(xs.map(_ - p * k).filter(_ > 0), count + xs.length * k)
        else {
          val xs2 = xs.sorted(Ordering[Long].reverse)
          elim(((xs2.head - a) +: xs2.tail.map(_ - b)).filter(_ > 0), count + 1)
        }
      }

    def minimize(lower: Long, upper: Long): Long =
      if (lower >= upper) upper
      else {
        val k = (lower + upper) / 2
        val hs2 = hs.map(_ - b * k).filter(_ > 0)
        if (isSat(hs2, k)) minimize(lower, k)
        else minimize(k + 1, upper)
      }

    val lowerBound = hs.max / a
    val upperBound = elim(hs, 0)
    println(minimize(lowerBound, upperBound))
  }

}
