#!/usr/bin/env ruby distances = {} locations = [] File.readlines("day8.input").map(&:strip).each do |line| path, weight = line.split(" = ") from, to = path.split(" to ") distances[from] = {} if distances[from].nil? distances[from][to] = weight.to_i distances[to] = {} if distances[to].nil? distances[to][from] = weight.to_i locations << from locations << to end locations.uniq! lengths = locations.permutation.map { |path| path.each_cons(2).map { |from, to| distances[from][to] }.sum } puts "Part 1: #{lengths.min}" puts "Part 2: #{lengths.max}"