Day twenty-three
This commit is contained in:
parent
2167efbb3a
commit
94e04cc796
2 changed files with 3458 additions and 0 deletions
78
23/main.rb
Executable file
78
23/main.rb
Executable file
|
@ -0,0 +1,78 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
input = (ARGV.first.nil? ? DATA : ARGF)
|
||||||
|
.readlines(chomp: true)
|
||||||
|
.map { _1.split("-") }
|
||||||
|
|
||||||
|
connections = Hash.new { _1[_2] = Set.new }
|
||||||
|
|
||||||
|
input.each do |connection|
|
||||||
|
a, b = connection.sort
|
||||||
|
|
||||||
|
connections[a] << b
|
||||||
|
connections[b] << a
|
||||||
|
end
|
||||||
|
|
||||||
|
parties = Set.new
|
||||||
|
connections.dup.each do |(node, neighbors)|
|
||||||
|
neighbors.each do |neighbor|
|
||||||
|
connections[neighbor].each do |neighbors_neighbor|
|
||||||
|
if neighbors.include?(neighbors_neighbor)
|
||||||
|
parties << [node, neighbor, neighbors_neighbor].sort
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
p parties.select { |party| party.any? { _1.match?(/^t/) } }.size
|
||||||
|
|
||||||
|
largest = []
|
||||||
|
connections.keys.each do |node|
|
||||||
|
(connections[node].size + 1).downto(1) do |size|
|
||||||
|
(connections[node] + [node]).to_a.combination(size) do |group|
|
||||||
|
if group.all? { |a| group.all? { |b| a == b || connections[a].include?(b) } }
|
||||||
|
if largest.size < group.size
|
||||||
|
largest = group
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
break if largest.size == size
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
p largest.sort.join(",")
|
||||||
|
|
||||||
|
__END__
|
||||||
|
kh-tc
|
||||||
|
qp-kh
|
||||||
|
de-cg
|
||||||
|
ka-co
|
||||||
|
yn-aq
|
||||||
|
qp-ub
|
||||||
|
cg-tb
|
||||||
|
vc-aq
|
||||||
|
tb-ka
|
||||||
|
wh-tc
|
||||||
|
yn-cg
|
||||||
|
kh-ub
|
||||||
|
ta-co
|
||||||
|
de-co
|
||||||
|
tc-td
|
||||||
|
tb-wq
|
||||||
|
wh-td
|
||||||
|
ta-ka
|
||||||
|
td-qp
|
||||||
|
aq-cg
|
||||||
|
wq-ub
|
||||||
|
ub-vc
|
||||||
|
de-ta
|
||||||
|
wq-aq
|
||||||
|
wq-vc
|
||||||
|
wh-yn
|
||||||
|
ka-de
|
||||||
|
kh-ta
|
||||||
|
co-tc
|
||||||
|
wh-qp
|
||||||
|
tb-vc
|
||||||
|
td-yn
|
Loading…
Reference in a new issue