This commit is contained in:
Max 2022-12-13 09:37:09 +01:00
parent fd3a9a2938
commit 4efef42bc9
3 changed files with 593 additions and 2 deletions

7
day13/Cargo.lock generated Normal file
View File

@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "day13"
version = "0.1.0"

449
day13/input.txt Normal file
View File

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

View File

@ -1,3 +1,138 @@
fn main() { use std::{cmp::Ordering, fs::read_to_string, str::Lines};
println!("Hello, world!");
#[derive(Debug, Clone, Eq)]
enum Node {
Number(i32),
List(Vec<Node>),
}
impl PartialEq for Node {
fn eq(&self, other: &Self) -> bool {
self.partial_cmp(other) == Some(Ordering::Equal)
}
}
impl Ord for Node {
fn cmp(&self, other: &Self) -> Ordering {
self.partial_cmp(other).unwrap()
}
}
impl PartialOrd for Node {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
match (self, other) {
(Self::Number(n1), Self::Number(n2)) => n1.partial_cmp(n2),
(Self::Number(n), Self::List(_)) => {
Self::List(vec![Self::Number(*n)]).partial_cmp(other)
}
(Self::List(_), Self::Number(n)) => {
self.partial_cmp(&Self::List(vec![Self::Number(*n)]))
}
(Self::List(l1), Self::List(l2)) => {
for i in 0..l1.len().min(l2.len()) {
let n1 = &l1[i];
let n2 = &l2[i];
match n1.partial_cmp(&n2) {
None | Some(Ordering::Equal) => (),
ord => return ord,
}
}
Some(l1.len().cmp(&l2.len()))
}
}
}
}
impl From<&str> for Node {
fn from(line: &str) -> Self {
match line.split_once('[') {
None => Self::Number(line.parse().unwrap()),
Some(("", "]")) => Self::List(vec![]),
Some(("", r)) => match r.rsplit_once(']') {
Some((r, "")) => {
let mut indentation = 0;
Self::List(
r.split(|c| match c {
'[' => {
indentation += 1;
false
}
']' => {
indentation -= 1;
false
}
',' if indentation == 0 => true,
_ => false,
})
.map(Into::into)
.collect(),
)
}
_ => panic!("missing closing parenthesis"),
},
_ => panic!("invalid input"),
}
}
}
fn parse_pair(lines: &mut Lines) -> Option<(Node, Node)> {
let [first, second] = &lines
.take_while(|line| !line.is_empty())
.map(Node::from)
.collect::<Vec<_>>()[..] else {return None;};
Some((first.clone(), second.clone()))
}
fn main() {
let input = "[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]"
.to_owned();
let input = read_to_string("input.txt").unwrap_or(input);
let mut input = input.lines();
let mut pairs = vec![];
while let Some(pair) = parse_pair(&mut input) {
pairs.push(pair);
}
let correct: usize = pairs
.iter()
.enumerate()
.filter_map(|(i, pair)| if pair.0 < pair.1 { Some(i + 1) } else { None })
.sum();
println!("{correct}");
let mut packets: Vec<_> = pairs.into_iter().flat_map(|p| [p.0, p.1]).collect();
packets.push("[[2]]".into());
packets.push("[[6]]".into());
packets.sort();
let decoder_key = (packets
.iter()
.position(|e| *e == Node::from("[[2]]"))
.unwrap()
+ 1)
* (packets
.iter()
.position(|e| *e == Node::from("[[6]]"))
.unwrap()
+ 1);
println!("{decoder_key}");
} }