package main import "fmt" func mypow(a int, n int) int { var res = 1 for ; n>0; n>>=1 { if n&1 == 1 { res *= a } a *= a } return res } func mypowf64(a int, n int) float64 { return float64(mypow(a, n)) } func main() { var m int; fmt.Scanf("%d", &m) sz := mypow(2, m) s := make([]int, sz) for i := range s { fmt.Scanf("%d", &s[i]) } vs:= make([][]float64, sz) for i := range vs { vs[i] = make([]float64, sz) for j := range vs[i] { vs[i][j] = mypowf64(s[i], 2) / (mypowf64(s[i], 2) + mypowf64(s[j], 2)) } } prob := make([][]float64, m+1) for i := range prob { prob[i] = make([]float64, sz) } for j := range prob[0] { prob[0][j] = 1. } for i:=1; i