#include<iostream>
#include<string>
#include<algorithm>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <set>
#include <queue>
#include <stack>
#include <map>

using namespace std;
typedef long long LL;
const int INF = int(1e9);

LL N,A,B;
LL a[100006];

bool pan(LL x)
{
    int K = 0;
    for(int i = N;i>=1;i--)
    {
        if(a[i]-x*B<=0)break;
        K++;
    }
    if(K>x) return false;

    LL temp,num,sum=0;
    for(int i = N;i>=N-sum;i--)
    {
        temp = a[i] - x*B;
        num = temp/(A-B);
        if(temp>num*(A-B))
            num++;
        sum+=num;
    }
    return x>=sum;
}

int main()
{
    cin>>N>>A>>B;
    for(int i = 1;i<=N;i++)
        cin>>a[i];
    sort(a+1,a+1+N);

    LL L = 1,R = a[N]/B+1,mid;
    while(R-L>1)
    {
        mid = (R+L)>>1;
        if(pan(mid))
            R = mid;
        else
            L = mid;
      //  cout<<L<<" "<<R<<" "<<mid<<endl;
    }

    cout<<R<<endl;

    return 0;
}
