Q = gets.to_i Q.times{ w, h, d, mx, my, hx, hy, vx, vy = gets.split.take(9).map(&:to_i) vgcd = vx.gcd(vy) d = [h * w * 4, d * vgcd].min if (1..d).any?{|i| f = ->x, y{ x %= 2 * w y %= 2 * h ((x == mx) || (2 * w - x == mx)) && ((y == my) || (2 * h - y == my)) } f[hx + vx / vgcd * i, hy + vy / vgcd * i] } puts "Hit" else puts "Miss" end }