#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
class FixedDiceGameDiv1 {
public:
double f[55][2555] ;
double pa[2555] , pb[2555] ;
double sb[2555] ;
double getExpectation(int a, int b, int c, int d){
double ans = 0 ;
if( a * b <= c )
return -1.0 ;
memset( pa , 0 , sizeof(pa) );
memset( pb , 0 , sizeof(pb) );
memset( f , 0 , sizeof(f) ) ;
f[0][0] = 1 ;
for( int i = 1 ; i <= a ; i ++ ) {
for( int j = 1 ; j <= a * b ;j ++ ) {
for( int k = 1 ; k <= b ; k ++ ) {
if( k <= j )
f[i][j] += f[i-1][j-k] ;
}
}
}
double sum = 0 ;
for( int i = a ; i <= a * b ; i ++ ) {
pa[i] = f[a][i] ;
sum += f[a][i] ;
}
for( int i = 1 ; i <= a * b ; i ++ ) {
pa[i] /= sum ;
}
memset( f , 0 , sizeof(f) ) ;
f[0][0] = 1 ;
for( int i = 1 ; i <= c ; i ++ ) {
for( int j = 1 ; j <= c * d ;j ++ ) {
for( int k = 1 ; k <= d ; k ++ ) {
if( k <= j )
f[i][j] += f[i-1][j-k] ;
}
}
}
sum = 0 ;
for( int i = c ; i <= c * d ; i ++ ) {
pb[i] = f[c][i] ;
sum += f[c][i] ;
}
for( int i = c ; i <= c * d ; i ++ ) {
pb[i] /= sum ;
}
sum = 0 ;
for( int i = a ; i <= a * b ; i ++ ) {
for( int j = c ; j < i ; j ++ ) {
sum += ( pa[i] * pb[j] ) ;
}
}
memset( sb , 0 , sizeof(sb) ) ;
for( int i = c ; i <= a * b ; i ++ ) {
sb[i] = pb[i] + sb[i-1] ;
}
ans = 0 ;
for( int i = a ; i <= a * b ; i ++ )
ans += pa[i] * sb[i-1] / sum * i ;
return ans ;
}
};