You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.0 KiB
39 lines
1.0 KiB
require "letters"
|
|
distances = Hash.new {|h,k| h[k] = {} }
|
|
DATA.read.scan(/^(.*) to (.*) = (.*)$/).each do |from, to, distance|
|
|
distance = distance.to_i
|
|
distances[to][from] = distance
|
|
distances[from][to] = distance
|
|
end
|
|
locations = distances.keys
|
|
puts locations.permutation.map {|p| p.each_cons(2).map {|a,b| distances[a][b] }.inject(&:+) }.min
|
|
__END__
|
|
Faerun to Tristram = 65
|
|
Faerun to Tambi = 129
|
|
Faerun to Norrath = 144
|
|
Faerun to Snowdin = 71
|
|
Faerun to Straylight = 137
|
|
Faerun to AlphaCentauri = 3
|
|
Faerun to Arbre = 149
|
|
Tristram to Tambi = 63
|
|
Tristram to Norrath = 4
|
|
Tristram to Snowdin = 105
|
|
Tristram to Straylight = 125
|
|
Tristram to AlphaCentauri = 55
|
|
Tristram to Arbre = 14
|
|
Tambi to Norrath = 68
|
|
Tambi to Snowdin = 52
|
|
Tambi to Straylight = 65
|
|
Tambi to AlphaCentauri = 22
|
|
Tambi to Arbre = 143
|
|
Norrath to Snowdin = 8
|
|
Norrath to Straylight = 23
|
|
Norrath to AlphaCentauri = 136
|
|
Norrath to Arbre = 115
|
|
Snowdin to Straylight = 101
|
|
Snowdin to AlphaCentauri = 84
|
|
Snowdin to Arbre = 96
|
|
Straylight to AlphaCentauri = 107
|
|
Straylight to Arbre = 14
|
|
AlphaCentauri to Arbre = 46
|