1
0
Fork 0

day 13 solution

main
Andrew Coleman 2022-12-15 10:39:06 -05:00
parent b433dadf5f
commit f88eeb1f91
5 changed files with 558 additions and 0 deletions

449
2022/day13.txt Normal file
View File

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

82
2022/src/days/day13.rs Normal file
View File

@ -0,0 +1,82 @@
use anyhow::Result;
use std::cmp::Ordering;
use std::fs;
#[derive(Debug, Clone, Eq, PartialEq)]
enum Packet {
Num(i32),
List(Vec<Packet>),
}
fn parse(s: &str) -> Packet {
if &s[0..1] == "[" {
let mut stack: i32 = 0;
Packet::List(
s[1..s.len() - 1]
.split(|c| {
if c == '[' {
stack += 1
} else if c == ']' {
stack -= 1
}
c == ',' && stack == 0
})
.filter_map(|s| (!s.is_empty()).then(|| parse(s)))
.collect(),
)
} else {
Packet::Num(s.parse().unwrap())
}
}
impl Ord for Packet {
fn cmp(&self, other: &Self) -> Ordering {
match (self, other) {
(Packet::Num(a), Packet::Num(b)) => a.cmp(b),
(Packet::Num(_), _) => Packet::List(vec![self.clone()]).cmp(other),
(_, Packet::Num(_)) => self.cmp(&Packet::List(vec![other.clone()])),
(Packet::List(a), Packet::List(b)) => a.cmp(b),
}
}
}
impl PartialOrd for Packet {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
Some(self.cmp(other))
}
}
pub fn run() -> Result<()> {
#[cfg(not(feature = "test_input"))]
let file_contents = fs::read_to_string("day13.txt")?;
#[cfg(feature = "test_input")]
let file_contents = fs::read_to_string("tests/day13.txt")?;
let mut packets: Vec<Packet> = file_contents
.trim()
.lines()
.filter_map(|s| (!s.is_empty()).then(|| parse(s)))
.collect();
let mut part1 = 0;
for (packet_index, packet_pair) in packets.chunks(2).enumerate() {
let o = packet_pair[0].cmp(&packet_pair[1]);
assert!(o != Ordering::Equal);
if o == Ordering::Less {
part1 += packet_index + 1;
}
}
println!("part one: {}", part1);
let div1 = parse("[[2]]");
let div2 = parse("[[6]]");
packets.push(div1.clone());
packets.push(div2.clone());
packets.sort();
let i1 = packets.binary_search(&div1).unwrap() + 1;
let i2 = packets.binary_search(&div2).unwrap() + 1;
println!("part two: {} * {} = {}", i1, i2, i1 * i2);
Ok(())
}

View File

@ -2,6 +2,7 @@ pub mod day1;
pub mod day10;
pub mod day11;
pub mod day12;
pub mod day13;
pub mod day2;
pub mod day3;
pub mod day4;

View File

@ -48,6 +48,9 @@ fn run_day(number: i32) -> Result<()> {
12 => {
days::day12::run()?;
}
13 => {
days::day13::run()?;
}
_ => return Err(anyhow!("Invalid day provided")),
}
Ok(())

23
2022/tests/day13.txt Normal file
View File

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