@local_answer = ["0"]*200 def query_local(strs) p strs res = [] strs.zip(@local_answer) do |x, a| res << (x == a ? 1 : 0) end cnt = [0,0,0] res.each_slice(2){|a,b| cnt[a+b] += 1} return cnt end def query(q) #return query_local(q.map{|e| e ? e.to_s : "?"}) str = "" q.map{|e| e ? e.to_s : "?"}.each_slice(2){|a,b| str << a << b << " "} puts str STDOUT.flush return gets.split.map(&:to_i) end idx = 0 qu = [nil]*200 gets.to_i.times do |lop| qu[idx] = lop%10 res = query(qu) res[1] += res[2]*2 idx += 1 if res[1] > idx break if idx == 200 end