summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2022-12-13 01:08:33 -0500
committerJesse Luehrs <doy@tozt.net>2022-12-13 01:08:33 -0500
commit08d25b19f75484fc2d036dec7d431910e75f7cad (patch)
tree509742c295f587462f60954869bdc8c5db7f5d7b
parent5e9662aa1f5adf51545d89446f2ea179e9cb2e94 (diff)
downloadadvent-of-code-08d25b19f75484fc2d036dec7d431910e75f7cad.tar.gz
advent-of-code-08d25b19f75484fc2d036dec7d431910e75f7cad.zip
day 13
-rw-r--r--benches/2022.rs5
-rw-r--r--data/2022/13.txt449
-rw-r--r--src/bin/2022/day13.rs129
-rw-r--r--src/bin/2022/main.rs2
4 files changed, 585 insertions, 0 deletions
diff --git a/benches/2022.rs b/benches/2022.rs
index 4838721..a94f8bb 100644
--- a/benches/2022.rs
+++ b/benches/2022.rs
@@ -25,6 +25,8 @@ mod day7;
mod day8;
#[path = "../src/bin/2022/day9.rs"]
mod day9;
+#[path = "../src/bin/2022/day13.rs"]
+mod day13;
// NEXT MOD
day!(2022, 1, day1);
@@ -39,6 +41,7 @@ day!(2022, 9, day9);
day!(2022, 10, day10);
day!(2022, 11, day11);
day!(2022, 12, day12);
+day!(2022, 13, day13);
// NEXT DAY
fn bench_2022(c: &mut criterion::Criterion) {
@@ -56,6 +59,7 @@ fn bench_2022(c: &mut criterion::Criterion) {
day_combined!(2022, 10, day10);
day_combined!(2022, 11, day11);
day_combined!(2022, 12, day12);
+ day_combined!(2022, 13, day13);
// NEXT DAY COMBINED
})
});
@@ -76,5 +80,6 @@ criterion::criterion_main!(
bench_2022day10,
bench_2022day11,
bench_2022day12,
+ bench_2022day13,
// NEXT GROUP
);
diff --git a/data/2022/13.txt b/data/2022/13.txt
new file mode 100644
index 0000000..808ab84
--- /dev/null
+++ b/data/2022/13.txt
@@ -0,0 +1,449 @@
+[[[6,10,[],[8,1,6],6],[],[[1],7,1,0]],[9]]
+[[[5]],[[[5],[7],[1],8],2,2,1]]
+
+[[[3,[2,1,4],2,[],[4]],[1,[]]]]
+[[1,[],[[3,8,9],9,2,[3,6,5]],[2,[7,1,3,0,9]],9],[[[4],4,7,3,[7,5,1,10]],1,[[5,10,7],[5,3,2,1],[4,5,0,10,9],[2],7],[7,8,5,[10,4,10]]],[4]]
+
+[[3,8,0,6,[10,6,[10,0]]],[[[3,4],[7,9],[]],9],[10],[]]
+[[1,10,2,3],[4],[]]
+
+[[1,0],[[[5,3],10,[],[4]]],[[],8,9],[[2],[[6,5,10]]],[[[2,10],2]]]
+[[9,[0],[],5,6],[2],[],[1,[4,[7,4,3,8,0],[1,5,1,1],[3],7],[4,10,5,[4,10]]]]
+
+[[[[],2,[7,5,4,7,7],10],[[3],[2,8],1,6,[]],2],[[9,[3,6,5],[9,10,1,6]]],[],[[[3,10,5,6,0],[],[4,4,9,6,6],1,[8,4,7,1,0]]]]
+[[1,[2,5,[10,6]],0,10],[[0,3]]]
+
+[[9],[3],[2,4]]
+[[],[],[],[]]
+
+[[[3]],[[]],[[1,[],[6,8,5,8,8]]]]
+[[],[[2,0,7],[]],[]]
+
+[[],[[[5,5,6,0,4],[6,0,8,2]],4],[[10,3,2,3]],[[[6]]],[[]]]
+[[],[[7,1,[],[2,1],7],[[9],0,5],[10,[7,6,3,7],[9,3],9]],[],[[[9,4,9,4],[5,1,1,5]]],[10,5,7,0,[[3,8],[],2]]]
+
+[[[],[7,[],4,0,[7]],[1]],[[5,[8]]],[],[5]]
+[[],[[[6,7,7],1,4,[7,6,6],0],[[2],9],[[3,4,5],2],[7],4],[[[9,1,4,0,3],[3,9,4]],[[7,8,7,10,1],9],[0],9,3],[[],[],[],[4],[[2,6,5],[5,4,8,7],[1],1]]]
+
+[[],[[],[9,[1,8,8,7,6],2],0,[[0,0,7],[1,5,2,8,4],[8,5],0],[]],[[[10],0],2,[9,[2,10,0,5],3],1]]
+[[[6,5]],[[[3],[3,3,4,5]]]]
+
+[[3],[10],[[],[0,5,[2,2,4],8,[]],[[0,3],6,0],0]]
+[[[],10,[[5,2,0]]],[10,2,9]]
+
+[[],[[0,10,1,9],[2,[9,9]],[0,8,10,6]],[0,3,6,[[5,5,0],9,4]],[[7,[3,7]],5,4,[[8,6,0,1,10],[],[0],[],10],7]]
+[[],[8,1,1]]
+
+[[[2,[4,7,10]],3,1,[]],[],[[0,[6],4,1],2,[2,3,[5,7],9],9],[[8,[],[1],5],8,[[9],2,10,1],[[3,1],1],[[9,6,1,8]]],[3,3,4,3,[[],[10],1]]]
+[[9,0,8,[[4,3,4,7,10],[8,9,6],2],[]],[9,[[1,0],9,7,9,[0,10,7]],[[8,10],[5,2,0]],4],[5,8,[7,[7,6,9,8,8]],[]],[2,[],2]]
+
+[[],[6,5]]
+[[10,5,2],[[1,8]]]
+
+[[2,1],[9,[5]],[1,0,8,[]],[],[[4,5,[8,9,9],2,8],5,[0,[0,9],6,8],[],[3,10,4]]]
+[[1,10],[]]
+
+[[[0,9,[4]],[[7,8,9,8],[7],10]],[9]]
+[[[[8,7],[2,5],8,6,9],10,7,[10],1],[6,0,0,4,0]]
+
+[[[9,[3,4,10,8,0]],2],[[6,[0,6,10,9,10],0,[2,0,6,0],[4]],2,0],[[0],[[1,10,10]],[10,[6,5,2,9,9],[9],[8,8,7,1]],[5,5],6]]
+[[[9],0,3,[[]],[[8,9,4]]],[]]
+
+[[9],[8],[[8,5,2,4]],[],[[10,3,[8,3,3,1]],[[],0,[5,8,3,6],[]],[3]]]
+[[],[[[0],[],10,[4,9]]],[[[3,2,3,2],1]]]
+
+[[4,1,2,[[6],[8]],7],[7,0,[[7,5,3,10,7],[4,10,4,7,9]]],[0,[],[1,9],[8,2]],[7,3,[[4,3,4,0]],2,[8,[8,2,7],[3,2,0,4,6]]]]
+[[],[]]
+
+[[3,8,8,[],[[6],[9,9,1,0,3],[6,4,3]]]]
+[[7,[[7,7,0],5,[1],10,10]],[2,7,[],3,[[],[5,8,7]]],[],[0,1],[[9,2,[0,1],[4,8,3,6]],[5,2,5,6],[9,[5,1,6,1,4],[8,5,9,4,9],[8,8]]]]
+
+[[],[[8]],[8,[5,9,4,7],4,[8]],[2,[2,0],6,[[2,2,8],[9,7],10,5,[5,7]],[[9,6,0],7]]]
+[[9,4],[[1,4,1,[6,9],5],4],[0,[9,7,[]]],[[[10,10],[9,2,7]],[0,6],[5,8],[]]]
+
+[[[6,[10],[7,4,9,3]],[[],[5,0],[5,1,2,10,3],[]],3,[],3],[[],[7,8,2,10,[8,3,4,2]],1,[7,[6,3,9,6],2,4],10],[[]],[[],[[6],[5],[7],[9]]],[10,7,6,8]]
+[[],[[4,[5,1,9],6,10],[[3,8,3,5,9],9,[7,6,10,9],10],[[3,7,8],9,[],8]]]
+
+[[6,8,9,[[4,10,4,6,8]]],[],[[[],[7,6],8,[5,8,7,5],[7,3,0,1,1]],2,3],[5,10,[7,2,[5,5,2],[3],3]],[]]
+[[],[1,9,8],[9],[7,[1],1]]
+
+[[],[4,[[9,7,10],6,7]]]
+[[[[6]],[[],3,0]]]
+
+[[4,1],[],[5,3,3,[4]]]
+[[[[10,7],10,[5,4,5,6,5],[8,2,5,4],[5]],[[8],[],9],[5,[2]]],[[[2,6,4],[1,5,4,10],[10,7],0,8],[6,6,[]],3,[[5,7,9,2],10],10]]
+
+[[4,7,0,2]]
+[[4,[],[2],[5,4,0],4],[[],9,[[7,1],2,9]],[10,1,[0,5,[6,2,7,1]],[[8]],[[9,9,7,8],5]],[],[[[4]],3]]
+
+[[8,[],5,[[1],[3,5,7]]],[]]
+[[[0],[5,5]]]
+
+[[[8,[0],[0,2,6,9]],10,[],1]]
+[[8,4,0],[],[7,9,[[10,4],10,10,0],[],0],[],[3,5,3]]
+
+[[3,6,7],[4,5,6,[9,6],7]]
+[[2],[[[6,6,4,5],[1,9]],[8,4,[5,5]],6,[3,[0,0,7],[3,9],[8,3,9],[2,0]]],[[[5,1,4,0,5],[10,5,9],3,2],[[4,0],[4,6],[4]]]]
+
+[[6,4],[],[[]],[[[],1,2,0,[10,2]],6,4,5]]
+[[1,[[],[3],[1,5]],[10,[],[2,8,4,10],[9,2]],[7,4,3,5,0],0]]
+
+[[[[5,1,7],4],[]]]
+[[[7,2,[]],[]],[[6],4,5,[[]],[[7,0,8],[0]]],[10,1,1,[[4,9],6,[10,2,3,9,0],[2,3,4,3]],3],[0,2,[7],5,2]]
+
+[[4,3,[1,[9,0,8,7],1],[[],[],4,[5,7,10,6],10]],[]]
+[[1,[4,5,[6,0,9,4,9],[],[1]],3,9]]
+
+[[[],[6]]]
+[[4,9,[3,[3,10,2,8],0,10,[2,3,2,10]],3,[2,[]]],[2,6],[],[6,0,5,[[6,1,3,5],5],[[3,8,1,9,10],[2],[1,4,10]]],[[[0,2],[7],[10,9,4,1],[4,2]],4,[]]]
+
+[[[4]],[6,[[4],[8],[2],[4,0]],[4,9,[3]],[[8,10,6,10],[9]],9]]
+[[[],5,[8,10],[4,[4,6,7,4],6,[4,10,5,4],[8,10,4]],8],[[[3,4,1],[1,6,6]],4,[[6,9,9],7,[],0,[1,4,7,2,1]],10,[[7,1,2],[6,3,3,8,10]]],[[[2,9,0,4,5]],[[9,0],4,[8,7]],[5,[3,9,2,8],9,[1]]],[6]]
+
+[[[[8,10,10,1,7],[],1]]]
+[[[3,3],[],[4],[]],[],[],[[],[7,8,3],10]]
+
+[[],[0]]
+[[8,[]],[6,[[1,10,7]],[2]],[],[],[[1,[],1,10],3]]
+
+[[[6,7,4]],[2,5,[0,7,0,[],1],[10,4,[0,6],[5],[9]],[[5,7],[0,10,7,9]]],[[[1],6],[0,3,10]]]
+[[[[9,0,1],7,[3,6,5,1],3,8],[[10,10],4,[4,8,1,10,2],[5,2,9]]]]
+
+[]
+[[]]
+
+[[],[],[[[1,8,3],8,3,[9,6,1,9,1],1],[],2,4],[[0,[1,8]],8,[[5,0],[0,2,9],10,[5]],[[1],[],[9,2,1,0,7],6],5],[2,[5,7,8,[3],[1]],[[10,9,10],5,3]]]
+[[2,10,6,4,[5,[]]],[0,[9,5,[2,6,10,3,8]],[]],[6,7,[[0,6,6],5,[4,3,0],[],3],6],[6,9,[[7,6,0,0,9],[9,10],7],[[],2],[4,2,7,[4],[4,6,2]]]]
+
+[[2,5,[[2,0,5,8]],[1,[0,0,10],9,6,[1,9,3]],[[8,2,0,8,8],[9,10,3,9,7],[0]]],[6,[3,[1,2,1,7,4],[6,10,10,1],[10,0,9,7,2],8],9,8,[[],2,8,8]],[],[]]
+[[4,9,[[3,1,2,5,0],5,[9,0,9,7],[8,5,7]],8],[[],2,[],[3,8]],[0,8,1,[[7,5,7,1],7,[10,9],4,8]]]
+
+[[],[7]]
+[[],[[3,[10,3,5,8]],[[0,9]],[[],10]],[[],0],[]]
+
+[[2,9,0],[8,5],[[1,[0,1],7]],[[8,[2,9,6,4],9,[8,4],4],7]]
+[[[[6,5,5,5,8],[9,1,1,0],[],[1],[2,5,2,7,10]],10]]
+
+[[[[4,4,10,5],2,[]],[9],[[9,7],[2,0,1,1,5],0,10],10,5],[],[3,7,[9,9],4,2],[[[5,9],[],4],[[],[0,8]],[[10,4,6],7,3,[],[]]],[3,[0,2],[[0],7,[],6],3]]
+[[],[9,[[6,3,2,8],[8],[2,8,0]]]]
+
+[[[9],[[3,9,8,1,0],[3,10,7]],[5,[10,10],5,[],[1,6]],[[6,0,0,10,10]]],[],[5,[9,[1,3],[4,9,0,10],[8,5],[10]],[]],[[2,8,[5,1,6,1,4],10],6,[[4,6,6],8,[4,8,10],[10]],10,2]]
+[[[[8,9,0,0],1,10],4],[6,5,0,[5,[6,0,9],[3,9,5],10,[4,8,3,6]],[]]]
+
+[[[10],[5,[2,10,4],9,7,[6,5,10,7,6]],[9,[],[],[0,4]]]]
+[[],[[9,[8],9],[[1,3,5],[5],[4,6,10,4],[7,8,10,9]],[[4,0,7,5],6,[]],[0]],[[[2,4,5,8]]],[5,[8],[[6,2,8,2,3]],[5,[],[2,0,4,1,4],[8]],6],[[8,0,6]]]
+
+[[[],9,[[5,4]],4],[]]
+[[3],[[[4,5],[2,1,8,9],[9,9,2]],6],[1,[10,4]],[10,[3],[[9],2,[10,0,8,5],4],[],8],[2,9]]
+
+[[[2,5],7,8],[0,1,[],2]]
+[[1,6],[[],9,7,0]]
+
+[[[5,1,[3,2,6]]],[10,1,9,1],[]]
+[[8,10],[],[[[8,7]],[10,[0,3,9]]],[[8,[7,3,2],[7],[2,1],[1]]],[4,0,1]]
+
+[[[[2],[4],9,[0,1,0,1],6],[],[8,[4],5,9]],[]]
+[[[5,[10,1]],[6,2,[6,4],[6,1],8]]]
+
+[[[5],[6,0],1],[[[8,7],[1,6]]],[0,9],[],[0,0,[9,0,[],3]]]
+[[[[8,10,3,0],[4],[0],[5,2,7,2],[4,7,5,5,4]],[[4,10,9,9],[1,1,4,8,0],10,[2,10]]]]
+
+[[[[5,4,5,4,2]]],[8]]
+[[[8,7,6],1,3,9,[[3,4,2,7],[],[10,10],[8,7,7,10,10]]],[5,8,3]]
+
+[[4,[0]],[5,[5,1,1],[[2,1,6,4],[8,1,8,6,6],[10],7,1]],[],[],[5,9,3,3]]
+[[6,[1,[5,1,4,8],[],[6,0,4,0,7]],9,[[6,5],[4,5,8],[4,10,8,7],[3,0],6]],[[3],[],7,9,[[6,10,1,2]]],[[],5,[[7],3,10],3]]
+
+[[[0,[2],[8,4,4,2],[8,5,8,3,6]],[[6,4,0,8,1],[],4,[3,2]]]]
+[[4],[[[6,0,1,3],[5,2,4,4],6],[[],1],[8,[]],7,[]]]
+
+[[[[0,0],[3,4]]],[]]
+[[[9,[10,0,9,10]],2],[4,6,[[8]]]]
+
+[[],[[[8],[8,1,5],9,[9,0,1],[5,10,3,0]]],[]]
+[[[1,[8,5],6,[]],[10,1,1,[2,10,4]],[],[8],[[4,10,6,3,0],[2,10],6,8,[0,10,10]]],[[[1,4,4,7,6]],9,8,[[6],4,[8,9],[0]],[[9],[4],3,3,[6,5,6,0,3]]]]
+
+[[9],[[10,[5,2,8,0],7,[9,7,6,2,1],[5]],[9,[5,3],[4,10],[5,4,6,9]],[5,[6,8,4,4,7],[0,9,5,4],[1,0],3]],[],[[8],[[5,7,0]]]]
+[[[8],[],4,9,1],[[1,[5,6,3,1],[8,6,0,5,0]],8,2,[[7,5,1]],1],[[[10,6,4],[8,6,1,4,9]],[[]],9,[7,[9,4,6],8,[6,4],7],[8,3,9,[10,6]]],[[7,8,[2],[7],[6,4,9,3]],10,[4,8,[0,6,2,1],6]]]
+
+[[[4,1,6],3,[6,7]],[0,[6,0,[7,9,9],5],[10,2,[2,2,1,9],[4,0],[2,1]]],[[]]]
+[[],[8,6,7,[9,[6,9,2,4,7],[10,0]],[]],[1,[5,3,10,[6],[8,6,3,6]],2,3],[[],[[9,3,10,0]],2,[[9,3,10,6],4],0],[[[0,5,10,9],6,[2],[1,2,2]]]]
+
+[[[[],[8,1,5],[1,6],[2]],8],[[]],[1,5,[6],[[]]]]
+[[],[[],[5,9,[3],[0,6,5],5],10,4,[8,[],6]],[8,0,[[3,4,1,10]],0]]
+
+[[7,2],[],[[5,7,3],[],[[2,2],[],9,[2,6,7]]]]
+[[[[2,9,2]]],[]]
+
+[[4,3,10],[0,[1,9,[1,10,5]],8,[[8,6],[3,1],[9,8],1,[4,8,4,5]],3],[[[2,2],[8,5,5,2,0],3,[5]],[1,[3,10]]],[8,[[],[3,8],1]],[[]]]
+[[[4,5,[],[10,3,10,4,10],8],[9],2,4,6],[[6,[10]]]]
+
+[[[6],8,4,2],[1,[]],[[],10,[]]]
+[[2,6,1],[[[7,6],7,[],[2,0],[3]]],[10],[[9],10,[7,3,[],9,7],6,9]]
+
+[[0,6,9,[[0,10,1]]],[[[],7,3],[]],[],[8,9,2],[1,[0,8,[9,8]],[[3]],[1,7,7,1,[5,4,4,10]]]]
+[[7,8,[]],[4,[8,[6,3],6],0],[2,9,7,[10]],[5,[[],0,3,[9]]],[]]
+
+[[],[0,[7,6,[2,6],[7,2]],[4,3,6,7,8],7,1]]
+[[[[3],7,[],2,[3,9,4]],[[0,4,10,8,0],0,9,[4,6,4,0],[4,6,2,8]],[[5],[2]],1,[]],[[3,7,6,7,10],[[10,3,9],[4,1,7],0],7,[0]],[3,7,6],[7,[8],7,[[0],5,9,9,1],0]]
+
+[3,2,7,8]
+[3,2,7,8,2]
+
+[[[6,[10,3],0],4,[[1,7,9,9,10],1,3,[1,4,4,5]],[[8],[],9,9],[[6,8,9,7,3],9,[0],[2,7],0]],[3],[[10,[],6],[]],[[[9],10]]]
+[[9],[10,7],[[0,[9,10,10],10],7,10]]
+
+[[8,9,2,[],[9,7]],[[2,[7,6,2,3],8,6],[[7,7,9,4,5],[],[6,2,7,2],4,2],10,4],[4],[]]
+[[10,0,[[],9,0],[[7,3,7,1],8,[0,3,8,5]]],[9,[4,0,10,9]],[]]
+
+[[[[6,1,4,0,2],[4],[5,1,0]],[5,[1,7,2]],5,7,[[]]]]
+[[],[[[],0,4],[[0,8,5,10]],[5],[4,8,10],6],[[5,10,[8,8,4,4],7,[6,8,10,7]],10,[],[[7,6],[1,8,10,10,0],2,[1],5]],[[6,[],0,2],0],[7,[[9,7,0,0,2],[3],0],9]]
+
+[[[[1,1,8,8],5,[1],[5,3,6],[1,7,7,10,7]],10],[[1,[8,0,5,4],8],[[],6,5]]]
+[[],[5,[],[6,8,5,[4]],[[4],[7,8,10,4],[6],[4,5,0]]],[3,[[3],[6,0,7,1,6],3,8,[6,10]],8,7],[[4,5,[2,8],[]],9]]
+
+[[[7,0,7,3]],[],[6,1,[0],9]]
+[[[8,10,9]],[7,[7,[],[9,3,6],[1,2,4,7]]],[0,2,[]]]
+
+[[[[4],[7,4,6,7,1],8,6,9],6],[4,[],[1,[6,7,5],[7,7,4],8],9],[[9,10,7]]]
+[[[0,[],[0,2,10]],7],[6,1,[[4,0],2,4,[10,3,5],10],9,[4]],[0],[[[6,3,4,4]],[[],[10,10],[8],9],0],[]]
+
+[[[9,[1,2,6,6,2],[9,7,0,3,4],[5,9,10,4,0],5],7,[[5],0,[2,7,4]],[[9,6,10,5,10],8,5,[3]]]]
+[[3,[4,1,7,5],[9,4,[2,6],[7,5]],[[9,0,6,6]],3],[[]],[],[5,[],9,8]]
+
+[[0,5,[[],[8],[2,5]],4],[[1,[8,3,10],[6,3,8,1],[4,10,6,5],[9]]]]
+[[0,3,2,4,4],[1,[],[[2,8]]]]
+
+[[[[9],8],7,5,[0,[8,6]],[6,3,[10],[]]],[[1,[]],[[9,10]]],[[[10,2,10,5,5]],[],4],[[7],6]]
+[[],[6,[],[],5,4],[[3,[1,5,10],7],[4,[6,4,4,0,5],[0,4,2,9]],[2,8,4,[6],[0]]],[[],[7,[4],[]]],[[],[[]],[[6,6,9],[9,5],8,[3,2,3]],[[8],6],10]]
+
+[[[],5,1],[[[2,1,3,10],4,[],[4,1,4],10],7],[8,5,[6]],[[],0,[4,[7,1,2,4]],1,1]]
+[[[[0],1],[2,[4]],[[],9,[3,7,6,2],[5,10,7,0]]],[],[[[1]],[[0,5],[0,6]],[[1,10],[0,7],[6,9,4,10]],5,[[3,6,5]]],[]]
+
+[[[0,[0,6,7,6,3],2,[]]]]
+[[7,5],[3,3,8,[8,[9,7],[2,2],[2,10,5,7],[7,1,8]]]]
+
+[[[6,[3,4,8],[4],[1,1,1],9],3,[[7,5],4,[9,8,0],[1,6,4,10,3]],[3]],[[3,[1,5,3,3,1],9,8],6,[0,[2,10,7,3]],[7,2,[6]]],[9,4,[],[[10,4,4,10,8],7,[3,2,0,1,0]]],[[4,9]]]
+[[[[7,5,9],[1,3],1,0,8],[[10,2]],5,4],[[[],4,[],6,[0,3,1,6,10]],1,2]]
+
+[[9,9,[[],[7,5,4,3]]],[3,3,[],[4,[9,0,0,1]],8],[6],[[],6,[4,3,[],[1,7,6,9,6]]]]
+[[10],[],[],[8],[9]]
+
+[[4],[[0,[10,1],[2,7,9,4,6],3],5],[[[1,4],[3,8,10,4],8,[7,8,1,4,8],[]],3]]
+[[],[3],[1,[0,[2,7,0],2,8,[3,8,6,1,8]],9],[]]
+
+[[10],[],[[[3,9,9],[],[7,8,6,7,5],6],6,8,[4,[10,10,2,9,9],9,4,1]]]
+[[6],[1,4,5,[[10,6],[],9,6]],[[0,[2,5],[5,9],7],[[0],3,1]],[[10],7],[[[8,4,2,7]],4,7]]
+
+[[[7],1,[],[[],5,1],4],[],[0],[2,[1,[0],5],3,8],[10,[7,9,4,[2,5,1,7]],0]]
+[[[],4,9,[1]],[6,10,[[9,7],[4],[0,10,6]],[1,10],8]]
+
+[[[[],9,3,[5]],1,[4,[6,10,6,5,2],[],[6,7]],[10]],[2,[],4],[[10,8,0,[],2],[[],6,1,[5,6,8,7],[10,1,1]]],[[5,[2,9]],8,10,[7,10,[0,9],[8,5]]]]
+[[[[6],0,8,2,[4,8,1,9]],[8,10,7],0],[4,[]],[9,2,[10,[]],6],[8,9,[5]],[]]
+
+[[[[],8],[1,[4],[8,1,8,4,0],[9,7,4,1]],10,8,[[3,1],[10,0,9,10,10]]],[[]],[6,8,[[10,3],8,6,[0,9,5]],3,[]],[[6,8],1,6,[[4,10],[],5],[[3,8,6,1,1],[10]]],[[],[[7,1,3,8],0,[]]]]
+[[8,[[9,9,4]],[[6,4,8,10],1,[6]],3]]
+
+[[[[3,5],8,[0,0],2],[6,[2,5,5,7],[4,10],[6,6]],[[3,4,2,6]],[[1,7,2,6,0],[4],10,[9,2]],10]]
+[[[[7,6,8,5,10],[7,0,9,8,9],5,[7,7],[2,8,1,0,5]]],[7],[],[[4,3,[2]]],[[[10,1],0,1],6]]
+
+[[0,[[10,7,8],3,9,[10,4,2,0]],[10,7]],[0,10],[[]],[[[6,9],9],10,6,5,4],[[[],6,9],4,2]]
+[[[9],[[]]],[5,[8,9,[4,9,6,6,6],1,[]],[0]],[[],5,[7,7,7,3,0]],[[8],6,4,7,[[9,4,7,8]]],[[[10,6,0,6,3],9,[7,7]],[9,1,[],9],[[3,4,10,8],5,9,2,5]]]
+
+[[5],[]]
+[[[10,[9,3,2],0,[7,10,8,0,1]]]]
+
+[[[[],0,0,8,[5]],[8],[0,[2,7],[10]]]]
+[[[[10,7,1,8],8,[],1],4,10,2],[[[9,3,10]],5,[[3,5],[4],[]]],[1]]
+
+[[[3,[7,7,0],9],[5,[7,1],[4,5,1,1],8]],[[1],[7,5,1,9]],[[],[[5,10,0,1,5],3]]]
+[[4,9,[5,[10,9,9,3,7],3,[4,1,3,3]],4,10],[],[[]],[[5,[10,3]],[[10,0,7],[2,1]],[8,[],4],4],[9,[0],[],[6,[1,9]],9]]
+
+[[[],8,4,[1]],[[[2,1,2,1],[10]],10,7,4],[[5,8,[8,3,1,5,1],[5,6,8]],[[2,10],[]]]]
+[[[9,[2,4,9],[10,5],[],3],0,[0,[],4],[8],3],[],[9,[9],2],[],[]]
+
+[[10],[[]],[3,[],1,8,9],[0,[5,[8,7,8,6],8,[10,9,3,0]],[[],3,[8,1,7,8],2,7]]]
+[[],[[4],3,[[8,8]],[],1],[],[4,0,4,[9,10]],[[9,[7,4,5],7],8,[6,[8,7,5,7,9]]]]
+
+[[[[3,1,9,7,2]],1,3],[3,1,[[],[10,7,1,5,1]],[[2,5],[1,9,9]]],[10],[],[[[5,8,8,4,3],0,[2],[5,9]],2,2,[]]]
+[[[[7]],2]]
+
+[[7,[9,6],[[4,1,1,8],9,[]],[[],9],[0,0,[8,6,0,2]]],[[],[1]]]
+[[4,7],[],[10,1,[9,0,[5,9],[0,5],7],[8,0,7],[[8,1,4,5],8]]]
+
+[[10,[[8,10,4]],9,[]],[],[[10],7],[3,4,5,10,[[6,4,8,7,9],3,[0,5]]]]
+[[9,[6,[2,8,9],3,[2],[0,1,5,0]]],[5],[[[9,8,1,9,8],[],[9,4,8],1,6],4,[3]],[[8,10,3,3,10],8,1,4],[]]
+
+[[8],[[1,9,4],[9],0],[[],5,0],[3],[[9],3]]
+[[0,5],[0,[[9,6,8]],8]]
+
+[[1,[],[[8,10,2,5],6,[5,0,7,2,8],2]],[]]
+[[6,5,10,9,[5,7,8,[2,3,9,8,10]]]]
+
+[[],[8],[[4],[1,9,1,3],3]]
+[[1,[[],[],10,[10,2],6],0,[]]]
+
+[[[],10,[[7],[1,0,9],7]]]
+[[1,2],[],[[[4,10]]],[[1,[6,9,1,0],4,[7]],4,[[8,10,0,5,5],1,6,[8,7,10,0],[5]],7]]
+
+[[[],[5,9,[2,4,7,7],[10],7]]]
+[[[1],2,[7,0,[7,9,3,5,10],6,[6,3,3,0]],[],[2,5]]]
+
+[[],[[9,4,[5,5],[]],5,2,[6,10,10,[0,1,3],10],6],[10,[[5,3,0],[],2],[[1]],4]]
+[[[[4,6,9]]],[[10,0,[8,1,5,3,6],[],10],2],[8,[[2,3,10,5,10]],[[9,1,3,3,2]],[[7,2,8],1]],[]]
+
+[[],[[[],[],5,[1],[2,7,1,7,2]],7,9,[[6,2,3,4,0],8,2],2]]
+[[],[4,2,5,[[1,3],1,[6,5],[3,5,7],[5,5,8,10,5]]],[],[]]
+
+[[7,[2,[4,0,6,6],0],3]]
+[[3,3,[[1,5]]]]
+
+[[[[4],[5,5],[9,10,2,6],[4,2,1,4]],0,0,10,[[],[6],[3,4,4,2,6],[2,8],[]]]]
+[[2,[[10],10,7,[],7],[[2,3,2,9],[2,2,8,6,2],[5,5,2,9,1]]],[[],2,8,1,[2,[4,5,9,5,1],8]],[[[]],6,[10,[6,5],[6,10,9,5,5],2]]]
+
+[[4,[9,[3,2,2],[3,2,2,10],3,[10,8,5,2]]]]
+[[0,9,8,[[2,1],[0,7,2,9,4],[6]]],[[5,9,[3],7],0,7,[0,[8,1,2],[2,10,9,3,6]],7]]
+
+[[[1,[7,5],7],0],[2,0,4,1,7],[[2,9,4,[8,3,8],[2]]]]
+[[],[[6,10],6,7],[0,9,6,4,[2,1,[5,1],[]]],[[],[[7],2,5,[6,0,6,2]],[[0,9,2,3],3]],[[[],10],0,6,8]]
+
+[[],[],[2],[[4,[10,10]],[1],[7,3,[9,9],0],[[3,7],10,[5,1],9]]]
+[[7,[[6,9]],4,6,2],[[],[],[6,6]]]
+
+[[[10,5,10,7,7],4,3,1,3],[],[4]]
+[[3,[5,2,7,[5],5],[[5]],0,2],[[],[[6,7,0],[0,8]],7,[2,0,8],[[0,2],[]]],[1,7,10,[7,3,1],[]],[4,[[9,1,10,7],[7,9,3]],[],[1,1,9,5]],[9,4,5,[[3,2,7,0],[1],7,4,6]]]
+
+[[[[3,4,4,8],[],[5,9,10,4,3],[1]]],[2],[4,3,[],[4],[[3,3],3,[8,8],[1,4,10],[3]]],[[[0,7,10],[10,9,3,0,10],6,7,6],0,[9,4,0,0,[9,10,0,7]],[6],[]]]
+[[3,[[]],0,[5],4],[6,8,10,6,[[8,1,5,5,7],3,0,[],4]]]
+
+[[[5,4,5,8,1],6,[8,[],[0,6,0],[3,8,10,0]]]]
+[[[[10,4,1,4],[2,5,9,2],[6,3,2,5,2],[],8],[10],2],[[2]]]
+
+[[[7,[7,10,2,7],[]],[4,7,[0,10,10],4,10],[],10],[3,4,9,[],2],[[8],9,[7,[8,7,2],[2,4,6],4,[8,4,6]]]]
+[[6,6,[[3],[3],[1]],8],[[9,[8,8,3,9],10]],[[5,5,4,[]],9,[]],[8,[[3],6,6],[1,[3,7],0,9,0],[[],[],9,3],[2]],[[[3],[6,6,4,9,6],[7,5],[3],8]]]
+
+[[0,3,[7,10],[7,[7,1,5,4]]],[[7,7,10,[7,1,5]],[4,[2,3],[1],9,[]],4]]
+[[4,[[3,6,10,8]],9,9],[[[6,0,9,7],[0,9,5,3],9]]]
+
+[[[4,1],[1,1,[6,5,7],3,[9]]],[8,8,0,[6]],[0,[[8,8,4,0,0],[8,9,1,8,8],[2]]]]
+[[9,1],[5,1,[[7],[6,5],[],[7]],10,3],[2,3],[1,5,[],[]]]
+
+[[[[5,9,0,6]],[0,[9,9],0,[]],6],[[]],[[[6,4],10],10,0]]
+[[],[[]],[[1,3,[7,8,6]],[[3]],8],[[[],[2,3,8,5,4]],8],[9,6,[5,[]],[9,[6,9,7,3]],9]]
+
+[[5,3,1],[2,5,[[],1,[1,10,9,0,7],[],[]]],[5],[3,10,[[8,4],[5,7]],5],[[5,8],[[1,6,4],10,6,3,[7,5,1,8,3]],[],[[],[3,7],2,[5,7],[10,7,3]],[[5,10],1,[5,8]]]]
+[[[1,[5,0],0,0],10,7,[],3],[[[0,0,6,9,0],[10,4,9,0]],3],[8]]
+
+[[6,6,3,[6,0,10,[1,6,0,6],6]],[1,[[2,9,2,5,1],9],[6,[1],0,4,7]],[[[1,10,8]],[1,3,[2,1,10,0],10],0,8],[[[8,1,2,9,5],[4,6,10,8]],6,0,[],6]]
+[[[[0,8,2,2],[9,1,5,8,6],8],1,0,[2,[0,4],[10]],[[9,4,2,3,3],[4,6,0],9,7]],[[6,[],0,[5,7,4]]]]
+
+[[[[2],[8,9,1,3,3],[3,8,5,6],[7,3],5],[10,5,[8,0,5,7,8]],[],3],[4,[[0,4,7,4],1,[8,0,7,3],9,[10]]]]
+[[[[7,1,8,1]],10,[10,[1,8,1,5],[9,9,9],[5,10,10]],5,[]],[],[],[[10],[[0,1,8]],2,[[],9,[0],5,[]]]]
+
+[[0,0],[[],3,[[4,8,4,6],3,[1,5,0,0]]],[[],10],[[8,[5,8,7],8],2,0,[]],[8,5,[[],[]],2]]
+[[10,[10],[],7,10],[[9,[10,6],2,4],[[6,9,6,0],4,7,1],[8,9,[]],[[5,3,10]],7],[8,[[5,1,1,1,5]],[[1,6,3,5]],[[4,5,7],[],3],[[7,1,5,4],[0,10,10],[1]]]]
+
+[[6,1],[],[4,[[9,10,7,8,2],[8,2],10],3,10,[[8,8,3],4,7,[2,1,5,5,3],[8,6,7,5,0]]]]
+[[[0,[4],[4],[2,5,4,7,7],5],0,[]],[]]
+
+[[[],3,8,[[7,5,3,8,9],3,[8,10,4,7]]],[[[10],10,[0,9,3]],5,[[10,2,10,10,6],10,7,[7,4,7,9,9]]],[],[[7,[],5],9,[10,[4,9,0,2],[9]],[5,[1,10,2],[4,4],[8,2]],[[3,7,8],5,[9,2,5,5,5],[2,10,2]]],[[[9,9,9,10],[9],[10,10,9],[8]],8]]
+[[],[[9,[10,7,7,4]],10],[[1,5,9,4],[[6,6,3,10],[],5],3,[[],9,[6,7,3],3,4],10],[[0,[6,8,10],10,[1]],[[2,2,5,5]]]]
+
+[[8,0,9],[0,1,[0,1,4],0],[3,4],[[[0,1]],1,[9,5,9],[5,[3],5,[3],[2,1,6]]]]
+[[[[10,3,10,2],7,3],4,[[1,5,6,4,5],[9,4,6,9],3,[9]],[[1,5,7],[4,10,7],[4,2],10,[9,6,0]]]]
+
+[[5,5,[1,[9,6,9],4],1,0],[[[8,4],[6],5,[4,3,9,7],3]],[5,4,7,5,[]],[3,2]]
+[[2],[9,[[3,7,1],[2,3,4,9],3,6,[1,2,9,0,4]],8]]
+
+[[1],[[2,[2,2],[3,3,1,3]],1,[[8],[0,5]],[7,8]],[[[10,5],3,[9,6],2,[9,6,8,6]]],[[4],9,5],[3]]
+[[6,[],[4],[[3,0,9],[4,9],[4,4,6],0,10],9]]
+
+[[[8,7],2,[[]],6],[10,8],[1,3,8],[3],[4]]
+[[7,[4,7,8,[0,2]],1],[[[10,9,9,6],9,[9],7,1],5,[[8],1,[10,4,10],6],9]]
+
+[[[[2,5,1,8,0],10,7,[5,4,10,0]],6,6,[[4,6,7,9],2,[],[6,10,7,9]]],[[8,[8,6,10,0],4,5],6,4,[[4,2,3],8,6,3,3],[[9],[1,4,7,5,5],[4],7]],[[],[6,2,[6,5,4,6]],10,8],[3,[4,8,[0,2,10,10,9],4],[6],[[]]],[[]]]
+[[[[3,7,2],10,10],6,[1,4,0,0,[]],[[0,5]]],[[0,[5,2,1,0,10]],[2],[0,[7],8,3]]]
+
+[[],[6,5,3,6,[3,4,[7,2,9],0]],[3],[7,[[],4,[]],7,[]],[[[10,10,6],10],[[8],4,[9,9,0,10,7],4,4],9,[[1,8,10,7,4]],6]]
+[[],[10,[6,2],[5,3],2],[4],[[7,[7]],8,[2,9,[10,2,0],2],[],[[7,1],1,9,[4,2]]]]
+
+[[[],8,[9,0]],[],[4,2,[1,[1,5,7,4]]],[1,4,0,[[],5,4,9,[10,9]]],[[],[4,10,[1,10]],9,[]]]
+[[[[7],[7,0,10]],[3],[[]],[]],[[[6],[],[6,0],1,[9,5]],[10,[5],[],1],[[1,8],[],9,[7],[1,8,8,8]],[],[0]],[[[]]],[1,[],[6,[],7,[5,5,2],1],8]]
+
+[[8,[],7,[]],[5,6,[],9,[[7,9,9],1]],[3]]
+[[[4,[3],[9,4,4,9],1,6],[10],2],[[0],[],[[2,3,7,2,3]],[[3,9],10,[4]]]]
+
+[[[[2,3,9,1,6],[10],[10]],[0,9,[0,4,10],7,[3,2,7]],5]]
+[[[7,[9],5],4,10,[[3,9,8],[5,6,1,0,9],9,[]]],[1,[[7],[5,10]],8,[[4,8,5],2,9]]]
+
+[[[[3],9,2,8,[]],[10,[1,10,6],[10,7,9],4,[10]],[2,[3,6,9,6],[5,0],[3,5,10],8],4]]
+[[7,[[10,10,3],1],4,[0,[8,9,6],9,[6,3,9,1,6]]],[]]
+
+[[[8,[3,1,3,2,3],5,10],[3,2],9],[8]]
+[[4,7],[],[7,6,[[10,5,0,3,4],9],7,[[0,5,9,5],7,2,[5,8]]]]
+
+[[2,[],2],[2,[5,[2,2,10,2,4],[3,3,5,10],[6,1]],[6,[6]],2,8]]
+[[[7,3,4],4,[[7],[10,6,9],[],[]],[[2,7,5],[8],[4,7,10,9,6],[]],[3,0,8]]]
+
+[6,4,3,7,0]
+[6,4,3,7]
+
+[[[[0,2,5],9],1,8]]
+[[[1,[4],[8,7,5,7,3]],10],[]]
+
+[[8,[5,[9,1,2],5,10]]]
+[[[4],7,8]]
+
+[[7,[]]]
+[[[[9,5],[2,10,6,7]],2,4,[],[10,6,8,3,8]],[[[]],9,[[2,9],10,3,6],[[1,10],[9]]]]
+
+[[5,[[1,7,9],10],8],[[6,[7,1,9,2],10,[5],[6,4,9]],[10]]]
+[[[2,8,6,[]]]]
+
+[[9,8]]
+[[3,9,[[0,2,0,3,3],[9,6,7,3,9],3,10,4]],[1,3,[[],[1,7,5],[8,4,8],0,[2,2]],9,6],[]]
+
+[[[],[[0,4,9]],[[1,10,9,8,7],6,[5,1,6,10],4]],[[[],[9,0,2],10],[3],9,[]],[2,6],[[],1,[9,8,[5,3],[],[4]],6,10]]
+[[0]]
+
+[[1,3],[7,[],[[2,6,8,7,5],2,[],[7,0,6]]]]
+[[[6,[],7,3],5,[2,[],[9,8,1,4],3]],[[[0,7]]],[10,[[6,0,1,7],[],[8,2,5],7],1],[]]
+
+[[[],[],5,[],[[8,5,10]]],[10,[[0,3],[1],[6,3,1],[5,4,1]],4,1],[1,[],[],[[3],1,[9],5]]]
+[[[7,[4,10],10,[0,3,10],6],1]]
+
+[[[[3,4,6],7,[0,1,6,8,10],7],[[1,9,5,10]],9]]
+[[[6,[2,7,5,9],0]]]
+
+[[8]]
+[[[[1,0,6],2,[3,10,1,9]],6]]
+
+[[[7],0,[4,[4,0,7,8],[7,10,4,6,10],[]]]]
+[[[10,7,[8,10,2,0,6]],6,[8,4,[8]],1,5],[8,[1,6],3]]
+
+[[8,[7]],[7,0,0,6],[[[4,8,9,7],8,[6,0,1,3],9],1,1,10,7],[2,[7,[4,9,2,9,4],5,[10,9,5,4]],[5,[10,3,6,7],[8],[4,6],[3,1,1,5]],9,4],[4,[[8,7,2,2,0]],[[3,10]],[],[10,0,7,8]]]
+[[[[5,4,9,4,9]],[[7,6,2,8],[3,9,10],2,3,9],9,[[10,2,8,2,0]]],[9,[4,[1],9],4],[],[5,5]]
+
+[[[[8,2,4],[8,7,3]]],[7,[2,10,8,[7]]],[9,[[6,3]],[],8,6]]
+[[[[],[0,1,0],[6,9,8,7,2]],[[3,1,0,10]]],[[6,[0,10],[],5,[4,2,1,6,5]],[]],[1],[3,[6,1,[6,7]],4],[[[],3,10,[10,1]],7]]
+
+[[[10,[1]],8,5,[]],[9]]
+[[[3,[1],10],[10,9]],[10],[1,9,[[7,2,1,8,7],[]],3,0]]
+
+[[[],[[3,5,5,7,7],[9],2],[[10],0],8],[7,[[6,6,5,8],0,2,[4,7,3,5]]],[[1],2,[[2],[7,3,7]],6]]
+[[],[3]]
+
+[[4,[],[[2],[6,7],0],4],[10,[[9,4,7,6,10],[0,0,1,10,6],6,1,3]]]
+[[4,1,0,1],[],[],[[1],[],[[9,10,5,0],[10,7,4],[10,9,1,10,3]]]]
+
+[[[[4,8,8,0],[7],3,2],8,[[10,9,1]]]]
+[[[1,6,[10,4,2]],1],[1,[4,[2,7],6,[7],2]],[3,9,10,9],[]]
+
+[[[[10,1,4,6,5],[2,8,10,6],3],2,2,[6,3],[[4]]],[4,[[7,6,8,0],[4,0,3],0,[10,9]],[3,8,10],1]]
+[[[2,5]],[[5,[8,7,2,0],8,[9,1,5],[9,8,0]],10,10,[9,3,[10]],3],[[2,2,7,[3,10,7,10,8],7],8],[4,0,[6,2,10],[10,3,0,[4,6,5,4,2]]]]
+
+[[[],2],[0,6,[[2,7,7,2,4],[7,1]],6,2]]
+[[3,[],[[10,2,1,5]]],[]]
+
+[[],[8,[[5,10,5]],9]]
+[[[[2,8,4],[2,0],4,6,4],2,[[10,5,10],1,[10,9,1,1]]],[2,7],[],[[[3,1,4,8,4],4,[0,5,9,3],4,[]],[],[8,2]]]
diff --git a/src/bin/2022/day13.rs b/src/bin/2022/day13.rs
new file mode 100644
index 0000000..d8d24d2
--- /dev/null
+++ b/src/bin/2022/day13.rs
@@ -0,0 +1,129 @@
+#![allow(dead_code)]
+#![allow(unused_variables)]
+
+use advent_of_code::prelude::*;
+
+#[derive(PartialEq, Eq, Clone, Debug)]
+pub enum Packet {
+ Int(usize),
+ List(Vec<Packet>),
+}
+
+impl PartialOrd for Packet {
+ fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
+ Some(self.cmp(other))
+ }
+}
+
+impl Ord for Packet {
+ fn cmp(&self, other: &Self) -> Ordering {
+ match self {
+ Self::Int(left) => match other {
+ Self::Int(right) => left.cmp(right),
+ Self::List(right) => {
+ Self::List(vec![self.clone()]).cmp(other)
+ }
+ },
+ Self::List(left) => match other {
+ Self::Int(right) => {
+ self.cmp(&Self::List(vec![other.clone()]))
+ }
+ Self::List(right) => left.cmp(right),
+ },
+ }
+ }
+}
+
+impl Packet {
+ fn parse(s: &str) -> Result<(Self, &str)> {
+ if let Some(mut s) = s.strip_prefix('[') {
+ let mut l = vec![];
+ while !s.starts_with([',', ']']) {
+ let (packet, next) = Self::parse(s)?;
+ l.push(packet);
+ match next.as_bytes()[0] {
+ b',' => s = &next[1..],
+ b']' => {
+ s = next;
+ break;
+ }
+ _ => bail!("failed to parse"),
+ }
+ }
+ Ok((Self::List(l), &s[1..]))
+ } else {
+ let end = s.find([',', ']']).unwrap_or(s.len());
+ Ok((Self::Int(s[..end].parse()?), &s[end..]))
+ }
+ }
+}
+
+impl std::str::FromStr for Packet {
+ type Err = anyhow::Error;
+
+ fn from_str(s: &str) -> Result<Self, Self::Err> {
+ let (packet, rest) = Packet::parse(s)?;
+ if !rest.is_empty() {
+ bail!("trailing data: '{}'", rest);
+ }
+ Ok(packet)
+ }
+}
+
+pub fn parse(fh: File) -> Result<Vec<(Packet, Packet)>> {
+ let mut lines = parse::raw_lines(fh);
+
+ let mut pairs = vec![];
+ loop {
+ let packet1 = lines.next().unwrap();
+ let packet2 = lines.next().unwrap();
+ pairs.push((packet1.parse()?, packet2.parse()?));
+ if let Some(line) = lines.next() {
+ assert_eq!(line, "");
+ } else {
+ break;
+ }
+ }
+ Ok(pairs)
+}
+
+pub fn part1(pairs: Vec<(Packet, Packet)>) -> Result<usize> {
+ let mut total = 0;
+ for (i, (left, right)) in pairs.iter().enumerate() {
+ if left <= right {
+ total += i + 1;
+ }
+ }
+ Ok(total)
+}
+
+pub fn part2(pairs: Vec<(Packet, Packet)>) -> Result<usize> {
+ let div_a = Packet::List(vec![Packet::List(vec![Packet::Int(2)])]);
+ let div_b = Packet::List(vec![Packet::List(vec![Packet::Int(6)])]);
+ let mut packets: Vec<Packet> = pairs
+ .into_iter()
+ .flat_map(|(left, right)| {
+ std::iter::once(left).chain(std::iter::once(right))
+ })
+ .chain(std::iter::once(div_a.clone()))
+ .chain(std::iter::once(div_b.clone()))
+ .collect();
+ packets.sort_unstable();
+ let idx_a =
+ packets.iter().position(|packet| packet == &div_a).unwrap() + 1;
+ let idx_b =
+ packets.iter().position(|packet| packet == &div_b).unwrap() + 1;
+ Ok(idx_a * idx_b)
+}
+
+#[test]
+fn test() {
+ assert_eq!(
+ part1(parse(parse::data(2022, 13).unwrap()).unwrap()).unwrap(),
+ 6070
+ );
+ assert_eq!(
+ part2(parse(parse::data(2022, 13).unwrap()).unwrap()).unwrap(),
+ 20758
+ );
+}
diff --git a/src/bin/2022/main.rs b/src/bin/2022/main.rs
index c694d56..90221d9 100644
--- a/src/bin/2022/main.rs
+++ b/src/bin/2022/main.rs
@@ -23,6 +23,7 @@ mod day7;
mod day8;
mod day9;
mod day12;
+mod day13;
// NEXT MOD
#[paw::main]
@@ -41,6 +42,7 @@ fn main(opt: Opt) -> Result<()> {
10 => advent_of_code::day!(2022, opt.day, opt.puzzle, day10),
11 => advent_of_code::day!(2022, opt.day, opt.puzzle, day11),
12 => advent_of_code::day!(2022, opt.day, opt.puzzle, day12),
+ 13 => advent_of_code::day!(2022, opt.day, opt.puzzle, day13),
// NEXT PART
_ => panic!("unknown day {}", opt.day),
}