N=gets.chomp.to_i G=[] for num in 1..N (a,b,c,d,r) = gets.chomp.split a = a.to_i b = b.to_i c = c.to_i d = d.to_i G[num-1] = [] G[num-1][0] = a G[num-1][1] = b G[num-1][2] = c G[num-1][3] = d G[num-1][4] = r end guess_have = {} guess_not = {} is_first = true for num in 1..N if G[num-1][4] == 'NO' for i in 0..3 guess_not[G[num-1][i]] = 1 end end if G[num-1][4] == 'YES' for i in 0..3 str = G[num-1][i] if is_first guess_have[str] = true else if not guess_have.key?(str) guess_have.delete(str) end # found = false # guess_have.each_pair do |x,y| # if str == x # found = true # end # end # if not found # guess_have.delete(str) # end end end guess_have.each_pair do |x, y| found = false for i in 0..3 if G[num-1][i] == x found = true end end if not found # puts 'guess' + x.to_s guess_have.delete(x) end end is_first = false end end def guess(gh, gn) # puts gn.length gh.each_pair do |x, v| # puts x end # puts gh.length if gn.length == 9 ret = "" for n in 0..9 if not gn.key?(n) ret = n end end return ret end gh.each_pair do |x, y| if gn.key?(x) gh.delete(x) end end gh.each_pair do |x, y| return x end end puts guess(guess_have, guess_not)