#include<bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ll long long
int main(){
  ll a,b,x,y;
  cin >> a >> b >> x >> y;
  ll ans=0;
  if(a>b){
    if(2*x>y){
      ans=x;
      for(int i=0;i<a-b-1;i++){
        ans+=y;
      }
    }else{
      ans=x;
      a--;
      for(int i=0;i<2*(a-b);i++){
        ans+=x;
      }
    }
  }else if(a==b){
    ans=x;
  }else{
    if(2*x>y){
      ans=x;
      for(int i=0;i<b-a;i++){
        ans+=y;
      }
    }else{
      if(2*x>y){
        ans=x;
        for(int i=0;i<b-a;i++){
          ans+=y;
        }  
      }else{
        ans=x;
        for(int i=0;i<2*(b-a);i++){
          ans+=x;
        }
      }
    }
  }
  cout << ans;
}
    
  
#include<bits/stdc++.h>
using namespace std;
long long a[200005],b[200005];
int main()
{
    int k,n,m;
    cin>>k>>n>>m;
    for (int i=1;i<=k;i++){
        cin>>a[i];
    }
    priority_queue<pair<long long,int> > q;
    long long cn=m;
    double c=1.0*m/n;
    for (int i=1;i<=k;i++){
      b[i]=(int)(c*a[i]);
    cn-=b[i];
    q.push({-b[i]*n+a[i]*m,i});
    //cout<<-b[i]*n+a[i]*m<<" ";
    }
    while(cn--)
    {
        pair<long long ,int> now=q.top();
        q.pop();
        int i=now.second;
        b[i]++;
        q.push({-b[i]*n+a[i]*m,i});
    }
    for (int i=1;i<=k;i++) cout<<b[i]<<" ";
    cout<<endl;
    return 0;
}
