gets d = gets.split.map(&:to_i).sort x1,y1 = gets.split.map(&:to_i) z = [x1+y1,x1-y1].map(&:abs).max if z==0 p 0;exit end if d.include?(z) p 1;exit end if z.even? dmax = d.max if z < dmax p 2;exit end u = (z+dmax-1)/dmax p 2 < u ? -1 : u else dmaxeven = nil dmaxodd = nil d.each do |e| if e.even? dmaxeven = e else dmaxodd = e end next if dmaxeven.nil? || dmaxodd.nil? l = [dmaxeven,dmaxodd].max - [dmaxeven,dmaxodd].min h = dmaxeven + dmaxodd if l <= z && z <= h p 2;exit end end p -1 end