Compare commits

..

3 Commits

Author SHA1 Message Date
Lol3rrr
9f43000c94 Implement 2025 - Day 11 - Part 1 2026-01-14 20:52:19 +01:00
Lol3rrr
f9729624f5 Implement 2025 - Day 10 - Part 1 2026-01-13 22:59:58 +01:00
Lol3rrr
c2df9b06ca Start adapting 2025 - Day 9 for part 2 TODO 2026-01-10 00:44:45 +01:00
7 changed files with 1018 additions and 24 deletions

View File

@@ -1,8 +1,13 @@
---cargo ---cargo
[profile.dev] [profile.dev]
opt-level = 3 opt-level = 3
[dependencies]
rayon = "1"
--- ---
use rayon::prelude::*;
static CONTENT: &'static str = include_str!("./inputs/09_1.txt"); static CONTENT: &'static str = include_str!("./inputs/09_1.txt");
const PRINT: bool = false; const PRINT: bool = false;
@@ -14,6 +19,8 @@ enum Cell {
Green, Green,
} }
const _T: () = assert!(1 == core::mem::size_of::<Cell>());
fn main() { fn main() {
let points: Vec<(usize, usize)> = CONTENT.lines().map(|l| l.trim()).filter(|l| !l.is_empty()).map(|l| { let points: Vec<(usize, usize)> = CONTENT.lines().map(|l| l.trim()).filter(|l| !l.is_empty()).map(|l| {
let (first, second) = l.split_once(',').unwrap(); let (first, second) = l.split_once(',').unwrap();
@@ -63,29 +70,12 @@ fn main() {
c == 1 c == 1
}).unwrap(); }).unwrap();
let mut queue = vec![inner_point];
while let Some((x, y)) = queue.pop() {
if !(0..grid_width).contains(&x) {
continue;
}
if !(0..grid_height).contains(&y) {
continue;
}
if grid[y*grid_width+x] != Cell::Empty {
continue;
}
grid[y*grid_width+x] = Cell::Green;
queue.extend([(x-1, y), (x+1, y), (x, y-1), (x, y+1)]);
}
println!("After filling"); println!("After filling");
print_grid(&grid, grid_width, grid_height); print_grid(&grid, grid_width, grid_height);
let mut rects: Vec<((usize, usize), (usize, usize), usize)> = points.iter() let largest = points.par_iter()
.flat_map(|p| core::iter::repeat(*p).zip(points.iter().copied())) .flat_map_iter(|p| core::iter::repeat(*p).zip(points.iter().copied()))
.filter(|(f, s)| f != s) .filter(|(f, s)| f != s)
.map(|(f, s)| (f, s, (f.0.abs_diff(s.0)+1) * (f.1.abs_diff(s.1)+1))) .map(|(f, s)| (f, s, (f.0.abs_diff(s.0)+1) * (f.1.abs_diff(s.1)+1)))
.filter(|(f, s, _)| { .filter(|(f, s, _)| {
@@ -97,15 +87,18 @@ fn main() {
(x0..=x1).flat_map(|x| { (x0..=x1).flat_map(|x| {
core::iter::repeat(x).zip(y0..=y1) core::iter::repeat(x).zip(y0..=y1)
}).all(|(x, y)| grid[y*grid_width+x] != Cell::Empty) }).all(|(x, y)| in_grid(&grid, grid_width, grid_height, (x,y)))
}) })
.collect(); .reduce(|| ((0,0), (0,0), 0), |acc, (f, s, a)| {
if a > acc.2 {
return (f, s, a);
}
rects.sort_by_key(|(_, _, a)| *a); acc
});
// println!("Rectangle: {:?}", rects);
println!("Largest: {:?}", rects.last().unwrap()); println!("Largest: {:?}", largest);
} }
fn print_grid(grid: &[Cell], width: usize, height: usize) { fn print_grid(grid: &[Cell], width: usize, height: usize) {
@@ -136,3 +129,25 @@ fn line_point_iter(start: (usize, usize), end: (usize, usize)) -> Box<dyn Iterat
Box::new((s..e).zip(core::iter::repeat(start.1)).skip(1)) Box::new((s..e).zip(core::iter::repeat(start.1)).skip(1))
} }
} }
fn in_grid(grid: &[Cell], width: usize, height: usize, (x, y): (usize, usize)) -> bool {
if grid[y*width+x] != Cell::Empty {
return true;
}
let c = (0..x).map(|x| grid[y*width + x]).filter(|c| *c != Cell::Empty).count();
match c {
0 => false,
1 => true,
2 => false,
_ => {
let c = (0..y).map(|y| grid[y*width + x]).filter(|c| *c != Cell::Empty).count();
match c {
1 => true,
_ => false,
}
}
}
}

133
2025/10.rs Normal file
View File

@@ -0,0 +1,133 @@
---cargo
[profile.dev]
opt-level = 3
---
use std::collections::{HashMap, hash_map::Entry};
static CONTENT: &'static str = include_str!("./inputs/10_1.txt");
#[derive(Debug)]
struct Machine {
desired_lights: u64,
buttons: Vec<u64>,
}
fn main() {
let machines: Vec<Machine> = CONTENT.lines()
.map(|l| l.trim())
.map(|l| {
let (lights, rest) = l.split_once(' ').unwrap();
let buttons: Vec<_> = rest.split(' ').take_while(|p| p.contains('(')).collect();
let joltage = rest.split(' ').skip_while(|p| p.contains('(')).next().unwrap();
(lights, buttons, joltage)
})
.map(|(raw_lights, raw_buttons, raw_joltage)| {
let raw_lights = raw_lights.strip_prefix('[').unwrap().strip_suffix(']').unwrap();
let lights = raw_lights.chars().enumerate().map(|(idx, c)| {
let v = match c {
'.' => 0,
'#' => 1,
c => unreachable!("{:?}", c),
};
(idx, v)
}).fold(0u64, |acc, (idx, v)| {
acc + (v << idx)
});
(lights, raw_buttons, raw_joltage)
})
.map(|(lights, raw_buttons, raw_joltage)| {
let buttons: Vec<_> = raw_buttons.iter().map(|button| {
let button = button.strip_prefix('(').unwrap().strip_suffix(')').unwrap();
let switch: u64 = button.split(',').map(|c| {
let v: u64 = c.parse().unwrap();
1 << v
}).fold(0u64, |acc, v| {
acc + v
});
switch
}).collect();
(lights, buttons, raw_joltage)
})
.map(|(lights, buttons, _)| {
Machine {
desired_lights: lights,
buttons,
}
})
.collect();
println!("{:#?}", machines);
let machine_states: Vec<_> = machines.iter().map(|machine| {
let mut states: HashMap<u64, Vec<u64>> = HashMap::new();
let mut queue = vec![0u64];
while let Some(state) = queue.pop() {
let new_states: Vec<_> = machine.buttons.iter()
.map(|button| {
state ^ button
}).collect();
match states.entry(state) {
Entry::Occupied(_) => {}
Entry::Vacant(ventry) => {
let new_states = ventry.insert(new_states);
queue.extend(new_states.iter().map(|v| *v));
}
};
}
states
}).collect();
let distances: Vec<_> = machine_states.iter().map(|states| {
let mut distances: HashMap<u64, (Option<u64>, usize)> = states.keys().map(|node| {
(*node, (None, usize::MAX))
}).collect();
let mut q: Vec<u64> = states.keys().copied().collect();
distances.insert(0, (None, 0));
while !q.is_empty() {
q.sort_by_key(|n| core::cmp::Reverse(distances.get(n).map(|(_, d)| d).unwrap()));
let u = q.pop().unwrap();
let (_, u_distance) = distances.get(&u).copied().unwrap();
for neighbour in states.get(&u).unwrap() {
if !q.contains(neighbour) {
continue;
}
let new_distance = u_distance.saturating_add(1);
let (neighbour_prev, neighbour_distance) = distances.get_mut(&neighbour).unwrap();
if new_distance < *neighbour_distance {
*neighbour_prev = Some(u);
*neighbour_distance = new_distance;
}
}
}
distances
}).collect();
let mut total_steps = 0;
for ((machine, states), distances) in machines.iter().zip(machine_states.iter()).zip(distances.iter()) {
println!("{:#?}", machine);
//println!("States:\n{:#?}", states);
//println!("Distances: {:#?}", distances);
let (_, steps) = distances.get(&machine.desired_lights).unwrap();
println!("Required Steps: {}", steps);
total_steps += steps;
}
println!("Required Total Steps: {}", total_steps);
}

57
2025/11.rs Normal file
View File

