1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
input = DATA.readlines
  .map {|line|
    nums = line.scan(/\d+/).map(&:to_i)
    [nums.shift, nums]
  }

pp input.filter_map {|val, vars|
  vals = vars.inject {|n,x|
    Array(n).flat_map {[
      _1 + x,
      _1 * x,
      "#{_1}#{x}".to_i,
    ]}
  }
  vals.include?(val) && val
}.sum

__END__