Skip to content

Commit 5bdc890

Browse files
committed
feat: day 10 solution
1 parent ef37360 commit 5bdc890

File tree

3 files changed

+278
-0
lines changed

3 files changed

+278
-0
lines changed

day10/day10.go

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
package day10
2+
3+
import (
4+
"container/list"
5+
"fmt"
6+
"regexp"
7+
"strconv"
8+
"strings"
9+
10+
"github.com/mlaskowski7/advent-of-code-2025/utils"
11+
)
12+
13+
func GetFewestButtonPreses() (int, error) {
14+
lines, err := utils.ReadLines("day10/input.txt")
15+
if err != nil {
16+
return 0, err
17+
}
18+
total := 0
19+
for i, line := range lines {
20+
presses, err := getFewestButtonPresesFromLine(line)
21+
if err != nil {
22+
return 0, fmt.Errorf("line %d: %w", i+1, err)
23+
}
24+
total += presses
25+
}
26+
return total, nil
27+
}
28+
29+
func getFewestButtonPresesFromLine(line string) (int, error) {
30+
indicatorLightsRegex := regexp.MustCompile(`\[([.#]+)\]`)
31+
buttonsRegex := regexp.MustCompile(`\(([^)]*)\)`)
32+
33+
indicatorLightsMatch := indicatorLightsRegex.FindStringSubmatch(line)
34+
if len(indicatorLightsMatch) < 2 {
35+
return 0, fmt.Errorf("invalid bracket pattern")
36+
}
37+
38+
lightsPattern := indicatorLightsMatch[1]
39+
n := len(lightsPattern)
40+
target := 0
41+
for idx, ch := range lightsPattern {
42+
if ch == '#' {
43+
target |= 1 << idx
44+
}
45+
}
46+
47+
var buttons []int
48+
for _, m := range buttonsRegex.FindAllStringSubmatch(line, -1) {
49+
if len(m) < 2 {
50+
continue
51+
}
52+
content := strings.TrimSpace(m[1])
53+
if content == "" {
54+
buttons = append(buttons, 0)
55+
continue
56+
}
57+
58+
parts := strings.Split(content, ",")
59+
mask := 0
60+
for _, p := range parts {
61+
p = strings.TrimSpace(p)
62+
if p == "" {
63+
continue
64+
}
65+
66+
v, err := strconv.Atoi(p)
67+
if err != nil {
68+
return 0, fmt.Errorf("invalid button index '%s'", p)
69+
}
70+
if v < 0 || v >= n {
71+
return 0, fmt.Errorf("button index out of range: %d", v)
72+
}
73+
mask |= 1 << v
74+
}
75+
buttons = append(buttons, mask)
76+
}
77+
78+
maxState := 1 << n
79+
dist := make([]int, maxState)
80+
for i := range dist {
81+
dist[i] = -1
82+
}
83+
q := list.New()
84+
start := 0
85+
dist[start] = 0
86+
q.PushBack(start)
87+
for q.Len() > 0 {
88+
curElem := q.Front()
89+
q.Remove(curElem)
90+
cur := curElem.Value.(int)
91+
if cur == target {
92+
return dist[cur], nil
93+
}
94+
for _, b := range buttons {
95+
nxt := cur ^ b
96+
if dist[nxt] == -1 {
97+
dist[nxt] = dist[cur] + 1
98+
q.PushBack(nxt)
99+
}
100+
}
101+
}
102+
103+
return 0, fmt.Errorf("didnt found a result")
104+
}

