def query(a, b) STDOUT.puts("? #{a} #{b}") STDOUT.flush gets.to_i end d1 = query(0, 0) d2 = query(0, 100) 0.upto(100) do |a| 0.upto(100) do |b| e1 = a ** 2 + b ** 2 e2 = a ** 2 + (100 - b) ** 2 if e1 == d1 && e2 == d2 STDOUT.puts("! #{a} #{b}") STDOUT.flush exit end end end