day 10, cool stuff!

This commit is contained in:
2025-12-10 19:19:45 +00:00
parent eafb240f51
commit f053bc804c
3 changed files with 253 additions and 0 deletions

47
10/ex1.py Normal file
View File

@@ -0,0 +1,47 @@
from collections import deque
def press(state, button):
new_state = list(state)
for i in range(len(button)):
new_state[button[i]] ^= 1
return tuple(new_state)
def bfs(queue, visited, goal, buttons):
while queue:
state, presses = queue.popleft()
if state == goal:
return presses
if state in visited:
continue
visited.add(state)
for button in buttons:
new_state = press(state, button)
if new_state not in visited:
queue.append((new_state, presses + 1))
print('No solution found')
return -1
with open('input.txt', 'r') as file:
lines = file.readlines()
count = 0
for line in lines:
line = line.rstrip('\n').split()
goal_text = line[0].strip('[]')
goal = []
for char in goal_text:
if char == '.':
goal.append(0)
elif char == '#':
goal.append(1)
goal = tuple(goal)
buttons = []
for i in range(1, len(line) - 1):
buttons.append(tuple(map(int, line[i].strip('()').split(','))))
initial = tuple([0] * len(goal))
queue = deque([(initial, 0)])
visited = set()
count += bfs(queue, visited, goal, buttons)
print(count)

39
10/ex2.py Normal file
View File

@@ -0,0 +1,39 @@
from pulp import LpProblem, LpVariable, LpMinimize, lpSum, PULP_CBC_CMD
def solve(goal, buttons): # hence another thing i havent done in years
prob = LpProblem("Operation_Dumbass_Elves", LpMinimize)
x = [LpVariable(f"x_{i}", lowBound=0, cat='Integer') for i in range(len(buttons))]
prob += lpSum(x), "Button Presses"
for i in range(len(goal)):
constraint = []
for j in range(len(buttons)):
M_ij = buttons[j][i]
constraint.append(M_ij * x[j])
prob += lpSum(constraint) == goal[i], f"Constraint_{i}"
prob.solve(PULP_CBC_CMD(msg=0))
return (int(prob.objective.value()))
with open('input.txt', 'r') as file:
lines = file.readlines()
count = 0
for line in lines:
line = line.rstrip('\n').split()
goal = tuple(map(int, line[-1].strip('{}').split(',')))
buttons = []
for i in range(1, len(line) - 1):
incs = map(int, line[i].strip('()').split(','))
button = [0] * len(goal)
for inc in incs:
button[inc] += 1
buttons.append(tuple(button))
count += solve(goal, buttons)
print(count)

167
10/input.txt Normal file
View File

