Compare commits

...

3 commits

Author SHA1 Message Date
Xiretza 4022aa6e68 2022 day13/rust: clean up 2022-12-13 18:51:33 +01:00
Xiretza f08a4aa274 2022 day13/rust: add solution 2022-12-13 18:48:50 +01:00
Xiretza 70fbd5ffaa 2022 day13: add data 2022-12-13 18:48:31 +01:00
6 changed files with 548 additions and 0 deletions

2
2022/data/day13.expected Normal file
View file

@ -0,0 +1,2 @@
5684
22932

449
2022/data/day13.input Normal file
View file

@ -0,0 +1,449 @@
[[[10,[],5,[5,10,2,10,5]]],[[[4,1,2,5],1,2,9],[4,10],[],[]],[[],8,[[7],7]],[[[8],7,8,3]],[7,5]]
[[5,[[9,4],9],[7,[6,4],[1,9,9,3,10]],2,2],[[3,[],1,9]],[[8,[5],2,[10,3,8,8]],4,[],10,[5,9]],[[[],4,[7,8,6]],[[2,2,1,8,5],[0,10,6,6]],[7,[7,9,9,7],8,6]]]
[[[10,10],9,8,6],[[9,8,[2,1,10,0],[6,8]],3,7,[[10,5,10],[3,1,6,5,5]]],[[[4,9,5,4,9],0,7,[5],5],1]]
[[5,1,2,4,1],[10,4,[[3,9],5,6,[5,8,6,2]],5,9]]
[[[[4],[2],5,[3,5,9],6],6],[7,[6,4]],[[[8,4,0,2,8]],0,4],[[[9,2],[5,10,1]]]]
[[5,[[7,5],0,[3,10,4],[8,0]],[1,3,2,1]],[5,7],[[[1,3,5,9,3],10,[8,9],0,10],6,1,5]]
[[[9,10,4]],[],[[5,[10,4,4,8],4,4,[0,0,8,10]],9,7,8,[[2,9,9,7],[6,4,6],[6],[3],10]],[],[[4,[10,4,7,5]],[[],5],[[0],[],10,6],[],0]]
[[[[0,6,2],[6],6,[2,0],[10,1,4,5]],[[0,6]],[0,0,2,[6,1,6]],2],[1,3,[[6,5,0,8],7,[1]],[[3],[],8,8]],[9,[2,[4,0,4,0,7],9],[4,[8],5,[],[8,5]],0]]
[[[[],9],[3],[[3,8,9],[4,5],8]]]
[[7,[[1,1,7,9],9],[[7],[3],[2],[0,3,4,5,7]],1],[[],3,[[],[0,7,2,2],[8,10,3,9],8,[]],[7,[2,0,6,10,0],[8,5]]],[1,4,[0],[[5,9,3,2],[9,3,4],[4,10,6,4,10],8]]]
[[],[[[7,4],[0,2,4,9],[7,2],7,[]],[[7,5],[7,0,0,3,0],[1,8],6],1]]
[[7,[],10,6,[]],[5,[[5],[6,7,6,4]]]]
[[[7,[6,9],0,2],6,[3,7]],[9,5]]
[]
[[[],[[9,4,3,3,10],6,[6,0,9,3,9],8]],[[[10],9,0,7],2],[[],[[3],4]]]
[[[1,[8,6,0],[3,4,3,6,4]],1],[1,2],[[]]]
[[2,[],[[9,7,6],2,[8,3,1,8,7]],9,7]]
[[[10],[[0,3,9],[],[8,2]],[],[4],3],[0,[],8]]
[[[[6,0],8,[]],[10,[4,10,4,7]],[0,1,0,2,4]]]
[[2,5,[]],[[[5],[4,9,10,0],7],[[9,3],0,3]],[[[2,9,2,2,2],[],9,1],4,1],[]]
[[10,[[4,2],[1],5,8],[[7,9,0,9],[10,10,9,3],3],[],[6,[0,3,5,6,3],[9],[6,6],[4,7,9,0]]],[[7]],[],[[8,[6],[2],0]],[1]]
[[[[4,7,7,9,6],7,4,10],[],[8,9,[],[0],[7,10,0,5]],8],[0,[8,[],7],7]]
[[[]],[[[10,0,2,3,8],[10],1],[10],4]]
[[9,[[9],2,5,5],[7,[1,2,4,5],[6,8]]]]
[[1],[]]
[[[[5,3],0,8,[],[0,5,5,7]]],[[[],[1,8,3],[]],9,[],[10]],[2]]
[[[[],[4,9,1],2],[[2],5,[]],[10,[8,9]],[[7],3,0,[],[5,4,9,9,5]]],[0],[8,[[4,5,4,9],3],[9,1],[[0,4,7],4,7]],[8,[[3]],[[3],1,6,2]],[9,[[9,7,4],[3,4,5],9,4],[0,[7,3,0],[4,4,3,6],8],10,[[4,6,3],10,10,3,2]]]
[[[7,[4,1,5,2],2],[[],[],[8,3,8,7]],[[8,9,0]]],[[[10,1,7]],[10,4,[2,3]],0,[]],[[[5,9]],7],[5,[2,[3,1,3],[7,1,7,1]],[[10,2,6,3,5],[],0],[[10,5],[7,2,7,8]]],[6,0,8,[9,2,6]]]
[[4,[[3],[1,3,10,8],10,[4,7,1,7],7],1,[3,7,8,10],0]]
[[5,7,6],[2,[2,[1,6,5]]]]
[[],[10,[[2,9],[6,5,0],1,5,[]]],[4,[[2,5,10,2],[4,2]]],[[],[0,[]]]]
[[],[[0,[3,9,8,7,1],1,4],8,0,10],[[[],10],8],[]]
[[[[],3,8]],[5,[7]],[5,[0]]]
[[3,[[5,6],[1,9]],2,10],[[[5,10,3]]],[[8]],[6,[10],[[8,2]],[[10,10,4],[3,6,6,9,4],[8,4,6,8]],[[0,3,4,9],[],0,[5,3,0]]],[[0,[6,9,1],[7,10,7,2]],3,[4,5,2],[9,7,7,4,[]]]]
[[4,[2,4,7,2,8],10,[[1,1,0]]]]
[[5],[],[6,[9]],[7,[[1,6,9,5],[3],2,[4]]]]
[[4],[9],[0,10,[10,8,10,7,8]]]
[[[1,1,[2],7,[]]],[[[8,4,3]],4,4,6,[8]],[]]
[[],[],[9,7]]
[[[7,6,[1,7],[]],4,4,2,0],[5],[],[4,8,[7],[[8]]]]
[[],[[]]]
[[0,[[9,0],10,1,[7,9,4,10]],[4],[5,[6,5],[1,0]],[[1,3,6],4,[2,7,7,7,9]]]]
[[[[6,6],7,3,4],0,2,[[],[0,1,2,6],8,[1]],6],[]]
[[0],[],[2,[9,[6,6,0,1,7]]],[[[4,5,7,7],[6,3,7],0]]]
[[10,6,8,1]]
[[[[],[],[3,4]],[[7,3,1,10,10],[8,2]],[[5,3,5,5],[6,5,4,0,0],[4,6,4],7],[[9,4,7],0],[[],[0,3,9],[5,2,9],4,7]]]
[[[8,10,8,[0,7,9]]],[[[5],[7,7,10,3]],[6,[2,6,4]],4,0,[]],[[8,8,10,[4,4,6,1,7],2],9,1,8,[[10,3,8],[],8]],[],[7]]
[[3,[],6,10,10],[[4,[4,5,10,6],[2,2,8,7,4]]]]
[[],[8,8],[6],[9,4,[],[[0,8,10,9,9],[8]],1],[[[4,10,9,9,0],0],[],[[7,1,9,10]],[]]]
[[3],[[[],0,[0,3],[7,8],[2,6,6,8,10]],0,[[5,4,10],[1],[10,3,5,1],9,[6,9]]],[[[1,6,3,7],8,[9,4,3]],8],[],[]]
[[10,[],0]]
[[9],[4,[10,[9],[7],1,8],[[8,6],[],[8,5,7,1]]],[7]]
[[8,3,[9,4,3,5,[4,4,5]],1],[[4,4,[10,8,0,5],[3,2,8,4,5]],3,[5,[3,7],8,5]]]
[[9,[8,[8,9,10,5],[1,3,3,5],2,[6,0,4]]]]
[[[[5,4,7],4]],[5,[5,[]],3,10]]
[[]]
[[2,10,[[0,0,7,5,2],[7,9,5,5]],5,[10,[8,9,7,6],[2],[1,1,4,5,9]]],[[10,[9,7]],1],[]]
[[3,4,2,[9],3],[],[9,2,[]]]
[[[],[[8,0,0,2,4],10,[2,10]],[],[[],[6,5],[],1,[]],2],[10,[8,8]],[]]
[[9],[[5,10,[7,1,10,6],3]],[8,9,[[4,9,7]],[3,[9],[3,3,5,0],[4,0,7]]],[[[4,7,10,7,10],[4],1,[8,3,2]],[7,[9,3,6,4],[4,0,2,0],[10,7,2,8,5],10],[5,9],3],[[[5,0]],5,[6,[3,10],[2,1,4,7],8,[6,1]],[[10,9,2,4,10],[],[9],9],[1,6,4,[5,0,7,7]]]]
[[7,[[],[0,9,5],[2],1,[7,8,2]],6,7],[10],[[6,[4,0,4,9,0],[10,1,5],3],5,[9,8]],[4,[7,5],8,[[2,3,1,6,5],[1,5],[3],[0,5,3,1,5]]],[[9],[[9,6,3,4],1,[5],1,[5]],[[0,0],[]]]]
[[6,[10,2],8,[],[[7,6,4,4],2]]]
[[8,8,[],1,[[5,3]]],[10],[[6,9],6,[3,10]],[6,[[0,9,5],10,[0],[8],[9,10]],10,[[4,1,0,2,5],2]],[4,[[8,6,3]],[]]]
[[[],0,0,9],[[[1,2,4,9,0],[1,10,7],[10,1,3,3],10,3]],[[[]],[1,[7,6]],7],[4,[0,10,[9,2]]]]
[[0,9,4],[[9,10],[]],[]]
[[],[],[[[],3,4,0]]]
[[[[10],[0,3,3],[6,3,2],[3],10],5],[[],[[]],[2,[10,0,5,7],[5,4,1,9,1],4,2],4,3]]
[[[[],[4,5],9,[2],8],1,[[1,1],[6,7],[1,5]],[[6,7]]]]
[[],[],[[[3,6,6,1,5],9],[[7,2],[],[9,2,4],[7,8,10,0,3]],4,[[6,9,5,2]]],[6,6,[[4,10]]]]
[[],[6]]
[[4],[2,[6,[5,10,4,0,1],0,[],0],8,[[9,0],6,[2],3]],[0,5,[[4],5],5,7]]
[[3,[[6,3,8,7],4,7],[[1,3,1,2,7]]]]
[[[7,[2,3],1,[2,6,9,10,4]]],[4,[8,5,[],10,3],[]]]
[[4,8]]
[[[5],5,[1]]]
[[[],[4,3,0,[5,9,3,4],[4]],2],[[10,[1],3],9,[[1,6]],10,8],[10,[],3,8]]
[[10,[10],5],[[[0,3,5,8],0,3,5],5],[],[8]]
[[[5],0,[[8,10,8],[8,2,10],[5],[1,7,9,6],[2]]],[3,4,[[10,4,9,4,9],[10,6,10,0],9,7,3],5]]
[[6,10,[1,[10,6],6],10,[5]]]
[[[[7,2,1,5,3],[],8],[[6,6,9,4,9],5]],[4,8,[0,[1],8,10,[]]]]
[[7,3,[],8]]
[[7,7,[[],[7,3,6,4,2]]],[0,6,8]]
[[7,2,4],[4,[],6,[]],[3],[9]]
[[[[1,6],[5,6,5,2]],4,2,[]],[]]
[[[10],5,2]]
[[1,6,[[7,7],[8],[],5,9],[5,[6]]],[[5,8],3]]
[[6,1,[7,2,3],3,[]],[2],[7,[[5,0],[1,9,10,6,7],7,6]],[1,[[3],0,[0,9,2,9]]]]
[[[],[9],[[5,4]],0],[],[[5]],[6,1,9],[]]
[[10,4,1,[8,[]],[[2,10,8,4],[3,3,8]]],[[0,5,1,[0]],2,3],[1,3,[8,[10,5,9,10,0],8],[[4,8,7,9,1]],5],[],[10]]
[[9,4],[],[3,[[0],3,[2,8,8]],[[7,4,1]],[]]]
[[7,[],[0],[]]]
[[[[10,9]],3,[[0,3],0,[6,7],[3,8,5,0],[1,6]],1],[[],7,2],[[[8],[9],10,7],1],[[[1,6,5,1,9],5,[2],[2,3,1,2,8]],5]]
[[[[10],[2],7,[3,5,4]],6,9,[[],7]]]
[[8,9,6,4,[3,3]],[3,[8,[7,3,2,8,4],0,[1,9,4]],10,[],[8,6,[1,0,2,1],[0,1,7,8],[5,2,3,10,8]]],[[[]],2,5,8],[[6],[],7,[5,[],[6,6,9,9,6],[1,10,3,5],7]]]
[[],[[],[[7,1],9,8,[],[2]],8,0,[]],[9,[],2],[7,2,9,[[],9,[],[],[1,10,7]],6]]
[[7,6,8]]
[[10,3,[[3,4],6]],[],[9,[7,[10,4,4,8],7,0,[]]],[[[10,3,7,3]],1,1,1],[6,[[4],[10],[0]],[5,[10,9,0,7,1],1,4,4],10]]
[[[[3,7,6,5]],7],[10],[[0,9]]]
[[[0,[3,2,6,4,4],[2],[3,6,6]],[0,[6],0,4,6],3,[9],0],[4,[5]]]
[[],[[[7,2,9,7,1],[2],4,[7,9],[6,8,7,2]],[[0],[],[]]],[[10,1,3],2]]
[[8,[9,[],[5]],1,[5,7,0,[3],2],4],[2],[[7,[3,2,2,2],4,[1,3]],9],[[4,[4,0,4],[3,7],[1,8,4],[2,8]],2]]
[[[3,[7],4,3],[]],[9],[[10,[4,2,1,9,6],[],4],[]],[3,[[1,10,9,4],[6,9,3]],4,[1,7],[[8,5,3,2],[2,7,5,1],[],[5,6,4],9]]]
[[[[],6,[4,3]],10,[[2,9]]],[10,[[5,3]],[],[],[9,[5,3,1,3],[3,8]]],[],[[6],[1],[6,7,[7,1,8],7]]]
[[4,[],5,[5,8,2,9]]]
[[[[],0,[7,9,8,1],0,[9,0,3,2]],2],[6,6,3],[],[[[0],[8,8],[7],10],1,9,[[10]],[[7,4],[],0,5]],[[2],8,6,[0,7,[1,9,7,10],[8,0,7,9],7],5]]
[[0,0,[]]]
[[[[3,5],[8,2,9,7],[4,5],[2]]],[10,[]],[],[],[]]
[[[[0,9,3,7],2,1,[],[6]]]]
[[],[1,[],6,[[2,6,5,3],[],[4],[4,7,3,3,4],[8,8]],2]]
[[[[5,7]]],[3],[[4,3],[],[5],9]]
[[1,[[3,0,3,0,5],4,[],1]],[4,3]]
[[],[3,[[9,0,8],[8,5,1,4,3]],[[0,4],[2,1,5,7],[3,2,5,3]],[],3]]
[[],[[[]],[4,[4,8,0,2]],2,[[0,1,7,0],[4,2],6],[]],[],[4]]
[[[]]]
[[5,6,[3],[10],0]]
[[[9,[7,8],[],5]],[7,[[5,10,9],[4,7,4,8],[],[0,3,5,9]],[7,[3,2,8],[]],[4,2],[2]]]
[[[[3,7],[2,6,8],4,5,[8,1,8,0,5]]],[[[10,7,0],7],5,7,[[],6]],[[[6,5,4,8,5]],[[0,4,1,0,5],[9,1],10,[]]],[]]
[[6,[[],8,[1,4,1,9,4]],[3]],[[6,[5,6,9,7,10],[6],4,[]],[9,3]]]
[[0,5,[],6,0],[7,[10,[2,3,10,7]]]]
[[0,[3,[7],[4],[],5]],[8,3,[4,1,8,4,[]],5,1],[5]]
[[3,4],[],[0,4,[6,5],[5,4,[]]]]
[[7],[[4,[6],[1,4,1,5],5,[]],6,2,0],[6,[]]]
[[4,3,6],[[6,8,3],[4,[9,8,5],[],2]],[6,[[1,2],0,3],10,10,[[4,3,5],[0,8,9],4,[],4]]]
[[],[4],[6,[10,[1,2]],[1,[],[9,0],[2,8,7],5],10,0],[9,8,2,0],[2,[]]]
[[4,3,5,6],[],[[[6],[]],4,[0,10,[],[],[8]],2],[7,10]]
[[4,6,8],[],[0,[],7],[1,2],[[[9,1,5],9,4,[4,6,2,8,10],[7,5,9,3]]]]
[[2,[],[8,2,9]],[0,10,1,[[0,3,4,6],[9,9,4],[1,8,9,8],5,6]]]
[[[9,10,[0,10,4],[]],[[1,6],[0,4],3,[6,6,9],6],1,5,[[3],3,5,[10,3,2]]]]
[[[2]],[8,[]],[],[],[[7,[6,3,10]],6,7,0]]
[[9,8],[],[],[1,0,[[5,0,8],[10,3],0,[4,4]]]]
[[[10],[[],4,[3,5,0],[1,6,7],[1,3,6,7,9]]],[1],[[0,[6,6,10,5,4],8],5],[],[]]
[[],[]]
[[6,[],5],[[[4,1]]],[[2],8,6]]
[[[3,[5,6,8,1,4],[3],0,4],[[8,2,9,6],8,2,10,1],[[10,7,2,0],5,[2,3,5,6,8],[]],10,3],[[],[8,[0,2,4,8],3,[0,8,8],5],[[10,5,9,7,7],9],[[],[5,9,3,7,4],[],5,[10,2]]],[5],[[7,[],[0],[4,8,7]],2,6]]
[[6,4],[[[3,3,5,4],4,0,1,2],[[2,9,5,8,7],[7,2,6],7,0,[]],4,[1]],[[[],[3,8,2,9,2],[10,7,4,10]],8,10]]
[[0,[[9,6],[4,3],1],7,[[6,10,0,0],[],0,[4,3,2,8,3]],7],[],[0],[4,[5,9,[6,2,2,5,6],[2,2],[]]],[]]
[[[8,[]],[[],[],[4,4,7,8],[9]],2]]
[[],[[[3,8,7,1,6],[1,9],10,1],[[1]]]]
[[[[7,5]],[2],[2,1,4],6,[]]]
[[1,[[0,4,0,1,5]],0,2],[],[2],[[[10]],0,8,[2,5,3,[],[9,1,0,9]],10],[[10,[1,2,5],10,0,5],[[3,4,4,6,10],1]]]
[[],[10]]
[[10],[10,[4,1,[9,1]],9,[],7],[[[7,2],9,6,0],6,8,[2,0,[]]],[[10,3],9,5,[7,[0],[],9,[]],3],[[10,2,[4,6,3,1,0]],[[]],[],[[10,9,1],9,[],7,[7]],[]]]
[[[4,[3,8,3,7,4]],2,[[3,10,3,4,0],1,[9,3,6,1,8]],0],[],[[2,3,10,[1,5,1,3,5],7],[10,3,0,[4,0]],[[2,5],[3,10],8,1,[7,7]],[]],[]]
[[8],[[[6],10,[4],9],[0,[7,5,1,8,9],[8,0],[10,8],9],[9]],[[9,2]],[0,[[7,8,7],[9],6],[5,2,3,[8,8]],2]]
[5,6,7,10,10]
[5,6,7,10]
[[[],[3,6],1,[[8,10,7,6,6]],10],[1,1,4],[3,[2,[6,0,4,4,1],[9]],0],[]]
[[[],[8,5,[4],[]]],[[],[[8,3,0,0,7],5,[3],8,2],1],[],[[[9,5],10,4],[[3,9],[0,5],6],[],[[0,9,7,2,3]],[6]]]
[[[[],[],3]],[[]],[4,6,[3,[],2]],[],[5,10,7,4,[0,[],5,4]]]
[[[3],[9,[5,1,4,7,0]],9,[]],[9,9,[10,4,2],[10,2],4],[[[5,8,3],[4,4],[4,5,6]],[],[[4,0,0],0,1,[3,6,10,10]],2],[[[2,10,0]],[8,[],4,[]],[[3,4,7,3],2],[0,[4]],10]]
[[0,[4,3,[5,9,10,4],[4,6,3,8,6]]],[[],[[],[3,7,2,5],[],4,[6,10,6,7,6]]],[],[9]]
[[[9,[2,7,10,4,0],7],[10,[0,6,1]],[10],[[9],9],0],[],[[0,0,5],[0,4,[]]],[]]
[[],[[[2],4,[8,10],[7,2]],7,[[10,0],1],6,[]],[5],[1,10,8],[[7,3],3]]
[[],[[0,[8],[]],[9,1,10,[7,8],[7,8,8,8]],8,[],[1,4,6]]]
[[],[7],[[[1,0,5],3,[],[2,9,3],[10,6,4,0,9]]]]
[[0,[3]],[1,[7],2,[],[9]],[3,2,[[9,3,2,3],7,10,[3,10],[8,5,9,9]],[[0,2],[1,5,6]],[10,[7],[8,2],6,[4,9,2]]],[[8,[3,1,9,8],6,3],0,[],[2,[4,2],[10,8,10,0]]]]
[[[]],[[[7,5,3],[],2],[]],[]]
[[[7],2,3,[],5],[],[4,3,6,[[9,4,5,4,0]]],[6,[9]]]
[[[3,5,[2,4],[5]],2,[[2,1]]],[[],8,[4,9,9,[],[4,10,9]],0],[],[[[1],6],[[1,0]]],[[10,[5,9,6,3],3],[[3,1,7,0],[4,8],[]],1,1]]
[[[4,4,[0,7,2],[4,2],[]]],[6,[],1],[10,8,9],[],[10,2,[],9]]
[[7],[[[],2,[],10,[]],[[]],[]],[6]]
[[[3,[4,5,3,4],9],3,[7,2,[1,9,0,2],[4],[10,8,4,3]]],[[[7,10,5,7,2]],[[10],6]],[[[1,5,6],8,[7,4,8,9]],[10,6,0,9,[6]],[2,[8,5,3]],[]],[5,10]]
[[10,3,10]]
[[[[2,2]],[3,[2],[1,4,3,3],10]],[[[9,2,8,6,10],10]]]
[[[[],[9,4,8,7,2]],3,[],5],[[5,[10,2,2,1,4],[10,6,6,10,9],2],2,10,5],[[9],7,7,10],[3]]
[[[[4,8,5,0],5,9,0],10,8],[9,[10,[0]]],[],[9,7],[0]]
[[],[[8,2],4,7,[[10],[5,9,3,0,5],[],0]],[3],[8,[8,[8,9,1,6,10],2,9]],[9,[[],3,[0,9,3],10,7],[7,[1,6,6],[2,7,10]]]]
[[1]]
[[[[10],[]],[8,2,8],[[0,10],10],2],[[]],[[],0],[9,[[5,5],0,9,4,4]]]
[[[0,[1,2,0,5,8]],4,[7,4,[],[],0],6],[2,0],[[[10,9,5,9,8]],[]],[9,[[7,8,5,7],[6,7],5],4,[[3,9,5],8,[5,3]],[[0,9,2,0],[4,3,5,7],[8],[]]],[[3,[9,6,8,3],[10],[2,1,0,10,5],[2,3]],10,7,6,[7,[3,3,2,10],5,3,[]]]]
[[1,1],[[10,2]],[[8,[],[4]],4,[0,5]]]
[[[9,[7,1],1,1,9],[8,[],[]],2,[2,[5,9,3,7]],0],[],[[[5,8,10],[8],[3,3,0,10],5,4],[5,7],[10,[4,5,9,0,3],10],10,[4,[],10,[10,10],[0,3,9,10,5]]]]
[[3,2],[[[5,3,7],[7,5,8,10,6],[8,9,3],[8,1,2,5]],[[0,5,10],[]],8],[[1,10,6],10,[],[2,4,5,4]],[[7,10,6,[3,1,5]],1,[10,1,1],[1,[10,10,10,6,2],10]]]
[[1,[4],3],[2,1,[[0,9],[],8],[[1,0,10,1,10]]],[8,1]]
[[[0,[2,5,2],6,1],[[]]],[3,0,7,[5],10]]
[[[2,[9]]],[3,[],[7,[4,3,7,3]]],[8,8,[],[[2,9],[6,1,8],[0,0]],[2,9,8,10]],[4,[],5],[[9,5,[4,10,1,0,2]]]]
[[5,[[],0,9,[],6],[3,[3,5,5,0]]]]
[[7,[3,10,4],0,10,[7,[3,9],[10,10,10,1,1]]],[6,[[]],3],[7,7],[[]],[[],[5,[8,8],[0,9,1],[]]]]
[[0],[5],[[6,[],[1,2,4]],[9],3,[1,[8,7,6,9,0],[2,1],5,1],[]]]
[[4],[[4,[],2,6],2,[]],[],[4,[0,0,6],3]]
[[[10,[9,10,10,5,3],7],[10,[2],[6],[],1],9,2],[5,10],[],[4]]
[[[8,1],[[5,2],7,4,[3,7]],[5,[6,3,8,5],[2,9,0,4,7],6,4],4],[7,0],[[],10,[[1,3,10,5],6,[10,7,6,10,5],[2,6,8,3]],0],[[[8,6,6,3,1]],5,[[2,3,4,3,0]]]]
[[8,[[8,3,3,4]],6,[6,[5,4,0],2,[6],0]]]
[[[1,[1]],[],[[2,5,1],[],[2,8,0,3],9],[8,[5,0,3,3,5],8,1,2]],[0,[4]],[9,3,8],[[1,[1,5,0,10],[],4,1]]]
[[6,[10,7,[8],3],[]],[10,1,[[1,3,1,4,4],[2],8,[5,5,10]],7]]
[[9,[7],7]]
[[[[6,2,4,2,10],4],1,[],0],[2],[[5,[6,3,3],[8,7,6,10]],[[3,9,4],2,1],[[0,0,4,0],[],7,[9,0],[9,8,5,9,2]]]]
[[[[1],9,3],6,9],[5]]
[10,5,2,0]
[10,5,2,0,3]
[[5,0],[6,[0,0,4,[0,6,2,2],[2,1,7,3]],1,8,[[9,2,5,3,2]]],[],[2,[1,[0,6,1],[],[6,6,10]],[[8,6,2,0],[10],[],[]],[[8,7,3,2],10,1,[]]],[3]]
[[[7]],[[6,[],8],7],[[3,[1,3]],[1,[]],4,8,[8,4,10,0,6]]]
[[[[10,3,1,1,0],6,[4,4,10,2],6],1,[],5]]
[[],[[[2,1,0],[],[4,5,5,2],6],10,[10],[[5,10,6,1,1]]]]
[[],[6,[[10,1,2],7,0],[[7,4],[3,5,8,5]],3],[[[],[0,4,3,2],[]],10,[[10,10,4,5],[6],[10,6,9,10]],10],[5,7,[],[[0,0,9,1],[7,2,7,9],[3,7,3,0]]]]
[[0,9,7,[7,0,3,[9,3,2,2],[2,10,1,2,6]]],[10,[8,[6,2,9,1,8],9,[],[10]]],[]]
[[3,[10,[6,7,6,9],2,0],0,[[6,4],8,[8,7,1]]]]
[[5,[[10,10,8,0,5],[2,3],5,[8,0,3],2]],[[[4],3,[2]],[1,[1,5],[7,1,5,9],[2,2,7,0],7],[[6,1],3,[5],7],[4,[9],[9]]],[[],2],[[0,[2,6,3,3,5],[7,7,7,3,8],9,7]],[]]
[[5,5,8,1,9],[[6,[10,9,4,10],8,[9,2,3],9]],[[9,3,8,[1]],[0],[9,[],[9],0,6]],[[2,1,5,[5,9,1]],0,3],[1,[],8,[[],[8]]]]
[[[4,0]]]
[[5]]
[[],[4,6,[[],[2,8,2,8],[2],7,[10,0,7,5]]]]
[[[],1],[]]
[[10],[[[8,3,7],[],[2,4],2,1],4,6,10,[[],[5,2,3,8]]],[[[2,4,7],9,[],[9,2,2,5],[]],9],[[[0,8,2,9,2]]],[10,5]]
[[],[[[9,5,3,6,0],0],4,1],[9,[[5,8,8],0,[0,6,0,3,8],[6,5,4,6],4]],[[1,6,10,[2],[3,1,6]],[[3,5,7,2,7],[6,0],8]]]
[[[0],1,[]],[2,4,9,[2,[3]]],[[[8,3,7,9,3],6,3,9]]]
[[],[[9,4,[5,9,0,0],2,9],[6,[],[2,6,5,4],8]],[],[9],[]]
[[7,2,4,[[4,3],0,2]]]
[[9,[],[[],3,3,9]]]
[[[[1,9,2],[3,0,9],[9,3,9],[]]],[2,9,5,[]]]
[[9,[]],[5,6,[[1,2,10],[6,5,4,1],1,7,2],[10,7],7],[1]]
[[[[8,0,3,9,1],0,9,[9,10],9],5,7]]
[[0,5],[6,0,3],[8,1,7]]
[[1,10,[[3,6,8,3,7],5]],[[[4,5],[],[1,4],3],3],[[1,[],5,7],6,6],[]]
[[[10,9]],[[[9,3,4],[8,5],10,[1,3,1,8],[9,7]],[5],10,4],[5,9,[[2,3,3,7,10],[4],1,[2]]],[5,[5,7]],[3,[],[4,[2,5,1,4],4,7,0]]]
[[1,[8,[],0,[5],[]],[9,[2,4,9,3,1]],2,[]]]
[[9,[[]]]]
[[1,[8,[1,10,4,8],[5,9,6,4,3],6],[[3]],7,5],[[[6],[8,10,5,9,5],10],[8,[4,10]],7,[[0,3],[3],9,9],7],[]]
[[],[[[7]],[5],[[1,3,5,2,2],[2,2,4,9]],[1,[8,3,7,1],0,[3,8,7,2]]]]
[[[[0]],[6]],[[[9,1,10],1,8,9],[[],0,[0,1,5,3],[7,8,9,0],[2,0,0]],2,[],[[8,5,5],[],4,[]]],[],[3],[7,9,1,[6,[6,4,8,7,9],[9],6,2],[5,[]]]]
[[0],[[[3,2],[2],5,9],[[],10,0,7]],[8,[],[],[[]],[[1,2],[1]]],[[8]]]
[[1,[10,0,[3,5,5],[],2],10,[[3],[3,0,8]]],[[[2,10,8,8],[7,9,3,0,4],[7,1,2,0],[3,8,10],8],[0,[2,8,0,2,2]]],[10,10,[1,[6,0,9]],10,[[3,8],[5,3,5,4],3]]]
[[],[6,[4,2,4]],[[],5,[[10]],5]]
[[4,[[5,4,6],2,8,[],6]],[7,[6,[4],10],[],[[7,8,10],[7],0,[4,4,8,9,0]]]]
[[],[0,9,6,[3,6,5,[2,3]]],[[],5],[1,3],[]]
[[[],7,6]]
[[[[2,1,5,10,10],3]]]
[[[6,[6,6]]],[[7,0],1,[[5,4,6,5,6],9,[9,8]],0],[8]]
[[7,[2,[4,2,9],[3,6,8,1]],[8,[7,5,0,7,8],5,[8,4]],7],[7,[8,[4,3],10,4],[[0,8],3,[9,5],[3,1,1,4],2],3],[[[4,5],10],0,1,[3,7,8]]]
[[[[1],0,[6],[2]],2],[[[6,4,4,4],3]],[[[7,4,4,3],5,4],8,5,4,[6,[3,2,7,5,8]]]]
[[[7,0],[[],[],[1,4,4,7,2],4]],[0,[]]]
[[3,[[10,5]],6],[[4,[5,0],6]],[[9,6,[5,1,8,5]]],[[[7],5,[10,2]]],[[],3]]
[[[8,[6],1,4,[9,7,8,9,3]],[[0,5,8,5],[7]],[[],10,7],[[0,8],6],[]],[[[3,1,1]]],[6,2,9,5],[[[1,6],[5,10,10]],[[],[5,10,8,6],[7,7],[8]]]]
[[],[0,[9]],[8,[[],[1,3,7,2,10],[]],[3,[9],[7,6]],5],[6,4,[7,0]]]
[[[[8,9,4],6],7],[[5,7,[5,1]],[[9,9],[],[2,7],[10,0,0]]],[[7,9]],[9,10,[]],[2,[1,8,0,[0,2,7,0,8],[7,6,10]],[[7],[8,8,2,1,3],4],[]]]
[[[[6,6,7,5,3]],1,1,[4,6,[1,10,4,8]],[2,[10,7],[10,8,6,8],10]],[[[9,9],10,[1,8,1]]]]
[[8,[[10,10,4,9]]]]
[[4,2,7,3],[[4,4],[4,7,[9]]],[[[8]]],[2,[[6,4,5,10,10],0,8,9,[7,6,1,10]],[4,8,2,[9,5,1,5],[2,0,6,0]],[[0,6],2,1,4],5]]
[[[7,2,7],[5,6,[2,5]]],[8],[6,2,2]]
[[[],9,1,2],[[[],8]]]
[[[1,7,[1,10,10,1]],0,0,9,1],[],[0,9,[[2,10,8,1],3,4,0,[6,7]],8],[[10,[],5,[7,2,10,4],8],[],8],[10,[1,[1,8,8,0],2,[3],10],[2,6,5,6,0],6]]
[[3,4,4],[[6,[1],10],[[6,2,4,2,0],[1,2,10,1],[2,9,9,5],10]],[10,5,3],[1,[[]],[9],[0,[],4,4,2]]]
[[[],[[6,3,4,3],8,[7],3,8],[[9,1,5,2]],[[7,3],6,5,10]],[],[]]
[[[4,0],5,[],[[3,1,1,5,3],2,1]],[1,8],[],[4,[[4,0,5]],10,[[],6,9]]]
[[[[10,0],6,[9]],[3,[0,7,3],[0],[],5],6,6],[],[4,3,5],[4,8,7,[[8,5,1,0,1],[6,3,3,8,2],8],6]]
[[10,1,[]]]
[[8,[[9,3,9,4],0],[3,[2,5,2],8,[10,2,7,1,5]]],[],[9,[[7,5],0,2,6],[2,[9,0,5]],9],[10,[[],[],7],[1,1],3]]
[[[2,[],6,[2]],8,[],[[4,9,8,10,9],7,[2],[9,4,3,10,8],4],10],[[[],3],[8,0,[8,2,9,9]]],[6,[9,[4,0]],6]]
[[[],[[],4,[10,9,4,4],[]]]]
[[[7],[9],[7,[4]]],[4,2,[]]]
[[[[1,5,7],[],1,[10,1],8],[7,4,[5,2,2,5],[],[10,4]]],[10]]
[[[1,[8,9,10,1],[7,10,10,5],5],9,[[2,0],10],[[4,10],[5,4,7,5],[2,10,5,0,1],2,6],7],[[[7],6],[5,[0,4],[0,6,0],[10,4,8]],[[5],[],[0,6,7]]],[[0,10,10,[1,0,1]],6,0,[3,[0,6,10],[8,5,2,7]],[1,3,[]]]]
[[[3],6,3,10,5],[5,2],[[0,0,[0,2,9,10],4],0,6,[[10,6,5,3,0],1]],[0,[2,[2,5,1]],[[9,7,8,7],8,0,6,[4,4,2,2]],5,[[10],0,[7,8],10,8]]]
[[[[10,8],4]]]
[[[5]],[]]
[[[[0]],8,9],[[[],[],[],7,[2,3,8,0,2]],[[6,10,3,1],3]]]
[[4,0,9,[1,1,[4]]],[6,[],[8],5,[[],4]],[],[[[3],[],6,[]],[],2]]
[[],[[[6,1,8,1,0],0,[7],[0,7,9,10]],5,0],[],[5,4,7,[6,[4,7,5,7,1],[4,1,10,8],4]]]
[[[[1,9,4],5,[],7,[5,1]],[6,10,7,[8,4,7]],8,1],[[5,[5],[],[4,9],10],[[7],3,[8,7,4,0],10,4],3,0,3],[0,8,5,7],[[[3,3,1],2,[1,4,10],9],[10,[6,7,10,4],2,[]],1,6]]
[[4,[[4,4],[10,8,1,9],4,[10,7,5,0]],[1,7],[7,[9,6],[2,8,9],[2,2,0,0]]],[8,2,6,[[10,8],[6,3,5,0]],[[],8,3,[10,0,9,3]]],[2,3,[[],[4,10,4,9,10],4,6,10]],[[4],7,2,[[1,8,7,9,1],6,4,5,[9,5,7]],[[1,2,1,6]]]]
[[0,[[10,4,5,9],[10],8,[9,0],[1,8]],2,[5,[],[8,4,0,6,6]]],[0,[8,2,6,[],[10]],0,[1],[[],4]],[[7,[3,5,4,4],10],[[7,6,8],5,[0]],5,3],[1,7],[5,10,[6,[],[1,4,3,1]],5]]
[[9,2,7,2,[[6,0]]],[],[5,6,[],5,9],[7,10,7,1],[[1,2,6],8,3]]
[[[[4,6],3]],[9,[1,[10,2,6],[7,7,10,6]],1,[0,[6,7,10,9,9]],[[9],7,[4,9,8,8,7],[7,7,3],[]]],[[],[3],[10,[4,0,9,8,2],6,2]],[[0,8,5,[8,2],6],[[5],1,2,6],[[0,1,6,3,3],[4,2],[7,4,8,4,9],[2,7],10],5,4],[[]]]
[[[]],[1,[1,[6,7,4],[8,0,6],[1,6,9],3],[[2,2]],6],[4]]
[[[[7,0,1,7],[4,4,6,8,0],[4,0,5],[4]],[[10],8,[1],[],2],[[],[4,8],10,[2]],2,[[3,9]]],[3,[[4],[1,0,0,0,9],5,[9,9,5,0,10],0],[[],[],[]],6]]
[[5,2,[3,[2,5,3,1,6]]],[6,[[9,1,3,4,8],5,5,3,9],[[2,9,8],[6,4,10,2],[7,3,2,8,7],[6,9,9,0,0],[7]],[0,[],[8,8,6]]],[[3,10],2,[10,10,[1,10],[7,2,0]]],[8,[],[10,7]]]
[[[[],[],10,2,[]],[],9,[],3]]
[[[[0]]]]
[[8,10],[6,10,[4,[10,6,10,8]],[3,[]]]]
[[[[7,0,1,9],[8,5,0,4]],[[5,10]],6,[[7],[7,6],[5,9,1,0]],8],[[[7,5,0,6],[2,2,1,0,3]],[5,[4,7,9],[8],3,9],6,3],[[],[[],[],2,[5,0,0]]],[[[1,2,4]],[0,3],7],[]]
[[],[2],[]]
[[3,4,[4,[2,6,5,1,6],[],2]],[7,1,[10,[0,4],4,10,8]]]
[[[6,7],6,4],[[2,7,[9,8,10]],1,1,6,[[3,2,8,0,8],3,1,1]],[[[],3,10,2],[5,9],7,7,[8,[8,0,9,5],4]],[],[7,2,5,10,[10,4,[]]]]
[[5,[],[1,[8,5,8]],8,6],[4,[[10,3,2,4,0]]]]
[[9]]
[[],[9],[[10,[6,7,8,7,9]],[0,0,[9,10,0]]]]
[[[],1],[[[6,8,8,5],3,1,[],[6,2,9,2,8]],[[0,0,7,8]],[[]],[[0,7,6,0],2,[2],[]],9]]
[[[],5,7,[[5,2,8],6,[7,10,5,7]]],[[4,7,[6,2,0,10,2],6,2],[[5],1,0]],[],[7,3,[[4,8,7],4,0,[0,0]],[[3]]],[5]]
[[[[9,1,4,1,6],[4,5],[],[2,5],8],6,4,[[3,1,1,0],2,10],[6,[4,9,6],[0]]],[8,2,[]],[4,[0,[3,4]],4,8,2]]
[[0,3,[2,10,7,[8,0,7,3],[0,0]],3,[10,6,10,[],[0,0,2,9,2]]],[[],9],[[6,[5,7,5,2],[5],6,2],[7,1,[1,9,5],0,[]],[[5,1],[0,10,7],4,[6,8],[4,1,10,6,2]],7]]
[[[2,8,3],[[3,7,7],0,8,[2,0]],5,[[6,0,6,9],[10,3]]],[0,7,[[5,8,5,6],5,7,[],[]],[[3],[],4,[6,7,9,0,4],5],[[1,7,8],2,10]],[4,[9,1],8,7],[[9,2,4]]]
[[[7,3,[],[9,7,9,9],[7,3]]],[0,1,0],[5,0,[0,7,[1,7,3,10]]],[4,[3,[5],[3]]]]
[[9],[],[[1,[],8,[1,4,1]],9,[[5,8]]]]
[[9,10,[5,[3,4],8,8],[4],[]]]
[[[[],7],4,[2,[0,5,6]],[9,7,[],[],1],[]],[[]],[7],[4,[],[[0,8,3],[10,0,7]],[[3,10,2],[8,10,1,3]],[]]]
[[[[0,5,3,2,5],7],2,10],[]]
[[5,6,[4,[3,4,2,1],2],7,8]]
[[],[1,[5],[[],[10,1,7,10]],[10,[2,9,6,8],3,10]],[[[8,9,5,0,8],[10,5,7,3],[7],2,1],0,[5,5,[9,2,4,9],[1,5,2]]],[6]]
[[0,3,5],[[]],[[5,[2,6,7,7]],[3],1,[[8],1],[0,[2],[5,6,6]]]]
[[[4],4],[10,[5],5,4,0],[5,1,0,7]]
[[[[5,9,3,4],2,2,[8,1,2]],[0],4,4],[5],[[10,3,[],5],6,[1,[7,9,4,6,8]],[0,4]]]
[[4,[5,[9,4,1]]],[10,[5,[6,4,9,5,2],[3,0,3]],[],8,[3,[2,7,9,9,4],8,2,[3]]],[0,[[5,5,2,10,4],[0],0,[3]]],[[],0,9,1],[0,7,[],[8,2,[6,9,6,2,6]]]]
[[9,[8,10,[4,10],3],[2,4,0]],[7,[6,[5,3,3,6],5,6,[3,4,0,5,5]]],[[[10,8,3],[],[4],6,[1]],6,1,10,0],[[2],[],8]]
[[[[7,2]],[6,1,[2],[10],2],6],[[4,10],[[],1]]]
[[[],[0,9,1,[4,1,10]],[7,3,[1,1],8,9]],[0],[0,[[8,10,1,8,9],5,[]],[10],[3]],[[[5,8],10,[0,7]]],[8,[],[[6,8]]]]
[[[[6],[4],[8,0],[3]],10],[[1],[3,0,[8,4,1,7,10],[3,10],7],2,7,6]]
[[[1,9],[[1,3],0,5,8]]]
[[2,[9,[0,8,4,6,0],[6,7,5,4],10]],[[2,[4,3,5,1],[7,6,8],8,[9,3,2]]],[[[7],[7,1,3],10],[],[5,[10,5],5,0,[]],[],[8,5]],[[7,[8,5,6,9,1],1],[[],[8,1],10],[[1]],2,3]]
[[[10,[4,8]],[[]],7,3,6],[9,[1,5],[0,[10],[6,0,9]]]]
[[10,3,7],[4,5,[[8,10,2,10,9],10,[0],7],3],[[],0]]

