#include<bits/stdc++.h>
using namespace std;

int main(){
	int a,b,x,y;
	cin>>a>>b>>x>>y;
	if(a==b){
		printf("%d",x);
	}
	else if(a>b){
		int ans1=(a-b+a-b-1)*x;
		int ans2=(a-b-1)*y+x;
		printf("%d",min(ans1,ans2));
	}
	else{
		int ans1=(b-a+1+b-a)*x;
		int ans2=(b-a)*y+x;
		printf("%d",min(ans1,ans2));
	}
} 
#include<bits/stdc++.h>
using namespace std;
int a,b,x,y,f[110][110];
int main(){
    scanf("%d%d%d%d",&a,&b,&x,&y);
    memset(f,0x3f,sizeof(f));
    f[a][0]=0; f[a][1]=x;
    if(a<b){
        for(int i=a+1;i<=b;i++){
            for(int j=0;j<=1;j++)
                f[i][j]=min(f[i-1][j]+y,f[i-1][j^1]+x+y);
            f[i][0]=min(f[i][0],f[i-1][1]+x);
            f[i][0]=min(f[i][0],f[i][1]+x);
            f[i][1]=min(f[i][1],f[i][0]+x);
        }
    } else {
        for(int i=a-1;i>=b;i--){
            for(int j=0;j<=1;j++)
                f[i][j]=min(f[i+1][j]+y,f[i+1][j^1]+x+y);
            f[i][1]=min(f[i][1],f[i+1][0]+x);
            f[i][0]=min(f[i][0],f[i][1]+x);
            f[i][1]=min(f[i][1],f[i][0]+x);
        }
    }
    printf("%d\n",f[b][1]);
    return 0;
}