#include using namespace std; int main(){ cout << fixed << setprecision(20); int M; cin >> M; vector S(1 << M); for (int i = 0; i < (1 << M); i++){ cin >> S[i]; } for (int i = 0; i < (1 << M); i++){ S[i] = S[i] * S[i]; } vector> dp(M + 1, vector(1 << M, 0)); dp[0] = vector(1 << M, 1); for (int i = 0; i < M; i++){ for (int j = 0; j < (1 << M); j += 1 << (i + 1)){ for (int k = 0; k < (1 << i); k++){ for (int l = 0; l < (1 << i); l++){ int a = j + k; int b = j + (1 << i) + l; dp[i + 1][a] += dp[i][a] * dp[i][b] * S[a] / (S[a] + S[b]); dp[i + 1][b] += dp[i][a] * dp[i][b] * S[b] / (S[a] + S[b]); } } } } cout << dp[M][0] << endl; }