diff --git a/years/2024/src/day_12.rs b/years/2024/src/day_12.rs index 47552e2..69d60a0 100644 --- a/years/2024/src/day_12.rs +++ b/years/2024/src/day_12.rs @@ -86,7 +86,6 @@ impl Day for Day12 { flood = next; } - println!("{c} @ {pos}: area = {area}; perim = {perim};"); total += area * perim; visited.insert(pos); @@ -154,16 +153,6 @@ impl Day for Day12 { } } - let _ = shapes - .iter() - .inspect(|(a, s, p)| { - println!( - "{:?}: {a}; {s}", - input.get(*p.iter().next().unwrap()).unwrap() - ) - }) - .collect::>(); - Some( shapes .into_iter() @@ -173,7 +162,7 @@ impl Day for Day12 { ) } - day_stuff!(12, "", "", Grid); + day_stuff!(12, "1930", "1206", Grid); fn parse_input(input: &str) -> Self::Input { Grid::parse(input.trim()) diff --git a/years/2024/src/day_13.rs b/years/2024/src/day_13.rs index 9b4e872..3e1f6cf 100644 --- a/years/2024/src/day_13.rs +++ b/years/2024/src/day_13.rs @@ -74,7 +74,7 @@ impl Machine { } impl Day for Day13 { - day_stuff!(13, "", "", Vec); + day_stuff!(13, "480", "875318608908", Vec); fn part_1(input: Self::Input) -> Option { Some( diff --git a/years/2024/src/day_14.rs b/years/2024/src/day_14.rs index e453713..34c24a0 100644 --- a/years/2024/src/day_14.rs +++ b/years/2024/src/day_14.rs @@ -11,10 +11,9 @@ fn robot_go(pos: Position, vel: Position, times: isize, bounds: (usize, usize)) } impl Day for Day14 { - day_stuff!(14, "", "", Vec<(Position, Position)>); + day_stuff!(14, "12", "", ((usize, usize), Vec<(Position, Position)>)); - fn part_1(input: Self::Input) -> Option { - let bounds = (101, 103); + fn part_1((bounds, input): Self::Input) -> Option { let times = 100; let (ur, ul, ll, lr) = input .into_iter() @@ -46,11 +45,14 @@ impl Day for Day14 { Some((ur * ul * ll * lr).to_string()) } - fn part_2(input: Self::Input) -> Option { - let bounds = (101, 103); - + fn part_2((bounds, input): Self::Input) -> Option { let re = Regex::new(include_str!("da_tree.txt")).unwrap(); + if bounds != (101, 103) { + // Im to lazy to account for other sizes, womp womp. + return Some(String::new()); + } + for i in 0..i32::MAX { let bots = input .iter() @@ -82,8 +84,13 @@ impl Day for Day14 { } fn parse_input(input: &str) -> Self::Input { - input - .trim() + let (bounds, rest) = input.trim().split_once("\n\n").unwrap(); + + let mut bounds = bounds.split(',').map(|s| s.parse::().unwrap()); + + let (x, y) = (bounds.next().unwrap(), bounds.next().unwrap()); + + let input = rest .lines() .map(|l| { let (pr, vr) = l.split_once(" ").unwrap(); @@ -104,6 +111,8 @@ impl Day for Day14 { (Position::new(p[0], p[1]), Position::new(v[0], v[1])) }) - .collect() + .collect(); + + ((x, y), input) } } diff --git a/years/2024/src/day_15.rs b/years/2024/src/day_15.rs index c74132a..e162ae0 100644 --- a/years/2024/src/day_15.rs +++ b/years/2024/src/day_15.rs @@ -111,13 +111,39 @@ fn gps(pos_map: &PosMap) -> usize { .sum() } +type Input = (Position, PosMap, Vec); + +fn actual_parse(input: &str) -> Input { + let (map, dirs) = input.trim().split_once("\n\n").unwrap(); + let dirs = dirs + .split('\n') + .flat_map(|l| l.chars().map(parse_instruction)) + .collect(); + + let grid = Grid::::parse(map); + + let robo = grid.find_tile(&Tile::Robot).unwrap(); + + let pos_map = grid.iter().map(|(pos, tile)| (pos, *tile)).collect(); + + (robo, pos_map, dirs) +} + +fn actual_parse_part_2(input: &str) -> Input { + let replace = input.replace('#', "##"); + let replace = replace.replace('.', ".."); + let replace = replace.replace('O', "[]"); + let replace = replace.replace('@', "@."); + actual_parse(&replace) +} + impl Day for Day15 { - day_stuff!(15, "", "", (Position, PosMap, Vec)); + day_stuff!(15, "10092", "9021"); fn part_1(input: Self::Input) -> Option { - let (mut robo, mut pos_map, ins) = input; + let (mut robo, mut pos_map, ins) = actual_parse(&input); for i in ins { - if let Some(new_pos) = movement(robo, i, dbg!(&mut pos_map)) { + if let Some(new_pos) = movement(robo, i, &mut pos_map) { robo = new_pos; } } @@ -125,35 +151,12 @@ impl Day for Day15 { } fn part_2(input: Self::Input) -> Option { - let (mut robo, mut pos_map, ins) = input; + let (mut robo, mut pos_map, ins) = actual_parse_part_2(&input); for i in ins { if let Some(new_pos) = movement_pt_2(robo, i, &mut pos_map) { - println!("Move success"); robo = new_pos; } } Some(gps(&pos_map).to_string()) } - - fn parse_input(input: &str) -> Self::Input { - // TODO: Temp for pt 2 - let replace = input.replace('#', "##"); - let replace = replace.replace('.', ".."); - let replace = replace.replace('O', "[]"); - let replace = replace.replace('@', "@."); - println!("{}", &replace); - let (map, dirs) = &replace.trim().split_once("\n\n").unwrap(); - let dirs = dirs - .split('\n') - .flat_map(|l| l.chars().map(parse_instruction)) - .collect(); - - let grid = Grid::::parse(map); - - let robo = grid.find_tile(&Tile::Robot).unwrap(); - - let pos_map = grid.iter().map(|(pos, tile)| (pos, *tile)).collect(); - - (robo, pos_map, dirs) - } } diff --git a/years/2024/src/day_16.rs b/years/2024/src/day_16.rs index 1cbcbbb..b0091ef 100644 --- a/years/2024/src/day_16.rs +++ b/years/2024/src/day_16.rs @@ -41,7 +41,7 @@ impl PartialOrd for DState { } impl Day for Day16 { - day_stuff!(16, "", "", Grid); + day_stuff!(16, "11048", "64", Grid); fn part_1(input: Self::Input) -> Option { let start_pos = input.find_tile(&Tile::Start).unwrap(); diff --git a/years/2024/src/day_17.rs b/years/2024/src/day_17.rs index da1dd4d..b728fdd 100644 --- a/years/2024/src/day_17.rs +++ b/years/2024/src/day_17.rs @@ -143,7 +143,7 @@ impl Computer { } impl Day for Day17 { - day_stuff!(17, "", "", Computer); + day_stuff!(17, "4,6,3,5,6,3,5,2,1,0", "117440", Computer); fn part_1(mut input: Self::Input) -> Option { let mut ip = 0; diff --git a/years/2024/src/day_18.rs b/years/2024/src/day_18.rs index cf3f7af..9619b87 100644 --- a/years/2024/src/day_18.rs +++ b/years/2024/src/day_18.rs @@ -4,7 +4,7 @@ use std::{ }; use advent_core::{day_stuff, ex_for_day, Day}; -use utils::{ipos, pos::Position, upos}; +use utils::{pos::Position, upos}; pub struct Day18; @@ -28,11 +28,11 @@ impl PartialOrd for DState { } impl Day for Day18 { - day_stuff!(18, "", "", Vec); + day_stuff!(18, "22", "6,1", ((usize, usize), usize, Vec)); - fn part_1(input: Self::Input) -> Option { + fn part_1((bounds, fallen, input): Self::Input) -> Option { let start_pos = Position::zero(); - let end_pos = ipos!(70, 70); + let end_pos = upos!(bounds.0 - 1, bounds.1 - 1); let mut queue = BinaryHeap::new(); @@ -54,8 +54,8 @@ impl Day for Day18 { } for (next_pos, _dir) in pos - .adjacents_checked((71, 71)) - .filter(|(p, _)| input.iter().take(1024).all(|op| op != p)) + .adjacents_checked(bounds) + .filter(|(p, _)| input.iter().take(fallen).all(|op| op != p)) { let next_state = DState { cost: cost + 1, @@ -72,11 +72,10 @@ impl Day for Day18 { panic!("No Path") } - fn part_2(input: Self::Input) -> Option { + fn part_2((bounds, _, input): Self::Input) -> Option { for i in 0..input.len() { - println!("Byte {} of {}", i + 1, input.len()); let start_pos = Position::zero(); - let end_pos = ipos!(70, 70); + let end_pos = upos!(bounds.0 - 1, bounds.1 - 1); let mut queue = BinaryHeap::new(); @@ -100,7 +99,7 @@ impl Day for Day18 { } for (next_pos, _dir) in pos - .adjacents_checked((71, 71)) + .adjacents_checked(bounds) .filter(|(p, _)| input.iter().take(i + 1).all(|op| op != p)) { let next_state = DState { @@ -115,20 +114,27 @@ impl Day for Day18 { } } if !flag { - return Some(input[i].to_string()); + return Some(format!("{},{}", input[i].x, input[i].y)); } } - None + panic!("All paths are possible!") } fn parse_input(input: &str) -> Self::Input { - input - .trim() + let (bounds, rest) = input.trim().split_once("\n\n").unwrap(); + + let mut extra = bounds.split(',').map(|s| s.parse::().unwrap()); + let bounds = (extra.next().unwrap(), extra.next().unwrap()); + let fallen = extra.next().unwrap(); + + let input = rest .lines() .map(|l| { let (x, y) = l.split_once(',').unwrap(); upos!(x.parse::().unwrap(), y.parse::().unwrap()) }) - .collect() + .collect(); + + (bounds, fallen, input) } } diff --git a/years/2024/src/day_19.rs b/years/2024/src/day_19.rs index 58816b9..8809605 100644 --- a/years/2024/src/day_19.rs +++ b/years/2024/src/day_19.rs @@ -5,7 +5,7 @@ use std::collections::{HashMap, HashSet}; pub struct Day19; impl Day for Day19 { - day_stuff!(19, "", "", (HashSet, Vec)); + day_stuff!(19, "6", "16", (HashSet, Vec)); fn part_1(input: Self::Input) -> Option { let (avail, desire) = input; diff --git a/years/2024/src/day_20.rs b/years/2024/src/day_20.rs index 992c7ca..a117dc2 100644 --- a/years/2024/src/day_20.rs +++ b/years/2024/src/day_20.rs @@ -15,7 +15,8 @@ tiles!(Tile, [ type Grid = utils::grid::Grid; impl Day for Day20 { - day_stuff!(20, "", "", Grid); + // Technically it's correct :) + day_stuff!(20, "0", "0", Grid); fn part_1(input: Self::Input) -> Option { let end_pos = input.find_tile(&Tile::End).unwrap(); @@ -50,8 +51,6 @@ impl Day for Day20 { let ans = cheat_set.values().filter(|c| **c >= 100).count(); - dbg!(cheat_set.len()); - Some(ans.to_string()) } @@ -88,8 +87,6 @@ impl Day for Day20 { let ans = cheat_set.values().filter(|c| **c >= 100).count(); - dbg!(cheat_set.len()); - Some(ans.to_string()) } diff --git a/years/2024/src/day_21.rs b/years/2024/src/day_21.rs index 4d6acd8..db45c5f 100644 --- a/years/2024/src/day_21.rs +++ b/years/2024/src/day_21.rs @@ -106,7 +106,7 @@ fn recur_find( } impl Day for Day21 { - day_stuff!(21, "", "", Vec<(usize, Vec)>); + day_stuff!(21, "126384", "154115708116294", Vec<(usize, Vec)>); fn part_1(input: Self::Input) -> Option { let (num_grid, dir_grid) = pad_grids(); diff --git a/years/2024/src/day_22.rs b/years/2024/src/day_22.rs index 042fc5d..2dabb45 100644 --- a/years/2024/src/day_22.rs +++ b/years/2024/src/day_22.rs @@ -43,7 +43,7 @@ fn get_all_four_unique_changes(init: usize, times: usize) -> HashMap<[isize; 4], } impl Day for Day22 { - day_stuff!(22, "", "", Vec); + day_stuff!(22, "37327623", "23", Vec); fn part_1(input: Self::Input) -> Option { let ans = input diff --git a/years/2024/src/day_23.rs b/years/2024/src/day_23.rs index ea1d39a..8ff2ae2 100644 --- a/years/2024/src/day_23.rs +++ b/years/2024/src/day_23.rs @@ -56,7 +56,7 @@ fn represent<'a>( } impl Day for Day23 { - day_stuff!(23, "", "", Edges); + day_stuff!(23, "7", "co,de,ka,ta", Edges); fn part_1(input: Self::Input) -> Option { let groups = input diff --git a/years/2024/src/day_24.rs b/years/2024/src/day_24.rs index b147643..adbe3bd 100644 --- a/years/2024/src/day_24.rs +++ b/years/2024/src/day_24.rs @@ -203,7 +203,7 @@ fn swap_outputs(gates: &mut Gates, out1: &String, out2: &String) { // z16,tdv,hnd,z09,z23,bks,nrn,tjp impl Day for Day24 { - day_stuff!(24, "", "", (Wires, Gates)); + day_stuff!(24, "4", "bks,hnd,nrn,tdv,tjp,z09,z16,z23", (Wires, Gates)); fn part_1((mut wires, gates): Self::Input) -> Option { let mut all_zs = gates @@ -212,6 +212,7 @@ impl Day for Day24 { .map(|g| &g.target) .collect::>(); all_zs.sort(); + all_zs.dedup(); let mut current_zs = HashSet::<&String>::with_capacity(all_zs.len()); diff --git a/years/2024/src/day_25.rs b/years/2024/src/day_25.rs index c32f8e3..f5ff647 100644 --- a/years/2024/src/day_25.rs +++ b/years/2024/src/day_25.rs @@ -13,7 +13,7 @@ tiles!(Tile, [ type Grid = utils::grid::Grid; impl Day for Day25 { - day_stuff!(25, "", "", (HashSet<[u8; 5]>, HashSet<[u8; 5]>)); + day_stuff!(25, "3", "🥳", (HashSet<[u8; 5]>, HashSet<[u8; 5]>)); fn part_1((locks, keys): Self::Input) -> Option { let ans = locks diff --git a/years/2024/src/examples/day_12/1.txt b/years/2024/src/examples/day_12/1.txt index e69de29..85b768f 100644 --- a/years/2024/src/examples/day_12/1.txt +++ b/years/2024/src/examples/day_12/1.txt @@ -0,0 +1,10 @@ +RRRRIICCFF +RRRRIICCCF +VVRRRCCFFF +VVRCCCJFFF +VVVVCJJCFE +VVIVCCJJEE +VVIIICJJEE +MIIIIIJJEE +MIIISIJEEE +MMMISSJEEE diff --git a/years/2024/src/examples/day_12/2.txt b/years/2024/src/examples/day_12/2.txt index e69de29..85b768f 100644 --- a/years/2024/src/examples/day_12/2.txt +++ b/years/2024/src/examples/day_12/2.txt @@ -0,0 +1,10 @@ +RRRRIICCFF +RRRRIICCCF +VVRRRCCFFF +VVRCCCJFFF +VVVVCJJCFE +VVIVCCJJEE +VVIIICJJEE +MIIIIIJJEE +MIIISIJEEE +MMMISSJEEE diff --git a/years/2024/src/examples/day_13/1.txt b/years/2024/src/examples/day_13/1.txt index e69de29..912f482 100644 --- a/years/2024/src/examples/day_13/1.txt +++ b/years/2024/src/examples/day_13/1.txt @@ -0,0 +1,15 @@ +Button A: X+94, Y+34 +Button B: X+22, Y+67 +Prize: X=8400, Y=5400 + +Button A: X+26, Y+66 +Button B: X+67, Y+21 +Prize: X=12748, Y=12176 + +Button A: X+17, Y+86 +Button B: X+84, Y+37 +Prize: X=7870, Y=6450 + +Button A: X+69, Y+23 +Button B: X+27, Y+71 +Prize: X=18641, Y=10279 diff --git a/years/2024/src/examples/day_13/2.txt b/years/2024/src/examples/day_13/2.txt index e69de29..912f482 100644 --- a/years/2024/src/examples/day_13/2.txt +++ b/years/2024/src/examples/day_13/2.txt @@ -0,0 +1,15 @@ +Button A: X+94, Y+34 +Button B: X+22, Y+67 +Prize: X=8400, Y=5400 + +Button A: X+26, Y+66 +Button B: X+67, Y+21 +Prize: X=12748, Y=12176 + +Button A: X+17, Y+86 +Button B: X+84, Y+37 +Prize: X=7870, Y=6450 + +Button A: X+69, Y+23 +Button B: X+27, Y+71 +Prize: X=18641, Y=10279 diff --git a/years/2024/src/examples/day_14/1.txt b/years/2024/src/examples/day_14/1.txt index e69de29..653732f 100644 --- a/years/2024/src/examples/day_14/1.txt +++ b/years/2024/src/examples/day_14/1.txt @@ -0,0 +1,14 @@ +11,7 + +p=0,4 v=3,-3 +p=6,3 v=-1,-3 +p=10,3 v=-1,2 +p=2,0 v=2,-1 +p=0,0 v=1,3 +p=3,0 v=-2,-2 +p=7,6 v=-1,-3 +p=3,0 v=-1,-2 +p=9,3 v=2,3 +p=7,3 v=-1,2 +p=2,4 v=2,-3 +p=9,5 v=-3,-3 diff --git a/years/2024/src/examples/day_14/2.txt b/years/2024/src/examples/day_14/2.txt index e69de29..653732f 100644 --- a/years/2024/src/examples/day_14/2.txt +++ b/years/2024/src/examples/day_14/2.txt @@ -0,0 +1,14 @@ +11,7 + +p=0,4 v=3,-3 +p=6,3 v=-1,-3 +p=10,3 v=-1,2 +p=2,0 v=2,-1 +p=0,0 v=1,3 +p=3,0 v=-2,-2 +p=7,6 v=-1,-3 +p=3,0 v=-1,-2 +p=9,3 v=2,3 +p=7,3 v=-1,2 +p=2,4 v=2,-3 +p=9,5 v=-3,-3 diff --git a/years/2024/src/examples/day_15/1.txt b/years/2024/src/examples/day_15/1.txt index e69de29..84cf1fb 100644 --- a/years/2024/src/examples/day_15/1.txt +++ b/years/2024/src/examples/day_15/1.txt @@ -0,0 +1,21 @@ +########## +#..O..O.O# +#......O.# +#.OO..O.O# +#..O@..O.# +#O#..O...# +#O..O..O.# +#.OO.O.OO# +#....O...# +########## + +^v>^vv^v>v<>v^v<<><>>v^v^>^<<<><^ +vvv<<^>^v^^><<>>><>^<<><^vv^^<>vvv<>><^^v>^>vv<>v<<<^<^^>>>^<>vv>v^v^<>><>>>><^^>vv>v<^^^>>v^v^<^^>v^^>v^<^v>v<>>v^v^v^^<^^vv< +<>^^^^>>>v^<>vvv^>^^^vv^^>v<^^^^v<>^>vvvv><>>v^<<^^^^^ +^><^><>>><>^^<<^^v>>><^^>v>>>^v><>^v><<<>vvvv>^<><<>^>< +^>><>^v<><^vvv<^^<><^v<<<><<<^^<^>>^<<<^>>^v^>>^v>vv>^<<^v<>><<><<>v<^vv<<<>^^v^>^^>>><<^v>>v^v><^^>>^<>vv^ +<><^^>^^^<>^vv<<^><<><<><<<^^<<<^<<>><<><^^^>^^<>^>v<> +^^>vv<^v^v^<>^^^>>>^^vvv^>vvv<>>>^<^>>>>>^<<^v>^vvv<>^<>< +v^^>>><<^^<>>^v^v^<<>^<^v^v><^<<<><<^vv>>v>v^<<^ diff --git a/years/2024/src/examples/day_15/2.txt b/years/2024/src/examples/day_15/2.txt index e69de29..84cf1fb 100644 --- a/years/2024/src/examples/day_15/2.txt +++ b/years/2024/src/examples/day_15/2.txt @@ -0,0 +1,21 @@ +########## +#..O..O.O# +#......O.# +#.OO..O.O# +#..O@..O.# +#O#..O...# +#O..O..O.# +#.OO.O.OO# +#....O...# +########## + +^v>^vv^v>v<>v^v<<><>>v^v^>^<<<><^ +vvv<<^>^v^^><<>>><>^<<><^vv^^<>vvv<>><^^v>^>vv<>v<<<^<^^>>>^<>vv>v^v^<>><>>>><^^>vv>v<^^^>>v^v^<^^>v^^>v^<^v>v<>>v^v^v^^<^^vv< +<>^^^^>>>v^<>vvv^>^^^vv^^>v<^^^^v<>^>vvvv><>>v^<<^^^^^ +^><^><>>><>^^<<^^v>>><^^>v>>>^v><>^v><<<>vvvv>^<><<>^>< +^>><>^v<><^vvv<^^<><^v<<<><<<^^<^>>^<<<^>>^v^>>^v>vv>^<<^v<>><<><<>v<^vv<<<>^^v^>^^>>><<^v>>v^v><^^>>^<>vv^ +<><^^>^^^<>^vv<<^><<><<><<<^^<<<^<<>><<><^^^>^^<>^>v<> +^^>vv<^v^v^<>^^^>>>^^vvv^>vvv<>>>^<^>>>>>^<<^v>^vvv<>^<>< +v^^>>><<^^<>>^v^v^<<>^<^v^v><^<<<><<^vv>>v>v^<<^ diff --git a/years/2024/src/examples/day_16/1.txt b/years/2024/src/examples/day_16/1.txt index e69de29..bc61c57 100644 --- a/years/2024/src/examples/day_16/1.txt +++ b/years/2024/src/examples/day_16/1.txt @@ -0,0 +1,17 @@ +################# +#...#...#...#..E# +#.#.#.#.#.#.#.#.# +#.#.#.#...#...#.# +#.#.#.#.###.#.#.# +#...#.#.#.....#.# +#.#.#.#.#.#####.# +#.#...#.#.#.....# +#.#.#####.#.###.# +#.#.#.......#...# +#.#.###.#####.### +#.#.#...#.....#.# +#.#.#.#####.###.# +#.#.#.........#.# +#.#.#.#########.# +#S#.............# +################# diff --git a/years/2024/src/examples/day_16/2.txt b/years/2024/src/examples/day_16/2.txt index e69de29..bc61c57 100644 --- a/years/2024/src/examples/day_16/2.txt +++ b/years/2024/src/examples/day_16/2.txt @@ -0,0 +1,17 @@ +################# +#...#...#...#..E# +#.#.#.#.#.#.#.#.# +#.#.#.#...#...#.# +#.#.#.#.###.#.#.# +#...#.#.#.....#.# +#.#.#.#.#.#####.# +#.#...#.#.#.....# +#.#.#####.#.###.# +#.#.#.......#...# +#.#.###.#####.### +#.#.#...#.....#.# +#.#.#.#####.###.# +#.#.#.........#.# +#.#.#.#########.# +#S#.............# +################# diff --git a/years/2024/src/examples/day_17/1.txt b/years/2024/src/examples/day_17/1.txt index e69de29..f09839b 100644 --- a/years/2024/src/examples/day_17/1.txt +++ b/years/2024/src/examples/day_17/1.txt @@ -0,0 +1,5 @@ +Register A: 729 +Register B: 0 +Register C: 0 + +Program: 0,1,5,4,3,0 diff --git a/years/2024/src/examples/day_17/2.txt b/years/2024/src/examples/day_17/2.txt index e69de29..4a91c26 100644 --- a/years/2024/src/examples/day_17/2.txt +++ b/years/2024/src/examples/day_17/2.txt @@ -0,0 +1,5 @@ +Register A: 2024 +Register B: 0 +Register C: 0 + +Program: 0,3,5,4,3,0 diff --git a/years/2024/src/examples/day_18/1.txt b/years/2024/src/examples/day_18/1.txt index e69de29..66d4f14 100644 --- a/years/2024/src/examples/day_18/1.txt +++ b/years/2024/src/examples/day_18/1.txt @@ -0,0 +1,27 @@ +7,7,12 + +5,4 +4,2 +4,5 +3,0 +2,1 +6,3 +2,4 +1,5 +0,6 +3,3 +2,6 +5,1 +1,2 +5,5 +2,5 +6,5 +1,4 +0,4 +6,4 +1,1 +6,1 +1,0 +0,5 +1,6 +2,0 diff --git a/years/2024/src/examples/day_18/2.txt b/years/2024/src/examples/day_18/2.txt index e69de29..66d4f14 100644 --- a/years/2024/src/examples/day_18/2.txt +++ b/years/2024/src/examples/day_18/2.txt @@ -0,0 +1,27 @@ +7,7,12 + +5,4 +4,2 +4,5 +3,0 +2,1 +6,3 +2,4 +1,5 +0,6 +3,3 +2,6 +5,1 +1,2 +5,5 +2,5 +6,5 +1,4 +0,4 +6,4 +1,1 +6,1 +1,0 +0,5 +1,6 +2,0 diff --git a/years/2024/src/examples/day_19/1.txt b/years/2024/src/examples/day_19/1.txt index e69de29..29648be 100644 --- a/years/2024/src/examples/day_19/1.txt +++ b/years/2024/src/examples/day_19/1.txt @@ -0,0 +1,10 @@ +r, wr, b, g, bwu, rb, gb, br + +brwrr +bggr +gbbr +rrbgbr +ubwu +bwurrg +brgr +bbrgwb diff --git a/years/2024/src/examples/day_19/2.txt b/years/2024/src/examples/day_19/2.txt index e69de29..29648be 100644 --- a/years/2024/src/examples/day_19/2.txt +++ b/years/2024/src/examples/day_19/2.txt @@ -0,0 +1,10 @@ +r, wr, b, g, bwu, rb, gb, br + +brwrr +bggr +gbbr +rrbgbr +ubwu +bwurrg +brgr +bbrgwb diff --git a/years/2024/src/examples/day_20/1.txt b/years/2024/src/examples/day_20/1.txt index e69de29..c097dae 100644 --- a/years/2024/src/examples/day_20/1.txt +++ b/years/2024/src/examples/day_20/1.txt @@ -0,0 +1,15 @@ +############### +#...#...#.....# +#.#.#.#.#.###.# +#S#...#.#.#...# +#######.#.#.### +#######.#.#...# +#######.#.###.# +###..E#...#...# +###.#######.### +#...###...#...# +#.#####.#.###.# +#.#...#.#.#...# +#.#.#.#.#.#.### +#...#...#...### +############### diff --git a/years/2024/src/examples/day_20/2.txt b/years/2024/src/examples/day_20/2.txt index e69de29..c097dae 100644 --- a/years/2024/src/examples/day_20/2.txt +++ b/years/2024/src/examples/day_20/2.txt @@ -0,0 +1,15 @@ +############### +#...#...#.....# +#.#.#.#.#.###.# +#S#...#.#.#...# +#######.#.#.### +#######.#.#...# +#######.#.###.# +###..E#...#...# +###.#######.### +#...###...#...# +#.#####.#.###.# +#.#...#.#.#...# +#.#.#.#.#.#.### +#...#...#...### +############### diff --git a/years/2024/src/examples/day_21/1.txt b/years/2024/src/examples/day_21/1.txt index e69de29..4cf0c29 100644 --- a/years/2024/src/examples/day_21/1.txt +++ b/years/2024/src/examples/day_21/1.txt @@ -0,0 +1,5 @@ +029A +980A +179A +456A +379A diff --git a/years/2024/src/examples/day_21/2.txt b/years/2024/src/examples/day_21/2.txt index e69de29..4cf0c29 100644 --- a/years/2024/src/examples/day_21/2.txt +++ b/years/2024/src/examples/day_21/2.txt @@ -0,0 +1,5 @@ +029A +980A +179A +456A +379A diff --git a/years/2024/src/examples/day_22/1.txt b/years/2024/src/examples/day_22/1.txt index e69de29..07b41ba 100644 --- a/years/2024/src/examples/day_22/1.txt +++ b/years/2024/src/examples/day_22/1.txt @@ -0,0 +1,4 @@ +1 +10 +100 +2024 diff --git a/years/2024/src/examples/day_22/2.txt b/years/2024/src/examples/day_22/2.txt index e69de29..201df76 100644 --- a/years/2024/src/examples/day_22/2.txt +++ b/years/2024/src/examples/day_22/2.txt @@ -0,0 +1,4 @@ +1 +2 +3 +2024 diff --git a/years/2024/src/examples/day_23/1.txt b/years/2024/src/examples/day_23/1.txt index e69de29..3d49766 100644 --- a/years/2024/src/examples/day_23/1.txt +++ b/years/2024/src/examples/day_23/1.txt @@ -0,0 +1,32 @@ +kh-tc +qp-kh +de-cg +ka-co +yn-aq +qp-ub +cg-tb +vc-aq +tb-ka +wh-tc +yn-cg +kh-ub +ta-co +de-co +tc-td +tb-wq +wh-td +ta-ka +td-qp +aq-cg +wq-ub +ub-vc +de-ta +wq-aq +wq-vc +wh-yn +ka-de +kh-ta +co-tc +wh-qp +tb-vc +td-yn diff --git a/years/2024/src/examples/day_23/2.txt b/years/2024/src/examples/day_23/2.txt index e69de29..3d49766 100644 --- a/years/2024/src/examples/day_23/2.txt +++ b/years/2024/src/examples/day_23/2.txt @@ -0,0 +1,32 @@ +kh-tc +qp-kh +de-cg +ka-co +yn-aq +qp-ub +cg-tb +vc-aq +tb-ka +wh-tc +yn-cg +kh-ub +ta-co +de-co +tc-td +tb-wq +wh-td +ta-ka +td-qp +aq-cg +wq-ub +ub-vc +de-ta +wq-aq +wq-vc +wh-yn +ka-de +kh-ta +co-tc +wh-qp +tb-vc +td-yn diff --git a/years/2024/src/examples/day_24/1.txt b/years/2024/src/examples/day_24/1.txt index e69de29..8e277c1 100644 --- a/years/2024/src/examples/day_24/1.txt +++ b/years/2024/src/examples/day_24/1.txt @@ -0,0 +1,10 @@ +x00: 1 +x01: 1 +x02: 1 +y00: 0 +y01: 1 +y02: 0 + +x00 AND y00 -> z00 +x01 XOR y01 -> z01 +x02 OR y02 -> z02 diff --git a/years/2024/src/examples/day_24/2.txt b/years/2024/src/examples/day_24/2.txt index e69de29..e30b774 100644 --- a/years/2024/src/examples/day_24/2.txt +++ b/years/2024/src/examples/day_24/2.txt @@ -0,0 +1,313 @@ +x00: 1 +x01: 0 +x02: 1 +x03: 1 +x04: 0 +x05: 0 +x06: 1 +x07: 1 +x08: 0 +x09: 1 +x10: 1 +x11: 1 +x12: 1 +x13: 0 +x14: 0 +x15: 1 +x16: 1 +x17: 1 +x18: 0 +x19: 1 +x20: 1 +x21: 0 +x22: 1 +x23: 1 +x24: 1 +x25: 1 +x26: 1 +x27: 0 +x28: 0 +x29: 1 +x30: 0 +x31: 0 +x32: 1 +x33: 1 +x34: 1 +x35: 1 +x36: 0 +x37: 1 +x38: 0 +x39: 0 +x40: 1 +x41: 1 +x42: 1 +x43: 0 +x44: 1 +y00: 1 +y01: 0 +y02: 0 +y03: 1 +y04: 1 +y05: 0 +y06: 0 +y07: 0 +y08: 0 +y09: 0 +y10: 0 +y11: 1 +y12: 0 +y13: 1 +y14: 1 +y15: 0 +y16: 0 +y17: 0 +y18: 0 +y19: 1 +y20: 0 +y21: 0 +y22: 0 +y23: 0 +y24: 0 +y25: 0 +y26: 0 +y27: 0 +y28: 1 +y29: 1 +y30: 0 +y31: 0 +y32: 1 +y33: 0 +y34: 0 +y35: 0 +y36: 1 +y37: 0 +y38: 0 +y39: 0 +y40: 1 +y41: 0 +y42: 0 +y43: 1 +y44: 1 + +y40 AND x40 -> wdr +kpc OR jsd -> chv +jwm AND nbr -> pbb +mrn XOR mck -> z31 +x37 AND y37 -> tjp +x13 XOR y13 -> jdm +nfw OR bbc -> wkc +y02 AND x02 -> qff +tdg XOR sjk -> z35 +pjv AND fnq -> hrr +x36 AND y36 -> mdk +bnf OR vcn -> kbg +rfk AND qcq -> mnr +x38 XOR y38 -> bbq +ghr XOR tjp -> z37 +x40 XOR y40 -> vtq +x39 XOR y39 -> drm +bcj OR qff -> jwm +y25 XOR x25 -> fnq +jdm AND wkc -> nrm +y30 XOR x30 -> wpg +mmp OR tjk -> rbc +x17 AND y17 -> dbh +x06 XOR y06 -> pgb +wpg AND jtf -> sqj +bgs AND rbc -> bvb +jdq AND gqw -> qbq +rqf XOR rjt -> z02 +mdk OR cbd -> ghr +y32 XOR x32 -> hvk +psj XOR jfw -> z21 +x36 XOR y36 -> wvp +wvd OR dgc -> fqf +dds XOR kmh -> z33 +sfv AND rdb -> qmq +mvk XOR gkm -> z04 +y22 XOR x22 -> wkb +wwg XOR bbp -> hnd +djv OR mqd -> fgt +wkb XOR nfn -> z22 +bkn OR ssg -> gng +nfn AND wkb -> tgj +y41 AND x41 -> wvd +qtk OR jnq -> wwg +x21 AND y21 -> jpq +kjb XOR bcm -> z34 +x28 AND y28 -> drt +cqk XOR hns -> z15 +x10 AND y10 -> ksw +dch AND tsc -> fkr +x44 XOR y44 -> nct +y20 XOR x20 -> bgs +ggh AND bbq -> bkn +pgb AND jbb -> kth +x01 AND y01 -> vqv +jfs AND wsb -> dqt +twn OR tkb -> jkw +y18 AND x18 -> smg +ttm OR tcv -> jtf +mfr XOR scw -> bks +x00 AND y00 -> jfs +bns AND qjr -> tgq +y03 XOR x03 -> nbr +ggh XOR bbq -> z38 +y43 XOR x43 -> rdb +qht XOR kbg -> z08 +jtf XOR wpg -> z30 +bgf AND fqf -> fpf +gng XOR drm -> z39 +y09 XOR x09 -> bbp +hmv OR fpf -> sfv +kjb AND bcm -> kbp +x15 XOR y15 -> hns +x35 XOR y35 -> sjk +bns XOR qjr -> z14 +hfw OR pjj -> dds +qbq OR krf -> jbb +vtq AND dpf -> cvp +x21 XOR y21 -> jfw +rfk XOR qcq -> z18 +y02 XOR x02 -> rjt +wvp XOR rdh -> z36 +y39 AND x39 -> wjk +njw OR bvb -> psj +y09 AND x09 -> rbr +qdp AND kcs -> bnf +qmq OR spr -> cvc +x33 AND y33 -> rdv +sjk AND tdg -> ctf +y31 XOR x31 -> mck +hbj XOR jdn -> z27 +vhf AND tdv -> vdn +x19 AND y19 -> tjk +y07 XOR x07 -> kcs +y07 AND x07 -> vcn +y34 XOR x34 -> kjb +y08 XOR x08 -> qht +hbc OR kdq -> jdq +bbp AND wwg -> z09 +x15 AND y15 -> twn +fdp AND shq -> ttm +y29 AND x29 -> tcv +x33 XOR y33 -> kmh +brw AND rnw -> dgc +x16 AND y16 -> pwk +nvh OR vdt -> vdm +rkp OR tgj -> scw +fmr OR sjh -> z45 +scw AND mfr -> qhm +rdv OR dhg -> bcm +x04 XOR y04 -> mvk +x44 AND y44 -> fmr +y32 AND x32 -> pjj +kmf XOR mss -> z10 +y38 AND x38 -> ssg +x22 AND y22 -> rkp +rqf AND rjt -> bcj +rbc XOR bgs -> z20 +y29 XOR x29 -> shq +gbc OR wjk -> dpf +sqj OR bnd -> mrn +x13 AND y13 -> bhn +tdv XOR vhf -> z17 +x00 XOR y00 -> z00 +y28 XOR x28 -> nfk +kgv XOR wrk -> z26 +x11 AND y11 -> jsd +cmm OR wkm -> jdn +x10 XOR y10 -> mss +rbr OR hnd -> kmf +wdr OR cvp -> rnw +y42 XOR x42 -> bgf +brw XOR rnw -> z41 +x06 AND y06 -> ndm +y34 AND x34 -> tfn +y25 AND x25 -> dbm +y43 AND x43 -> spr +y23 XOR x23 -> mfr +rdb XOR sfv -> z43 +ncj OR pwk -> z16 +gcp OR fkr -> pjv +y11 XOR x11 -> rcr +jdm XOR wkc -> z13 +y30 AND x30 -> bnd +jkw XOR mqf -> tdv +rcr AND cpj -> kpc +dpf XOR vtq -> z40 +x08 AND y08 -> jnq +chv AND dpg -> nfw +y04 AND x04 -> kdq +vdm XOR nfk -> z28 +y01 XOR x01 -> wsb +mss AND kmf -> hhm +fgt AND hvk -> hfw +hvk XOR fgt -> z32 +x27 XOR y27 -> hbj +gqw XOR jdq -> z05 +x12 XOR y12 -> dpg +fnq XOR pjv -> z25 +drt OR mdh -> fdp +tjp AND ghr -> kpb +qhm OR bks -> dch +jbb XOR pgb -> z06 +x16 XOR y16 -> mqf +psj AND jfw -> ffm +nfk AND vdm -> mdh +y26 XOR x26 -> wrk +mnr OR smg -> gbr +gkm AND mvk -> hbc +x31 AND y31 -> mqd +x12 AND y12 -> bbc +jfs XOR wsb -> z01 +x23 AND y23 -> z23 +y41 XOR x41 -> brw +hbj AND jdn -> nvh +tfn OR kbp -> tdg +dpg XOR chv -> z12 +y17 XOR x17 -> vhf +fdp XOR shq -> z29 +nct XOR cvc -> z44 +bgf XOR fqf -> z42 +x19 XOR y19 -> fff +x35 AND y35 -> ddp +x20 AND y20 -> njw +mck AND mrn -> djv +cpj XOR rcr -> z11 +nbr XOR jwm -> z03 +tsc XOR dch -> z24 +x27 AND y27 -> vdt +cqk AND hns -> tkb +vdn OR dbh -> qcq +ffm OR jpq -> nfn +y14 XOR x14 -> bns +bhn OR nrm -> qjr +y03 AND x03 -> qvr +fff XOR gbr -> z19 +qdp XOR kcs -> z07 +x37 XOR y37 -> nrn +fqv OR tgq -> cqk +ctf OR ddp -> rdh +kgv AND wrk -> cmm +drm AND gng -> gbc +dbm OR hrr -> kgv +rdh AND wvp -> cbd +vqv OR dqt -> rqf +cvc AND nct -> sjh +y42 AND x42 -> hmv +hhm OR ksw -> cpj +y05 XOR x05 -> gqw +x05 AND y05 -> krf +mqf AND jkw -> ncj +x18 XOR y18 -> rfk +y14 AND x14 -> fqv +kpb OR nrn -> ggh +kbg AND qht -> qtk +pbb OR qvr -> gkm +x24 AND y24 -> gcp +y24 XOR x24 -> tsc +kth OR ndm -> qdp +gbr AND fff -> mmp +dds AND kmh -> dhg +x26 AND y26 -> wkm diff --git a/years/2024/src/examples/day_25/1.txt b/years/2024/src/examples/day_25/1.txt index e69de29..8e29855 100644 --- a/years/2024/src/examples/day_25/1.txt +++ b/years/2024/src/examples/day_25/1.txt @@ -0,0 +1,39 @@ +##### +.#### +.#### +.#### +.#.#. +.#... +..... + +##### +##.## +.#.## +...## +...#. +...#. +..... + +..... +#.... +#.... +#...# +#.#.# +#.### +##### + +..... +..... +#.#.. +###.. +###.# +###.# +##### + +..... +..... +..... +#.... +#.#.. +#.#.# +##### diff --git a/years/2024/src/examples/day_25/2.txt b/years/2024/src/examples/day_25/2.txt index e69de29..8e29855 100644 --- a/years/2024/src/examples/day_25/2.txt +++ b/years/2024/src/examples/day_25/2.txt @@ -0,0 +1,39 @@ +##### +.#### +.#### +.#### +.#.#. +.#... +..... + +##### +##.## +.#.## +...## +...#. +...#. +..... + +..... +#.... +#.... +#...# +#.#.# +#.### +##### + +..... +..... +#.#.. +###.. +###.# +###.# +##### + +..... +..... +..... +#.... +#.#.. +#.#.# +#####