diff options
Diffstat (limited to 'day10.rb')
-rw-r--r-- | day10.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/day10.rb b/day10.rb new file mode 100644 index 0000000..5286f95 --- /dev/null +++ b/day10.rb @@ -0,0 +1,28 @@ +b = {} +a = {} + +File.readlines("day10").each { |l| + v = l.split + case v[0] + when "bot" + b[v[1].to_i] = [v[6].to_i + ((v[5] == "bot") ? 0 : 1000), v[11].to_i] + when "value" + (a[v[5].to_i] ||= []) << v[1].to_i + end +} + +loop { + n, x = a.find { |nn, xx| xx.size == 2 } + + break unless n + + lo, hi = x.sort + p n if [lo,hi] == [17,61] + + (a[b[n][0]] ||= []) << lo + (a[b[n][1]] ||= []) << hi + + a.delete(n) +} + +p a.values_at(1000,1001,1002).flatten.inject(:*) |