#include #include using namespace std; int main() { unsigned long long pocet, pj, pv, rj, rv; std::cin >> pocet; for(int i = 0; i < pocet; ++i){ std::cin >> pj; std::cin >> pv; std::cin >> rj; std::cin >> rv; if(pj <= pv) //vytah je podobmnou { if(pj * rj >= pv * rv) cout << (pv * rv) << "\n"; else cout << (pj * rj) << "\n"; } else //vytah je nadomnou { if(rj <= rv) { cout << (pj * rj) << "\n"; } else{ unsigned long long v = pj - pv; double pomer = (1.0/(double)rv) / (1.0/ (double)rj); unsigned long long poschodiaJa = (unsigned long long)((double)v / (pomer + 1.0)); unsigned long long poschodiaV = (unsigned long long)(pomer * ((double)v / (pomer + 1.0))); double aa = 0; if(poschodiaJa + poschodiaV != v) //stretli sme sa na celom poschodi { if((poschodiaJa + 1) * rj + 2*rv*poschodiaV > poschodiaJa * rj + 2*rv*(poschodiaV+1)) { poschodiaV++; } else { poschodiaJa++; aa = (rj * (1 - ((double)v / (pomer + 1.0)-poschodiaJa))); } } //cout << (2*rv*poschodiaV) +(rv*pv) << "\n"; cout << (long long)((aa) + (2*rv * poschodiaV) +(rv*pv)) << "\n"; } } } return 0; }