@@ -0,0 +1,57 @@
---cargo
[profile.dev]
opt-level = 3
[dependencies]
nalgebra = "0.34"
---
use nalgebra::DMatrix;
use std::collections::HashMap;
static CONTENT: &'static str = include_str!("./inputs/11_1.txt");
fn main() {
let parts: HashMap<[char; 3], (usize, Vec<[char; 3]>)> = CONTENT.lines().map(|l| l.trim()).map(|p| {
let (key, rest) = p.split_once(':').unwrap();
let key = key.trim();
let rest = rest.trim();
let key: [char; 3] = core::array::from_fn(|idx| key.chars().nth(idx).unwrap());
let rest: Vec<[char; 3]> = rest.split(' ').map(|p| {
core::array::from_fn(|idx| p.chars().nth(idx).unwrap())
}).collect();
(key, rest)
}).chain([(['o', 'u', 't'], Vec::new())]).enumerate().map(|(idx, (key, v))| (key, (idx, v))).collect();
println!("{:?}", parts);
let mut adj_matrix = DMatrix::from_element(parts.len(), parts.len(), 0u64);
for (src, (src_idx, targets)) in parts.iter() {
for dest_idx in targets.iter().map(|t| parts.get(t).map(|(i, _)| i).unwrap()) {
adj_matrix[(*src_idx, *dest_idx)] = 1;
}
}
println!("{}", adj_matrix);
let you_idx: usize = parts.get(&['y', 'o', 'u']).map(|(idx, _)| *idx).unwrap();
let out_idx: usize = parts.get(&['o', 'u', 't']).map(|(idx, _)| *idx).unwrap();
let mut total_routes = 0;
let mut connectivity_matrix = DMatrix::identity(parts.len(), parts.len());
for length in 1..=parts.len() {
println!("Length: {:?}", length);
connectivity_matrix *= &adj_matrix;
let routes: u64 = connectivity_matrix[(you_idx, out_idx)];
println!("Routes: {}", routes);
total_routes += routes;
}
println!("Total Routes: {}", total_routes);
}

200
2025/inputs/10_1.txt Normal file
View File