@@ -0,0 +1,167 @@
[..##.#...#] (0,3,4,7,9) (0,1,9) (1,2,3,4,5) (0,1,3,7,8) (1,3,4,5,6,7,9) (0,1,2,4,5,6,7,8) (0,1,2,3,5,6,8) (1,2,4,5,8,9) (0,4,5,6,7) (0,2,3,5,8,9) (0,2,6,7,8,9) {87,70,44,58,58,67,44,54,55,54}
[..#.#.#..] (0,6,7,8) (0,1,2,3,4,5,6) (2,4,6) (0,1,3,7,8) (0,3,4) (0,2,3,6) (0,1,3,5,6,8) {81,41,31,72,36,21,55,29,44}
[#...#] (1,2,3,4) (0,2,3,4) (0,1,2,3) {151,33,171,171,158}
[#.#..#.##] (0,2,5) (1,3,4,5,6,8) (0,2,3,6,8) (0,1,3,8) (0,2,4,6) (3,4,5) (0) (0,1,2,4,5,6) (2,3,4,7) (0,3,4,5,6,7,8) (1,8) {172,41,141,26,128,38,128,4,40}
[..###.#..#] (1,2,3,4,5,6,8,9) (1,6) (1,2,5,7) (1,3,6) (0,3,4,5,6,9) (1,4,6,8) (2,3,4,5,6,7) (0,2,4,5,8) (0,2,4,5,9) (0,1,2,6,7,9) (1,3,5,9) {30,66,40,50,46,42,78,22,28,35}
[##...##.##] (3,5) (1,3,4,5,9) (5,6,7) (1,2,4,5,6,7,8,9) (0,1,4,5,6,7,8,9) (8,9) (0,2,5,9) (0,4,7,9) (1,3,5,7) (0) (0,1,2) {32,47,21,8,35,53,45,46,32,37}
[#..##] (0) (0,3) (0,2) (1,4) (1,2) (1,3,4) {18,185,25,4,172}
[...#] (0,1,2) (1,2,3) (1,2) (3) (0,2,3) {19,14,32,51}
[###..] (0,1,2) (0,3,4) (0,3) (1,2,4) {13,20,20,8,16}
[........#] (3,5) (1,2,5,6,7,8) (0,1,5) (1,3,4,8) (1,2,3,4,5,8) (0,1,6) (0,2,3,4,5,8) (2,3,4,5,6,7) (1,2,3,4,5) (1,2,3,4,5,7,8) (0,1,2,4,5,6,7,8) {65,110,97,89,92,122,60,55,80}
[.##..#..] (4,6) (0,1,3,4,6,7) (1,2,4,5,6,7) (0,2,3,5,7) (0,2) (1,2,3,6,7) (1,2,5) (0,2,3,4,5,6,7) {56,66,84,53,56,59,67,73}
[..#.] (1,2,3) (1,3) (0,3) {6,14,4,20}
[###..] (1,2) (0,1,2) (1,3) (0,1,4) {19,36,15,6,15}
[...##.] (0,1,2,4,5) (0,2,5) (0,1,5) (0,2,3,4) (0,4) {29,14,21,4,18,21}
[..#.#..##.] (0,2,3,4,8,9) (1,3,5,6,7,9) (2,5,6,7,9) (0,1,3,5,8,9) (3,5,9) (0,1,4,7,8,9) (0,2,7,9) (4,5,9) (0,4,5,8,9) {57,30,38,67,47,89,27,30,57,112}
[.#..##.#.] (1,3,6,8) (0,1,2,3,5,7,8) (0,1,2,5,6,8) (1,2,3,4,5,6,8) (6) (0,1,2,3,4,5,7) (1,3,4,6,7) (0,1,2,5,7) (0,1,2,3,4) (0,1,2,3,4,6,7) {50,60,53,48,42,25,45,40,13}
[.##.#.] (0,4,5) (2,5) (0,3,4,5) (0,2,3,4,5) (1,2,3,4) {28,4,175,18,32,189}
[.##.#] (3,4) (2,4) (0,2,4) (0,1,2) (0,1) (0,3) {51,30,28,9,12}
[.#.#...###] (5,8,9) (0,1,2,4,5,6,7,9) (2,6,8) (2,3,4,5,6,9) (3,4) (3,4,5,7,8,9) (4,9) (4,6) (3,5,6,7) (0,4,7,9) {152,4,39,49,214,44,55,164,33,193}
[#####.] (1,3,5) (0,1,2,3) (2,4) (0,1,2) (0,2,3) (3,4) (0,1,3,4) {48,39,55,60,26,9}
[#.##.#] (1,5) (2,3) (1,3,4) (0,1,4) (0,1,2,3) (1) (0,2) {28,53,35,32,13,8}
[...#.##] (2,4) (0,3,6) (0,1,2,3) (0,2,3) (0,1,2,5,6) (1,5) {46,42,51,30,5,31,16}
[#...##] (0,1,3) (3,4,5) (0,2,3,5) (1,3,4,5) (1) (0,2) {9,155,7,147,143,145}
[#.#.#.##] (0,1,2,3,4,5,7) (0,1,6) (2,3,7) (1,2,3,4,6,7) (0,1,2,3,4,6,7) (1,3) {43,59,36,52,24,20,23,36}
[#...####] (1,2,3,4,5,6) (0,3,5) (1,3,5) (0,2,5,6) (0,4,6,7) (1,3,4,5,7) (1,2,3,4) (0,2,3,6) {18,42,29,50,36,46,21,14}
[#..##] (2,4) (1,3,4) (1,3) (0,3) (0,2) (1,2,3) {14,39,30,49,30}
[...##] (1,2,4) (2,3,4) (1,3,4) (0,2,4) (0,1,2,4) (1,2) (1,3) {8,33,29,48,48}
[#...] (0) (0,2) (3) (1,3) (1,2) (0,1,3) {43,16,24,20}
[.......#.#] (0,1,3,4,5,6,7,8,9) (0,1,2,3,4,7,8,9) (0,5,6,8) (0,3,5) (4,5,8) (4,6,7,8,9) (2,8) (3,6,7) (0,1) (0,1,2,4,5,6,7,9) (6,7) (0,2,3,4,5,6,7,8,9) {247,209,47,244,247,253,271,268,251,238}
[.#...] (2,3) (4) (2) (1,2,4) (0,1,2,4) (0,1) {21,28,142,4,30}
[###.#] (0,2) (0,3,4) (1,4) (1,3) (0,1) {34,26,11,15,21}
[.###.#.] (1,5,6) (1,2) (2,3,4,5,6) (2,4,5) (1,2,3,5) (0,2,5,6) {16,26,47,12,9,35,26}
[#.##..] (0,1,3) (1,2,3,5) (0,1,3,5) (0,1,4,5) (0,2,3,4) (2,3) (1,3) (0,2,3,4,5) {52,52,34,70,34,42}
[.##.#####] (3,6,7) (0,1,2,3,4,5,6) (1,2) (1,3) (1,6,7,8) (1,3,5,7) (0,1,4,5,7,8) (3,7,8) (0,1,2,3,5,7,8) (0,1,4,5,6) {37,96,36,68,22,49,16,69,57}
[#.#..#.#..] (1,3,4,5) (4,6,8,9) (1,4,5,7,8,9) (0,1,2,6,9) (0,1,3,5,7) (0,2,4,9) (1,5) (0,1,2,3,5,6,7,8) (3,6,9) {21,56,9,25,46,50,33,31,38,55}
[##.##.#] (0,1,5) (0,1,4,6) (0,3,6) (2,3,6) (1,2,3,4) (0,1,2,3,5) {36,26,9,19,15,11,28}
[.##..#..] (0,1,2,4,5) (0,1,4,5,6) (0,4,6,7) (4,7) (0,1,2,4,6,7) (0,6,7) (2,3,4) (0,2,4,6) (0,1,3,5,6,7) {262,243,50,33,268,224,251,67}
[#.#..##] (0,2,4,6) (0,4,5,6) (0) (0,2,3,6) (3,4) (1,2,4,5,6) (0,1,2,3,5) (0,1,3,4) (3,5) {183,24,42,37,39,21,34}
[#.###] (0,2,3) (0,2,3,4) (1,2,4) {21,18,39,21,34}
[#.##] (0,1,3) (0,3) (0) (3) (2,3) (0,1,2) {30,13,7,26}
[##.#.#.##.] (1,3,6,8) (4,8) (0,2,3,4,5,7,8) (0,4,5) (0,9) (4,5) (0,1,4,5,6,7,9) (1,2,5) (2,3,8) (2,4,5,6,7,8,9) {43,42,23,32,58,45,43,32,54,38}
[.###...] (2,3,4,5) (0,1,2,4,5) (3,4,5,6) (1) (1,2,3) (0,4) (1,4,5,6) (0,1,2,3,5) (2,6) {40,76,67,49,47,52,27}
[..##.] (4) (0,1,3,4) (1,4) (0,2,4) (2,3) {31,35,30,39,66}
[####.###] (2,4) (5,6,7) (0,1,2,3,5,6,7) (1,2,3,7) (3,5) (0,3,6,7) (1,2,3,4) {129,127,144,154,17,152,147,156}
[##.#..] (0,1) (2) (0,3,5) (2,4) (3,4) (0,4,5) {23,6,20,17,14,17}
[.###] (0,1,2) (0,2) (2) (0,2,3) (0) {39,8,26,7}
[#...#..] (1,6) (3,5,6) (1,2,6) (0,3,5,6) (1,2,3,5) (2) (0,3) (0,3,4,5,6) (1,2,3) {28,32,50,51,6,31,38}
[.#.#.###] (1,3,4) (3,4) (1,6,7) (0,1,2,4) (0,2,3,4,5,6,7) (0,2,3,6,7) {26,40,26,47,56,13,30,30}
[.#.#.....] (3,4,5,6,7,8) (2,4,6,7) (0,1,3,5,6,7,8) (1,6,8) (0,3,4,5,7,8) (5,7) (0,1,2,6,7,8) {36,36,13,47,44,64,60,77,67}
[..##..] (1,4) (2,3,4,5) (1,2,4,5) (1,3,4,5) (0,2) (0,1,3,4,5) (1,2,5) (0,2,5) {135,177,56,141,166,171}
[#..##..#] (1,3,5) (3,7) (0,1,3,4,5,7) (3) (0,3,6) (0,4,5) (5,7) (0,2) (0,1,2,3,5,6) {49,34,15,68,19,46,25,35}
[#..#.#] (1,4) (4) (0,1,2,4) (0,1,3,4,5) (0,3,4) {24,20,4,20,46,14}
[#.#######.] (1,8) (0,4,5,7,9) (0,2,3,4,5,6,7,8) (1,3,7) (0,6) (1,5,6) (1,8,9) (2,3,4,5,6,8) (4,6,8) (1,7) (0,3,4,5,7) (3,6,7,8,9) (2,3,5,7) {63,149,19,41,63,59,48,171,55,28}
[##.###] (0,1,2,4,5) (0,2,3,4) (0,1,3,4,5) (1,3,5) {18,26,15,21,18,26}
[.#..##..##] (0,3,5,8,9) (0,1,2,3,4,5,8,9) (1,4,5,8,9) (1,2,5,6,7,8,9) (0,2,3,4,5,8) (0,3,4,5,6,7,8,9) (0,1,2,5,7,8,9) (0,2,4,5,8) (5,6) (7,8,9) (1,2,3,4,6,7,8) (0,5,8) {65,37,46,57,52,94,37,31,93,61}
[.#.##..#.] (2,8) (3,5) (1,3,5,6,7,8) (1,3,5,6,8) (0,4,8) (2,3,4,5,6,7) (0,1,2,3,4,6,7) (3,6,8) (1,2) (3,5,6,7,8) (1,3,4,7) {16,36,48,230,35,49,219,33,221}
[#.##.#] (1,2,4,5) (0,4) (0,1,4) (0,5) (0) (0,2,3,5) (1,3,5) (0,1,3,5) {45,51,16,35,28,56}
[....#.#] (0,1,4,5,6) (0,3) (3,4,5,6) (2,3,4,5) (0,1,2,4,5,6) (0,2,3,4) (4,6) {45,29,38,42,66,55,44}
[#####.] (0,2,3) (0,2) (1,3,5) (0,1) (1,2,3,4) (1,2,4,5) {29,31,35,31,18,1}
[###.####.] (0,7,8) (0,1,2,4,5,6,7) (0,1,3,4,6,7) (0,7) (3,4,5,8) (0,1,4,5,6,7,8) (0,1,2,4,5,6,7,8) (0,2,3) {82,54,50,40,69,62,54,64,55}
[#....#...#] (8,9) (1,3,8) (1,4,6,7,8) (0,1,4,5,6,7,8,9) (1,3,4) (0,1,2,3,4,5,6,9) (1,3,4,6) (0,2,4,5,6,7,8,9) (1,2,3,5,6,7,8,9) (2,3,4,7,8,9) {28,73,43,65,76,45,69,65,85,73}
[##.###] (0,1,2,5) (1,3,4,5) (0,1,2,3) (2,5) (0,2,3,5) (1,2,4) (0,1,3) {211,225,57,201,16,43}
[.##.#####.] (3,5,7,8,9) (3,5,6,8) (0,3,8) (1,4) (0,2,3,4,5,6,7,9) (0,1) (0,1,2,3,4,5,7,8) (2,3,5,6) (2,4,6,9) (0,4,5) (4,9) (0,1,2,3,4,5,7,9) {39,15,43,73,37,58,41,31,46,50}
[.#..##.] (1,2,3) (0,1,2,3,5,6) (1,2,4,6) (0,1,4) (0,3,4,5,6) (2,4,5) (1,2,3,4,5) {25,39,36,27,46,35,14}
[..##.#...] (0,3,4,5,6,7,8) (1,2,4,5,6,7,8) (2,3) (4,5,7) (1,2,3,4,5,6,7) (0,3,4,6,7,8) (1,2,3,6) {28,154,170,194,37,21,182,37,32}
[.#####.] (2,3,4,5,6) (0) (0,1,3,6) (0,2,3,4,6) (2,4) (0,1,4,5,6) (1) (0,1,2,5,6) (4,5) {35,33,53,43,51,28,51}
[##.##] (3,4) (1,3,4) (2,4) (2,3,4) (0,2,4) (0,3,4) (3) {30,178,45,221,249}
[###.] (0,1,3) (0,1,2) {9,9,5,4}
[#....] (0,2,3,4) (2,3,4) (0,1,3,4) {159,10,165,175,175}
[##..] (0,2) (0,1) (2,3) (0,3) {39,15,21,19}
[..#....] (0,1,3) (0,1,2,3,5,6) (0,1,5) (0,1,6) (0,1,3,4,6) {61,61,17,40,12,28,39}
[.#..#.#...] (0,1,2,4,5,6,7,8) (0,1) (2,4,7,8) (0,2,3,6,8) (1,2,4) (0,2,4,7) (0,1,3,4,5,6,7,8,9) (2,3,4,5,9) (0,1,2,6,7,9) (0,1,2,4,5,8) (2,3,6,8,9) (1,4) {64,61,209,168,192,145,58,53,49,169}
[#....###.] (0,3,4,6,7,8) (1,3,4,5,6) (1,3,4,5,6,8) (0,1,2,3,4,6,7,8) (1,8) (2,4,5,6,7) (1,2,5,7,8) (1,2,3,4,6,7) (2,8) (2,4,5,7) (2) {10,48,210,32,49,45,32,61,184}
[..###.#.##] (2,3,5,6) (0,3,6,7) (0,1,4,5,6,7) (1,2,3,4,6,7) (1,7,8,9) (3,9) (1,2,3,4,5,6,7,8) (1,4,5,7,8) (1,3,4,5,9) (0,1,2,4,5,6,7) {30,80,41,61,77,81,64,66,27,25}
[.#..#.#.] (0,1,2,3,7) (0,1,4,5) (0,2,3,4,7) (1,2,3,7) (0,7) (0,4) (1,2,3,4,6,7) (1,3,6,7) (0,1,2,5,6,7) (3,4,6,7) {70,61,61,65,60,23,33,80}
[..###] (0,1,3) (0,1,2,4) (1,4) {19,22,2,17,5}
[.##.] (0,1,3) (0,2) (0,1) (3) {18,11,7,9}
[##.#.#..] (1,4,5,6,7) (3,5) (0,1,3,4,6) (0,2,3,4,5,6) (0,1,2,7) (2,6) (2,3,5,7) {19,31,18,11,17,21,17,30}
[....##.##] (0,1,3,5,7,8) (4,5,7,8) (1,2,4,7) (6) (1,3,4) (1,2,3,4,5,8) (0,3,5,6) (5,8) (0,4,5,6,7) {26,38,19,39,55,75,18,41,58}
[.##...##] (4,7) (0,1,3,5,6,7) (0,2,3,5) (0,5,6,7) (3,4,7) (0,2,6,7) {27,3,14,15,20,18,22,42}
[.....#####] (1,9) (0,2,3,4,5,6) (0,2,3,4,5,7) (0,2,5) (0,1,3,8) (0,1,2,4,5,8) (4,6,7) (1,3) (5,7) (0,1,2,4,5,6,9) (2,4,5,6,7) (1,2,3,5,6,7,8,9) (4,7,9) {84,60,80,52,71,98,60,47,28,28}
[.##.##..#] (0,1,2,3,4,5,6,8) (5,6,8) (1,2,3,5,6,8) (1,2,3,6,8) (2,3,4,5,6,7,8) (2,4) (0,1,2,3,5,7,8) {24,49,75,58,37,67,63,22,76}
[##..##] (0,4,5) (0,1,4,5) (0,2) (0,1,2,3,4) {206,21,180,1,27,26}
[#...#..] (0,2,4,5) (0,1,4,6) (0,1,3,5,6) (0,4) (0,3,4,5) {56,22,16,25,46,41,22}
[....#] (0,1,2,3) (1,2) (0,1,2,3,4) {19,22,22,19,1}
[##....##] (0,5,6,7) (1,4) (1,3) (0,1,6,7) (2,3) (0,1,7) (1,2,3,4,6) {27,40,26,26,15,2,31,27}
[..#.#....] (0,2,4,5,6,7) (0,4) (8) (0,1,2,5,6) (0,2,3,4,5,7,8) (0,2,3,4,5,6,8) (0,1,2,3,5,6,8) (2,3,5,6,8) (0,4,5,7,8) (0,3,8) (1,8) {98,39,77,69,46,93,57,42,90}
[#..##.#] (2,3,4,5,6) (0,2) (0,1,5,6) (2,3,4,6) (0,1,3,5,6) {32,20,44,43,32,38,52}
[...##] (2) (0,2,4) (3,4) (1) (0,3,4) {34,132,25,29,47}
[#.####] (2,3,5) (0,2,4,5) (2,5) (0,1,3,5) {111,1,124,4,110,125}
[##..#] (3,4) (1,3,4) (0,2,4) (0,2) (0,1,3) (0,3) (1,3) {42,46,23,62,39}
[#.##.###] (1,3,4,6,7) (0,5,6,7) (1,2,3,4,7) (0,1,2,3,5,6) (0,5) (0,2,4) (0,1,2,3,4,7) (0,3,4,7) {89,60,58,80,82,40,43,71}
[####.#.#..] (1,3,5,7,9) (0,1,3,4,5,7,8,9) (0,1,5,6,9) (0,2,3,5) (3,9) (4,7,8) (0,2,4,5,6,7,8) (1,2,4,7,8,9) (0,1,3,4,6,7,8,9) (1,2,4,6,7) (0,1,2,3,5,6,7,8,9) (0,1,2,3,4,8,9) (9) {113,106,72,101,82,90,73,95,93,123}
[###.] (3) (0,1,3) (1,3) (0,1,2) (1,2) (0,1) {42,60,17,40}
[#..#.#] (2,3,4,5) (0,1,4) (0,4,5) (3,5) (0,1,4,5) (0,1,3,5) {48,40,17,44,47,59}
[..####....] (3,4) (0,1,3,4,6,7,8,9) (0,1,3,5,6,7,8) (1,3,4,6) (0,2,4,5,6,7,8) (0,1,2,5,8) (0,2,3,4,5,7,8,9) (0,1,4,8) (4,7,8) {52,42,32,38,51,37,35,37,56,16}
[###.##...] (1,3,5,7) (1,3,4,7) (0,1,2,5,6,7) (2,3) (0,2,4,6,7,8) (0,5,8) (0,3,8) (0,2,4,5,6,7,8) (2,3,5,7) (0,1,2,3,6,7,8) (0,1) {74,78,69,68,35,47,50,87,39}
[#.#...##.#] (0,1,7,9) (1,2,3,4,5,6,8) (2,3,4,5,6,7,8,9) (0,1,3,4,5,6,7,9) (2,6,8) (0,1,2,3,4,5,6,7,9) (2,6,7,9) (1,6,7,8) (0,1,2,3,6,7,9) {54,62,214,57,42,42,237,83,195,75}
[#.#.#.#...] (0,1,2,3,5,6,7,9) (1,2,3,4,5,6,7,8,9) (2,4,7) (5) (0,2,3,4,6) (1,2,7,9) (0,2,5,9) (3,6,7,8) (0,1,2,4,6,7,8) {38,37,62,223,37,17,234,244,208,27}
[...#.#..##] (2,3,5,6,7,8,9) (4,6) (5,8) (0,1,8) (0,1,3,4,5,6,9) (4,5,6) (0,3,4,5,6,7,8) (0,2,4) {23,9,21,40,33,60,52,33,52,27}
[########.] (0,1,2,3,4,6) (2,5,8) (0,1,2) (3,6,7) (0,1) (0,1,2,3,5,7) (0,3,5,6,8) (0,1,2,4,5,7,8) (0,1,3,6,7) (0,1,4,5) {72,68,50,22,46,55,20,30,35}
[..####.] (2,3,6) (4,5,6) (0,1,2,4,6) (0,2,5,6) (2,4) (0,4,5,6) {43,20,41,16,190,171,207}
[.#..##.##.] (1,3) (0,2,3,4) (2,4,6,7,9) (0,1,3,4,5,6,7,9) (0,2,6,8,9) (0,1,3,4,5,6) (0,2,3,9) (9) (5,6,8) (1,7) (0,1,3,4,5,6,7,8) (2,3,5,7,8) {66,47,67,90,60,69,70,52,41,66}
[##...] (0,1,3) (2,3) (0,2) (1,3) (3,4) {21,38,20,67,11}
[.#..##.##] (3,7) (0,3,4,5,6,7,8) (0,8) (2,5,6) (1,4,5,7,8) (0,2,7) (0,1,3,8) (2,4,6) {46,14,22,29,36,17,35,20,44}
[#.#.] (0,2) (1,2,3) {193,0,193,0}
[#.####.#] (0,1,2,3,4,5,7) (0,2,3,4,5,7) (0,1,3,4,6) (0,1,4,5,6) (1,2,4,5,6,7) (1,5,7) (0,3,6,7) (0,1,3,4,5,6) (2,4,6) {65,68,157,55,188,68,184,70}
[##.#..] (0,2,3,4,5) (1,2,4,5) (2,3,4) (1,2,3) {12,8,28,25,23,15}
[.#.#..] (1,3) (0) (2,3,5) (2) (1,2,3,5) (0,2,4) (0,4) {44,20,47,33,26,21}
[###.] (0,2) (2) (1,2) (0,1) (0,3) (1,3) {31,33,27,13}
[###..] (2,3) (1,2,4) (0,1,2) (0,4) {18,22,39,17,30}
[..#.] (2) (0,2,3) (0,1,3) (1,3) (0,1,2) {30,38,19,34}
[.....#.] (1,4,5,6) (0,1,2,4,5,6) (2,3,5,6) (0,2,5) (0,2,4,5,6) {27,133,42,15,136,164,151}
[.##....] (0,1,3,4,6) (0,2,3,4,5) (1,3,4,5,6) (0,2,3,4,6) (1,2,3,4) (1,3) {49,174,49,206,199,148,167}
[...###.] (1,2,4) (0,3) (1,2,4,6) (0,1,2,3,4,5) (0,2,4,6) (1,3,4,6) (2) (0,6) {42,48,54,41,54,18,28}
[#..##...#] (0,2,4) (0,2,3,4,5) (0,1,5,7,8) (0,3,5,6,7) (0,2,8) (0,5,8) (3,4,6,7,8) (6,8) {60,12,20,29,25,53,22,28,49}
[.###.###] (5,6,7) (0,2,3,4,5) (0,4,7) (0,2,3,4,6,7) (0,3,4,5,6,7) (1,4) (0,3) (1,2,3,4,6) (2,4,5,6) (0,1,2,4,7) {60,28,60,56,86,53,56,48}
[##..######] (0,3,4,5,8,9) (1,2,3,4,5,6,8) (0,1,3,4,7,8) (3,4,9) (0,1,2,3,4,7,8,9) (2,5,7,8,9) (1) (4,5,6,7,9) (0,1,2,3,4,6,7,9) (0,4,5,8,9) (0,1,2,4,5,7,8) (1,2,3,4,5,6,9) (0,2,3,5,8,9) {48,72,51,74,94,58,36,60,77,64}
[.#.#] (0,1,2) (1) (2) (2,3) {0,0,1,1}
[###..] (3) (0,1,3) (1,2,4) (3,4) (0,1,2) {33,44,26,22,12}
[.##.#..] (2,3,4,5,6) (1,2,3,5,6) (0,1) (2,4) (0,1,6) (0,1,2,3,4,5) (1,3,5) (0,2) (3,5,6) {36,66,60,66,38,66,40}
[####.#.] (1,2,3,5,6) (1,3,4) (1,2,4,5) (1,2,3,5) (0,2,3,4,5) (0,1,2,3,5) (0,1,2,4,6) (0,3,4,5) {46,66,74,81,49,80,16}
[#.#.] (2,3) (0,1,2) (0,3) (1) {12,29,26,20}
[....##.#] (0,1,3,4,5,6,7) (0,1,2,4,5,7) (5,6) (0,2,5,6,7) (0,3,4,5,6) (1,2,3,6,7) (0,1,4,6) {45,27,14,25,40,44,49,22}
[##..###..] (0,2,3,4,5,7) (0,1,2,3,4,7,8) (0,5,6,8) (0,1,3,4,6,7,8) (3,8) (1,2,6,7,8) (0,2,5,6,7,8) (0,1,3,6,7,8) (0,1,2,3,4,5,7) {53,33,50,36,22,46,47,54,61}
[#.##] (1,2,3) (0,2,3) {0,116,116,116}
[###.###...] (1,2,4,6) (1,3,4,5,6,7,8,9) (2,6,7) (1,2,3,4,6,7,8,9) (0,1,2,5,6,8,9) (0,2,3,5,6,7,8,9) (1,5,7,9) (0,1,2,3,4,5,8,9) (1,3,4,8) (0,2,4,7) (1,2,3,4,5,6,7,9) {23,106,61,65,75,70,70,63,67,85}
[.###] (0,1,2,3) (1,2,3) {13,179,179,179}
[.###.#...] (1,2,4,5,6,7,8) (0,1,3,4,6,7) (0,1,3,6,7,8) (0,1,4,6,7,8) (0,1,2,3,5,6,7) (4,5,7) (1,2,4,5,8) (1,2,3,5) (2,3,5,7,8) {53,89,52,64,57,67,63,82,51}
[.#..#....] (0,1,2,5,7,8) (0,1,2,3,5,6) (0,2,3,4,5,8) (0,1,4,5) (0,3,4,6,7,8) (1,2,4,6,8) (0,4,6) (0,3,5,7) (1,3,5,6,7) {30,29,24,30,24,34,28,13,17}
[#..#...#..] (0,3,4,5,6,7) (0,2,4,6,9) (0,2,4,5,6,7,8,9) (2,3,5,6,8) (0,3,5,6,8) (1,6,8) (0,1,2,3,4,5,6) (1,9) (0,1,2,4,5,7) (2,3,5,6) (3,5,7,8) (3,4,9) (2,5,6,7,8) {77,210,70,97,76,107,266,64,237,58}
[#.....##] (0,6,7) (0,2,3,4,5) (1,2,4,6,7) (0,2,5,6) (1,2,3,4,5,6) (0,1,3,5,6,7) (0,3,4,6,7) (1,3,4,5,6,7) {67,44,32,69,57,62,90,67}
[#..#..] (2) (0,2,3,4,5) (0,1,2,5) (1,2,3,5) (0,1,2,3,4) (2,3,4,5) (1,5) (1,2,4) {42,252,277,41,222,48}
[.##..#.] (1,3,4,6) (2,4) (1,3,5,6) (2,4,5) (0,2,3,4,5) (0,2,3,4,5,6) (0,1,2,3,6) (1,4) {29,41,215,37,222,36,33}
[.####.] (2,3) (0,4,5) (0,1,5) (2) (0,2,3,5) (1,4) (1,2,3,4) (0,2,4,5) {144,132,46,10,36,144}
[##.#.] (2) (0,1) (1,2,3) (3,4) (0) (2,3,4) {17,23,147,25,19}
[####.##.] (0,1,2,3,5,6,7) (2,4,6) (0,2,4,5,6) (0,3,4,5,7) (1,3,6,7) (2,3,4,7) (2,3,7) (0,5,7) {208,20,44,195,201,208,46,205}
[##.#] (1) (1,2) (0,2,3) {7,22,27,7}
[###.###...] (0,2,3,4,5,6,7,8) (2,4,5,6,7,8,9) (1,3,5,7,9) (0,1,2,5,8,9) (0,2,3,4,5,6,7,8,9) (0,1,3,5,6,7,8,9) (2) (0,2,4) {177,142,56,153,40,174,158,158,174,154}
[#..#.###] (4,6,7) (0,3,5,6,7) (0,7) (0,2,5) (0,1,2,4,5,6) (3,6,7) (1,4,5,7) {174,19,135,28,28,174,37,75}
[###..###] (2,6) (2,5,6) (2,3,4,5,6,7) (1,6,7) (0,1,2,5,6,7) (1,3,5,6) (0,5,7) (0,2) (1,6) (3,6) {12,36,38,33,2,46,77,13}
[.....#.] (0,2,6) (1,3,4) (0,1,4,5,6) (1,3,6) (1,2,4,5) (0,1,2,3,4) (0,1,2,3,5) {155,175,147,161,155,19,35}
[#.#.] (0,1) (1,3) (0,1,2) (3) {23,41,17,24}
[..#.] (1,2) (0,2,3) (2) {10,0,13,10}
[###.] (2,3) (1,2,3) (0,2) (0,1) (1,2) {20,143,135,20}
[.###.] (1,4) (2,4) (1,2,4) (1,2,3,4) (0,3,4) (0,2,3) (0,3) {30,21,38,47,50}
[..#.##.#] (0,3,4,5,6,7) (0,4) (0,1,2,5,6) (0,2,3,4,5,6) (1,2,3,7) (0,1,6,7) {52,39,41,41,30,37,46,39}
[.#...#] (2,3,5) (3,4) (0,3) (0,4,5) (0,1,4,5) {28,4,18,35,33,40}
[..#####...] (0,1,2,8,9) (0,3,4,6,7,8,9) (0,1,3,4,6,7,8,9) (0,1,2,5,6,7,8) (0,1,2,4,5,6,7,8,9) (0,1,2,3,4,6,7,8) (1,2,3,4,7,8) (0,1,2,3,4,6,7,9) {55,61,41,50,53,16,53,66,60,40}
[#.##] (1,2) (2,3) (0,2,3) {1,13,27,14}
[#....#.##] (4,5,7) (0,1,6,8) (0,1,2,3,4,5,6) (1,2,4,5,6,7,8) (0,5,7,8) (0,2,3,4,5,6,7) (0,1,4,5,6,7,8) (0,3) {49,23,34,27,53,71,38,65,35}
[#..#.#.] (2,3,4,5) (1,2,3,6) (2,6) (0) (0,1,2,3) (1,4) (0,3,5) (4,5) {36,31,29,38,29,34,16}
[.####.] (0,1,5) (1,5) (0,1,2,3) (0,2) (1,3,4) (0,2,4) {28,44,22,24,34,20}
[.#.##.#] (1,3,4,5,6) (1,2) (0,5,6) (0,1,3) (1,2,3,6) (0,2,4,5) (4,6) {31,47,25,34,27,25,35}
[##..#....] (0,1,2,3,6,7,8) (1,2,3) (0,2,3,4,5,6,7,8) (0,2,6,7,8) (0,1,4) (2,3,6) (2,3,4,5,6,7,8) (1,5,6) (0,2,3,7,8) (0,1,4,8) {80,72,68,62,41,18,45,52,71}
[#.##.##] (4,5) (0,2,4,5) (0,2,3,5,6) (0,1,2,4,6) (1,5) (0,3,4,6) (0,1,2,3,5,6) {32,15,22,20,25,32,24}
[.##..###.#] (1,2,5,6,7,9) (0,1,2,4,5,6,7) (0,1,2,3,4,5,7,8,9) (2,5,6,9) (0,5,7,9) (0,2,3,4,5,7,8) (0,1,2,4,5,7) (0,2,3,4,5,6,9) {54,30,65,28,44,75,45,45,13,54}
[#.##.###] (1,2,3,4,5,6,7) (2,4) (0,1,4) (1,7) (3,5) (3) (1) (0,1,2,4,5,7) (0,2,3,5,6,7) {36,58,58,63,63,57,29,51}
[#..#] (0,2) (0,1,2) (1,3) (0,3) {36,18,21,20}
[#.#.###.#] (0,2,3,4,5,8) (1,3,5) (0,2,3,4,7,8) (2,5,6,8) (0,2,3,4,5,6,7) (5,6) (0,1,4,5,6) (2,6,7,8) (2) (3,7) {54,31,65,50,54,54,49,45,39}
[#..##] (0,2,4) (2,4) (0,1,3) (1,3) (0,3) (1,2,3) (1) {12,16,4,22,2}
[.#..#] (0,2) (1,4) (0,1,3) (0,4) {191,21,13,2,195}
[#.#..] (0,1) (0,2) (1,2,3) (1,4) (0,3) (2,3,4) {36,8,23,27,12}
[.###...] (2,4,6) (2,3) (0,1,2,3,5) (0,2,3,4,5) (1,5,6) (1,2,3,5,6) (0,3) {18,38,54,48,16,48,36}
[#..##.#.] (0,3,4,6) (1,5,6) (1,4,7) (0,1,2,3,5,6,7) (1) (0,1,2,3) (0,2,5,7) (0,1,2,3,4,6) (2,3,4,5,6,7) (0,2,3,4,5,7) {74,257,76,75,74,48,51,62}
[...#] (1) (0,3) (0) (0,1,2) (0,2,3) (1,2,3) {52,184,38,27}
[...#....] (3,4,5,7) (0,2,3) (1,4) (0,1,3,4,5,6) (0,2,6,7) (1,4,7) (1,2,4,5,7) (3,7) (0,1,2,3,6) {185,60,195,59,64,44,177,220}