import java.io.{BufferedReader, InputStream, InputStreamReader}
import java.util.StringTokenizer

import scala.collection.mutable
import scala.util.Sorting
import math.{abs, max, min}

object Main {
  def solve(): Unit = {
    val sc = new InputReader(System.in)
    val N = sc.nextInt()
    val A = sc.nextLong()
    val B = sc.nextLong()
    val C = A - B

    val h = Array.fill(N)(sc.nextLong())
    Sorting.quickSort(h)

    def extincts(k: Long): Boolean = {
      val ub = upperBound(h, k * B)
      val sum = ((ub until N) map { i =>
        val j = h(i) - B * k
        if (j <= 0)
          0
        else
          j / C + (if (j % C > 0) 1 else 0)
      }).sum
      sum <= k
    }

    def step(l: Long, h: Long): Long = {
      if (h - l == 1) h
      else {
        val mid = l + (h - l) / 2
        if (extincts(mid)) step(l, mid)
        else step(mid, h)
      }
    }

    val ans = step(-1, 1000000000)
    println(ans)
  }

  def main(args: Array[String]): Unit = {
    solve()
  }


  private def upperBound(a: Array[Long], x: Long): Int = {
    def step(l: Int, h: Int): Int = {
      if (h - l == 1) h
      else {
        val mid = (h + l) / 2
        if (a(mid) > x) step(l, mid)
        else step(mid, h)
      }
    }
    step(-1, a.length)
  }

  private class InputReader(val stream: InputStream) {
    private val reader = new BufferedReader(new InputStreamReader(stream), 32768)
    private var tokenizer: StringTokenizer = null

    def next: String = {
      while (tokenizer == null || !tokenizer.hasMoreTokens)
        tokenizer = new StringTokenizer(reader.readLine)
      tokenizer.nextToken
    }

    def nextInt(): Int = next.toInt
    def nextLong(): Long = next.toLong
    def nextChar(): Char = next.charAt(0)
  }

}
