aboutsummaryrefslogtreecommitdiff
path: root/day13/part2.dnw
diff options
context:
space:
mode:
Diffstat (limited to 'day13/part2.dnw')
-rwxr-xr-xday13/part2.dnw53
1 files changed, 0 insertions, 53 deletions
diff --git a/day13/part2.dnw b/day13/part2.dnw
deleted file mode 100755
index af6af5b..0000000
--- a/day13/part2.dnw
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env ruby
-
-class Firewall
- class Layer
- def initialize(range)
- @period = (range - 1) * 2
- end
-
- def will_capture_at?(time)
- return time % @period == 0
- end
- end
-
- def initialize
- @layers = []
- end
-
- def add_layer!(depth, range)
- @layers[depth] = Layer.new(range)
- end
-
- def will_capture_at?(time)
- (0...@layers.length).each do |i|
- next if @layers[i].nil?
- return true if @layers[i].will_capture_at?(time + i)
- end
- return false
- end
-end
-
-
-input = $stdin.readlines.map(&:chomp).map{|l|l.split(': ').map(&:to_i)}
-lcm = input.map(&:last).inject(1, :lcm)
-delay = 0
-
-loop do
- if delay > lcm then
- puts "Went past lcm"
- exit
- end
-
- firewall = Firewall.new
-
- input.each do |line|
- firewall.add_layer!(line[0], line[1])
- end
-
- break unless firewall.will_capture_at?(delay)
-
- delay += 1
-end
-
-puts delay