View file

@ -0,0 +1,10 @@
[package]
name = "rust_2022_13"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
aoc = { path = "../../../common/rust" }
nom = "7.1.1"

View file

@ -0,0 +1,78 @@
#![warn(clippy::pedantic)]
use nom::Parser;
use std::io::{stdin, Read};
use nom::{
branch::alt, bytes::complete::tag, character::complete::u32, multi::separated_list0,
sequence::delimited, IResult,
};
#[derive(Debug, Clone, PartialEq, Eq)]
enum Data {
List(Vec<Data>),
Number(usize),
}
impl PartialOrd for Data {
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
Some(self.cmp(other))
}
}
impl Ord for Data {
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
match (self, other) {
(Data::List(l), Data::List(r)) => l.as_slice().cmp(r),
(Data::List(l), r @ Data::Number(_)) => l.iter().cmp([r]),
(l @ Data::Number(_), Data::List(r)) => [l].into_iter().cmp(r.iter()),
(Data::Number(l), Data::Number(r)) => l.cmp(r),
}
}
}
fn parse_data(s: &str) -> IResult<&str, Data, ()> {
alt((
delimited(tag("["), separated_list0(tag(","), parse_data), tag("]")).map(Data::List),
u32.map(|i| Data::Number(usize::try_from(i).unwrap())),
))(s)
}
fn main() {
let mut data = String::new();
stdin().read_to_string(&mut data).unwrap();
let pairs: Vec<_> = data
.split("\n\n")
.map(|pair| {
let (left, right) = pair.split_once('\n').unwrap();
(parse_data(left).unwrap().1, parse_data(right).unwrap().1)
})
.collect();
let num_sorted: usize = pairs
.iter()
.enumerate()
.filter_map(|(i, (left, right))| (left <= right).then_some(i + 1))
.sum();
println!("{}", num_sorted);
let dividers = [2, 6]
.into_iter()
.map(|i| Data::List(vec![Data::List(vec![Data::Number(i)])]));
let mut sorted: Vec<_> = pairs
.into_iter()
.flat_map(|(left, right)| [left, right])
.collect();
sorted.extend(dividers.clone());
sorted.sort();
println!(
"{}",
dividers
.map(|div| sorted.binary_search(&div).unwrap() + 1)
.product::<usize>()
);
}

8
Cargo.lock generated
View file

@ -585,6 +585,14 @@ dependencies = [
"petgraph",
]
[[package]]
name = "rust_2022_13"
version = "0.1.0"
dependencies = [
"aoc",
"nom",
]
[[package]]
name = "ryu"
version = "1.0.11"

View file

@ -22,4 +22,5 @@ members = [
"2022/day10/rust",
"2022/day11/rust",
"2022/day12/rust",
"2022/day13/rust",
]