#include #include #include using namespace std; int main() { int n; cin >> n; vector p(n); for(auto& x: p) cin >> x; vector pos(1< neg(1< dp(1 << n); vector chance(1 << n); chance.back() = 1; double ret = 0; for(int mask = (1<= 0; mask--) { if(__builtin_popcount(mask) == 2) ret += dp[mask]; if(__builtin_popcount(mask) <= 2) continue; dp[mask] /= chance[mask]; vector> updates; double term = 0; for(int i = 0; i < n; i++) { if((mask&(1<