#include<cstdio>#include<deque>#include<algorithm>using namespace std;int main(){int p, q, r, s;while (scanf("%d%d%d%d", &p, &q, &r, &s) != EOF){q = min(q, p - q);s = min(s, r - s);deque<int> up, down;for (int i = p; i > p - q; i--)up.push_back(i);for (int i = r; i > r - s; i--)down.push_back(i);if (s > q)for (int i = s; i > q; i--)up.push_back(i);elsefor (int i = q; i > s; i--)down.push_back(i);double res = 1;for (size_t i = 0; i != up.size(); i++){res *= up[i];if (!down.empty()){res /= down.front();down.pop_front();}}while (!down.empty()){res /= down.front();down.pop_front();}printf("%.5lfn", res);}return 0;}


