@pz,@q = gets.split.map{|e|e.to_f/100.0} @memo={} def calc(pi,deep) pi = pi<0 ? 0.0 : 1200 r = 0.0 #used r += (1.0 + calc(pi-@q,deep+1)) /2.0 * (pi) if pi >0.0 #unused r += (1.0 + calc(pi+@q,deep+1)) /3.0 * (1.0-pi) if pi <1.0 return @memo[key] = r end result = (1.0 + calc(@pz,0)) / 3.0 p result.to_f