#include<iostream>
#include<fstream>
#include<sstream>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<vector>
#include<list>
#include<algorithm>
#include<utility>
#include<complex>
#include<functional>
#include<iomanip>
using namespace std;


#define input_init stringstream ss; string strtoken, token; istringstream is
#define input_line  getline(cin, strtoken);is.str(strtoken);is.clear(istringstream::goodbit)
#define input_token(num) ss.str(""); ss.clear(stringstream::goodbit); getline(is, token, ','); ss << token; ss >> num


int main(void){
	double a, b, x, y;
	cin >> a >> b >> x >> y;
	double yd = x*(b / a);
	double xd = y*(a / b);
	double res = 0;
	if (yd <= y)res =max(res,x+yd);
	if (xd <= x)res = max(res, y + xd);
	cout << fixed;
	cout << res << endl;
	return(0);
}