#include <bits/stdc++.h>
//#define ll long long int
using namespace std;
typedef long long int ll;
priority_queue<int, vector<int>, greater<int>> pq;
const ll md = 1e9 + 7;
const ll md1 = 998244353;
map<ll, vector<ll>> tree;
//map<ll, int> mp;
bool ok(ll mid,ll k,ll hi){
ll lo=k;
ll h=hi;
while(lo<=h){
ll md=(lo+h)/2;
ll tmp1=(md*(md+1))/2-(k*(k-1))/2;
ll tmp2=(hi*(hi+1))/2-(md*(md+1))/2;
if(tmp1-tmp2<((-1ll)*mid))lo=md+1;
else if(tmp1-tmp2>mid)h=md-1;
else return true;
}
return false;
}
void sufi() {
ll n,d;
cin>>n>>d;
ll a,b;
cin>>a>>b;
ll sum=min(n,d)*a;
n-=min(n,d);
sum+=n*b;
cout<<sum<<endl;
}
int main() {
int t;
cin>>t;
while (t--) {
sufi();
tree.clear();
//mp.clear();
}
return 0;
}