#include<bits/stdc++.h>
using namespace std;
const int maxn = 10000 + 5;
int e[maxn],vis[maxn];
vector<int> primes;
void add_primes() {
memset(vis,0,sizeof(vis));
int m = sqrt(10000+0.5);
for(int i=2;i<=m;i++) if(!vis[i])
for(int j=i*i;j<=10000;j+=i) vis[j] = 1;
for(int i=2;i<=10000;i++)
if(!vis[i]) primes.push_back(i);
}
void add_integer(int n,int d) {
for(int i=0;i<primes.size();i++) {
while(n%primes[i]==0) {
n/=primes[i];
e[i]+=d;
}
if(n==1) break;
}
}
void add_factorial(int n,int d) {
for(int i=1;i<=n;i++)
add_integer(i,d);
}
int main() {
int p,q,r,s;
add_primes();
while(cin>>p>>q>>r>>s) {
memset(e,0,sizeof(e));
add_factorial(p,1) ;
add_factorial(q,-1) ;
add_factorial(p-q,-1) ;
add_factorial(r,-1) ;
add_factorial(s,1) ;
add_factorial(r-s,1) ;
double ans=1;
for(int i=0;i<primes.size();i++)
ans*=pow(primes[i],e[i]);
printf("%.5lf\n",ans);
}
return 0;
}