#include using namespace std; const int INF = 0x3f3f3f3f; const int N = 15; double f[N][N][N][N][5][5]; int a, b, c, d; int main() { memset(f, -1, sizeof f); cin >> a >> b >> c >> d; for (int i = 13; i >= 0; i--) for (int j = 13; j >= 0; j--) for (int k = 13; k >= 0; k--) for (int w = 13; w >= 0; w--) for (int x = 4; x >= 0; x--) for (int y = 4; y >= 0; y--) { double &v = f[i][j][k][w][x][y]; if (i + (x == 1) + (y == 1) >= a && j + (x == 2) + (y == 2) >= b && k + (x == 3) + (y == 3) >= c && w + (x == 4) + (y == 4) >= d) { v = 0; continue; } v = 1; int sum = i + j + k + w + (x != 0) + (y != 0); if (i < 13) v += f[i + 1][j][k][w][x][y] * (13 - i) / (54 - sum); if (j < 13) v += f[i][j + 1][k][w][x][y] * (13 - j) / (54 - sum); if (k < 13) v += f[i][j][k + 1][w][x][y] * (13 - k) / (54 - sum); if (w < 13) v += f[i][j][k][w + 1][x][y] * (13 - w) / (54 - sum); if (x == 0) { double t = INF; for (int u = 1; u <= 4; u++) t = min(t, f[i][j][k][w][u][y] / (54 - sum)); v += t; } if (y == 0) { double t = INF; for (int u = 1; u <= 4; u++) t = min(t, f[i][j][k][w][x][u] / (54 - sum)); v += t; } } if (f[0][0][0][0][0][0] > 54) printf("-1.000"); else printf("%.3lf", f[0][0][0][0][0][0]); return 0; }