Code for the Advent of Code event
aoc advent-of-code
at rust 30 lines 502 B view raw
1#!/usr/bin/env ruby 2# frozen_string_literal: true 3 4IP_MAX = 4_294_967_295 5 6ranges = $stdin.readlines.map { |line| Range.new(*line.split('-').map(&:to_i)) } 7 8ranges.sort! { |a, b| a.min <=> b.min } 9 10current = 0 11 12min = ranges.first.min 13max = ranges.first.max 14 15valid = 0 + min 16 17while (r = ranges.shift) 18 current = r.max + 1 if r === current 19 20 if r.min > max 21 valid += r.min - max - 1 22 _min = r.min 23 max = r.max 24 end 25 26 max = r.max if r.max > max 27end 28 29puts "(1) #{current}" 30puts "(2) #{valid}"