This commit is contained in:
Aéna Aria 2025-12-10 08:39:44 +01:00
parent 1931c20b69
commit 6f29e48807
3 changed files with 258 additions and 0 deletions

28
day10/1.py Normal file
View file

@ -0,0 +1,28 @@
with open(r'day10/input.txt', 'r') as input:
lines = input.read().split('\n')[:-1]
def push_button(config,button):
return tuple(not config[i] if i in button else config[i] for i in range(len(config)))
def find_min_tries(target,buttons,current):
if buttons == []:
return 99999
new = push_button(current,buttons[0])
if new == target:
return 1
return min(find_min_tries(target,buttons[1:],current),find_min_tries(target,buttons[1:],new)+1)
target = []
buttons = []
for line in lines:
split_lines = line.split(' ')
target.append(tuple(map(lambda x: True if x == '#' else False,split_lines[0][1:-1])))
buttons.append(list(map(lambda x: set(map(int,(x[1:-1]).split(','))),split_lines[1:-1])))
sum = 0
for i in range(len(lines)):
sum += find_min_tries(target[i],buttons[i],tuple(False for _ in target[i]))
print(sum)

77
day10/2.py Normal file
View file

@ -0,0 +1,77 @@
with open(r'day10/input.txt', 'r') as input:
lines = list(map(lambda x: list(map(lambda y: int(y),x.split(','))),input.read().split('\n')[:-1]))
def surface(a,b):
return (abs(a[0]-b[0])+1)*(abs(a[1]-b[1])+1)
dim = [100000,100000]
hotspots = set()
border = set()
for i in range(len(lines)):
hotspots.add(lines[i][0])
hotspots.add(lines[i][0]-1)
hotspots.add(lines[i][0]+1)
hotspots.add(lines[i][1])
hotspots.add(lines[i][1]-1)
hotspots.add(lines[i][1]+1)
j = (i+1)%len(lines)
if lines[i][0] == lines[j][0]:
sign = 1 if lines[i][1] <= lines[j][1] else -1
for x in range(lines[i][1],lines[j][1],sign):
border.add((lines[i][0],x))
else:
sign = 1 if lines[i][0] <= lines[j][0] else -1
for x in range(lines[i][0],lines[j][0],sign):
border.add((x,lines[i][1]))
print(hotspots)
def is_point_inside(a):
# up, down, left, right
ranges = [[0,a[1]],[a[1],dim[1]],[a[0],dim[0]],[0,a[0]]]
for j in range(4):
count = 0
last = False
for i in hotspots:
if i < ranges[j][0] or i > ranges[j][1]: continue
coord = (a[0],i) if j < 2 else (i,a[1])
if coord in border: last = True
elif last and coord not in border:
last = False
count +=1
if count%2 == 0:
return False
return True
def is_rect_inside(a,b):
precision = 1000
upper_left = (min(a[0],b[0]),min(a[1],b[1]))
lower_right = (max(a[0],b[0]),max(a[1],b[1]))
upper_right = (max(a[0],b[0]),min(a[1],b[1]))
lower_left = (min(a[0],b[0]),max(a[1],b[1]))
upper_border = (range(upper_left[0],upper_right[1],precision),[upper_left[1]])
lower_border = (range(lower_left[0],lower_right[0],precision),[lower_left[1]])
right_border = ([lower_right[0]], range(upper_right[1],lower_right[1],precision))
left_border = ([lower_left[0]],range(upper_left[1],lower_left[0],precision))
for border_2 in [upper_border,lower_border,left_border,right_border]:
for i in border_2[0]:
for j in border_2[1]:
if (i,j) not in border and not is_point_inside((i,j)):
return False
return True
best = surface(lines[0],lines[1])
for i in range(len(lines)):
print(i,len(lines))
for j in range(i):
if surface(lines[i],lines[j]) > best and is_rect_inside(lines[i],lines[j]):
best = max(best,surface(lines[i],lines[j]))
print("new best found")
print(best)

153
day10/input.txt Normal file
View file

