Something went wrong. Try again.
Code for the Advent of Code event
aoc advent-of-code
Something went wrong. Try again.
502 B · 30 lines
Ruby
at rust
12345678910111213141516171819202122232425262728293031#!/usr/bin/env ruby# frozen_string_literal: true
IP_MAX = 4_294_967_295
ranges = $stdin.readlines.map { |line| Range.new(*line.split('-').map(&:to_i)) }
ranges.sort! { |a, b| a.min <=> b.min }
current = 0
min = ranges.first.minmax = ranges.first.max
valid = 0 + min
while (r = ranges.shift) current = r.max + 1 if r === current
if r.min > max valid += r.min - max - 1 _min = r.min max = r.max end
max = r.max if r.max > maxend
puts "(1) #{current}"puts "(2) #{valid}"