day10/input.txt

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
[.##....#..] (0,1,3,4,5,6,7,8,9) (0,1,2,4,5,6,7,8,9) (0,1,2,4,6,7,9) (1,2,3,5,7,8,9) (1,3,8) (7) (3,6,8) (0,1,2,3,4,5,7,8) (0,2,4,5,6,7,9) (0,3,4,7,8) (2,3,6) {49,54,38,101,49,33,61,56,84,34}
2+
[..#.....#] (0,2,4,6,7) (0,4,6,7) (0,1,2,5,7,8) (0,3,5,8) (0,1,2,3,4,7,8) (3,5,7) (3,6) (0,1,2,3,5,6,7,8) (1,3,4,5,7,8) (0,1,3,4,6,7,8) {212,169,172,191,56,162,175,199,187}
3+
[.#....###] (4,7) (2,6,7,8) (0,1,2,4,6,7,8) (0,5) (5,8) (1,4,5) (0,2,3,5,6) (2,4,5,8) (2,3) (0,6) {43,19,242,19,40,51,227,226,240}
4+
[.###.##.##] (1,3,4,6,7,8) (0,1,2,4,8) (1,2,5,6,8,9) (3) (0,2,4,8) (1,4,5,6) (2,4,6,8,9) (0,1,3,5,6,8) (0,1,3,5,6,8,9) (0,3,4,5,6,7,8,9) (3,6) (4,7,9) {43,42,45,66,87,33,76,44,84,55}
5+
[#.##..###.] (2,3,5,7,8) (4,5) (0,1,2,4,5,7) (2,6,7) (2,3,4,5,6,7,8,9) (0,3,5,6,8,9) (0,1,2,3,5,6,7,9) (0,4,5,6,9) (3) {42,14,42,39,43,75,39,42,33,29}
6+
[#....] (0,2,3) (0,2,3,4) (2,3) (0,1,2) (0,3,4) (3) (1,2) {75,18,60,71,39}
7+
[##.##..] (1,2,3,4,6) (2,4) (0,1,3,5) (0,2,3,5) (0,1,3,4) {14,25,30,34,25,10,20}
8+
[...#.#] (0) (1,4) (3,5) (2,4) (0,1,2,3) (1,2) (0,1,2,4) {50,56,62,34,48,17}
9+
[.#..######] (0,2,5,7,8) (0,1,3,4,5,6,8) (2,3,4,6,8) (1,2,4,6,7,8) (3,5,7,9) (0,2,3,4,5,7) (0,1,2,7,8) (1,5,8) (1,2,3,7,9) (2,4,5,6,9) (2,3,4,5) (0,1,9) {45,55,66,60,56,86,50,55,82,32}
10+
[#.##] (0,2) (0,1,3) (0,2,3) {26,18,8,21}
11+
[##.#] (0,1,2) (0,1,3) (0,2,3) (1,2) (3) {187,41,180,178}
12+
[..#.##.#] (4,5,7) (1,3,4,5,7) (0,1,2,4,5,6,7) (2,3,4) (2,3,5,6,7) (0,3,4,7) (0,2,4,5,6,7) (1,2,3,6) (1,2,3,4,5,7) {42,47,90,57,95,81,58,84}
13+
[.##.###] (0,3,5) (0,1,2) (0,3,4,6) (0,1,3,4,5,6) (1,2) (0,4,5,6) (2,4) (2) (0,1,2,4,5,6) {72,38,58,36,55,38,41}
14+
[..#.#] (1,3,4) (2,4) (0,3,4) (0,2,3) {2,18,9,20,27}
15+
[.###.##] (1,2,3,5,6) (0,1,3,4,6) (2,3,4) (0,1,5,6) (0,1,2,4,5) {37,152,137,150,37,137,150}
16+
[##.....] (0,3,4,5,6) (1,3,5,6) (0,1,2,4,6) (4,5) (2,3,5) (0,1,3) (0,2,6) (1,2,5,6) (0,2,4,6) {72,27,57,50,54,47,62}
17+
[##.##..##] (1,2,5,6,8) (0,1,3,6) (1,3,4,6,7) (0,7) (2,3,4,6,7,8) (0,1,2,4,6,7,8) (1,2,3,5,6,8) (3,4,8) (2,4,7,8) (4,7) {52,178,48,171,178,16,185,178,65}
18+
[#..#.] (0,3) (0,1,4) (1,2,3,4) (0,4) (0,1,3) (0,3,4) (0,1,2) {50,58,25,42,31}
19+
[..##...#.] (0,3,5,8) (1,2,3,6,8) (2,3,4) (1,4,7) (0,2,3,4,5,8) (0,2,4,5,6) (0,2,4,8) (1,3,5,6,7,8) {50,35,69,62,64,48,44,19,54}
20+
[...#.....#] (0,2,4,5) (2,5,7) (0,1,2,3,5,7,8) (2,3,4,7,8) (0,1,3,4,5,6,7,9) (3,9) (3,4,7,8,9) (0,1,3,5,6,7,8,9) (4,7,8,9) (0,1,2,3,4,7,9) {218,212,47,247,249,219,194,262,41,247}
21+
[#.###.##] (0,1,2,3,7) (3,4,5) (0,1,2,3,5,7) (2,3,7) (0,4,6,7) (0,5) (0,1,2) (0,1,2,3,5,6) {60,41,55,55,31,30,22,59}
22+
[....#.] (0,1,3,4,5) (3,4) (0,2,3,5) (1) (0,2) (0,1,3,4) {46,46,18,36,34,16}
23+
[...##.##] (1,4) (0,1,2,4,5,7) (2,3,4) (0,1,3,4,5,7) (1,3,6,7) (0,4,5,6,7) {31,32,194,201,235,31,26,37}
24+
[.#..#] (1) (0,2) (2,3) (0,2,4) {37,134,50,13,20}
25+
[#.#...] (0,1,4,5) (0,2,3,4,5) (0,1,5) (0,1,3,5) (0,2,3,4) (1,4,5) (1,3,4) {56,39,33,39,64,54}
26+
[..###.] (0,2,3,4) (1,3,5) (0,1,4,5) (0,1,3,4,5) (1,3,4) (0,2) (1,2) {45,82,28,52,59,46}
27+
[.#......] (3,4,6) (1,2) (0,1,4,5,7) (0,1,3,4,6) (0,2,5) (1,7) (3,6) (6) (0,2,3,5,7) {40,39,32,33,21,36,34,31}
28+
[..##.#####] (1,3,4,6,7,9) (2,4,7,9) (0,1,2,3,5,6,7,8,9) (3,4,9) (1,2,6,8,9) (0,1,5,6,8,9) (2,5,6,8,9) (2) (2,8,9) (0,1,2) (3,4,7) (0,1,2,3,4,5,7) (3,5) {24,56,89,38,45,33,59,46,56,93}
29+
[###.#] (0,1,2,4) (2,3) (0,1) (0,2,3) (1,4) {38,39,34,25,21}
30+
[##.#] (2,3) (2) (1,3) (0,1,2) (0,3) (1,2,3) {20,31,18,52}
31+
[#...] (1,3) (0,2) (0,1,3) {29,38,11,38}
32+
[#....#.#] (0,2,3,4,5) (0,3,4,7) (4,5,7) (0,5,6,7) (1,2,3,5,6,7) (0,1,3,4,5,6,7) (1,3,6) (0,3,5,7) (0,6) {147,32,20,149,38,169,48,166}
33+
[#...] (1,3) (0,2,3) (0,1,3) (0) (1,2) {17,13,16,25}
34+
[#..#.#..] (3,4,7) (1,4) (1,2,3,7) (0,3) (2) (0,1,4,5) (0,1,2,5,6) (2,3,5,6) (2,5) {42,58,55,39,33,38,18,26}
35+
[####] (1) (1,2,3) (0,2,3) {20,144,151,151}
36+
[..#.#.#] (0,1,2,4,5) (0,1,2,3,4,6) (0,3,4,5) (4,6) (0,2,3,5,6) (0,4,5,6) {56,21,35,25,60,52,50}
37+
[.#.#.##.] (1,3,4) (2,5,6,7) (0,3,4,6,7) (1,3,5,6) (0,1,2,4,5,7) (3,5) (3,4,6) {37,30,20,62,57,43,53,39}
38+
[#.#.##.] (0,1,5,6) (0,4,5) (2,3,5) (0,1,3,4,6) (1,2) (0,2,3,4) (0,2,3) {62,37,25,30,36,34,29}
39+
[..###] (0,1,4) (0,1,3) (1,4) (0,2) {58,58,18,20,38}
40+
[#....##...] (4,5,6,7,9) (0,4,6,7,8) (0,1,2,4,5,6) (0,1,4,6) (0,4,5,6) (3,6,7) (0,1,2,3,4,6,7,8,9) (6,7,8) (0,3,5,7,8,9) (1,4) {47,53,28,27,65,37,56,42,28,29}
41+
[##..#.] (1,4) (3,4) (0,1,2,3) (0,2,3) (1,3,4,5) (1,5) (1,2,5) (0) {117,64,34,50,47,41}
42+
[.###] (0,2) (2,3) (1,2,3) (0) {19,1,205,189}
43+
[#.#.] (1,2,3) (0,2) {106,4,110,4}
44+
[..##.] (2,4) (0,1,2,4) (0,2,3,4) (0,3) (1) (3,4) {37,24,47,25,49}
45+
[..#.#] (0,1,3) (3) (0,2,3) (0,1,2,3,4) {29,17,22,44,10}
46+
[####...#] (2,3,4,5,6,7) (0,4) (1,2,3) (0,3) (0,1,4,5,6,7) (4,5,7) (1,2,5) (1,4) (2,4,5,6) {29,58,73,38,76,63,45,26}
47+
[###...] (0,4) (0,3) (1,2,5) (0,2,5) (2,4) (0,2,4) (0,2,3,5) (0,1,2) {68,18,73,18,41,28}
48+
[#.#...#] (1,5,6) (2,3,4,6) (2,3) (0,1,3,5) (0,1,2,3) {18,33,30,44,12,29,27}
49+
[#..#.#..] (0,2,5,6) (0,1,3,4,5,6,7) (0,6,7) (0,1,2,3,4,5,7) (0,2,3,7) (0,2,3,4,7) {73,9,55,48,28,20,29,62}
50+
[###.#..#..] (0,1,2,3,5,6,8) (0,1,3,4,5,6,8,9) (1,2,3,4,5,6,7,8,9) (1,4,5) (0,1,3,6,7) (2,6,8) (1,4,5,7,8,9) (0,1,3,4,5,6,7,8) (2,3) (0,1,2,3,4,6,8,9) (3,9) (0,1,4,5,6,7,9) {59,113,52,83,96,95,93,79,81,90}
51+
[####.##.#.] (2,4,5,6,8) (0,3,6,8,9) (1,3,4,5,7,8,9) (2,3,8) (0,1) (2,5,6) (1,2,3,5,7,9) (0,2,3,4,5,7,8,9) (5,9) {22,24,43,35,27,46,29,24,38,33}
52+
[####.] (0,1,2,3) (0,1,3,4) (0,1) (2,3) {18,18,22,38,16}
53+
[#..#.] (1,2,4) (0,3) (0,2) {15,0,8,7,0}
54+
[..####] (0,3) (3) (0,1,2,4,5) (0,1,2,3) (1,2,5) (2,4,5) (0,1,2,5) {36,26,31,34,5,15}
55+
[#........#] (0,9) (0,1,4,5,6,7,8,9) (1,4,5,7,8,9) (2,4,6,8) (1,7) (1,3,4,5,7,8) (3,5) (0,1,3,4,5,8,9) (0,1,2,5,6,9) (1,2,5,6,8,9) (2,3,5,9) (0,2,3,4,5,6,8,9) (2,3) {78,210,80,72,191,246,74,167,207,242}
56+
[##..###.] (0,1,4,7) (0,6,7) (1,2) (0,3,6) (2,5,6) (0,1,2,3,4,5,6) (0,4) {63,44,33,16,34,13,42,37}
57+
[####.#...] (2,3,7) (1,3) (5,6) (0,1,2,3,4,6,7) (0,1,2,3,5,6,7) (0,3,8) (0,2,3,7) (0,1,2,4,5,8) (3,8) (0,2,3,4,5,6,8) (3,5,7) {37,38,47,89,19,47,39,57,17}
58+
[#...#..#] (1,3,5,7) (0,4,7) (2) (0,1,6) (1,2,3,4,5,6,7) (4,5,6) {32,25,15,10,37,28,35,27}
59+
[.##.#.####] (0,2,3,4,5,7,8,9) (1,4,6,7,9) (3,4) (0,1,2,3,5,6,7,8,9) (1,3,5,6) (0,1,4) (0,1,8,9) (0,1,3,4,6,7,8) (0,1,2,3,4,6,9) {80,73,43,70,90,25,52,50,46,61}
60+
[##..#] (3,4) (2,4) (0,3,4) (0,1,2,3) (0,2) {42,14,32,46,34}
61+
[.##..###..] (3,5,7) (2,3,4,5,6,7,8) (1,5,7,8) (0,1,2,5,6,7,8,9) (2,5) (0,1,2,3,4,6,8,9) (6,7,8,9) (0,1,3,4,5,6,8,9) (0,1,3,9) {53,200,40,59,38,206,75,207,222,73}
62+
[#####.] (1,2,5) (0,5) (0,3,5) (2,3,4) (0,2,3,4) (1,5) {29,30,30,16,16,46}
63+
[.##..] (0,1,4) (0,3) (1,2) {29,166,154,17,12}
64+
[#..#.##] (1,3,4,5,6) (1,2,4,5,6) (1,3,6) (0,2,5) (0,2,4,5) (2,5) (0,1,2,6) (2,3,6) {42,37,55,20,30,44,41}
65+
[########.] (3,4,5,8) (3,5,7,8) (0,2,4,5,7,8) (3,5,6) (0,1,2,3,4,5,6,8) (1,2,7) (0,1,2,3,4,5,6,7) (0,1,5,7,8) (0,1,2,5,8) {226,225,217,61,49,255,42,68,230}
66+
[#...#.#] (0,6) (0,2,5,6) (1,2,3) (0,1,3,4,6) (5) (0,1,4) {43,50,25,34,30,14,27}
67+
[.#..#.#.] (1,2,4,6,7) (1,3,4,5,6,7) (1,4,6) (0,3,4,5,6) (0,4,7) (0,5,6) (0,1,2,4,5,7) (0,2,3,4,5,6,7) (2,3,5) (0,5) {45,36,41,26,53,54,45,36}
68+
[.#.#..##] (0,1,3,7) (0,3,4,5) (1,2,6) (0,1,4,5) (0,1,3,4,5,6,7) (2,4,7) (1,2,4,5,6,7) {26,42,31,20,34,29,33,21}
69+
[...#.#.#] (1,3,4,6) (1,3,4,6,7) (0,2,3,4,7) (3,5,7) (2,5) (2,6,7) (0,1,2,3,5,7) (1,2,3,4,5,7) {34,48,241,74,44,225,30,80}
70+
[###.] (0,1,3) (1,2,3) (0,1,2) (0,3) {13,16,12,25}
71+
[#.##...#] (0,1,2,4,6,7) (1,4,7) (0,1,2,5) (0,2,3,4,5,6) (0,2,6,7) (0,1,2,3,4,5,6) (3,4) (0,2,3,4,5,6,7) {99,60,99,56,78,68,81,57}
72+
[#...###.#] (0,1,8) (2,3,7,8) (0,2,5,8) (0,1,2,4,5,6,7) (4) (0,2,5,7) (0,6,7) (0,2,7,8) (0,2,3,4,5,7,8) (0,3,5,7,8) (3,8) {188,33,62,137,43,156,32,174,164}
73+
[#.#.######] (1,3) (0,2,3,5,7,9) (0,4,5,6,7) (0,4) (0,2,3,7,8) (1,4,6) (1,3,6,9) (2,5) (0,1,4,7) (0,1,3,4,5,6,8,9) (0,2,4,5,6,7,8,9) (2,3,5,7,8,9) {56,32,50,53,41,49,37,52,33,22}
74+
[#.#.####..] (0,1,2,3,4,6,7,9) (1,3,5,9) (4,5) (0,2,3,5,6,7,8,9) (1,2,4,6,9) (0,1,2,3,4,6,8,9) (1,2,3,4,5,6,7,9) (0,2,3,4,5,7,8,9) {232,60,256,268,76,268,238,235,229,275}
75+
[####.###] (1,4,5,6,7) (0,3,5,6,7) (0,3,4,5,6,7) (1,2) (1,5,7) (0,1,2,4,6,7) {27,45,28,7,31,24,36,44}
76+
[##.#.] (0,2,3,4) (1,2,3) (1,3) (1,4) (0,1,3) {26,147,27,149,38}
77+
[..#.#] (0,2) (1,2,3) (2,3) (0,3,4) (1,3,4) (2,4) {16,22,33,28,19}
78+
[#.##.#..#] (4,8) (1,5,6) (1,2,4,5,6,7,8) (0,1,2,3,4,6,7,8) (0,1,2,4,5,7) (1,7,8) (2,3) (0,2,3) (0,3,4,5,6,7,8) {28,32,26,39,35,38,39,41,44}
79+
[.##...#] (0,1,2,4) (1,5,6) (2,3,5) (1,3) (0,3,4) (0,3,4,5,6) {34,12,9,34,34,18,16}
80+
[.##..##.#] (1,2,3,5,6,8) (0,2,4,8) (0,1,2,3,4,6,7) (0,3,4,5,6,7,8) (0,1,2,3,5,7,8) (0,1,3,6,8) (1,3,4,5,7) (0,3,4,5,6,7) (0,2,5,7,8) (0,3,4,7,8) (0,1,2,3,5,6,7,8) {117,87,74,126,90,89,80,110,100}
81+
[#.##.#] (1,2,4) (0,3) (0,1,4) (0,1,2,4,5) (0,3,5) {46,25,17,23,25,32}
82+
[.##.] (3) (0,1) (1,3) (2,3) {126,135,1,11}
83+
[....#..] (4) (0,2,4,5,6) (2,3,5,6) (2,3,4,5,6) (0,1,4,6) {13,13,31,31,32,31,44}
84+
[######] (0,2,3,5) (0,1,2,3,4,5) (0,1,2,3,4) (1,3,4) {24,28,24,39,28,19}
85+
[#..##] (1,2,3,4) (0,3,4) (0,1,2,4) {31,21,21,14,33}
86+
[.....#] (0,2) (1,3,4) (1,4) (2,3) (2,3,5) (0,1,4,5) (0,1,2,5) (3,5) {50,53,63,39,34,53}
87+
[.###...#] (0) (0,1,4,5,6) (0,2,4,6) (3,4,7) (1,3,4,5,6,7) (5,7) (3,6) (1,4,5,6,7) (0,1,3,5,6,7) {64,60,14,65,64,78,92,70}
88+
[#..#...#.#] (5,6) (0,1,3,4,5,6,9) (2,4,6,7) (1,2,3,4,5,6) (0,1,5,6,8) (1,7) (0,3,9) (1,2,5) (0,4,5,7) {39,57,40,17,39,69,51,31,20,6}
89+
[#.##.#.] (1,2,4,5) (4,5,6) (0,1,2,4,5) (3,4) (2,5) (0,1,2,5) (1,3) (1) {16,54,34,30,41,38,4}
90+
[#.##..#] (1,2,4,5,6) (0,1,4,5) (0,1,2,3,5) (1,2,3,5,6) (0,2,6) (0,1,3,4,6) (3,4,5,6) {61,62,35,63,57,61,62}
91+
[####.#...#] (1,3,5,6,9) (4,7,8) (1,2,3,4,7,9) (0,2,4,7,8,9) (0,5,6,8,9) (0,2,3,4,5,6,7,9) (0,1,3,5,6,7,9) (3,4,6,8) (1,7,8) {52,27,32,29,50,35,41,62,66,61}
92+
[##.#] (0,2) (0,1,3) {12,11,1,11}
93+
[.#...#..##] (0,9) (0,1,4,7) (0,1,2,4,5,6,7,9) (0,2,4,6,8,9) (0,1,2,3,4,7,9) (0,4,5,6,7,9) (0,1,2,5,6,7,9) (0,3,4,6,7,8,9) (0,1,3,4,5,8,9) {190,45,157,28,171,35,151,31,150,188}
94+
[.###] (1,2,3) (3) (0,3) (1) (0,2,3) (1,2) {16,17,17,36}
95+
[####] (0) (0,3) (0,1,2) (1,2,3) {35,4,4,19}
96+
[...#....] (0,1,2,5) (0,2,5) (1,2,3,4,5,6) (6) (0,2,3,4,5) (2,4,6) (2,4) (1,2,3,5,7) (0,2,3,4,5,6,7) (0,3) {223,43,102,249,75,66,63,28}
97+
[##..##.#.] (0,3,6,7) (0,1,2,5,6,8) (0,1,3,5,6) (0,1,2,4,5,7) (5) (1,2,5,8) (0,1,3,6,7,8) {73,60,34,41,17,58,56,49,34}
98+
[##.##.] (1,5) (0,1,2,3,5) (0,2,4) (2,3,5) (0,2,3,4,5) {20,18,38,24,20,42}
99+
[.#..#] (2) (0,2,3) (0,3,4) (1,2,4) (1,4) {18,16,45,18,18}
100+
[###..] (0,3,4) (1,2,3,4) (1,3,4) {11,11,6,22,22}
101+
[..###.####] (0,2,4,6,7,9) (1,5,9) (4,5) (0,1,8) (1,3,4,6,7,8) (4,7,9) (0,3,4,5,6,7,8) (0,1,2,3,4,6,7,9) {55,38,32,27,69,35,46,52,27,46}
102+
[.#...#] (0,1,2,4) (0,1) (2,3,5) (0,2,4,5) (0,1,2,3,5) (1,3) {51,54,33,16,24,13}
103+
[.##..] (0,1,2) (0,3) (0,1,3) (1,2) (3,4) (1,4) {25,192,185,18,9}
104+
[##.###.#.#] (0,2,8) (0,1,3,5,6,7,8,9) (0,1,2,3,4,5,6,9) (0,1,2,3,5,8,9) (3,6,7,9) (2,4) (0,1,2,5,6,7,8) (1,2,3,8) {49,48,42,43,21,44,49,31,35,39}
105+
[..##] (1,3) (2,3) (0,1,3) {20,20,19,39}
106+
[....#...#.] (0,2,3,5,6,7,8,9) (4,9) (3,4,7,8,9) (3,6,7,9) (0,1,3,5,6,7,9) (0,5,7) (5) (0,1,2,3,5,7,9) (1,2,3) (5,7,9) (1,2,3,4,5,6,7,9) (0,1) (0,2,3,5) {54,54,47,66,177,65,17,63,9,215}
107+
[.#.##...##] (0,1,7) (0,1,2,3,4,5,6,7,9) (1,4,5,8) (2,3,4) (2,4,5,6,9) (3,5) (0,1,3,4,9) (0,1,2,3,4,5,6,8,9) (0,1,2,6,8,9) (0,5,6) (1,2,3,4,5,6) {242,249,65,241,254,81,61,30,33,243}
108+
[...#.] (0,2) (1,4) (0,1,3,4) (1,3,4) (0) (0,2,3) {41,5,35,17,5}
109+
[..#.#] (0,2,4) (0,1,2,4) (1,3) (2,4) (0,2,3) (2) (0,1,4) {218,26,234,202,40}
110+
[#.#.] (1,3) (0,2) {9,10,9,10}
111+
[#######] (1,2,5) (4,5,6) (0,3,4,5,6) (0,6) (3,5,6) (0,1,3,5,6) (1,5,6) (0,2,4,5,6) {41,28,12,35,30,76,88}
112+
[.###.#.] (1,2,3,4,6) (0,1,4) (0,2,5) (0,1,2,3,5,6) (2,3,6) (1,2,4,6) (0,2,3,4,5) {29,23,53,29,30,23,31}
113+
[.###...##.] (0,2,4,6,8) (3,6) (0,1,4,5,6,9) (2,3,4,5,8) (2,3,5,9) (1,2,3,4,5,8) (2,9) (3,7,8) (0,1,3,4,5,6,8) (2,5,8,9) {39,39,71,60,62,57,59,1,55,42}
114+
[.##.###.#] (1,2,4,5,7,8) (0,2,5) (0,1,3,5,7,8) (6,7) (0,1,2,4,8) (0,2,3,4,5,6,7,8) (1,2,3,4,5,7,8) (0,3) (0,1,2,6,8) {62,173,185,48,159,183,31,178,183}
115+
[#..#.#.###] (2,4,5,6,7,8,9) (0,2,9) (0,1,2,4,5,6,7,9) (4,8) (1,2,6,7,8,9) (1,3,4,5,7,9) (1,2,3,4,5,7) (5,8) (6) {25,44,69,14,54,51,52,56,59,55}
116+
[.##.] (0,3) (1) (2) {166,10,14,166}
117+
[.##..#...] (3,4,5) (0,1,3,4,5,6,7,8) (0,2,3,4,6,7,8) (0,1,2,7) (5) (1,6) (0,2,4,6,8) (2,4,7) (0,1,4,6) (0,8) (1,4,5,6,8) {56,57,49,18,57,34,49,51,42}
118+
[.###] (1,2,3) (0,1,2,3) {126,139,139,139}
119+
[##.##] (1,2,3) (4) (0,1) (0,2,4) (0) (1) (1,3,4) {167,41,167,21,167}
120+
[...#..] (0,3,4) (0,2,5) (1,2,5) (0,4,5) (0,1,3) (3) (0,1,2,3,4) (0,1,2,4) {54,25,12,57,37,17}
121+
[.###.] (1,3) (0,1,3) (0,1,2,4) (0,2,4) (1,2,4) (0,1) (0,1,3,4) {58,254,44,220,48}
122+
[#.....] (5) (1,3) (0,1,2,4) (3,4) (2,3,4) (1,2,4,5) {12,210,33,220,44,13}
123+
[#....#.#.#] (1,2,3,5,6,7,8,9) (2,3,5,9) (0,1,4,8) (5,9) (0,2,5,9) (0,1,2,4,7) (1,7,8) (2,6,8) (0,2,3,4,5,6,8,9) (0,7) (0,2,3,4,7,8,9) (0,1,3,4,5,6,7,8) (1,2,3,4,5,6,7) {81,62,62,40,53,41,17,86,56,43}
124+
[.##..####] (0,2,4,5,6,8) (0,1,3,5) (4,5) (0,1,2,3,4,5,6,8) (0,2,3,4,6,7,8) (0,2,5,7) (1,2,3,4) (2,5,8) (0,1,8) {57,141,175,142,157,57,27,29,50}
125+
[....###] (0,6) (1,2,3) (1,2,4,5,6) (0,1,2,3,4) (3,5) (1,2) (0,2,3,4) (1,2,3,4,5,6) {142,47,159,158,145,32,41}
126+
[#.###.#] (3,5) (0,1,4) (1,2,3,6) (0,1,3,6) (0,2,4,5,6) {33,34,11,20,20,6,24}
127+
[#.###...#] (0,1,8) (7,8) (0,1,2,3,5,7,8) (1,2,3,4,6,7) (0,2,3,4,8) (0,1,2,3,5,6,7,8) (0,1,2,3,4,6,7,8) (0,1,3,4,6,7,8) {60,60,54,71,46,25,44,72,73}
128+
[#..####] (4,5,6) (0,2,5,6) (2,6) (0,1,4,5) (0,1,3) (0,1,3,5,6) (1,4,5,6) {46,37,16,14,30,45,29}
129+
[.###] (1,3) (0,1) (0,1,2) (1,2) (0,3) (0,2,3) {49,53,43,39}
130+
[...#.##..#] (0,1,2,3,4,5,6) (0,1,5,6,9) (1,7,8) (4,5,6,7,9) (0,1,2,3,4,5,6,9) (0,1,4,8) (9) (0,3,5,7) (2,4,5,6,7,8,9) (1,2,3,8) (0,1,4,6,7,9) {66,88,70,54,76,67,81,45,47,72}
131+
[...#] (0,3) (0,2,3) (1,2) (0,1) (3) {28,10,18,34}
132+
[##.#....##] (2,4,5,8,9) (0,1,2,3,4,5,6,8,9) (0,2,3,4,5,6,8,9) (0,2,4,8,9) (1,2,3,4,6,7,8,9) (4,7) (5,6,7,8,9) (2,5,7,9) (3,4,6,8,9) (0,1,6) {23,29,52,42,57,41,57,46,59,72}
133+
[.#.##] (1,3,4) (0,2,3,4) (0,1,2) {18,22,18,22,22}
134+
[##.#..#] (0,1,4) (1,3,4,5,6) (2,6) (0,1,3,4,5,6) (0,2,5) (0,4) (3,4) (0,1,3,6) (1,2) {219,74,194,61,74,194,55}
135+
[###.#.] (2,4,5) (0,1,5) (0,4) (0,2,3,5) {22,3,21,16,8,24}
136+
[.##.##.#..] (1,5,6,9) (0,1,3,7,8,9) (1,2,4,5,6,7,8) (0,1,2,7,9) (0,1,2,3,4,7,8,9) (0,1,4,5,6,8) (2,4,5,6,8) (0,1,2,3,4,5,6,8) (0,1,2,3,6,7,8) (0,1,2,4,6,8,9) (0,1,3,4,5,6,8,9) {91,108,97,47,75,56,85,68,98,49}
137+
[.##.#.###] (1,5,6) (0,3,5,6,7,8) (0,2,3,5,6,8) (1,2,4,6,7) (1,2,4,5,6,8) (2,3,4) (2,3,6) (0,2,5,6,8) {19,26,21,28,9,42,52,17,22}
138+
[..#.#..#] (0,1,3,5,6,7) (2,3) (0,1,2,3,5,7) (0,1,2,3,6) (0,2,3) (0,5) (1,2,3,4,5,6,7) (2,4,7) {15,27,160,149,35,31,27,40}
139+
[##..] (3) (1,2) (0,2,3) (0,1,3) (2,3) {9,10,21,29}
140+
[..#####] (2,4) (0,2,3,4) (1,2,3,4,5) (2,6) (1,5) (1,3) (0,2) {16,30,42,31,30,18,8}
141+
[####] (2,3) (0,2) (1,2) (0,1,2) (0) (1,3) {35,41,57,26}
142+
[#.###.#.] (0,1,3,6,7) (0,1,5,6) (0,1,2,3,4,7) (0,2,3,5,7) (2,5,6,7) (1,2,3,4,5) (1,4) {55,73,48,49,34,57,57,53}
143+
[....#..] (1,3,6) (0,5,6) (1,2,3,4,5) (0,2,3,4,5) (1,5) (0,1,4) (0,1,6) (2,3) {25,160,145,159,135,155,24}
144+
[.##...##.] (1,4,6) (0,1,3,4,6,7,8) (0,2,3,4,5) (5,7) (4,6,8) (0,1,5,6,7) (0,1,2,4,6,7) (1,2) {58,252,43,37,243,42,237,46,18}
145+
[#.#..#.] (0,1,3,5,6) (0,2,4,5,6) (2,3,4,5) (1,2,6) (0,3,6) (1,2,3,6) {33,39,41,42,10,18,64}
146+
[..#..#..##] (1,4,5,7,8) (0,1,2,3,5,6,7,9) (0,1,2,4,6,7,8) (3,4,5,8) (1,2,3) (0,3,4,7,9) (3,7) (1,2,3,4,6,8,9) (0,2,3,5,6,7) (0,1,6) {199,214,200,235,40,202,195,213,31,176}
147+
[#..#....##] (0,1,3,4,6,7,8) (0,1,2,9) (1,2,3,5,9) (1,3,4,6,7,8) (2,9) (2,3,4,5,6,7,8,9) (0,4,7,8) (2,4,5,6,7,8) (3,4,5,7) (0,2,6,8) {29,33,186,41,165,166,170,165,174,41}
148+
[....#] (0,1,3) (0,1,4) (2,4) (0,1,2) (0,1,2,3) (1,3,4) (0,2,3,4) {66,74,51,57,61}
149+
[.#...#] (0,1,2,3,4) (1,2,3,4,5) (0,1,2) (2) (0,2,3,4,5) (4,5) {28,20,46,22,33,21}
150+
[...##] (0,4) (1,2,3,4) (0,2) (2,3,4) (1) (1,3,4) {21,27,32,30,36}
151+
[..##..] (0,2,3,4,5) (0,1,3) (1,3,4,5) (1,2,4) {28,30,25,35,32,22}
152+
[#..#..] (0,1,4,5) (0,4) (0,2,4,5) (2,3,4,5) {17,11,19,13,30,30}
153+
[.#..] (1,2) (2,3) (1,2,3) (0,2) (0,1) (0,1,3) {31,43,187,161}
154+
[#.######.] (0,6) (0,1,2,5,6,8) (0,2,3,7,8) (1,2,4) (1,6,8) (0,2,3,4,5,6,7) (3,5,7,8) {45,45,62,50,39,43,47,50,56}
155+
[###.....#] (3,4,6,7,8) (2,3,5) (3,4,6,7) (1,5,6,8) (0,1,5,7) (2,3,4,5) (1,2,4,5,6,8) (0,1,2) (0,2,5) (2) {38,41,65,52,51,56,40,43,30}
156+
[##.#.#.#] (0,3,4,6,7) (0,2,3,4,5,7) (1,2,3,4,5,7) (2,3,4,5,6,7) (1,3,6,7) (0,3,5,6,7) (0,1,2,3,5,6,7) (1,2,4,5,6,7) (0,1,3,5,7) (0,1,2,3,4,5) {72,60,47,76,40,80,50,69}
157+
[.#.#.#] (1,3,4) (1,2,3) (1,4,5) (0,5) (2,3) {2,23,18,33,23,10}
158+
[.#....] (0,1,5) (0,1,3,4) (1,3,4,5) (0,1,2,3,5) (0,1) {180,196,9,27,18,34}
159+
[...##.#] (0,2,4,5,6) (0,2,5) (2,3,5) (0,5,6) (4,5) (2,3,4,6) (0,1,2,3,6) (1,4,5) (1,3,5,6) {43,40,50,34,48,85,43}
160+
[#...#....] (0,3,4,6,7,8) (1,3,5,6,7,8) (1,2,3,4,5,6,7,8) (3,4,5,7) (2,3,5,6,7) (0,7,8) (2,3,4,5,6,8) {25,4,22,55,46,40,38,54,40}
161+
[###...##..] (0,3,5) (0,4,5,6,7,8) (6,7) (1,9) (7,8) (0,2,3,4,5,6,7,8) (0,2) (0,1,2,4,5,7,8) (3,9) (0,1,2,4,6,8,9) (1,2,3,5,6,7,9) (1,2,3,4,5,6,7,8) (0,1,5,9) {275,54,246,36,69,80,58,65,74,38}
162+
[#...#.] (1,2,3,4,5) (0,4) (0,1,2) (3) {20,26,26,30,26,16}
163+
[..##.#.#.] (0,2,3,4,5,6,7,8) (1,3,4,5,6,7,8) (0,1,2,3,4,6,7,8) (0,1,2,3,4,6) (2,4,5) (1,2,3,7) (1,2,3,4,6,7,8) {171,38,187,185,193,163,184,180,179}
164+
[#.#####.##] (2,4,5,7,8) (0,3,6,7,8,9) (0,2,3,4,5,6,8,9) (3,4,5,8,9) (0,1,2,4,5,7,8,9) (2,4,6,8) (2,3,4,5,7,8) (1,2,4,5,6,7,8) {131,121,157,29,169,150,33,136,174,143}
165+
[##..#.##] (0,1,2,4,5,7) (3,4,5,7) (3,4,7) (2,4) (1,4,5,6) (0,1,2,5,6,7) (1,3,6) (1,2,3,4,7) (4,5) (1,3) {19,52,40,58,100,68,26,66}

0 commit comments

Comments
 (0)