gets s=$<.map{|c|c.to_i**2}#強さ n=(0..s.size-1).map{|i|{i=>1.0}}# 各ブロックでN(key)が勝つ確率value while n[1] #ブロックが1つになるまで対戦する n=n.each_slice(2).map{|i,j| #隣のブロック同士(iとj)で対戦 r=Hash.new{0} # N(key)が勝つ確率value i.each{|ia,pa| sa2=s[ia] j.each{|ib,pb| sb2=s[ib] pm=pa*pb/(sa2+sb2) r[ia]+=pm*sa2 r[ib]+=pm*sb2 } } r } end p n[0][0] # 最終的にN(0)がブロック0に残る確率