require "tsort" class Array include TSort alias tsort_each_node each_index def tsort_each_child(node) yield self[node] end end n=gets.to_i l,s=([[0,0]]+$<.map{|l|l.split.map(&:to_i)}).transpose ans=l.inject(:+)/2.0 gone=[] s.each_strongly_connected_component{|a| t=a.min_by{|i|l[i]} ans+=l[t]/2.0 unless gone[s[t]] a.map{|i|gone[i]=1} } p ans