gets.to_i.times do str = gets.chomp n = str.size best = 5e15 0.upto(n-11) do |i| x = (0..3).map{|o|str[i+o]=="good"[o] ? 0 : 1}.reduce(:+) (i+4).upto(n-7) do |j| y = (0..6).map{|o|str[j+o]=="problem"[o] ? 0 : 1}.reduce(:+) best = [best, x+y].min end end p best end