cin >> n; m = (1 << n) - 1; for (int i = 0; i <= m; ++i) cin >> a[i]; for (int o = 0; o < n; ++o) for (int S = 0; S <= m; ++S) if (S >> o & 1) a[S] += a[S ^ 1 << o]; double ans = 0; for (int S = 1; S <= m; ++S) { int type = (__builtin_popcount(S) & 1) ? 1 : -1; if (1 - a[S ^ m] < eps) returncout << "INF" << "\n", 0; ans += type / (1 - a[S ^ m]); } cout << fixed << setprecision(8) << ans << "\n"; return0; }