1
lines = File.readlines('7.input')
2
# lines = DATA.readlines
3
4
incidences = { lines[0].index('S') => 1 }
5
lines[1..].each do |line|
6
next_incidences = {}
7
incidences.each do |b, n|
8
if line[b] == '^'
9
next_incidences[b - 1] ||= 0
10
next_incidences[b + 1] ||= 0
11
12
next_incidences[b - 1] += n
13
next_incidences[b + 1] += n
14
else
15
next_incidences[b] ||= 0
16
next_incidences[b] += n
17
end
18
end
19
20
incidences = next_incidences
21
end
22
23
p incidences.sum(&:last)
24
25
__END__
26
.......S.......
27
...............
28
.......^.......
29
...............
30
......^.^......
31
...............
32
.....^.^.^.....
33
...............
34
....^.^...^....
35
...............
36
...^.^...^.^...
37
...............
38
..^...^.....^..
39
...............
40
.^.^.^.^.^...^.
41
...............
42