@@ -0,0 +1,200 @@
[######] (0,1,3,5) (0,4) (0,1) (1,4) (1,2) (1,3,4,5) {21,37,18,9,8,9}
[..#.##] (0,1,3,4,5) (3) (0,1,3,5) (3,5) (1,5) (0,2,3,5) (0,1,2,3) (0,2,4) {25,12,13,57,14,38}
[....###] (1,2) (4,5,6) (2,3,6) (0,1,2,6) (0,4,5,6) (1,4) (0,1,2,3,4) (2,4,5) {43,172,55,21,159,17,33}
[...#..#] (1,5) (0,1,4,5) (1,2) (2,3,4,6) (1,3,5,6) (0,1,2,3,5) (0,1,3,4,6) {42,85,34,41,27,52,26}
[...##] (0,3) (0,1,2,4) (3,4) (0,1,3) (1,4) (0,1,2,3) (0,1,2) {63,62,36,39,35}
[###..#####] (3,4,5,6) (0,2,3,5,6,8,9) (0,1,2,3,4,5,8,9) (1,6,7,8) (0,1,2,4,5,6,8,9) (0,1,3,5,7,8) (2,5,6,7) (1,2,4,5,7,9) (0,3,7,9) {82,53,68,90,49,107,71,61,69,65}
[#####] (0,1,2,4) (0,2,4) (0,2) (0,1,2) (3,4) {49,16,49,4,32}
[...#] (2,3) (0,1) (0,2) (3) {8,5,22,19}
[.###..#] (0,4,5) (1,4,6) (3,5,6) (1,2,3,5,6) (1,2) (3,6) (0,1,2) (0,1,6) {19,54,20,23,15,6,57}
[..##..##.#] (1,3,4,7) (1,2,3,4,5,6,7,9) (1,3,5,6,8,9) (0,2,4,6,8) (3,4,8) (0,1,2,3,6,8) (0,1,2,3,4,5,7) (1,2,3,4,6,8) (0,3,5,8) (0,5,8) (0,1,3,7) (6,9) {243,261,221,287,46,51,255,36,264,42}
[.##..##..#] (4,5,6,7) (0,1,3,5,6,7,8,9) (1,3,4,9) (2,3,4,6,7,8) (0,1,2,3,5,7,8,9) (0,1,8) (7,8) (2,3,4,5,6) {28,42,26,46,42,39,34,30,36,27}
[##.###] (1,2,4) (0,2,3,4) (0,1,2,3,4) (1,4,5) {27,220,219,27,235,16}
[###..] (0,1,4) (0,3,4) (0,1,2) {212,210,14,2,198}
[#..#...##] (0,2,3,8) (2,3,5,7,8) (1,3,8) (1,3,4,5,6,7) (2,3,5,6,7) (0,1) (0,3,4) (0,5,6,7) (1,3,4,5,6,8) {27,127,53,172,119,155,136,146,46}
[#...##] (0,3,4) (2,3,4) (1,5) (3,4) (0,2,4,5) {3,6,18,29,31,8}
[###.......] (3,4,5,7) (0,3,5,6,9) (2,4,6,8,9) (1,2,6,8,9) (0,3,4,5,6,7,8,9) (0,5,6,9) (3,5,6,9) (0,6,8,9) (4,5,6,7,9) (0,1,2,3,6,9) {43,20,34,54,44,76,94,30,27,94}
[##.#.#.##.] (0,2,4,5,6,7,8,9) (1,2,4,6,7,9) (1,4,5,6,8,9) (3,4,6) (0,2,7) (1,3,4,5,6,7,8,9) (0,5,6,7,8,9) (0,1,2,3,4,7,9) (0,1,4,5,6,7,9) (4,5,6,7,8,9) {54,52,50,18,72,47,71,85,30,71}
[...####.] (2,3) (1,3,4,5,7) (1,3,6) (0,1,3,5,6,7) (1,3,7) (0,1,4,5,6,7) (2,4,6,7) (1,7) (1,2,3,5) (1,2,3,4,6) {31,100,51,87,60,64,64,65}
[###.#..##] (4,5,6,8) (1,2,3,5,6,8) (0,2,3,4,5,8) (0,1,2,4,7,8) (0,4,5,7,8) (0,1,2,3,4,7,8) (6,7) {59,28,42,34,68,44,16,50,70}
[###.#...#.] (1,2,9) (0,1,2,3,4,5,6,8) (1,3,6) (0,1,7) (3,4,5,8) (0,2,3,4,5,6,7,8) (0,1,2,4,7) (0,3,4,7,8,9) (0,1,3,4,5,6,7,8) {263,252,42,250,257,222,220,250,239,20}
[#.#...#] (2,4,6) (2,3) (0,2,6) (3,4) (1,2,3,4,5) (1,5,6) (0,2,4,5,6) {18,8,42,25,20,12,23}
[#.#.] (0,2) (0,1,3) {12,3,9,3}
[.#..#.] (0,1) (0,1,5) (3,5) (1,2,5) (1,4) {14,27,4,4,9,10}
[#####..] (0,4,6) (0,1,2,3,4,6) (0,2,3,4,6) (0,1,5) (2,5) (0,1,2,3,5,6) {30,22,24,13,15,26,18}
[...##] (0,1,2) (2,3) (0,2,4) (0,4) (1,2) {23,199,219,12,12}
[.##..] (0,1,3) (0,3) (1,2) (0,3,4) {37,22,10,37,7}
[.#...#] (0,5) (0,1,2,3) (2,3) (1,3,4,5) (1,2,4,5) {36,212,37,200,195,214}
[.##.##..#.] (3,4,5,6,7,8) (3,7) (1,4,5,6,7,8,9) (1,2,4,9) (0,1,5,7,8,9) (0,1,2,4,6,8,9) (0,1,2,3,4,5,8) (0,3) (0,2,3,4,5,6,7) (0,1,5) (0,5,9) (0,1,2,3,4,5,8,9) (3,6) {183,186,153,191,181,205,55,66,166,69}
[.#...#] (1,5) (0,1,3,4) (0,1,2,3,4,5) (0,2) {45,48,29,36,36,32}
[...#.#] (0,1,2,3,5) (0,2,3,4) (3,5) (1,2,3,5) {21,18,33,37,15,22}
[##.#..###] (0,1,2,3,5,6,8) (1,2,3,4) (0,1,5,6,8) (1,2,4,5,6,8) (0,7,8) (1,2,3,4,6,7) (2,3,4,5,6,7,8) {57,60,145,139,128,148,159,136,168}
[....#.#] (3,4) (0,2,5,6) (1,6) (2,3,4,6) (0,2,4,5) {13,10,18,14,25,13,17}
[#......] (0,1,2,4,5) (0,1,2,3,4) (2,4,5,6) (1,2,3,4,6) (0,1,2,3,6) (0,1) (3,5,6) {43,47,64,39,49,35,41}
[#.....##] (1,6,7) (0,2,4,5,6) (0,3,4) (3,4,6) (0,1,2,4,5,6,7) (0,1,7) (0,6,7) (1,4,7) {42,39,24,16,52,24,36,42}
[##....###] (4,7,8) (0,2,3,4,5,6,8) (0,1,3,5,6,8) (1,2,5,7,8) (0,1,2,4,5,6,8) (4,6) (3,4,5,6,7) (0,1,2,3,5,7,8) {39,45,50,48,50,72,52,52,56}
[..##....] (0,3,7) (0,2,3,4,5,7) (1,4,7) (1,2,3,4,5,6) (2,3,4,7) (0,6) (0,1,2,5,6) {38,184,198,192,190,195,197,19}
[...##] (0,1,2,4) (0,2,4) (1,3,4) (0,1,2) (1,2) (1,2,3,4) (1) {41,69,58,21,50}
[#.#......] (0,1,5,6,7) (0,2,3,4,5,7,8) (0,1,2,3,4,5,8) (0,1,2,4,6) (1,3,4,5) (1,3,4,6,8) (3,5,6,7,8) (1,2,8) (6,8) (6,7,8) {14,29,16,28,20,22,54,26,60}
[.##..#..##] (1,2,4,6,8) (0,1,2,3,4,5,6,8,9) (0,2,3,4,8,9) (4,5) (0,1,2,3,6,8,9) (0,3) (0,2,3,4,6,7,9) (0,3,4,6,7,8) (0,3,4,5,7,8,9) {85,39,42,85,211,192,53,32,70,56}
[#...#] (0,1,2,3) (1,2,3,4) (1,2,3) {19,35,35,35,0}
[#####] (0,1,3,4) (2) (0,2,3) {10,1,12,10,1}
[.##..#..#.] (0,1,2,3,6,7,8,9) (0,1,4,9) (2,3,4,6,9) (0,1,2,3,4) (7,9) (1,2,3,4,5,6,7,9) (8) (1,4,5,6,7,8,9) (1,4,6,8) (0,2,4,6) (0,4,8) (0,1,3,5,6,7,8) (7) {46,60,51,51,69,30,56,48,139,57}
[..##.###.] (1,5,8) (0,5,7,8) (0,1,3,4,6,7,8) (1,2,3,4,5) (6,8) (3,5,7,8) (0,1,2) (4,6,8) (0,1,6,7) (4,5,8) {179,67,33,28,37,198,39,172,202}
[#...##.] (0,1,2,3,5) (0,1,5) (0,5) (0,1,3,4,5,6) (1,2,4,6) (1,6) (1,4) (0,1,2,3,4,6) (4) {50,60,30,33,55,34,29}
[.#.#] (0,1,2) (1,3) {190,210,190,20}
[#.###.#.#] (1,4,8) (0,2,4,5,6,7,8) (0,1,2,3,5,7,8) (0,1,4,6) (3,4,5,6,7) (1,4,6) (0,2,4,5,7,8) (0,1,2,3,5,6,7) (0,1) {52,58,34,25,73,48,63,48,41}
[..#.....#] (0,1,2,3,6,7,8) (0,1,2,3,4,6,7,8) (0,1,2,4,5,8) (0,1,2,4,6,8) (0,1,2,3,4,7,8) (1,2,3,4,6,7,8) (0,1,3,6,7) (2,5,6,8) {185,193,81,158,63,18,178,158,81}
[#####..##] (0,1,4,5,6,7,8) (6,7) (2,3) (0,3,4,5,6,7,8) (1,6) (0,1,2,3,4,7,8) (2,7) (0,3,7,8) (0,2,3,7,8) (2) (1,2,4,5) {86,66,80,88,70,52,65,100,86}
[#####.#.#] (0,1,2,5,6,7,8) (1,3,5,6,8) (2,8) (1,2,8) (2,3,4) (2,3,4,6,7) (0,2,3,4,5,7,8) (1) (5,6) (0,1,2,3,4,5,6) (3,4,6,7,8) {204,227,242,240,231,217,239,37,53}
[#.....##] (2,3) (0,1,2,3) (3,5) (1,4,6) (6) (0,2,5,7) (1,2,3,4) {20,213,35,34,204,21,195,11}
[##.###.#.] (4,6) (5,6) (0,3,7) (0,2,3,4,5,6,7) (1,2,3,7,8) (2,5,6,8) (0,2,8) {32,12,165,38,25,158,166,38,148}
[#######.] (1,3,4,5,7) (2,7) (1,2,3,4,5,7) (0,1,4,5,6,7) (1,2,4,5,7) (0,6) {9,62,40,39,62,62,9,66}
[#..#] (1,3) (2,3) (0,2) (0,3) (0,1,3) (0) {40,22,15,34}
[####.#####] (0,1,5,6,7,8) (0,2,3,4,7,8,9) (0,4,7,8) (1,4,5,7) (2,3,5,7,9) (0,2,3,4,6,7,8) (0,1,2,5,6,8,9) (1,3,4,7,9) (0,1,2,3,5,6,8,9) (0,1,2,3,4,5,9) (5,8,9) (1,4,6,8,9) (0,1,2,3,4,7,8) {233,238,81,87,66,252,209,225,235,106}
[.###.] (3) (1,3) (0,2,3) (1,4) (0,1,2) (0,1,4) {26,31,7,24,30}
[.###..] (0,1,4) (5) (1,2,4) (2,3) (3,4,5) (1,3) {3,20,204,202,14,18}
[...###] (3,5) (3) (0,1,2,5) (0,1,2,3,5) (0,3,4,5) (0,2,3,5) (0,1,3,4) (4,5) {62,27,37,79,44,82}
[###...#] (1,2,4) (0,1,5,6) (0,1,2,3,4,6) (2,4,6) (1,4,6) (0,2,4,5,6) (5,6) {30,44,48,4,59,31,55}
[#.##..#.] (1,3,5,7) (3,7) (1,2,3,5,6,7) (0,2,3,4,5,6) (0,1) (4,6) (1,7) (1,5) (0,4) (0,5) {58,61,34,48,57,82,53,39}
[.#.#....#] (1,3,4,8) (0,1,3,5) (1,2) (0,1,2,3,4,6,7,8) (1,3,8) (0,4,5,7,8) (2,4) {47,55,48,44,64,28,19,38,54}
[##.##...#] (2,3,6,8) (5) (1,3,4,5,6,7,8) (1,3,6) (0,3,4,5,8) (0,1,3,6,8) (0,1,4,7) {39,20,14,47,28,25,27,8,47}
[.#..#] (0,2,4) (0,4) (0,1,2,3) (1,2,4) {8,12,13,4,12}
[.##.#..#.] (0,3,6,7,8) (0,1,2,3,4,6,8) (0,1,3,4,5,7,8) (0,1,2,4,5,6,8) (3,4,8) (4,5) (0,1,2,6,8) {53,45,38,32,56,39,46,15,60}
[##..] (0,3) (0,1,2) (1) (1,3) (0,1) (2,3) {37,48,21,39}
[..##...] (4,5,6) (0,3) (3,5) (1,2,3,4,6) (1,2,3,5,6) (0,3,5) (0,1,4,5,6) {36,46,38,245,37,238,57}
[#####..##] (0,4,6) (0,1,3,5,7,8) (1,4,5,6) (6,7) (1,3,4,5,6,7,8) (0,2,4,5,7,8) (2,5,6) (0,1,3,4,6,7) (1,3,4,5,6) (1,2,3,4,5,8) {32,60,11,45,48,65,63,49,37}
[.#.##.####] (0,1,2,3,4,5,6) (1,2,3,4,6) (0,1,2,3,4,5,6,7,9) (1,4) (0,1,2,3,4,6,7) (0,2,5,8) (1,2,6,7,9) (2,7,8) (0,3,4,5,7,8,9) (0,1,2,7,9) (2,3,4,6,7,8,9) (0,2,3,4,5,6,9) (5,7,8,9) {55,75,82,71,84,39,59,81,40,56}
[#....] (3) (0,3,4) (0,1,2,3) (0,1,3) (1,2,4) (1,2,3) (0,2) {32,26,18,42,25}
[#...#.#.] (0,2,3,4,6) (1,5,7) (0,6) (1,4,5,6,7) (0,1,2,3,4,5,7) (2,3,6) {23,29,29,29,30,29,58,29}
[.##.#..#] (0,1,3,4,5,6) (5,6,7) (0,1,3,4,5,7) (0,4,5) (3,4,5,6) (1,4,6) (2,3,4) (0,1,3,4,7) {30,37,3,36,47,39,27,29}
[#..#..#.] (2,3,4) (0,1,2,7) (1,2,3,4,5,7) (0,1,2,5,6,7) (0,1,3,4,5,6) (0,2,4,6) (0,2,4,6,7) (0,1,2,4,5) (0,1,2,3,5) (1,2,3,4,6,7) {75,100,105,70,66,71,44,62}
[####.] (0,2) (3,4) (1,4) (0,3,4) (0,1,2,4) (0,1,2,3) {42,28,30,31,29}
[##.###] (0,3,4,5) (0,1,3,4) (1,4) (1,2,3,5) (1,4,5) {20,51,13,33,39,33}
[.#.##] (0,3) (0,2,4) (1,3,4) {21,18,1,38,19}
[##..##] (0,1,4) (0,1,3) (1,4) (0,1,2) (2,4,5) (3,5) (0,1,2,3,5) {45,49,27,52,19,43}
[.##.] (0,2,3) (0,1) (0,1,3) {158,17,141,151}
[...#.#.#.#] (0,1,2,3,4,5,7) (0,2,3,4,6,9) (0,1,2,5,7,8) (0,2,3,4,6,7,8) (1,2,3,6) (1,2,6,8,9) (0,7) (0,2,5,6,8) (4,5) (2,5,8) (1,2,3,4,6,7,8,9) (3,6,7,8,9) {80,55,114,64,65,62,81,63,81,48}
[...#..#] (3,6) (2,3,5,6) (1,2,4,5,6) (3,4,6) (0,1,3,4,5,6) (0,1,6) (1,2,3,4,5,6) (0,5,6) {189,197,36,212,204,221,248}
[##..#.] (0,1,2,3) (0,2,3,5) (0,2,4,5) (1,2,3) (0,3,5) {42,19,46,36,10,27}
[#.###.##] (1,3,4,5) (0,1,3,6,7) (0,1,2,4,6) (3,4,6) (0,1,2,3,4,5,7) (0,2,3,4,5,6) {69,50,53,64,61,41,56,36}
[...###] (2,3,4,5) (0,1,3) (0,2,3,4) (2,5) (2,3) (0,1,2,3) (0,3,4,5) {61,30,67,81,36,34}
[###...##] (3,4,5) (3,4,5,6,7) (0,1,3,4,5,6,7) (0,2,3,6) (1,3) (1,2,5,6,7) (6) (0,1,2,6,7) (3,7) {33,48,39,212,12,28,69,222}
[#.#.] (2,3) (1) (0,2) (1,2,3) (0) (0,1,3) {19,30,34,40}
[#.##.] (0,2,3) (2) (1,4) {135,14,140,135,14}
[.##...#..#] (5,8) (0,1,2,3,5,7,8,9) (0,1,2,3,4,7,8,9) (4,5,8) (1,2,3,5,7,8) (1,2,6,9) (0,1,2,4) (1,2,3,4,6) (0,1,2,3,4,5,6,7,8) (3,4,6,7,8) (0,2,4,5,7,9) {53,68,84,53,59,64,36,54,60,62}
[#.###.##..] (1,2,3,7,8,9) (1,3,5,6,7) (1,4,9) (0,1,3,6,8,9) (0,1,2,5,6) (2,5,7) (0,1,3,4,6,7,9) (2,6,9) {38,68,42,39,11,56,63,39,17,33}
[.#.##..] (2,5) (1,3,4,5,6) (0,2,3,4,5) (3,4) (0,1,6) (2,4) (0,3,6) {28,15,42,53,52,50,19}
[##..###] (1,3,4,5,6) (0,1,2,3,4,5) (0,3,4) (2,6) (0,1,4,5,6) {34,39,27,37,51,39,50}
[######] (2,4,5) (1,3,4,5) (0,1,3,4,5) (0,3,4) (2,3,4,5) (0,1) {29,24,32,39,57,44}
[##.##] (1,3) (0,1,2) (0,4) (2,4) (2,3,4) {10,6,24,16,30}
[#....#....] (1,4,5,6,8,9) (0,2,4,5,6,9) (1,2,3,4,5,6,7,8) (2,4,6,9) (3,4,7,8) (0,4,5,7,8,9) (0,1,4,6,7,9) (1,4,5,8,9) (0,1,2,3,4,6,7,9) (1,3,6,7,8,9) (0,4,5,6,7,8,9) (0,1,2,4,5,6,7,8) {68,87,58,60,110,79,107,106,98,85}
[.##.] (0,2,3) (0,1,3) (1,2) {206,30,204,206}
[.###.#] (1,5) (0,2,3,5) (0,1,4,5) (0) (2,4,5) (1,2,3) (1,2,3,4) (1,2,3,5) {20,60,50,49,23,32}
[..####.] (0,3,5) (0,2,6) (2,3,4,5) (0,1,2,5,6) (1,3) (0,1,6) {40,21,22,23,5,27,26}
[#.###.##.] (0,4,6) (0,1,2,7,8) (0,1,3,6,8) (0,2,3,4,6,7,8) (1,4,7) (1,6,7) (0,1,3,5) (0,2,3,5,6,7,8) (1,3) (8) {81,64,31,63,42,30,68,53,211}
[#...##.#.] (0,3) (0,2,3,5,6,7,8) (0,1,2,4,6,8) (1,3,4,5,7,8) (1,2,3,5,6,8) (4,8) (0,1,2,7) (2,4,6) (0,1,2,3,6,7) (0,1,2,5,7,8) (0,3,5,6,8) {77,62,66,65,45,40,59,49,61}
[#....#] (1,2,3,4,5) (1,2,3,4) (0,1,2,3,4) (1,2,4,5) {20,41,41,36,41,13}
[###..] (0,2,4) (1,2,3) (0,2,3) (1,3) {21,10,27,27,4}
[..###] (0,1,2,4) (0,1,3) (2,3) (1,2) {19,19,115,108,13}
[.#....##] (1,4,6) (4,5) (0,1,2,6,7) (0,3) (3,4,5,6) (1,2,7) (0,3,4,7) {30,42,32,16,34,13,34,43}
[........##] (0,3,4,6,7) (0,1,4,5,6,7,8,9) (0,1,2,3,5,7,9) (0,1,2,4,6,7,9) (4,5,7,8) (1,2,3,4,7) (1,2,3,4,5,6,7,8,9) (0,1) (0,7,9) (0,2,3,5,6,8,9) {83,54,53,60,50,61,51,83,46,74}
[....#....] (0,1,2,5,6,7) (5,6) (0,2,5,7,8) (0,1,2,3,5,6,7,8) (1,2,3,4,5,6,8) (3) (1,2,3,4,6,7,8) (1,4,7) {20,27,27,26,16,28,19,29,20}
[#.#...] (0,2,3,4,5) (1,2,3,5) (2,4) (1,3,4) (0,3,4) (1,2,4) (0,1,2,4,5) {38,49,35,44,71,22}
[.####.] (0,1,3) (0,1,5) (0,1,3,4) (0,1,2) (1,2,5) (0,4) {165,164,130,14,16,31}
[.###...] (2,4,6) (1,3) (1,3,4,6) (0,1,3,4) (0,2,5) {17,50,20,50,54,0,37}
[###.#] (2,3,4) (0,3,4) (1,2,3,4) (0,1,2,3) (0,1,3) (1,2,4) {21,214,231,54,220}
[.#.#] (0,2) (0,1,2) (0,1,3) (2,3) (3) {176,158,46,169}
[##....###.] (0,1,4,5,6,7,8,9) (0,2,3,4,6,7,8,9) (0,1,3,4,5,6,8,9) (0,3) (0,1,2,3,5,6,7,9) (0,3,4,5,6) (1,2,3,4,6,7,8) (2,3,5,6) {248,43,55,260,234,235,262,55,46,46}
[#.###...#] (0,1,3,4,5,6,7,8) (1,2,3) (3,6) (1,2,5,7,8) (0,1,2,5) (0,1,2,3,5,7) (0,2,3,8) (0,2) {187,46,178,197,20,39,38,24,176}
[##.....] (6) (0,1,2,4) (1,2,3,5,6) (0,2,4,6) (1,3,4,6) (0,3,4) (0,1,3,4,5) (2,3,5) (0,1,5) {51,54,59,58,45,57,66}
[#.###.#.] (0,1,3) (0,1,2,4,6,7) (1,2,4,5) (0,4) (0,2,4,6) (0,1,2,3,4,5,6) (0,1,2,3,4,6) (0,1,5) (0,2,3,4,5,7) (0,1,2,4,5,6) {105,98,94,39,95,70,73,24}
[###.] (0,1,2) (1,2,3) {10,25,25,15}
[##....##] (0,2,3,4,5,6) (4,6) (3,4) (0,2,7) (1,2,4,5,6) (1,2,3,4,5,7) (1) {33,210,235,34,244,221,229,25}
[.##..#] (1,2,3,4,5) (1,2,3,4) (0,1,3,5) (4,5) (2,4) (2,3) (0,2,3,4,5) (0,3,5) {188,22,36,206,29,191}
[..##.#.#] (3,4,5,6) (0,3,6,7) (1,6) (0,1,3,4,6,7) (2,3,5,7) (0,1,2,5,6,7) (1,2,3,5,6) (0,1,3,5,6,7) {32,45,31,240,182,229,238,52}
[#..#.#.##] (0,2,4,5,6,7,8) (0,7) (0,1,3,5,8) (1,4,7) (1,2,3,4,5,6,8) (1,6) (3,4,5,8) (3,7) {23,32,8,26,16,28,28,17,28}
[..###..] (0,1,2,3,5,6) (2,3,6) (0,1,2,4,5,6) (0,1,2,4,6) (0,3,4,5) (2,3,4) {46,31,48,44,50,45,32}
[#.#.] (1,3) (0,3) (0,2) {21,7,15,13}
[#..#.] (0,1,2,3) (1,3,4) (2,3) (1,2,4) (1,4) (0,2) {15,36,31,26,24}
[.#......] (0,2,3,5,7) (0,1,3,5,6) (0,2,4,5,6) (0,1,2,5,6,7) (3,7) (1,2,3,4,5,7) (4,7) (0,4,5,6,7) {47,25,38,27,40,52,47,51}
[##.#...##.] (0,7,8) (4,5,7) (0,2,3,5,6,8) (1,2,4,5,7,8,9) (1,3) (0,2,3,5,6,7,8,9) (0,4) (1,2,3,4,5,6,7,9) {45,45,54,46,56,67,34,63,55,36}
[###.#] (1,2,3,4) (1,3) (0,2,3,4) (1,2) {8,31,21,26,8}
[.#..#.#] (2,5,6) (1,3,4,6) (0,3,4,5,6) (1,3) (0,3,5,6) (1,2,3,4,5) (3) (0,1,3,5) (0,2,6) {134,35,20,168,115,154,141}
[##.##..###] (4) (0,2,3,5,6,8) (0,1,5,8,9) (2,5,6,7,9) (0,1,3,4,7,8,9) (0,1,2,3,4,5,6,9) (4,6) (0,4,6,8,9) (3,5) {80,40,30,59,57,61,52,20,73,63}
[##....#.] (0,1,2,4,5,7) (2,3,4,5,6,7) (3,5) (0,4,6,7) (0,1,6) (0,1,2,4,6,7) {42,30,145,140,157,150,157,157}
[.#.#] (0,2) (1,3) (0,3) (0,1) {23,20,0,15}
[..###...] (0,5,6) (0,5) (1,2,3,4,5,6) (0,1,2,3,6,7) (0,2,3,4,5,6) (2,3,4,7) {40,13,34,34,21,27,29,23}
[..#....#.#] (1,5,7,9) (0,3,4,5,6,7,8) (3,5,9) (0,3,5,6,7,9) (7,8) (1,2,3,7,8,9) (0,2,4,5,7,8,9) (0,2,3,4,5,6,7,8) (0,1,3,4) (2,3,5,7,8) (0,1,2,6,7,9) {57,48,42,76,40,79,34,103,70,83}
[.###.#.#] (1,2,3,6) (3,5,7) (3,6,7) (1,2,5) (0,2,3,4,6) (0,1,4,5) (0,1,2,3,4,5,7) {26,44,48,61,26,37,41,34}
[..###] (0,1,4) (0,3,4) (1,2,3) (0,1,2,3) {14,6,2,10,12}
[.#......#] (2,3,6) (1,4) (0,2,3,4,5,7) (0,1,5,6,7) (3,7) (0,1,4,5,6,7) (0,1,3,6,8) (0,1,2,5,8) (3,4,6,7) {38,37,26,33,29,34,40,37,10}
[..##] (1,3) (1,2) (0,1,3) (0) (0,2,3) {31,35,28,37}
[##..] (0) (0,2,3) (0,2) (0,1,3) (0,3) (1,3) {222,2,15,21}
[#.#.#...] (1,2,3,4,5) (0,1) (1,2,3,5,6) (1,3,4,6) (2,3,5,6,7) (1,3,4,6,7) (0,1,2,3,4,5,6) (0,2) (1,3,5,6,7) {40,88,66,80,56,58,65,16}
[.#.#] (0,1,3) (0,2) (1) (0,2,3) (0,3) {57,20,28,45}
[..####] (1,2,3,5) (1,2) (0,2,3,4,5) (2,3,5) (0,1,3,5) (0,3,4,5) {174,42,57,206,161,206}
[...#.#.#] (0,1,2,3,7) (4,5,6) (1,2,4,7) (0,1,2,3,4,6) (0,1,2,7) (4,5) (1,2,3,5,7) {21,39,39,21,39,25,15,29}
[##...##..] (0,2,3,4,6,7,8) (3,4,5) (0,1,2,3,4,5) (2,8) (0,2,3,4,5,7,8) (0,1,4,6) (1,3,5,6,7,8) (0,7) {199,20,205,227,209,44,201,215,221}
[#...#.] (0,1,4) (0,3) (2,3,4,5) (1,5) (2,4) (1,4,5) (1,4) {2,175,8,6,176,159}
[##..#.#] (0,3,4,5,6) (0,2,4,6) (0,1,2,3) (1,2,3,4,5,6) (3,4,5,6) {24,147,162,170,184,169,184}
[#.#.#] (1) (3,4) (0,1,3,4) (0,2,3) {15,0,15,31,16}
[..##...] (1,3,4,5) (0,3,4,5,6) (1,3,4,5,6) (5,6) (0,4,5,6) (0,2,4,6) {37,31,14,40,68,56,59}
[#.##..##] (3,5,6) (1,2,6) (0,3,4,5,6) (0,1,2,5,6,7) (2) (0,2,4,6) (2,6) (0,2,3,4,7) (0,3,6) {48,8,40,38,29,17,40,26}
[####.] (1,3,4) (0,2,3) (0,1,2) (0,1,4) (1,3) (4) (0,4) {63,43,33,33,45}
[.#..###] (1,2,3) (0,2,4,6) (1,4,5,6) (0,2,4,5) (4,5,6) (0,1,5,6) (0,3,4,6) (1,3,4,5) (1,4) {44,51,29,17,48,49,49}
[.....#..] (0,4,5,6,7) (0,2,7) (0,1,5) (0,3,4,5,7) (1,2,4) (2,3,4,6,7) (1,4) {38,32,27,19,53,38,24,34}
[##.#.##] (0,2,3,5,6) (1,2) (1,3,4,5,6) (1,4,6) (0,4,5,6) (0,1,2,3,4,5) {49,31,33,43,47,61,54}
[.##.###.] (2,3,5,6) (0,1,2,3,5,6) (1,5,7) (0,1,2,4,6,7) (0,2,3,4,5) (0,3,6) {34,33,43,36,21,38,51,31}
[....##..#.] (0,2,6) (0,3,6,9) (3,4,5) (0,1,2,4,5,6,7,8) (0,1,2,3,4,6,8) (1,2,7,8,9) (2,3,4,5,7,9) (0,1,2,3,6,9) (0,2,3,4,5,7,8) (7,8,9) (1,2,3,4,5,6,7,8,9) (0,1,3,4,5,7,8,9) {56,38,58,66,44,35,35,38,44,42}
[....#.#] (3,4,5,6) (0,3) (2,3,4,5) (0,3,4,6) (1,3,6) (1,3,4,5,6) (0,2,3) (0) (1,2,3,4,5) {43,28,30,78,56,42,46}
[##.....#.] (1,4,5,6,7,8) (1,2,3,4,5,7,8) (0,2,3,4,6,7,8) (0,1,7) (2,3,4,5,6,7,8) (0,1,6) (0,1,2,3,5,6,7) (1,3,6,8) (0,3,4,7,8) (0,2,3,4) (4,5) {30,38,44,64,47,32,56,48,56}
[..###] (0,3) (0,1,3) (2,3,4) (0,2,4) {33,10,34,31,34}
[##..] (0,2,3) (2,3) (0,1) {131,12,119,119}
[.#.#.##.##] (1,6,8,9) (0,1,3,7,8,9) (0,1,2,4,5,6,8) (0,1,2,3,4,5,6,7) (0,1,2,4,5,6,8,9) (0,3,4,5,6,9) (0,1,2,3,4,6,8,9) (0,1,4,6) (0,1,3,4) (2,7) (0,3,4,5,7,8,9) {58,51,167,45,47,38,47,167,29,36}
[.##.] (0,2) (0,3) (2) (1,2) {8,10,16,3}
[###.] (1) (0,2) (0,3) {21,6,20,1}
[#.#...] (0,1,5) (0,1,4,5) (1,2,3,4,5) (2,4) (0,2) {20,28,38,13,46,28}
[#..#..##] (0,4) (1,2,6) (0,2,6) (1,3,4,5,6,7) (0,2,4,6,7) (0) (4,6,7) (3,4,7) (0,1,2,4,5) {48,190,41,178,218,183,218,200}
[##...] (1,2,4) (0,2,4) (0,4) (2) (0,1,2,3) (0,1,2) (2,3) {50,20,54,9,36}
[##.#] (0,2,3) (0,2) (1,2) {18,11,29,17}
[.#####] (0,2,3,4) (0,4) (0,3,4) (1,2,4,5) {45,12,21,29,57,12}
[##.#] (0,1,2) (0,1,3) {31,31,20,11}
[.#.#...#.] (1,2,3,4,5,6,8) (1) (2,3,7) (0,3) (4,5,6) (0,1,3,8) (0,1,2,4,7) (2,6,7) (1,3,6,7,8) (1,4,5,7) (4,7) {26,219,40,67,209,190,46,235,42}
[...##..#.] (3,6) (2,6) (1,3,4,6,7) (0,2,3,4,5) (2,4,7) (0,2,3,4,6,7,8) (0,2,6) (1,8) (3,7,8) (0,6) {12,28,36,179,25,8,182,25,28}
[.##...] (3,4) (1,2,3,4,5) (0) (2,4,5) (3,4,5) (1,2,3,4) (2) {4,22,27,49,51,39}
[..#.#..] (0,1,2,4,6) (1,6) (0,2,4,5,6) (0,2,3,4,5,6) (1,4,5) (0,3,5,6) {42,32,38,22,45,40,58}
[.#..###] (3,5,6) (1,2,3,6) (0,3,4,5) (0,2,4,5,6) (1,3,4) (0,1,2,3,4,5) (0,1,3) (1,2,3,4,6) (1,6) {38,62,45,88,61,47,49}
[##.#..#.] (0,1,2,5,7) (4,5) (2,4,7) (1,2,3,4,6,7) (5) (0,4,6,7) (0,1,2,5,6,7) (0,2,3,5,7) (0,2,3,5) (1,4) {31,6,39,18,36,46,11,33}
[....#.##] (0,1,2,3,4,5) (0,1,4,7) (3,4,7) (1,2,3,4,6) (4,5,7) (1,3) (0,2,4,6) {26,26,29,26,45,0,29,16}
[##.#] (0,1,2) (0,1,3) {23,23,10,13}
[.####.##] (2,4) (1,2,5) (0,2,7) (1,4,5) (1,2,4,5,7) (0,1,2,3,5,6) (0,1,3,4,6) {22,59,52,21,56,53,21,13}
[#####] (0,2,4) (3,4) (0,3,4) (1,4) {8,11,6,19,36}
[##.......] (0,2,6) (4,6) (5,7) (0,1,2,3,4,5,6) (0,6,7,8) (0,1,2,3,4,6,7) (3,8) (0,1,3,5,7) {54,26,18,38,114,24,142,42,30}
[######..] (0,4,5,6) (0,1,2,3,5) (0,1,2,3,4,6) (0,1,2,4,5,6,7) (1,2,5,6,7) (1,6,7) {40,47,44,26,21,47,38,21}
[#.###] (2,3,4) (2,3) (0,4) (1,2) (1,3) (0) {12,28,23,35,13}
[#.###..##.] (0,5,7,8) (0,2,3,5,6,8,9) (2,3,5,8,9) (2,3,4,7,8) (1,3,4,5,6,7,8,9) (1,2,4,5,6,8) (2,3,4,6,7,8,9) (0,1,2,3,4,5,6) (1,3,4,5,7) (2,3,7,8,9) (0,3,6) {32,188,63,213,189,204,202,179,205,194}
[..#.#.#.#] (0,1,2,5,6,7,8) (0,1,2,3,4,6,7) (1,2,3,6,7,8) (1,8) (0,3,4,6) (2) (2,7) (0,4,5,8) (0,2,3,4,5,6,7) (1,2,3,4,7) (1,2,8) {43,50,42,27,40,23,30,32,48}
[.#....#] (0,5,6) (0,1,2,3,5,6) (2,3,6) (0,2,4,5,6) (0,1,4,5,6) (0,1,3,4,5,6) {43,30,16,31,21,43,50}
[###.#.....] (1,8) (2,5) (0,1,3,4,6,9) (0,1,2,3,5,9) (1,2,3,5,7,8) (3,4) (0,1,2,4,5,8) (0,1,3,4,8) (6,9) (0,1,4,5,6,7,9) (0,1) (1,2,3,5,6,7,8) {52,74,40,56,54,44,42,24,49,37}
[##.#] (0) (1,2) (3) (0,2) (1,3) (0,1) {34,30,7,17}
[####.##] (2,5) (0,1,2,3,5) (1,3,4) (0,2,6) (0,5) (3,5) {37,186,19,192,175,39,6}
[.##.......] (0,1,3,4,5,6,7,8) (0,1,2,3,5,9) (1,6) (2,3,4,6) (3,8) (0,2,3,4,5,6,7,8) (1,4,7,8,9) (2,3,6,7) (4,7,8) (1,3,4,8,9) (0,5,6,7,9) (1,2,5,7,8) {45,67,62,68,59,61,61,93,73,56}
[##.##.##] (1,7) (2,3) (0,1,4,5,6,7) (0,1,2,3,4,5,7) (0,1,2,3,4,5) (4) (1) (2,3,4,5,6) (0,5) (1,2,6) {49,86,82,63,68,62,40,41}
[#####.####] (0,1,2,5,8) (1,2,3,5,7,8,9) (0,1,2,3,6,7) (1,3,5,6) (1,2,3) (0,1,2,3,4,6,7,8,9) (0,2,4,5,6,7,8,9) (1,2,3,4,5,6,7,9) (0,2,4,7,8) (0,1,2,4,5,6,7,9) {68,91,90,64,38,75,71,69,53,50}
[#.#.] (1,3) (0,1,3) (0,3) (2,3) {8,12,109,125}
[####.....] (3,4,5,7) (0,1,2,4,5,7) (2,3,6,7,8) (0,1,5,8) (0,1,2,4,5,6,7) (1,3,8) (1,2,4) (0,2,3,5,6,7,8) (0,1,5,6,7,8) {178,180,64,49,55,195,174,201,168}
[....#] (0,3,4) (0,2,3,4) (1,2,3) (1,2,3,4) (2,3) {15,10,22,36,18}
[.#.#..####] (0,1,3,7,8,9) (0,2,3,4,5,6,8,9) (1,3,4,6,8,9) (0,1,2,4,5,6,7,8) (5,7,8,9) (0,2,3,5,6,7,8,9) (3,4,7) (0,1,2,3,5) (1,9) (4,5,8,9) (0,2,3,4,5,6,7,9) {49,58,32,69,53,49,35,69,60,77}
[.#..#] (0,1,2,3,4) (1,3) (0,2,3) (0,3) {201,30,21,221,10}
[.#.#] (1,2,3) (0,3) (2,3) (0,1) {19,24,23,33}
[##.#] (2) (0,2) (1,2,3) (1,2) (1,3) {8,22,25,13}
[.....##] (0,1,3,5,6) (1,4) (0,2,4,5,6) (0,2,3,6) (0,3,4) {185,27,155,184,18,21,175}
[..##.##..] (0,1,2,3,4,6,8) (5,6,7,8) (2,3) (0,1,2,5,7,8) (0,1,2,5,8) (1,2,3,5,6,7,8) (2,5,8) (0,1,2,3,4,5,6,7) (2,3,4,5,6,8) {24,40,46,35,16,35,35,32,44}
[##.#.#....] (0,2,4,5,6,7,8,9) (0,1,2,3) (5,6) (0,6,8) (4,6) (0,2,3,6,7,8) (1,4,5,8,9) (0,1,2,3,4,5,6,9) (0,1,2,4,5,6,7,8) (1,3,4,5,7) (0,1,5,6,8) (1,2,3,4,5,7,8,9) (1,3,5,6,8,9) {236,237,236,240,74,93,90,61,64,52}
[.#..#.###] (0,2,3,5,8) (1,2,5) (1,2,3,4,7,8) (1,3) (1,2,4,6,7,8) (1,2,3,4,6,8) (2,3,4,5,6,7,8) (3,5,7,8) (0,2,4,8) (0,2,5,6,8) {126,41,170,163,59,143,38,53,186}
[.###] (0,2) (2,3) (1,2,3) (1,2) {10,23,48,25}
[.#.##..#] (0,2,4,7) (2,3,5,6,7) (4,6) (0,1,3,6) (2,6) (3) (0,1,3,4,5,7) (0,7) (0,2,3,4,6) {47,22,169,181,45,157,191,175}
[#..#.#.] (0,1,6) (0,1,5) (0,6) (0,1,3,4,5,6) (0,2,3,4,5) (1,2,3,4) (0,2,3,5,6) (2,3,5) {185,37,41,55,33,46,175}
[..#.##...#] (1,2,3,4,5,6,7,8) (0,2,4,6,8,9) (0,1,2,3,4,5,6,7,9) (2,7) (4,5,6) (0,2,4,5,8) (1,3,4,5,6,8,9) (1,2,3,4,5,6,7) {35,39,205,39,80,77,61,183,28,19}
[...##.] (1,2,3,4) (3,4) (1,2,3,4,5) (1,3) (0,1,2,3) (0,5) (2,4,5) {20,41,41,61,54,47}

View File

@@ -0,0 +1,3 @@
[.##.] (3) (1,3) (2) (2,3) (0,2) (0,1) {3,5,4,7}
[...#.] (0,2,3,4) (2,3) (0,4) (0,1,2) (1,2,3,4) {7,5,12,7,2}
[.###.#] (0,1,2,3,4) (0,3,4) (0,1,2,4,5) (1,2) {10,11,11,5,10,5}

576
2025/inputs/11_1.txt Normal file
View File

@@ -0,0 +1,576 @@
nzm: rdg art kvn ljd nrj
pvs: kmc fxz njx amt
ext: xfz inf kzr
hwq: jpw yjw vkt
ygr: wtu vbc hkc
gly: ujv mtz zcc
bjl: blz pmb
cst: uej kcg
zqw: dta udx fhr slm qsa xsm yif ych wcj hbl xth crj fjy ebp piy snu eyt cpz gqb nwk jjt kfd
tyl: rzk wcc zti jex eqn xbm uqa ceu mgw urj gvj iel zuh
llk: aij
rby: rsc
waa: rae bsg
rcu: art kvn nrj
sev: drf tod
tqj: ydc fzm
eep: xlo poa iqd
xas: lws xdb qbt
cfg: uzb
bcg: jaf zpm oql
zqg: xsg hsq
tqb: vic zle tyl hnh
wgu: doq ekw jyi
ned: kzx lvb tza idx
vtt: gls rvi ppv otq
lky: wfk rpg aij
wcc: pxu zel bth
lqv: njx amt kmc fxz opq
led: hkc yzo wtu vbc
vks: cfy zud
hck: kzx lvb tza
loe: lym
zko: qya
tod: nre fxv
fxv: fkd ekg mmm xba
qjj: hud fkd ekg mmm xba
sjw: you vkz
pnj: hwq mot ydw
ydv: kzt ssj vwa
leu: qbt
ljn: rcf fmw
kuy: tyl hnh ibk vic
ezr: vrk vwa
pfr: vap
zpo: sit sfh twt odd
mlr: kmc fxz
ydw: jpw yjw pha vkt
ttd: bjl hkc
rgn: zud dzj
snu: hvd liz
vbc: pmb mmx
ihv: ibk vic
vgi: idx
rwa: fkd
sud: yzb hky
fhb: jru mrb pps
fsi: byp svo ezv vsa
fkd: roj kvk dio zwl vle nsa oxj wyb
cfy: ffo pvs ytq
nbu: out
lru: ipg imm hrs
ovm: zle hnh
rsk: mlx
ooq: csk
egg: uzb jaf oql qqh
lry: rae
zqx: twb xyk rut
brt: kio cgz
msc: mmm ekg hud fkd
kzx: gcv akw hng
twb: fdf rja sjw
vhs: sxj
fdf: vkz iqd
wew: vgz gls otq
chj: kpx xiw
qeu: dtq xsl rfn
rfn: qey tqb eza fjn
wzr: you poa xlo
ghx: xsf jvu aid qeu
zrm: uej hzq
zuh: kxh vup sir
nqd: mrb tbx pps gka
zih: njx fxz amt opq
ngw: fzc zyv gbx
pcz: kvb
zxv: hng gcv
lsp: cqq pfr ibh
pha: poa vkz iqd you
oea: qbt lws
kme: air
nax: vad kpx xiw
qsa: bcg egg cfg
cat: ewt wew
njx: bat fdj nsw chj wyq fam iqk qgq omu kiv ovi dup
qya: bdb qjj mof
twt: owm
ail: amt njx opq
gtk: out
oul: xdv
ryw: qmg ntj
wqz: wrc ngy
lit: wzr fdf rja sjw
ibk: urj pjr cfs ceu mgw eqn cas uqa xbm rzk ktv zti
rjc: zup rsk
ych: lky cvz ilm
hud: roj xuu ibr iua ybi
tvp: jfy hyh eip qmg ntj
inv: qjj bdb
ykn: tak zto qei
epu: vtc edy rgn
hzb: vee
jpw: poa iqd
urj: ucy gbg pdi ygy bjo
ybi: awi
vkz: fmf waa dcd eje gly ihh
pps: ehx
qbt: kmc amt
iua: isx trq res shq
iel: bth eth
imj: mmm fkd ekg
ipg: iew ypy
fzm: vua
piy: ned
nre: mmm ekg hud
kvk: dac hky
nrj: out
thp: hnh tyl ibk zle vic
iqd: wjs fpr hzb fmf lry dot waa eje lzu mgf
ljd: out
zle: jex cas eqn uqa yla rzk ktv wcc zti pjr urj gvj iel zuh rle ceu mgw oha
zel: wmu ijr
lzu: rae
pgl: xlo you vkz poa
bjt: eip
foo: pqh vfu drf
ngy: jac wvw
tnb: tor ooq pyq gai
iew: leu whw xas oea
zwg: wrc ngy etz
rzk: kxh cnw mjp sir
fxz: qgq brt huy gav wyq iqk fam omu kiv ovi kmq nax dup bat muk fdj nsw
wmu: bkk
cpz: ygr
ucs: vkz you
jla: uuf thp
jaf: akw hng gcv
xoj: vic tyl zle
cqq: dlp vap
ffo: opq kmc amt fxz
urv: vap dlp qwf
zfn: dac
oyv: vic zle tyl
rbm: pvh gwk jrh
xlx: rvi
icb: eep yby
vub: njx opq
qwf: gcv akw hng
esc: fmw
tix: fxz amt
wyb: hky
oql: hng akw
yla: nkv hgb equ
zpm: hng gcv
xba: utf kvh ajc sud zov zwl ybi oxj loe wyb dio nsa uvr vle
dfp: etz wrc baq
vap: hng
rja: vkz iqd poa you xlo
bsg: fog dpl bip
sfu: gbx tua zyv
dzz: vua tnb gzy
hvd: nmx
muk: bjt tvp ryw dyt
ckt: vkz iqd poa
uuf: ibk zle hnh tyl vic
air: oyv
slm: ktn hvd liz
tqf: onm ius msc
rae: bip
roj: zqx ojs oyj qph
eqn: tqf pty guo
kzr: ail tix
ydc: gzy tnb
iqk: qic ote rbm
xsl: tqb fjn uwy eza
qph: xyk lit
shq: zza mnm zbd ucs
kcg: out
pqh: rrp
xuu: res
qfl: hsq ifm xsg tab
gai: oqt azy
vua: hjl pyq
rut: rja
jex: bjo
bws: qjj
fog: fgo ykr fhb gda
hqe: iew dlk ypy
utf: lym
qqh: hng akw
gbg: sev spq foo
ktv: sir kxh vup cnw mjp
nfn: gcv hng akw
qei: ngw
hrs: iew
whw: qbt xdb
rdg: out
pmb: gcv akw hng
gcv: ssm nli rhl tuj zfe kvs tgh zqg big lru twn glg ykn qfl jts dyy
otq: xba mmm
spq: pqh tod
gzy: gai ooq hjl
jvu: dtq rfn
sfd: uri lkc
isx: ucs mnm zza zbd
vbg: nbu viv
xem: cmi edy
ifd: dzz rsc fzm
kmq: rdt
tgf: jyi
alt: poa vkz you
gbx: qzi mlr qrq fyo
pkw: uqr lsp
uri: ibh pfr urv
ucy: sev spq
dhh: zle hnh tyl vic
pty: msc ius kdz onm
fam: joh
kzt: nzm
ifm: sxj ext
ijr: rwa hal bkk
tak: fft
onm: fkd ekg
eje: rby tqj app
nsa: res shq trq
xyk: wzr fdf sjw
qrq: amt
ykr: pps gka mrb jru
uwy: vic zle tyl hnh
ygy: yhs spq
xsf: rfn dtq xsl
lvv: uuf thp
ceu: zel
vee: ydv xgp
lws: opq fxz njx kmc
tbg: bws inv
fee: kmc fxz njx
mtz: ezr zfy
huy: tvp dyt
ibr: fsi urt awi
rfr: sjw
ojs: rut rfr
twn: imm hqe hrs
yjw: xlo vkz poa
vft: kzt ssj eha
baq: wvw jac yoy
fyo: amt kmc fxz
urt: svo byp vsa
sbp: hng
kiv: wec kme
sir: rqx cat zgj pws
bat: ghx
pws: syu vtt xlx
gwk: zne jla lvv gpg
lvb: hng gcv
svr: zqw ino ugt
doq: fqp ljn nrr
jyi: esc nrr
gzj: xfz
hgb: zko
tua: pjd mlr qrq fyo
ppv: hud fkd xba
bwi: epu xem
ytq: amt kmc opq
aij: akw
bfr: xem nnd
kvs: tab
rle: pty
ehx: out
dio: awi urt fsi
crj: hck vgi ned
qth: ekg fkd xba mmm
xsg: ext
zgj: vtt wew syu
hkc: mmx blz
wqi: gcv akw
ujv: vft
owm: njx fxz amt
ewt: otq rvi gls
ekw: esc ljn nrr
zti: guo
xsr: uej
cas: eth
ymz: biy
kvn: out
fmw: nbu xdv
idx: gcv hng
xbm: zda hgb nkv
mot: pha jpw
gka: biw gtk
hky: pgl olf
pyq: oqt
bth: ijr
dgr: vtc rgn
pdi: yhs spq
uvr: hky dac
rdf: out
mgf: tqj rby
cnw: rqx zgj cat
zbd: iqd xlo
chp: tyl zle
cdw: ngw sfu fft
vrk: jyh rcu
mlx: vub
tuj: dgr xem nnd epu
jrh: gpg lvv
gvj: brb zel
azy: out
qzi: fxz amt njx opq
jjt: led ttd
xjo: mot ydw
yby: xlo you iqd vkz
amt: brt huy gav
fhr: vgi ned
bjo: yhs ria
cvz: rpg pdn wqi
dta: uba led rpo
uqr: ibh pfr urv cqq
rpr: ibk
rqx: vtt syu ewt
imm: iew
bkk: hud ekg
hbl: ktn liz
jru: rdf
xdb: opq
jac: zrm txj cst xsr
hyh: ovm dhh
awi: svo aoq ezv
eyt: pkw sfd zhj
eha: nzm
oyj: rut xyk lit twb rfr
syu: otq ppv rvi
ktn: dfy xll sbp nfn nmx
cjv: xoj kuy oyv rpr
zov: zqx ojs oyj qph
nrr: oul vbg fmw
rpg: hng
svo: afw
dfy: akw
tza: akw hng
wjs: dfp wqz zwg
qgq: bjt
wnc: hwq mot ydw
nkv: tbg agm zko
nhc: jvu xsf aid
oha: zda kzk equ
ria: drf tod
eza: vic
xfz: lqv
dfb: wgu fml
agm: bws qya flm
cgz: air phg
bdb: fkd
nnd: edy rgn vks cmi
gda: tbx jru gka pps
omu: kpx
blz: akw gcv
dur: zpo rsk
chb: dfp
dup: nhc joh
ibh: zxv
vwa: jyh nzm rcu
wec: phg air cjv
fzc: fyo qzi pjd mlr
uqa: ucy pdi ygy bjo
tab: ext gzj ypl
ajc: ojs oyj qph
hdi: tyl zle ibk
mgw: ygy bjo gbg
lsx: you poa vkz
zhj: lsp uri lkc
dyy: hqe imm
vup: pws
ius: mmm xba
rrp: hud fkd xba
hal: fkd ekg mmm xba
vad: lwp
poa: dcd dot fmf waa chb lzu gly kpb ihh fpr wra gmr ejc
dyt: hyh
zcc: xgp ydv zfy
ujp: tyl vic
oxj: tsp lym
pjr: vup
txj: uej kcg hzq
rlv: fog dpl bip
pxf: tsp
sxj: kzr
tor: oqt
qmg: hdi ovm ihv
cfs: cnw vup mjp sir
yoy: zrm cst txj
pvh: gpg lvv jla zne
qic: pvh gwk pcz jrh
wra: fml tgf
wia: pvh pcz
wvw: xsr cst
phg: kuy rpr
udx: bcg
nwk: rpo led ttd uba
afw: lsx yby
eth: nkl ijr wmu
xlo: ktj dfb waa fmf wjs dcd gmr
zup: sit odd mlx twt
uba: wtu bjl vbc yzo
gqb: led uba ttd
odd: fee
res: ckt
ypl: inf
ypy: sjh whw
tsp: pnj wnc xjo
dlp: gcv
dlk: leu xas whw
nsw: rdt ote wia rbm
vsa: afw pdf icb
dtq: uwy eza qey tqb
pdn: akw gcv
ihh: wgu tgf
drf: imj
eiw: ydc dzz
hnh: mgw cfs ceu oha urj pjr wcc rzk yla cas eqn xbm
ugt: dta crj ebp fhr udx eyt yif ych cpz wcj gqb hbl xth nwk jjt kfd
vic: zuh zti rle jex yla ceu ktv iel
fjy: ilm
trq: zza mnm
ssm: epu
kfd: egg zcd cfg
fml: doq jyi
edy: cfy
zza: poa iqd vkz you
jyh: rdg ljd kvn nrj
xsm: llk lky
hjl: oqt csk azy
mnm: you
brb: ijr nkl
aoq: afw pdf icb
jkz: vic tyl zle ibk
zto: sfu fft
mmx: hng akw gcv
fdj: cgz kio wec
rvi: hud
hng: qrc glg bwi dyy kvs cuh big ssm nli
kvh: ojs oyj
kmc: wyq huy kiv fam fdj
big: biy dur rjc
lym: xjo wnc
vkt: xlo you vkz iqd
oqt: out
you: kpb ihh mgf gly eje chb lry dfb ejc wjs fpr
zfy: kzt eha
eip: ovm ujp
yif: cfg egg zcd bcg
zwl: qph oyj
pdf: eep lsx
xuw: njx kmc fxz
nkl: rwa hal
pvf: wnc
equ: tbg zko
jts: dgr
nli: imm hqe
ovi: ghx joh
ati: out
sit: vub
ndr: shq res isx
kvb: uuf jkz
xgp: kzt ssj eha vwa
nmx: gcv akw
ino: ebp nwk fhr slm snu eyt ych wcj dta gqb
kpb: wqz dfp
app: fzm dzz
sfh: fee vub
xll: hng
vtc: dzj
liz: dfy xll sbp nfn nmx
kxh: rqx cat
gav: dyt ryw bjt
mrb: gtk ati biw
ilm: wqi
ote: gwk pvh
dac: pgl alt
ejc: mtz ujv zcc
biw: out
glg: biy dur rjc
bip: fhb gda ykr
flm: mof qjj qth bdb
wrc: jac
kzk: tbg
qey: ibk
xiw: lwp nuc kgu chp
guo: ius
yzo: pmb
fft: tua zyv fzc
kgu: zle
gpg: jkz thp
xdv: out
zfe: rjc biy
jnc: ifm hsq xsg
biy: zup rsk zpo
vle: lym pvf
dzj: xuw zih ytq pvs
rhl: cdw zto
akw: kvs tgh bfr zqg nli jnc ssm tuj rhl zfe cuh qfl dyy bwi ykn qrc big ymz lru twn
yzb: alt
hzq: out
rsc: gzy tnb vua
ebp: bcg cfg
dot: rlv bsg rae
nuc: vic
mmm: wyb loe nsa vle ybi iua ndr sud zov zfn pxf roj xuu kvh utf
tgh: vhs tab xsg
wfk: akw gcv
byp: afw pdf icb
inf: ail lqv
dcd: vee zcc
etz: yoy
aid: xsl
mof: ekg fkd mmm
kio: cjv phg
sjh: lws
mjp: rqx zgj cat
jfy: hdi ovm ihv
ssj: nzm
kdz: fkd mmm
art: out
gls: fkd hud xba
opq: nsw qgq iqk chj
kpx: chp nuc
uzb: hng gcv
vfu: rrp nre imj fxv
cmi: cfy zud
wyq: nhc ghx joh
csk: out
vgz: ekg mmm xba
wtu: mmx
hsq: ypl ext gzj
ekg: ybi oxj vle roj kvh ajc sud kvk zfn zwl pxf
fjn: tyl zle ibk vic
lkc: pfr urv cqq
fqp: rcf vbg
cuh: rjc
zcd: uzb jaf zpm qqh
fpr: rby ifd eiw app
zud: pvs ffo xuw
uej: out
ktj: tqj eiw rby
rpo: yzo hkc vbc wtu
lwp: tyl hnh ibk vic
fgo: pps jru
gmr: rae bsg rlv
zyv: pjd qrq
ezv: pdf
ntj: dhh ujp ovm hdi ihv
rcf: xdv nbu
joh: xsf aid
viv: out
pjd: opq fxz kmc njx
zda: agm tbg
zne: jkz uuf
yhs: vfu drf tod pqh
xth: zhj sfd pkw
qrc: cdw
wcj: zhj
dpl: fgo nqd gda
olf: you iqd xlo
fmf: wqz dfp
rdt: gwk
pxu: nkl
tbx: ati ehx biw rdf gtk

View File

@@ -0,0 +1,10 @@
aaa: you hhh
you: bbb ccc
bbb: ddd eee
ccc: ddd eee fff
ddd: ggg
eee: out
fff: out
ggg: out
hhh: ccc fff iii
iii: out