@ -0,0 +1,153 @@
[#.......#] (2,4) (1,2,6,8) (2,5,6,7) (0,1,2,4,6,7,8) (3,8) (0,3,4,5,6,8) (1,2,4,6,7) {8,27,38,16,29,6,33,24,29}
[###.] (0,1,2) (0,2,3) (1,3) {27,12,27,21}
[.#.#] (1,3) (0,1,2) {159,164,159,5}
[.###.##] (1,2) (0,1,2,3,5) (2,3,5) (2,4,6) (0,2,6) (0,1,3,4,5) (0,1,2,3,4,5) {174,170,59,170,162,170,26}
[...##..##.] (0,1,2,4,6,9) (0,1,2,3,4,5,6,9) (0,1,2,5,9) (0,1,2,3,7) (0,1,3,6,8) (3,5) (1,3,4,5,6,9) (1,3,4,5,7,8,9) {37,46,35,37,24,37,19,16,9,35}
[#...#.####] (1,3,4,6,8) (0,1,4,5,6,9) (1,5,6) (3,4,5,8) (0,1,2,3,5,6,8,9) (0,2,3,9) (0,1,2,3,5,7,9) (0,2,4,5,7,8,9) (0,1,5,7,8) {58,53,44,44,10,63,26,32,38,44}
[.....##..#] (0,1,3,4,6,7,8,9) (1,4,5,6,8,9) (0,3,9) (0,1,4,7,8,9) (2,4,7) (1,8) (0,2,3,7,8,9) (0,4,5,6,7,8,9) (0,1,2,4,8) {33,42,33,14,58,14,26,32,46,28}
[....#..#.] (0,2,5,8) (1,3,4,5,6,7,8) (1,2,3,7) (0,1,2,3,4,5,6,8) (0,1,2,4,6,7) (0,1,2,3,5,6,7,8) (0) (0,1,3,5,7,8) (0,1,3,4,5,7) (0,1,2,4,5,6,8) (1,5,6,7,8) {80,77,75,39,56,78,65,47,73}
[.#####] (5) (4,5) (2,5) (0,1,5) (0,4) (0,1,4,5) (0,1,2,3,4) {66,50,21,16,70,64}
[....####] (1,4,5) (1,4) (2,5) (0,1,2,3,4,5,6) (0,3,4,5,6,7) (3,4,5) (1,2,3,5,6) {18,43,32,54,60,69,35,15}
[.#.#] (1,3) (2) (0,2,3) {2,194,17,196}
[###..##] (0,1,3,4) (6) (1,3) (0,1,2,3,6) (0,1,2,5,6) (0,1,3,4,6) (0,2,3,4,5) (2,5,6) (5) {55,38,57,47,34,65,52}
[#....#...#] (0,1,3,4,6,7,8) (0,2,3,4,5,6,7) (0,1,2,3,4,5,8,9) (1,2,3,4,6,7,8,9) (0,1,2,3,6,7) (0,2,5,9) (3,7,9) (0,1,2,3,4,5,8) (2) (6,8,9) (0,2,4,5,6) (1,6,8,9) (2,3,4,6,7,8,9) {77,44,104,72,76,57,91,60,51,44}
[#.###.#] (0,2,4) (3,4) (0,1,2,3,5,6) (0,1,2,4,6) (0,5) (2,3,4,6) {44,20,43,26,36,20,25}
[.....##.#] (1,3,6,7,8) (0,2,5,8) (0,4,5,6,7,8) (0,1,2,5,6,8) (2,3,5) (2,3,4,6,7,8) (0,3,5,7) (0,1,2,4,7,8) (0,4,7) (2,8) {85,24,53,22,56,55,27,72,71}
[...#..] (2,3,5) (0,1,4,5) (2,5) (0,1,3) (0,2,3,4,5) {39,21,130,34,28,140}
[##.####.] (1,3,5,6,7) (0,1,2,3,4,5) (1,3,4,6,7) (1,2,3,4,5,6) (0,5,7) (0,3,4,5,6,7) (1,4,7) (0,1,2) (1,4,6) (0,1,2,6,7) {163,195,143,48,49,46,169,184}
[##.#] (0,1,3) (1,2,3) (0) (0,2) {25,22,8,22}
[#.###.#.] (0,1,2,3,4,5,7) (0,4) (0,1,2,7) (5) (0,1,2,3,4,5,6) (0,3,4,5,7) (0,2) (1,3,6,7) (3,4,6) {45,10,26,24,31,18,10,21}
[.#..#] (0,2,4) (4) (3,4) (1,2) (0,3,4) (1,2,4) {33,18,38,17,49}
[....#..###] (1,2,5,8) (5) (2,4,6,7,8) (1,4,5,6,7) (1,8,9) (0,1,2,5,6,7,8,9) (1,3,8,9) (0,1) (2,4,5,6,7,8,9) (0,2,9) (0,2,5,6,8) (2,5,6) (1,2,5) {55,76,87,15,45,85,72,50,72,45}
[##..##...#] (0,1,3,5,6,7,9) (0,1,2,4,7,9) (0,2,4,5,8,9) (0,2,4,6,8,9) (1,6,7,8) (1,2,3,4,5,7,8) (1,4,5,6,7,9) (0,2,3,4,5,6,8,9) (1,2,6) (0,6,8,9) (1,3,7) (4,8,9) {66,35,49,39,58,55,58,32,52,78}
[#...##.] (2,4,5) (0,3,4) (3,5) (1,4,6) (2,6) (1,2,3,4) (0,2,4) (0,1,2,3,5) {23,28,43,28,38,24,25}
[.#.#] (0) (1,2) (0,1) (0,1,3) (0,1,2) {35,53,19,19}
[#..##.] (0,3,4) (1,3,4,5) (2,3,4) (3,5) (2,3) (0,1,2,3,5) (0,2) {20,17,31,48,34,19}
[#..#..##.#] (0,1,2,3,4,5,6,9) (0,2,3,5) (3,4,6) (0,1,2,3,4,5,8,9) (0,3,4,6,7,8,9) (1,2,4,6,7) (5,6,8) (0,6) (0,1,2,3,4,6,9) (1,4,7) (1,2,4,5,6,8,9) (0,1,3,8) {50,71,38,66,82,38,69,36,56,33}
[...#....#.] (1,2,4,8) (0,4,8,9) (0,1,2,3,6,7,8) (0,1,2,4,6,8) (0,1,3,4,9) (2,5) (1,2,5) (0,1,2,6,7,8) (3,5,6,7,8,9) {155,173,181,30,31,27,159,146,173,14}
[###.##] (2,4) (0,1,2,4) (0,1,2,3,4) (0,5) (0,3) (0,1,4,5) {55,38,37,30,51,20}
[..#.] (1,3) (2,3) (0,3) (0,1,2) {25,25,7,39}
[#..#####..] (0,1,2,3,6,8,9) (0,1,2,6) (0,2,3,4,5) (0,2,3,8) (1,3,4,5,7,8,9) (0,4,5,6,7,9) (0,1,2,4,5,7,8,9) (0,2,6,7) (0,3,4,5,6,7,8) (1,2,3,4,5,6,9) {235,63,64,215,210,210,233,198,203,62}
[#.#.] (1,2) (3) (1,3) (2,3) (1) (0,2) {0,31,19,7}
[####.#...] (1,3,5,7,8) (0,1,2,3,4,6,7) (0,1,2,5,6,7,8) (4,5,6,7) (0,1,3,4,5,6,7) (0,2,3,5,7,8) (0,1,2,4,5,7,8) (0,1,3,4,7,8) {68,72,54,53,47,55,46,86,59}
[#....##...] (0,3,4,5,6,8,9) (0,1,2,4,7,8) (0,1,2,3,6,9) (0,2,4,5,7,8,9) (0,1,2,3,4,5,7,9) (0,6,8,9) (2,6,7,8) (0,4,5,6,7,8,9) (2,3,4,5,6,8,9) (9) (1,3,5,6,7,8,9) (0,1,2,3,4,5,6,8,9) (4,8) {101,70,74,72,97,85,95,84,122,108}
[#.#.] (0,2) (1,3) {16,2,16,2}
[.....#.###] (1,3,4,6,7,8,9) (0,1,4,6,7,8,9) (3,4,5,7,8,9) (2,6,7,9) (0,1,3,4,5,6,7,8) (0,2,3,5,7,8) (1,3,5,6,8) (1,2,5) (1,5,6,8,9) (0,6,8) (1,2,4,5,6,7,8,9) (1,3,5,7,8,9) (3,5,9) {40,88,33,82,45,102,74,70,104,86}
[##..#.##.#] (2,3,4,5,6,8,9) (1,2,4,5,6,8,9) (0,1,4,5,7,8,9) (1,7,8,9) (1,3,4) (0,1,4,8,9) (0,2,3,4,5,6,7) (0,2,3,4,5,7,9) (1,2,3,5,6,8,9) (0,2,4,5,8) {54,86,82,66,99,89,51,43,103,104}
[.####.##.] (2,4,8) (2,3,6,7) (0,1,2,4,5,6,8) (6) (0,1,4,5,6) (0,1,2,3,4,6,7,8) (0,1,3,5,6,7,8) (1,4,6) (0,1,2,3,5,6,7) {55,57,164,26,178,37,69,26,156}
[..##...] (0,1,2,3,5) (1,2,6) (0,2,4,5,6) (0,1,2) (2,3) (0,1,3,4) (4,5) {9,12,16,6,6,8,3}
[#.#.] (0,2) (1,2,3) {8,9,17,9}
[.####..#] (0,1,2,3,6) (4) (1,3,5,6) (2,5,6,7) (0,5,6,7) (1,2,3,7) {27,183,174,183,18,44,56,177}
[#..#...] (1) (0,4) (0,3,4,5) (3,6) (1,2,3,4,5) (2,5) (0,1) {193,44,31,194,197,200,6}
[.#.#.#..] (0,4,5,6) (2,6,7) (2,3,4,5,6,7) (1,2,5,6) (1,6) (2,3,5) (1,2,4,5,6,7) (0,1,3,4,5,6,7) {10,47,55,29,46,53,78,57}
[.###...#.] (2,3,5,7,8) (2,3,5,8) (1,3,4,5,6) (1,5) (0,1,2,4,5,7,8) (1,4) (1,2,3,4,5,6,7,8) (7) (0,1,2,3,5,7,8) (7,8) (4,7,8) {28,201,55,48,36,214,6,68,66}
[##...##.#] (0,1,4,5,7) (0,3,5,6) (0,1,2,4,7) (0,2,4,5,6,7,8) (3,5,6) (0,1,2,3,4,6,7,8) (0,5,6,7,8) {45,26,23,34,26,35,36,28,6}
[##.######] (2,3,4,6,7,8) (1,3,4,5,6,7,8) (0) (0,1,3,4,6,7,8) (1,2,6,7) (0,3,5,6,8) (0,1,3,5,6) (2,5,6,7,8) (1,2) {56,59,32,80,49,61,93,62,78}
[...###.] (0,1,2,3,4,5) (0,1,2) (0,1,3,5,6) (0,4,5) (2,3,4,5) {41,34,32,42,33,49,16}
[#...#] (2,4) (0,2) (0,1,3,4) (0,1,2,3) (4) {163,143,55,143,161}
[..#.....##] (0,4,8,9) (0,3,4,5,7,9) (2,3,5,6,8,9) (1,5,8,9) (0,7) (0,4,9) (0,1,2,5,6,7,8,9) (0,1,5,6,7,8) (1,3) {77,32,34,53,46,53,36,48,51,80}
[.##..] (1,2,4) (1,2) (0,3) (0) (4) (1,4) (1,3) {25,23,15,16,20}
[#.#..] (0,1,4) (1) (0,2,4) (0,1,2) (1,2,3,4) (1,4) (0,2) {53,58,53,17,50}
[##..#] (0) (1,4) (1,2) (2,3,4) (0,1,3) (0,1,2) {13,14,104,106,113}
[..#.#] (2,4) (0,1,2,3) (1,2,3) (0) (0,2,4) (4) (0,2) {37,14,34,14,22}
[#..####] (0,2,4,6) (0,1,3,4,5) (0,1,5) (0,1,2,6) (2,4,5) {48,40,44,2,26,36,28}
[###..##.] (1,3,5,7) (0,3,4,5,6,7) (1,3,4,5,6,7) (0,1,4,5,6,7) (2) (0,2,3,4,5) {26,34,4,30,36,45,34,43}
[.#.##.###] (1,2,3,4) (0,1,2,4,5,6,7) (0,1,2,3,5,6,8) (4,5) (0,2,3,4,5,6,7,8) (0,1,2,3,5,6,7,8) (1) (0,1,8) (0,1,4,5,7,8) (0,1,2,3,4,5,6,8) (0,1,2) {56,74,43,28,199,191,14,25,41}
[.##.#..#] (1,2,3,4,5,7) (0,2,6) (0,4,5) (0,1,2) (3,5) (1,2,4,7) {49,26,43,17,18,29,17,6}
[..##.#.] (1,4,6) (1,2,6) (4,5,6) (0,1,5) (3,6) {15,41,13,11,26,28,50}
[.##.##..#] (0,1,3,4,6,7,8) (2,3,6,7) (1,2,3,5,6,7,8) (1,2,3,7,8) (2,3,4,5,6,7,8) (1,6) (0,1,2,6) (1,3,4,5,6,8) (5,6,7) (2,4,5,8) (3,4) {28,70,66,65,60,176,208,173,70}
[..#..#..#.] (3,5,6,9) (0,1,2,4,5,7,8,9) (2,4,7,8,9) (0,2,3,5,7,8) (2,3,4,5,6) (5,6,7,8) (1,3,6,7) (4) {12,21,32,30,47,35,37,58,44,38}
[#....##.##] (1,3,6) (0,1,8,9) (0,2,3,4,5,7,8,9) (1,2,3,4,5,7,8,9) (4) (1,2,3,4,5,6,7,8,9) (0,4,7) (1,4,5) {26,40,19,39,47,21,28,30,26,26}
[...###.#] (0,7) (1,4,5,7) (1,3) (3,6) (0,1,2,4,6,7) (0,5) (3,4,5,6) {24,13,2,32,21,28,23,15}
[####.#] (0,1,2,3,5) (1,2,4,5) (0,1,4) (1,3,4) (0,2,3,4,5) (0,3) (0,1,5) {15,19,9,17,20,13}
[###.] (0,1,2) (0,1,3) {16,16,10,6}
[.##.##.] (0,1,3,4,6) (1,2,6) (3,4) (0,1,3,5,6) (0,2,4,5,6) (1,4) {19,24,2,37,33,11,20}
[..##.] (0,1,2,3) (1,4) (0,1,3) (1,2,4) (1) (0,1,4) {23,74,19,17,38}
[.#.#..] (1,2,4,5) (0,2,3,4) (1,2,3,4) (2,4) (1,3,5) (3,4) {16,33,47,62,63,16}
[...###] (3,4) (1,2) (0,4) (0,2,3) (0,1,4,5) (1,2,4) (1,2,4,5) {22,47,52,15,62,18}
[.#.#..#] (0,1,3,5,6) (0,1,4,6) (0,2,4,5) (1,4,5) (0,2,3,4,5) (1,2,3,5) {62,56,41,41,44,61,38}
[.#...##] (0,1,2,3,4,6) (0,2,3,4,5) (0,1,4,5,6) (0,1,2,3,5,6) (0,2,3,4) (1,2) (0,1,2,5) (0,3,4,6) (1) {261,227,260,79,70,211,44}
[.##..] (3,4) (4) (0,1,2,4) (1,3,4) (1,2) (0,3,4) {20,31,15,32,48}
[..#.##.##.] (0,2,4,5,6,7,8,9) (0,1,2,3,4,5,6,7,9) (1,4,5,6,7,9) (0,3,5,6,7) (0,1,4,5,7,8,9) (0,1,2,3,5,6,7) (2,4,6) (4,7) (0,1,2,3,4,5,7,8) (0,5,7,8,9) (0,1,2,3,4,7,9) (0,1,2,3,5,6,7,8) {100,80,97,70,87,100,95,118,50,75}
[#..##.###] (2,3,7) (0,1,5,6,7,8) (1,3,4,5,7,8) (0,1,2,3,5,6,7,8) (0,1,2,4,7,8) (0,1,3,4,5,8) (1,3,5,6,7,8) (2,3,4,5,6,7,8) {41,68,48,68,23,69,61,94,76}
[###..##.] (0,4,7) (0,2,7) (2,3,4) (1,2,3,5) (1,2,3,4) (1,4,6,7) (3,7) {29,21,37,203,31,16,1,206}
[#....###.] (0,2,8) (2,3) (0,4) (1,2,8) (0,1,3,7) (0,4,5) (1,3,5,6) {156,49,151,36,17,27,17,13,145}
[.#..####] (0,1,2,3,5,6) (2,4) (2,6,7) (1,3,4,5,6,7) (1,3,4,6,7) (0,1,4,6) {33,53,47,35,54,15,69,36}
[#.##..] (2,3,4) (0,1,2) (0,2,3) (4) (1,5) (0,2,3,5) (2,4) (0,3,4,5) {45,32,65,44,41,30}
[#..#.###] (2,4) (0,1,3) (0,1,3,4,6,7) (5,6) (1) (4,6,7) (0,2,3,5) (2,3,4,5) (0,2,5) {28,20,43,14,32,29,16,16}
[....##.#.] (0,2,3,4,7) (0,1,2,4,5,6,8) (2,4,5,6,7) (0,3,4,7,8) (0,6) (1,2,4,5,6) (2,3,4,7) {33,23,45,8,46,38,47,23,19}
[#.##.##] (0,3) (1) (0,2,4,5) (0,1,3,6) (0,1,2,3,5) (0,1,5,6) (0,2,3,4,5) (0,3,4,6) {91,67,38,63,31,58,44}
[###.##] (0,1,3,4,5) (0,2,4,5) (0,1,3) (0,3,4,5) (0,1,2) {150,12,120,30,138,138}
[#.....##] (2,3,4,5,6,7) (1,2) (1,2,3,6) (0,6,7) (1,2,3,4,7) (2,3,4,5,7) (7) (0,2,4,5,7) (3,4,7) (2,3,7) {22,23,64,63,33,26,47,77}
[.#.#] (3) (0,1,2) (0,3) (0,1) (0) (1,3) {40,26,13,24}
[.###] (0,3) (0,2) (0,1) (0,1,3) (2,3) (1,2) {49,50,27,26}
[#.###] (1,2,3,4) (0,2,3,4) (0,3) {14,2,13,16,13}
[.##.] (0,2,3) (1,3) (0,1,3) (1) (0,2) {35,158,30,18}
[#..##] (2,3,4) (0,2) (0,4) (0,2,3,4) (0,1,3) {169,14,161,156,150}
[..###.#.##] (0,1,2,4,5,7,8) (0,5,8,9) (4,5,6,7,8,9) (0,3,4,8,9) (2,4,7,9) (3,4,6,7,8,9) (1,2,3,4,6,7,8,9) (0,1,3,4,5,6,7,8) (0,1,4,5,6,8) (2,9) (2,3,5,6,7,8) {59,58,68,84,101,62,85,85,111,80}
[..#.####.] (0,1,3,4,6,7) (0,6) (0,2,5) (8) (2,7) (0,1,2,3,5,8) (0,1,2,3,5,6,7,8) (1,2,3,4,6,8) (5,7,8) (0,6,7) (0,1,3,4,5,6,7,8) {76,46,52,46,29,224,63,223,234}
[#.#.#.] (1,2,3) (0,1,3,5) (0,4,5) (1,2,5) (1,2,3,4,5) {22,221,214,201,194,221}
[##.###...#] (1,5,6,9) (1,4,5,6,9) (0,2) (2,5,6,7,8,9) (2) (3,5,6,7,8) (1,2,3,4,6) (4,5,6,7) (1,2,3,4,7,8,9) (2,3,8) (0,2,3,4,6,7,8) (1,2,3,9) {12,43,64,59,37,64,73,63,47,50}
[.#.###] (1,3,4,5) (0,2,5) (4,5) (2,4) (0,2,3,4,5) (2,3,5) (1,5) (0,1,2,3,4) {46,58,68,55,76,80}
[..#.###.##] (1,6,7) (0,2,3,7) (0,3,4,5,7) (4,6,7,8,9) (0,1,4,5,6,7,8,9) (2,4,6) (1,3,6,7,9) (1,2,3,4,6,7,8,9) (0,1,2,3,4,5,8) {59,60,53,58,79,39,72,94,67,57}
[#####...] (0,1,6) (2,3,4) (0,1,2,7) (1,3,4,5,6,7) (0,6) (2,3,6) (1,4,5,6) (2,3,5) (0,1,3,4,6) (0,1,4,6) {159,82,48,57,75,41,184,35}
[.#...##] (1,4,5,6) (0,2,4,5) (1,3) (0,2,3,4,6) (0,2) {35,20,35,14,28,27,8}
[.....#] (1,2) (3,4,5) (2,4,5) (2,3) (0,1,3,4,5) (0,4) {9,11,30,31,45,42}
[#.##..#..] (0,2,3,6,7,8) (0,3,6) (2,3,4,5,6) (3,4) (0,1,3) (0,3,4,5,7,8) (0,2,5) (0,1,7,8) {84,21,42,87,40,50,45,31,31}
[#.#.#..#] (3,5,6,7) (0,1,7) (3,4) (0,1,5,7) (1,2,4) (1,2,5,6) (0,1,4,6) {32,41,9,16,32,10,15,21}
[#.#.#.##.] (0,1,5,6,7) (2,3,4,5,7,8) (0,3,5,6,7,8) (0,1,2,3,5,6) (2,3,4,5,6,8) (1,5) (1,2,3,4,5,6) (0,2,3,4) {28,42,49,61,45,80,55,36,38}
[##....##.] (1,3,6) (3) (1,3,5,6,7) (0,4,8) (1,4,5,8) (0,2,4,5,6,8) (0,1,2,6,7,8) (0,2,3,4,7,8) (2,6,7,8) (0,2,3,5,6) {42,45,53,210,25,42,71,43,47}
[.###] (0,1,3) (0,1) (1,2,3) {14,19,5,6}
[##.#####] (1,2,3,4,5,6) (0,1,2,5,6,7) (0,1,3,4,6,7) (0,2,3,5,7) (2,3,5,6,7) (1,2,3,4,7) (1,3,7) (1,2,3,7) {33,69,99,89,29,62,45,95}
[.#.###] (2,3) (1,3,4,5) (0,1,2,4,5) (1,2,3,4,5) {4,19,34,33,19,19}
[#....] (1,2,3) (0,1,2,3) (3) (0,4) {28,30,30,43,17}
[..###] (0,1,2,3) (0,2,4) (0,1,4) {18,9,9,0,18}
[##.###] (0,1,2) (0,2,4) (1,3,5) (3,4) (1,3,4) (2,3) (0,4,5) {27,41,43,55,25,23}
[....###.##] (1,4,9) (0,2,8) (4,5,7) (0,2,4,5,7,9) (0,2,6,7,8) (1,2,3,4,5,6,7,9) (1,2,4,6,7,8,9) (4) {114,34,129,13,48,16,24,27,116,34}
[##.#] (2) (0,1) (0) (2,3) (0,3) {15,3,21,12}
[.###] (0,2) (1,2,3) {19,8,27,8}
[.####.##] (0,1,2,3,4,6,7) (1,5) (0,1,3,5,6,7) (0,1,2,3,4,5) (0,1,2,4,6,7) (0) (0,2,4,6) (1,4,5,6) (0,1,3,4,5,6,7) {63,57,54,36,68,34,60,32}
[##..#] (1,2,3) (0,3) (0,1,4) {18,27,11,13,16}
[####.#..##] (1,3,7) (0,2,4,8,9) (2,3) (1,4) (1,2,4,6,8,9) (1,5,6,8) (1,3,5,6,7) (0,1,8) (0,1,2,4,6) (6,9) {22,54,37,11,33,24,59,5,46,34}
[#.#...#.] (0,1,2,3,4,6,7) (2,4) (0,1,4,5,6,7) (2,7) (0,2,6) (1,6) (0,3,5) (0,1,2,4,5,7) (1,2,4,6) {53,35,55,20,52,38,31,30}
[##.###] (0,2,3,4) (0,1,2,3) (1,4) (0,1,2,4) (0,3,5) {56,35,41,53,35,15}
[#######] (0,2,6) (0,3) (0,5) (0,4) (1,2,4) (1,2,6) (1,2) (1,2,3,4) {44,46,55,29,33,13,19}
[.#.##..] (0,1,2,5) (3,4,5,6) (2,3) (1,4,5,6) (1,2,5,6) (1,2,3) (3,5) (0,2,4,5,6) {22,58,66,46,18,64,35}
[#..#...#.#] (1,5,6,7,8,9) (0,1,5,6,7,8) (0,1,2,3,4,5,6,8) (0,1,3,4,6,7,8,9) (0,1,3,4,5,6,8) (1,4,9) (3,6,7) (0,2,3,4,5,7,8) (0,1,4,6) (3,4,5,6,9) (2,5,8,9) (0,3,6,7) {96,97,36,96,81,95,141,84,99,62}
[..##..] (0,1,2,4,5) (2,3) (0,2,4) (1,2,5) {18,14,44,15,18,14}
[.#.#..] (0,1,2,4,5) (3,4,5) (2,5) (4,5) (0,1,2,3,5) (0,3) {199,197,217,12,206,227}
[..#..#] (1,2,3,5) (1,2,3,4,5) (1,3) (0,1,4) {18,43,20,25,29,20}
[#####] (1,2,4) (0,1,3) (0,1,2,4) (0,1) {33,42,29,11,29}
[####.] (0,3,4) (1,3,4) (0,1,2,3) {19,30,16,33,17}
[##.#.#] (0,2,3,4) (0,1,3,5) (0,1,4,5) (0,1,4) {66,47,19,38,47,33}
[#.#.] (0,1) (0,1,3) (0,2) (1,3) {32,27,7,14}
[.##..#] (0) (1,4) (0,1,4,5) (0,3) (2,3) (0,1,5) (2,4,5) (1,2) {43,43,40,25,41,33}
[#..##.##] (3,4) (0,3,5) (0,1,2) (0,1,3,4,6,7) (5) (2,4,6) (0,3,4,5,6,7) (5,6) (0,2,3,4,6) (1) {63,42,38,57,65,48,70,33}
[.#.##...#] (0,2,3,5,6) (3,4,5,6,8) (0,1,2,3,8) (0,5,7) (1,2,3,4,5,7,8) (0,4) (4,5,6,7,8) (1,3,4,5,6,7,8) (0,1,3,4,5,6,7) (2,5,7) {70,26,38,49,43,56,39,33,25}
[..###..] (4,6) (0,2) (0,1,2,5,6) (3,5,6) (0,3,4,6) (1,2,3,5,6) (0,3,4) {43,29,48,36,27,34,49}
[###.] (0,1) (2,3) (0) (0,1,3) (1,2) {26,18,3,3}
[.##.#] (0,3,4) (1,2) (0,2,3) (1,2,4) (1,4) {18,158,172,18,9}
[#####] (0) (0,3,4) (0,2,3,4) (0,1,3) (0,1) {20,5,9,13,9}
[#.##.#..] (0,3,5) (0,4,6,7) (4,7) (1,2,3,4,6,7) (3) (2,3,4,5,6,7) (0,1,2,4,5) (0,1,2,4,6,7) {59,34,41,45,64,44,41,45}
[..#..#...] (4,8) (2,8) (2,4,5,6,7,8) (1,4,6,7) (0,8) (2,3,4,5,6,7,8) (0,3,5,6,7) (3,7,8) (1,3,4,5,6) (2,3,7) {11,32,27,64,63,45,58,58,48}
[#...#.###.] (0,1,2,4,5,6,8,9) (2,4,8) (4,7) (0,2,3,4,5,7,8,9) (2,3,4,6,7) (0,1,3,4,5,6,7) (5,6) (3,8) (1,4,5,7,8,9) (0,4,7) (0,1,4,5,7,8) {73,48,38,40,111,68,24,95,68,40}
[#..##...] (7) (0,1,3,4,7) (0,1,4,5,6,7) (0,2,3,4,6,7) (0,6) (1,2,4,5,7) (1,2,3,4,5,6) (0,2,3,4,5,7) {39,39,43,30,53,39,34,57}
[###.#] (0,1,4) (1,3) (1,3,4) (1,2,3) {6,36,14,30,6}
[.#.....#..] (0,2,5,6,9) (0,1,3,9) (0,6) (6,8) (2,3,6,7,8,9) (0,3,4,9) (3,4,7,8,9) (0,1,2,5,6,7,9) (5,6) {62,31,43,64,25,25,64,39,44,87}
[.#.#.###.] (0,1,3,4,6,8) (5,8) (0,1,4,5,6,7) (4,6) (1,6) (0,1,2,6) (3,5,6,7,8) (2,3,4,7) (4,7) (1,2,4,5,6,8) {23,40,24,39,79,31,64,44,43}
[######...#] (0,3,4,8,9) (0,2,4,6,9) (0,1,2,3,4,5,8,9) (0,1,2,3,5,6,8,9) (2,6,8,9) (0,4,6,7,9) (0,2,4,5,6,7,8) (1,2,5,6,7) (0,1,2,3,8) (0,1,4,5,9) (0,1,2,3,4,5,6,7) {101,92,115,64,73,85,95,42,70,91}
[..##....] (1,2,3,5) (0,1,3,4,5,6) (3,4,6) (1,3,6,7) (0,2,4,5,6,7) (0,1,3,5,6) (0,1,4,5) (0,3,4,5,6) (0,1,2,4,5,6,7) {237,237,183,73,236,241,248,188}
[.#.#.#....] (0,1,3,4,6) (1,3,7,8) (4,5,6,8) (0,2,3,4,5,7,8,9) (1,6) (0,2,9) (1,2,4,5,6,7,8) (6,7) (0,8) (1,2,3,4,6,8,9) {38,57,52,47,44,26,50,51,59,39}
[....###..] (3,4,5,6,7) (1,2,4,5,6,7,8) (0,2,3,4,5,7,8) (3,4,6) (0,4,5,7,8) (0,2,3,6,7) (0,1,2,5,6,7,8) (0,1,2,4,5,6,7,8) (1,2,3,4,5,6,7,8) {61,54,75,56,93,82,95,100,74}
[.###] (0,1,3) (0,2) (1,2) {33,27,34,13}
[.....#] (2,3,4,5) (0,1,2) (1,2,4) (0,1,4) (0,2,4,5) (3) (5) (0,1,2,3) {44,42,41,26,42,34}
[##.#.] (0,1,2,3) (0,3,4) (1,2) (0,4) (0,1,2,4) (1,3,4) (2,3,4) {39,53,43,42,47}
[..#.#] (1,3,4) (0,1,2) (0,1,4) (1,2,3,4) {19,25,16,6,9}
[#..###.] (1,6) (2,3) (0,1) (0,1,3,4,6) (1,2,4,5,6) (3,4,6) (0,6) (2,3,5) (0,4,5) {43,35,31,31,31,35,50}
[.##.##.##] (0,2,3,4,6,7,8) (1,2,3,5) (0,1,2,3) (0,1,3,4,5) (8) (5,7) (0) (0,1,4,6,7) (2,3,5) {34,17,23,37,16,44,2,14,2}
[..##..#...] (1,3,6,8,9) (1,2,4,5,8,9) (0,1,3,4,5,6,8,9) (4,6,7,8,9) (0,3,4,5,6,7,8) (2,4,5,7,8,9) (0,4,6) (4,6,7) (0,1,4,7) (1,2,3,4,5,6,8,9) (5,7,8) {31,37,21,46,69,41,66,44,58,39}
[#.#.#.....] (3,4,9) (1,2,6) (0,3,6) (6,8,9) (2,5) (0,2,4) (0,1,3,6,7,8,9) (0,4,5) (0,1,2,4,5,6,7,8) (0,2,3,4,5,6,7,9) (0,2,3,5,6,7) (4,8,9) (0,5,9) {63,27,54,28,46,57,54,22,27,38}
[##..] (1,3) (3) (2,3) (0,1) {4,11,14,31}
[.#.#] (0,1,3) (0,2) (1,3) (1,2) (2) (3) {29,22,24,23}
[#.##...] (1,4,5,6) (3,5) (1,2,3,6) (0,1,2,3,6) (2,4,5) (4,5) {18,35,40,224,27,224,35}
[##..#..] (0,2,4,6) (0,1,3) (0,1,2,5,6) (4,5,6) (0) (0,1,2,3,5) (0,4,5,6) (0,1,2,4,5) (1,3,4,5) {50,35,16,31,64,66,48}