blob: faaa7b8489f5cdb8b55d1ab3eb6fe4d0a5704b1d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#!/usr/bin/ruby
#
# See ../README.md
#
#
# Run as: ruby ch-2.rb < input-file
#
SIZE = 7
#
# Brute force all possibilities, with early returns.
#
ARGF . each_line do |_|
numbers = (_ . split) . map {|_| _ . to_i}
numbers . each_with_index do |a, a_i|
numbers . each_with_index do |b, b_i|
next if a_i == b_i
target = a + b
numbers . each_with_index do |c, c_i|
next if a_i == c_i || b_i == c_i
numbers . each_with_index do |d, d_i|
next if a_i == d_i || b_i == d_i || c_i == d_i
next if target != b + c + d
numbers . each_with_index do |e, e_i|
next if a_i == e_i || b_i == e_i || c_i == e_i ||
d_i == e_i
numbers . each_with_index do |f, f_i|
next if a_i == f_i || b_i == f_i || c_i == f_i ||
d_i == f_i || e_i == f_i
next if target != d + e + f
numbers . each_with_index do |g, g_i|
next if a_i == g_i || b_i == g_i ||
c_i == g_i || d_i == g_i ||
e_i == g_i || f_i == g_i
next if target != f + g
puts "#{a} #{b} #{c} #{d} #{e} #{f} #{g}"
end
end
end
end
end
end
end
end
|