#include using namespace std; void solve() { long long y, s, ly, ls; cin >> y >> ly >> s >> ls; if(s <= ls) { cout << s * y << '\n'; return; } long long res = min(abs(y - ly) * s + ls * ly, s * y); res = min(res, abs(y - ly) * ls + y * ls); if(y != ly) { long long dist = abs(ly - y); { long long opt = dist * ls / (s - ls); for(int d = -2; d < 3; ++d) { long long move = opt + d; if(move < 1) continue; if(move > y) continue; res = min(res, max(move * s, (dist + move - 1) * ls) + (y - move) * ls + ls); } } { long long opt = (dist - 1) * ls / (s - ls); for(int d = -2; d < 3; ++d) { long long move = opt + d; if(move < 1) continue; if(move > y) continue; res = min(res, max(move * s, (dist + move - 1) * ls) + (y - move) * ls + ls); } } } cout << res << '\n'; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin >> t; while(t--) solve(); }