daay 13 done day 14 added
This commit is contained in:
@@ -9,3 +9,4 @@ repository.workspace = true
|
||||
|
||||
[dependencies]
|
||||
nom.workspace = true
|
||||
log.workspace = true
|
||||
|
||||
449
day13/input.txt
Normal file
449
day13/input.txt
Normal file
@@ -0,0 +1,449 @@
|
||||
[[5],[1,[[0]]],[],[3,[[9,1],[3,4,10],8,3],6]]
|
||||
[[],[[6,8],4]]
|
||||
|
||||
[[[[4,4,6,0],[10,4,9]],0,[3,9],[[2,2,4],7,4,2,8],[0,8,7,[9]]],[[[],5,7]],[[10,[9,6],7],[[5,7],4,7],5,[]]]
|
||||
[[0,5]]
|
||||
|
||||
[[7],[],[[1]]]
|
||||
[[[[9],[1]]],[2],[[[2,10,9],3,0,6],3],[[9,[9,4,8,9]],3],[9,[9,[0,6,10],3],[[8,10,0,7],[2,3,4,2],[2,2,3]],[7,6,10]]]
|
||||
|
||||
[[[[],[1,3,4],8,5,1],1,[],3,1],[[5]],[]]
|
||||
[[[3,9,8,7,[0,6,8]]],[[[0,5]],3]]
|
||||
|
||||
[[[[],[4,8]],[],[[],9,8]],[0],[[2,[1,3,0],5,4],0,10,1]]
|
||||
[[[[3,10,6,9]],5],[0,2]]
|
||||
|
||||
[[[3],6],[[1,[6,9,3,4]],[],[6],2],[2,[[],[5],4,[3,9,9]]]]
|
||||
[[[[6,10,5],6,0,[2,6],0],8,[2,9,[1,0,5]]],[[7,[0,0,9,0],[0,6,2,6,6],[]],1,[[4],[5,2],[2,4,2],5],[[9]],2],[10,[[10],6,9],10],[7]]
|
||||
|
||||
[[3,[[5,7,0,1,4],10,2,[2,10,7,0]],[[]]]]
|
||||
[]
|
||||
|
||||
[[6,[],[6,[6,3]]],[10],[5,3]]
|
||||
[[],[[],0],[[4,[0,2,0],4,1],[[5,2,1,4]],[10,2,[5,5,5]],[[10],[6,6,3,0],8,7]]]
|
||||
|
||||
[[[],[[],5],[[10,9,5],[8,2,5],8,1,4],3],[[[7,8,9,0],3,[5],[4,9]],[[3],9,[4,0],[0,9,0]],[1,10,9],[1,[7,8],9],4]]
|
||||
[[7,[9,[3,1],[10,6,2,3,1]]],[[2,10],6],[[[3,9,10],[6,9]],6,5,[8,[0,3],0,7,1],[]]]
|
||||
|
||||
[[8,[[1,0,4,6,9],2]]]
|
||||
[[3,[9,[],[5]]]]
|
||||
|
||||
[[[],[],[],4,[[10,9,7],[10,1],[4,8,4,0,7],7]],[]]
|
||||
[[6,0,[],3]]
|
||||
|
||||
[[3,3,[[1,9,8],4,[1,4,1],[],8],[[6,1],[2,2,10,3,4],[0,2,4,6,4],[10,7,2],[1]]],[[0],[[6,3,3,2,5]],3,10,[10]]]
|
||||
[[[[1,9],7,[]],[8,[6,10],[8,2],[2,5]],[[2],0,5,4],5,[3,5,6,3]],[],[],[]]
|
||||
|
||||
[[],[8,[6],0],[7,10,9,[1]],[],[7,[[]],5,2]]
|
||||
[[[]],[[[1,3,7,10,9],[2,3,3,1,5],[7,10,0,9,3],[]],[4,0,5],[[],[],9,[0]],[[3],[10],6]],[]]
|
||||
|
||||
[[10,[10,7,[0,10,10]],8,8],[6],[0,2,[[],4],[[2,9,6,8,5],6]]]
|
||||
[[[[],[],5,3]],[],[[[7,10],[2,2,3,9,7]],[5],9,3],[[2],[5,[4,9,8,3,6],1],0,[[8,6],3,[8,10],4],2]]
|
||||
|
||||
[[7,[6],[[1]],[4,[8,0,1,4,8],0,[5],9]],[],[5,[[10,10,10,5,4]],[0,[6,7,4],[2,5,6],[1]],8]]
|
||||
[[1,4,8]]
|
||||
|
||||
[[1,0,[[10,5,1,9,2],[0,6,6,6],[9,5,8,8]],4,[3,4]],[],[],[[7],4,[[3,2],[5,5,3,3,6]],8],[]]
|
||||
[[9,3,[]],[[0,[8,9,4,4],[7,4,3,7]],6],[3,9,1,0],[[]]]
|
||||
|
||||
[[4,[3,[10,10,10,8],[4,4,0],8,[9,7,9,4]],1,3],[3,10,0,5,[[9,6],2,3,[1,7,10],4]],[[[10,10,7,10,1],10],9],[5,6,4]]
|
||||
[[[5,4,9,10],2,[[5],[9,9,9,7],[],[7,10,2],[6]],[10,3,[4]],[[],[8],1,[],[]]],[[[8,2,5,7],9,5,[2,8,2]],7],[7,[[],[10,1,0]]]]
|
||||
|
||||
[[6,8,[0,7,9,3,4],[8]]]
|
||||
[[[6,[2],[10,1,2,8,6],2,6]],[[10,10],[[0,3,1,6,0],10]],[],[8,9,7,2],[[6,9,4,2,0],7,0]]
|
||||
|
||||
[[[]],[[3,6,9,[2],[7]],[[0,9,2,7],[3],2,0,[9,5,1,8]],6],[[],3,[[],4],9,6]]
|
||||
[[4],[1,9,4,10],[],[[],4,5],[[],6,4]]
|
||||
|
||||
[[],[[5]],[[4,[10,9,3],[1,6,0],[8]],[[7],[1,3,4,6],[5],[1,7,8,8,1]],[1,[],[],8],[],[[5,2],2,[3,6,1,2],6]]]
|
||||
[[[[4]],3]]
|
||||
|
||||
[[7,5,[],[8],[[3],[8],[2,6,8],[10,4,7]]]]
|
||||
[[1,4,4]]
|
||||
|
||||
[[[8,[10,2,8,3,4]],8],[],[[3],[],5],[7,[[7]],[[0,7,6],[4],5],[[4],[10,4],7,6]],[5,8]]
|
||||
[[0]]
|
||||
|
||||
[[],[[2,[9],0],6],[6,[]]]
|
||||
[[7,8,[8,3],1,10],[10,[]],[],[[[2,5,7,9],[2,3,7,0,3],[3]],[]]]
|
||||
|
||||
[[[4],6,4,1]]
|
||||
[[5,3],[2,[6,9],[[5,0,2,8]],1,[10,10]],[10],[[[],10,[10],6,6],5,[[0],9]]]
|
||||
|
||||
[[2,[0],5,[6,5,[2],7]]]
|
||||
[[[8,8,[8,2,1,4,5]],6,[[10],6,[],[]],[[9,6]],5],[7,2,[9]],[3,8,1],[2,[5,4,4,10],10,2],[]]
|
||||
|
||||
[[6,3],[[[6],0,1]],[9,10],[10,10,5]]
|
||||
[[[[1,8,5,10]],7,[]],[[]],[[[1,1,5,6],[1],[8,9,10,10],[4,1,10]],[6,[6,9,4,3,8],[4,1,0]],[[]],[[10,2,4,8,6],1,8,7]]]
|
||||
|
||||
[[]]
|
||||
[[[[5,6,3,7,4],[1,1,8,0],[0,8],[2,2,10,9,6]],[[1,7,6,10,9],[3,3,3],6],[[2,7],6,[3,8]]],[2,3,9,5],[],[9,[[],[],[1,5,4],7]]]
|
||||
|
||||
[[[[1,7,1,3,4]],3,1,[4,5,8,[2,10,7,7],9]],[6,[1,[],4,4,9]],[[0,[1,6,0,4],5],2,4],[[[4,10,0,10,9],2,7,0,[4,4,10,10]],4,2,[]]]
|
||||
[[10,3,2,5,[[9,6],[9],4]],[[[8,9,10],[9,8,7,3,7],[3,7,3],7,3],[8,4],7],[],[[[7,4,10],[9],[7,9,8,1],4,5],[9,2,[2],[10,5]],8,1],[[],3]]
|
||||
|
||||
[[],[4,10,5,2,[7,[6,2,1,3,3]]],[3,[[3],1],6]]
|
||||
[[[0,9]],[5,[9,[1,5,2,7,5],10,[4],1]],[],[2,[2,2,[9,4]],[[0,7,2]],5,1],[]]
|
||||
|
||||
[[[[8,4,1,8,5]],[4,1,[],[2,6,5]],5,3],[[5,[2],10,[8],[10]],2,0,[[6,5],[7,2,8,6],[7],8],[10,[4,6],[]]],[[10],9],[],[10,[[],[0,0,4],[9,6,7,7,10],2]]]
|
||||
[[[4,10,7,[5,10],8],0,[],[[1,0],[5],9],[]],[0,[6,[1,0],[],[9,5,9]],[[6,10,4,7,7],10,[10,6,1,1,10],7]]]
|
||||
|
||||
[[8,[0,8,7],2],[1,[[5,10]],[[3,4,0,9,0],6,0]],[[[0,7,9,0,4],6,[],[9],[7]],[5]],[[],[[5,10],[0,9,6,6,6],[1,6,3]],8,7]]
|
||||
[[[[],[]]],[[1,10],5]]
|
||||
|
||||
[[1],[],[[[4,9,1,4,1],2,[1,4,8,7,7]],2,[],[],8]]
|
||||
[[[10],9,[],[6,[],[1],9,[4,6,6,6]],8],[2,[[9,7]],[5,7,2,[2,7,5,6,8],[6,1,0,1]],1,5],[[4],7,0]]
|
||||
|
||||
[[9,[[1,5,1],6,2,5,[5,0,3,6,5]]],[4,3,2,[4,[3,1,8,0,9],[6,0,8,7,6],5,10],[]],[[[8,9,5,1,7],9,[9],0,7],10,[[9,10,1,8,7],6,1],1]]
|
||||
[[[[2,1,10],6]],[],[6,[[6,7],10],[9,10,[],9,4]],[],[[[7,8],5,[6,10,6,8]],[],[[],[8,8,9],8,8,1]]]
|
||||
|
||||
[[[[9,0,5,2],2,6],10,[2,4],[],7],[10,[[],5,4,9],[2],[[4,5],[3,2,8,2],[10],[3]],6],[2,1,[]],[]]
|
||||
[[[1,[0,8,7,6],8,8,4],10],[1,[[6,4,1],[],3,[1,5,5],4],2],[5,2],[],[[5,[8],[6,10,3,9],[1]],[4],[[9,9],[10,2,10,6,5]]]]
|
||||
|
||||
[[5,5,6],[[[2,3],9,8]],[[[2,6,9],9,[4],[],2]],[6,[[5,6,6],[10,1,3,5],[1,1,7,9]],[6],[[0,10,0,6],[5,2,4,4,4],[5],8],[]],[1,[0,0,[3,7,8,6],2],8,[5,[10,8,2,3,7],[],[]]]]
|
||||
[[],[[1,[4,1]],[3,2,[5,2,7]],[5,[7,5,1,5],7],[10,[9,5,1],[2],[3,1,9,7,6],10]],[2,[[5]],0],[8],[[4],[],10]]
|
||||
|
||||
[[8,0,8,7],[5,[4],3,6,[]],[],[]]
|
||||
[[9,1],[7]]
|
||||
|
||||
[[7,6],[],[[2,[1,1,9,1,1],[5]]]]
|
||||
[[7]]
|
||||
|
||||
[[[3]],[[2,[0,6]],3,[7,[9,3,2,2,1],[]],[5,9]],[6,[[4,4]],10,[[],[0,0],7,[9,9,4],4]],[[[7,2],[7,9,1,10,9],9]],[[[3,3,9,3,10]],[],[[],3,6]]]
|
||||
[[[7,2,9],1],[[3],4,8],[[8,8,5],[10],[],1,[10]],[10,2,[8],[[4,5,4,3,9],[]],[7,5]],[3,6,10,[[],4,1,[]]]]
|
||||
|
||||
[[7,0,[]]]
|
||||
[[],[],[2,8],[2,0,2,6,8]]
|
||||
|
||||
[[[8,[7,3,10,0]],[],8,[[9,7,5,9],[2],8,7],[]],[9,[[7]],0,0,[4]],[10]]
|
||||
[[2,5,7],[[1,10,[],[9,6,5,8],3],[],9]]
|
||||
|
||||
[[[8,[10,6],3]],[2],[6,[2,[9],3,[2,1,3,0,0],[0,10,3]]],[[9,[4,4]],[]]]
|
||||
[[5,10,[[0,6,6],[],0,[3,10,3],[0,0,8,2,9]]],[[[1,2,10,1],3,[8],[8,1],6],4,7],[6,0,[7,[9,0,10,6,7]],9,10],[[5,7]]]
|
||||
|
||||
[[9],[[[3,7,6,0,2],[10,1,7,9,4],[0,1,5,3,10],4,6],[9],[[],[1,1],7,[3]]],[9,[]],[[],[[9,7,10,1],[9,8,9]],[[4,6],[3],5],[8,4,6,2,[9,10]]],[[8],[[2,6,0,0]],8,9,4]]
|
||||
[[[5,[5,6,3],10],[1,[0,9,3,5],[],[6,8,5,1,8]],[[6,3,4],3]]]
|
||||
|
||||
[[[10,6],3,2,9]]
|
||||
[[[8,9,[2],4]],[],[9,[[9,0,4,4,3],[],[5,8],8]],[[6,10,10],[2,6],6,4],[[5,10,[3,9,1]],[[1]]]]
|
||||
|
||||
[[],[6,0,4,[[2,5,5],[10,9,2],1,[7,1,3,8]]],[6,4]]
|
||||
[[5],[[[4],[3],[2,8,0],9],9,10,0],[[[]],0,[],8]]
|
||||
|
||||
[[],[4,[[5,3,7,3],3],6],[10,[[],[7,4],[],[6,0,4],[5,4,8]],1,[7,[3,0],5,[0]],[[1,7,5,4,0]]]]
|
||||
[[[[],[0,1,5]],10,4,[0,[2,7]],6],[5],[[[9,4,0,0],8,[8,2,8],[1,2]],6,1,0],[[]],[[6,[]],[7,[8,8],[]]]]
|
||||
|
||||
[[[],2]]
|
||||
[[3],[7,[],[0,3,8,[8]]]]
|
||||
|
||||
[[],[[4,0,[]]],[[[2],[4,8],10,[4,10]],[[0,1,6,6],1,4,9,[0]],7,[9,8,[8,10,5,3,3],[8],[5,2,0]],[[3,5,0],[10,8,10,5]]],[[2,2,2,4]],[]]
|
||||
[[[[4,3,10],1,7,[]],8,2],[[[4,4],8,6],0,4],[[3,5,[7,9,8,10,9],9],5,[[],10,[3],2,[6,8,6,7]]]]
|
||||
|
||||
[[[9,8,[6,0,3,7,7]],0],[1,3],[4],[[[],8,8,6,[3]],2]]
|
||||
[[[[5],10],[7,[0,1,9,6,6],[6],10,[1]],[[9,8,6],[3,9]]],[[[]],[[10,2],[9,9,0],[2,8,9,7],[9,1]],7,[[7],[8],[9,2],4,0]],[]]
|
||||
|
||||
[[10,5,0,[4],10],[1]]
|
||||
[[],[6,3,[[10,7,10,3,4],3],0],[]]
|
||||
|
||||
[[[]],[1,6,6,10,10],[[1,[7],[9]]],[],[[[4,8,6],[6]],6,[[8],2,[5],[8,1,9],0]]]
|
||||
[[],[3,3,10,8],[3,[[7,1,9]]],[9,[[6,6,7,0],1,1,[]],[4,[9,4,9,7,9]],[6]],[7]]
|
||||
|
||||
[[],[8,6]]
|
||||
[[6,3],[[[10]]],[[[3,8,8,9],[9,0],[10,6]],[[6,5,0],5,[3,8,8],[8,3,1]],7]]
|
||||
|
||||
[[[[1,0],9,[6,0,8],4,10],[]],[10,10,3,[10],[[2],1,[3,3,0,2,0],2]],[[10,10,[6,9],[0,9,7,9,5],4]],[6]]
|
||||
[[[8,7,[0,5,1,7,8],6]],[0,1,5,[]],[6,[[8,10,8,8,9],8,[8,6],[3,9,1,7],[]],[[10,7]],[9,5,[0,10,5,3],6,[3,10]]],[8,[9,[],9,[2],[5,4]],[[10,7,2,2],[8,1],[10,3]],9]]
|
||||
|
||||
[[[],[7],[[7,1],[],9,9,10],[],[5,[]]],[1,5],[],[]]
|
||||
[[[7,[7,1],[],[9],[5,5,10]],[[0,0,1,5,1],8,[6,10,8,1,10],10,[3,4,0]],[8,1,2,1],[],[]],[[[9,8,0],[7,7,10,10,9],[7,7],[1,5,2,4]],[],9,[[3,7,8,10],[10,3],[5,6,7,6,6],[4],3],5],[[[4,2,5,2],[],[3,5,5,7,9],3,[3]],[],[1,0,[9,10,8,1],[9]],2]]
|
||||
|
||||
[[4,[],8],[],[3,4,5],[[],[6,[1,7,6,9]]]]
|
||||
[[[[],[]],[[3],4,9,[6,8,10,10,2],6],2,[[4,3,9,6,5],8,[10,3,3,3,9],3],[8,5,[],6]],[],[[],[6],0,[[7],[5,7],7]],[0,[[7,8,0,9,4],6,9,[]],[9,[7],[0,1,1],9]]]
|
||||
|
||||
[5,6,0,4]
|
||||
[5,6,0,4,2]
|
||||
|
||||
[[0,[10],3,9,[]],[[10,2,[],1,[10,3]],[5,0,3],8,[9,[0],[10,8],6,7]]]
|
||||
[[[7]],[9],[0,[]]]
|
||||
|
||||
[[[[1],7,2],[[5,6,7,1,3],[],6,1,[0,3,9,0,9]],[[2,4,4,4],8]],[[],[],[8,[10,4,6],[0,10],[3,1,2,4,3]]],[[[3,10],6,[7,5,8,9,1],8,[1]],[],7,[[]]],[[],[],[],8],[[1,[6],[8,7,4],3],2]]
|
||||
[[10,7,[10,0,[7,5,6,0],3,[0]],0],[[],8,[[5,3,3,10],[8,9,4,1],[10,8,8,3,2],[10,0,10],[0,7,2]],[10,[5,5,10,1,4]]]]
|
||||
|
||||
[[3,2,[],8],[[9,[9,7],[1,3,2]],7]]
|
||||
[[],[[10],6,1,[]],[[[7]]]]
|
||||
|
||||
[[0,2,[10,[1,8,6],[],[8]],2],[1],[],[[[]],[[9,7,4]],10,0,10]]
|
||||
[[[[3,6,5,1,10],[6]]],[[[3],7,4,9,7],[],2,6],[5,4,[[9,8,4,1],0,5,[10,6,2,6,7],3],[7,[1,9,7,10],[10,4],1,[4,10,2]],0]]
|
||||
|
||||
[[],[4,0,5,[[],[8,9,6,9,4]]],[4,[7,[8,2,4,10,8],1],2,4,8],[[],7,[9,5,[5,3,4,2],[],5]],[7,5]]
|
||||
[[2,[[6,6,2,4],[],[1],9]]]
|
||||
|
||||
[[],[[[4,9,2,8,8],[6,4,3,9,0]],[8,5,5],0,[8,[10,5,5,2],[7,0,1,3,5],[2,2,4,5,10]]],[5,6,[2,10,1,[4]],10]]
|
||||
[[8,6,[7,5],[[3,1],9]],[[10,8],[],[]],[[7,[5,8,10,1],8,3],[[2,5]],[[9,9,10,5],[2,1]]],[],[]]
|
||||
|
||||
[[[1,4,5,[9],[7,0]],2,1,[[5,2],[5,6],[]]]]
|
||||
[[[9]],[0,2,[0,[9]]]]
|
||||
|
||||
[[2,4],[[[4],[],7,2],2],[3,[[4,6,7,10],1,[10,3,8,3],3],10,[7,2,[1],7]],[7,1],[3,5,8,[10],10]]
|
||||
[[[]],[8,5,[1,[2,6],4,8,[5,3,7,3]]],[[7,[8,4],[]]],[0],[[8,[10,1,6,3,3],[10,9]],[2,[],9,10],2,5]]
|
||||
|
||||
[[8,[1,10,[4,10,10],[1,7,0,1,3],8],[[8],[9,0],10,9,1],[[9,5,1,3],[7,9,2,6,5]],4]]
|
||||
[[],[9,[0,[8,2,8,1,3],[]]],[[[2,8,3,10,2]],9,[5]],[],[[]]]
|
||||
|
||||
[[3,1,0]]
|
||||
[[[0,[6,8],[2],[]],7,[[0,1,5,0]],[[1,2,3,8]],[5,5,8]],[5],[[[6,3,5],0,[2,1,5,10],[5,10,6,5,2]]],[[[1,2,0,5],[]],7,4,[6,8,2],3]]
|
||||
|
||||
[[[],3,9,0],[[4,8,[5,10],[9,6,6],0]]]
|
||||
[[3,[[1,2,3],0],[[4,9,2]]],[],[],[7,4],[]]
|
||||
|
||||
[[[4],10],[7,[[],[5,1,2],7],5,[9,3]],[8,[],[]],[10,6,5,3,2]]
|
||||
[[],[[],[[2,1,9],[1,5,4,6],[4,4],8,[]]],[],[7,[0,[9,8],2,[],8],9]]
|
||||
|
||||
[[4,2,7],[],[6,3,[[]],[],[4,5,[9,9,1],[4,3,9]]],[[[9,1],[7,7],3,[4,6,3,0]],[4,1],[]],[2]]
|
||||
[[],[],[[[6,6,5],[8,4],10,[2,6,9,2,10]],0,[[2,7,0,2,6],0,[]],2],[[[]]]]
|
||||
|
||||
[[2,[10],[[0,6],[9],[8,7]],[]],[[5]],[5],[],[]]
|
||||
[[[7,[8,9]]],[8]]
|
||||
|
||||
[[5,10],[],[]]
|
||||
[[[10,7],[[1],8,[6,8,2,8],8],[5,[]],0,[]],[]]
|
||||
|
||||
[[[9,5,9,[10,7],8],[3,8,[1,10,10],3]],[[0,7,[7,7,9,6],5,8],9],[],[7,[],0]]
|
||||
[[],[],[5,[],[[5,7],3,8,[0]],8],[1],[[5,[5]],[[0,0,8],8,[4],[9,10],2],[4,3],[[]],[10]]]
|
||||
|
||||
[[0,10],[[[2]],5,3]]
|
||||
[[[3,3,[10],[2,4,4,6],[6]],3],[[8,[4]]],[4,[5,[7,4,5,4,1],5],[[],[3,9,5],8],[],[10,[4,10,1],4]],[[8,5],4],[2,[3]]]
|
||||
|
||||
[[1,[[],0,3,[],[6,10]],[9,[10,6,5,8],[0,10,2],4],[4,[],0,4,3],[7,[2,4,8]]]]
|
||||
[[5,8],[[[3,4,5],[3],9,[1,7,0,3,10]],2]]
|
||||
|
||||
[[[],4],[[[8,8,3,3,10],[6,8],[2,0,7],[],[9,3,3,1]],[],[[10,1,3]]],[[[5,0],8,[4,9,3,0]],4],[[],[[0,2,8,2,0],8,5],[[2],8,[],[0,9],[0,0,5]],[2,2,[4]]],[[[6,6,5,4],[8,6,0],4,8]]]
|
||||
[[1],[10,9,[[1],0,[10,0,3,2,6]],3,10],[[[3,9,3,8,4],[6,2,8,0]],2,[[2,4,10,6,5]],1]]
|
||||
|
||||
[[9,[0,[7,0,2],[],6],[[2,7],0,[10,3,10],4,4]],[[[],[7,6,1],5],6,4],[2],[6,7,10],[8,[[3,6,1,6],0,5,5],9]]
|
||||
[[[7,8,[10,3,3]],[[9,7,4]]],[[0,7,[]],6],[2],[],[4]]
|
||||
|
||||
[[[[1,1],[5],[7,9,8],[7,4,10,0,4]],[[4],[4,9,5],5]]]
|
||||
[[[],[1,9,[7],10,[4]],[[],[0,2],5,[0],4],8,8]]
|
||||
|
||||
[[[10,[5,5,8,2],[],[]],[0,5,[0,6,6,1,1],[8],0],[]],[5,5,1],[[3,[6,2,0],[],8],[[9,3,4,5,6]],[[10,4,9],[9,1],2,[0],10],[[3],[5,10],[10,0,7],[5,8],10]],[[[],[8],[10,6,0]],2,10,2,[3,[6,5,4],1]],[5,[[6],[5,4,0],[7,0]],[[],7,[8,3,4,8],[1,3],3]]]
|
||||
[[8,0,2],[[[4,7,10,6,3],[7,7]],2,1,8,7]]
|
||||
|
||||
[[0,[],[[2],[]],[[3,3,5],1,1]],[[[1,3,9],[3,7,8,4],1],[7],3,2,3]]
|
||||
[[10,0,3,[6,9],[3]],[[[6,2,1,7],[7,10,1,8,4]],[[],[],[7,10],9,4]],[[[]]],[10,3,[],7,3],[[],[[2,8]],[0,3,8,1,5],[[4,1,7,7]],0]]
|
||||
|
||||
[[6,[4,5],[[7,0,9,10],0,5,1,9],9,[6,[10,10,8]]]]
|
||||
[[[2,0,3,[7,2,10,8],0],5,[[0],[3],[7,4,10]]],[1],[[8,1,[7,10,10,8]]],[[7,[],2,2]]]
|
||||
|
||||
[[],[9,[1,2,[7,0,9]]],[[9,10,[4,3,10],0,[2]],2,6,[10,0,8],5],[[10,[],3,[]],4,[],3,[10,0,8,9]],[[9,7,0,[9],4]]]
|
||||
[[[[9,2,1,10,0]],6,[[3],2],[8,9]],[6,10,3],[[[]],1]]
|
||||
|
||||
[[],[5,10,[[],1,[],10,[6,1]]],[[10,5],[[]],0,10],[9],[[5]]]
|
||||
[[[6,[0,2,1,4,5]],3],[[3],[[1],[9,3,1,1,4],[10,7,4]],7,2],[],[8,[[3]]]]
|
||||
|
||||
[[[[8],9],[2],0],[[[8],9,8,2],4],[9,3,[0,4,7],2,4],[]]
|
||||
[[],[3,[1,5,2,[0,8,5,2,4],5],[[10,0,0,1,2]]],[[[],5],[10,[9],9,8],[9,4],[[2,6],[6,5,7,8]]],[],[5]]
|
||||
|
||||
[[1],[9]]
|
||||
[[],[[10,[],[1,7]],8,10],[8,[[9,7,9,10],6],3,1]]
|
||||
|
||||
[[[8],[[10,4],[2,0,1,5,9],1,9,[5,0,1]]],[9,[8,2,8,[3,1]],2],[9,3,[7,10,[1,9],[]],[0,6,10]]]
|
||||
[[1,1,2,8,[[1]]],[[[8],10,[0,9,3,6]],10,[0,6,[1,2,1,1]]],[],[[[8,9,1],0,2,9,[2,5,8]],[[0,0,4],[]],[[10,10,0,5,7],[],[6,5,9,6],5]]]
|
||||
|
||||
[[[[2,5,2,10,2],[3],6],[],6],[4,0,8]]
|
||||
[[0,[9,0,2]],[[[7,0,7,1,4]],[],3,[[4],4]],[7]]
|
||||
|
||||
[[[],[[0,6,1,3,8],[8,0,0,9,1]],[10,5,[7],1],[[8],[],4,1,[4,5,8,9,3]],9],[[],[5,[9],[],[7,1,7,6,3]],6,[[2,8,4,9,10],4,[1],10],4],[[0],[],[4,9,5,[],[2,0,1]],[0,8],[[1,6,2,0,2],10,[2,1,3,4],3]]]
|
||||
[[[4,6,[8,9,9,3]],[4,[],[],[1,6,4]]],[10,[[0],[6],[3,5],4],7,4],[2,2,[[],[6,9,7,7],2],8],[3,[],[9],2],[6,10,[0,[0,6,10,8,9],2],[7,[]]]]
|
||||
|
||||
[[[1,[9,3,6,2],7,1],[2,[5,0,2,2],10,[2]]],[],[[8,[1],3,1]]]
|
||||
[[[]],[[7,[0,9,10,9]],[[10,8,7],9,2,10],[8,4,10,[3,9]]],[[[0,6,5,5,8],8],[[7,7],[9,2,3],7,3],[5,9,3]]]
|
||||
|
||||
[[[6,[10],[2],[0,5,6,10,7]],[5,[1,3,1],[1,4,0],8],1,0],[[[0,0,10,4,8]],7,3,[[5,0,0,9]],[1,[5,0],8,5,[]]],[],[9,[[1,7,7,0,10],4]]]
|
||||
[[1,0],[2,[5],4,[[1,9,4,6,9]],7],[[],10,5]]
|
||||
|
||||
[[2,6,10,0],[[[0],[3,9,9,0]],[[6],8,10,[9,10]]],[1,[0,2,2],[],1,[[],[8,2,0],4,6,2]],[[6,[2,0],[],1,7],[2,[],[7,3,3,3,8]],[4,9,0,9],[5,10,[]]],[5]]
|
||||
[[9],[9,[],10,3,7],[[[9,6,6,2,8],[]],2,[9,9,[8,8,10,4,4],0],[9,[0]],9],[[4,[4,7,8,6],10],[]]]
|
||||
|
||||
[[],[],[[[0,2],[8,1,7],[7,5],10],5,6,[],2],[[[2],6]],[5]]
|
||||
[[[[1,9,9]]],[6,8],[[3],[2,8]],[[0],5,8,4]]
|
||||
|
||||
[[[],[6,2,9,10],7,[[7,7,6],[6,0,9],10]],[[[0]],[9,10,9,[5,5,8,0,2]],10]]
|
||||
[[[5,[4,9,1,7,1],[4,1],0,[3,7]],4],[[10]],[2,[3],[[4,9,10],[],5],[8,6,9,6]]]
|
||||
|
||||
[[0,8,[6,[7,4,10,9],0],[[4,3,5,10],10,[7,0,5],5,2]],[[2,[8,4,6,5],[8]],[[9,1,10,1,6],8,7,[3,7],3],[[2,5,2],7,[],2]],[],[4,[8,10],[2,6,8],[[9,4,1,4],10,6],[1]],[[6],2]]
|
||||
[[8]]
|
||||
|
||||
[[0,0]]
|
||||
[[[],[[4,9,2,6],[],[10,1,7,0,1]],7],[3],[],[[[],[3,2],[4,8]]]]
|
||||
|
||||
[[],[],[[0,[7,9,5,8],6],8,[0],1,4]]
|
||||
[[9,7,4],[[]]]
|
||||
|
||||
[[[[7,4,0],[5],[0,8,0],[0,8,9,6],[3,4,8,10]]],[[[0,9,9,4],8]],[[4],[[6,5,10],[10,5,2,9,4]],8]]
|
||||
[[[6],[7,7,6,[8,0]],4],[]]
|
||||
|
||||
[[],[4,[[7,3,7,6],[10,1,0,5,0],8],7,[4,[8],2,[]],[[]]],[[[4,2,0],[4,1,8,6,1],10],7],[9,[1,[2,9,3,0,0]],5],[9]]
|
||||
[[[[],0,2,3,1],[[],8,6,2,[]],4],[4,[],2,[4,[]]],[]]
|
||||
|
||||
[[6,9],[]]
|
||||
[[[10]],[[[2,8],9,[6,5],7,2],6,6],[[3,[5]]],[],[5,[[]]]]
|
||||
|
||||
[[[],0,5,9],[10,0,4,0],[6],[],[]]
|
||||
[[],[[1]],[7],[1,1,[[7,4,2],6,[8,4,9]],[[10,7,4,0,0],9,2]]]
|
||||
|
||||
[[8,10],[3,[0,[5],[6],[1,10,6,2]],10,1],[],[[],[6,7],6],[]]
|
||||
[[7,6,[],5],[],[],[7]]
|
||||
|
||||
[[],[9],[[5,1,4,[10,3,4,5,0],5],[1,5,6],[[4,2],2,6,[9,9]],6],[[],3,[8,2,5,[10,10,9,5],[2,9]],[[1,5,8,7,3]],[]]]
|
||||
[[3,7,2,[[4,0,2,1,9]]],[3,1,1],[10,[],[1,5,4,[5],1]],[],[10,2,3,6]]
|
||||
|
||||
[[[8,10,[1,0,1,9]],[[1,1,3,2,7],1,[4,4,6,6]],7,4,2],[3,[[4,8,5,9]],[4,[2,6,4,1,2],9],6,7]]
|
||||
[[[[6],0,[7,6,4,3],[8,1,1,2,5]],8,7,[9,10,7]],[9]]
|
||||
|
||||
[[[],5],[[],[],8,7]]
|
||||
[[[],8],[3,2,4]]
|
||||
|
||||
[[],[1,6,5,[[0,5],[0],[]],3]]
|
||||
[[2,[[2,8,8,7,4],[6,9,4],[],[2,10,9],1],5],[[],[[9],2,7]],[[1,0,[1,6,3,6,5],[10,2],6]],[[[6],[2,7,6,3],6,2,7],10,[[],[8]],2,[3,[4,1,1],3,[7,0],3]],[[[0,10,5]],5,10]]
|
||||
|
||||
[[[[],6,9],8,[8,2,4],3],[],[9,[],4,7,3],[[2,5,4,9,[8,5,6,1,6]],[[],10,5,10]]]
|
||||
[[3,[[2,1,7,7,9],[0,3,4,10],[0,1,1,7,8],10],1,[3]],[9,4,[[],9,[],[7],[0]]],[1,3,6,3,4],[[3,3],5]]
|
||||
|
||||
[[6,3],[[]]]
|
||||
[[[],6,[[9],[1,7,0,8,4],[9,3,0,8],[4],1],8,7],[7,[2,2,2,[5,7,8,4]]],[]]
|
||||
|
||||
[[[],6]]
|
||||
[[[[6,7],9,[8,7,9],5],10,3],[[6,[9],9,6]],[],[],[10,[1],[[9,1,10,0]]]]
|
||||
|
||||
[[[[3,5,5,0],3,8,9]]]
|
||||
[[[9,[10,4,9]]]]
|
||||
|
||||
[[5,0,9,6],[9,[[3],10,9,3],[8]],[],[[[9,4,2,8],[8,10,2],4,[],0],[2,[]]],[[],6,[5,5,[9]],4]]
|
||||
[[],[],[]]
|
||||
|
||||
[[[4,5,[]]],[[[],[0,9],6,3],3],[10,[4],5,8],[[4,5,2,10,5]]]
|
||||
[[[0],3,[4,[10,1,1,4],8,[8,1],[4,0,5,4]],[[5],8,[9]]],[[0,[],[2,7]]]]
|
||||
|
||||
[[[4,[8],[2,3,5],[10,4,9,9,3]]],[9,[0,1,[6,0,2]],6,[[],4,7,0,[]]]]
|
||||
[[[2,7,[],[10,1,4,7,9],0],[],7],[10,[0,0,9,[9,5,3,6,10],[]]],[9,7,[9,10]]]
|
||||
|
||||
[[[0,10,[1],3,[4,1,7,6,9]],2,3,6,[[1],[0,2,3],[9]]],[[[],[1]],2],[10,7,[5]],[]]
|
||||
[[],[9,6,4,4,4],[[[0,4,7,7,10],3],0,[[6,3,5],[]],[[8,6,10,7,0],[8,3,7],0,3],[[4,9,8,4,4],3,[4],[7,5,1,9],2]],[[8,[10,2,8],[10,4,0,0],0,[7]],7,[[7,3,8,2],10,10,[2],[9,10,10,5,5]]]]
|
||||
|
||||
[[[],10,[8,[1,2,5,1],[2,7,6,7,5]],[9,[9,3,9],[4,8],5,6],1],[[],[[7,8,6,4],[8,8,7,5,3],6,4,[8,1,7]],1],[5,4,[]]]
|
||||
[[],[7],[[2]],[],[[]]]
|
||||
|
||||
[[5,8]]
|
||||
[[7,[],7,[]],[]]
|
||||
|
||||
[[[1,8]],[0,6],[9,6,[[]]],[5,[[0]]]]
|
||||
[[[[5,6,1]],5],[],[2,[],9,[[]],[7,10,[7,9],[]]],[3]]
|
||||
|
||||
[[1,10,3],[7,9],[[[1],[6,9]],0],[4,[[8,4],[8,0,3,0,10],[0,6,2,8,10],4,3],3,7]]
|
||||
[[[5,[8,4],[6,0,9],0],3,[[8],[10,9,6],[],[10,3,2,0,0]],7,2],[1,9,4,[9,[7,6],8,[3,1],4]],[4,[6],[[2,7,3],[9,6,0],[8,1],[7,4]],[[1,4,0,2,8],7,2,4]],[[[6,3,1,9,8]]],[]]
|
||||
|
||||
[[[[10,8,1,5]],[[3,3,5]],5,4],[2,[[],[6,7,2,7,7],5,10],4]]
|
||||
[[[[0],[],[]],5,9,[6]],[],[]]
|
||||
|
||||
[[8,10,[10,8]],[],[[[4,0,6,3,2]]],[[[5,9],[5,8],2],0],[8]]
|
||||
[[[[4,6,8],6,2,5],6,7],[],[[[8,3,5],4,[9,10,8,1]],[[8,5,4],6],[[8,10,6,8],2,[0],[]]]]
|
||||
|
||||
[[[[3,5],[9,5,9,1],10,[0,2,6,9,9],3],10,7,3,6],[],[[0,[9],10,0],9,[],[[4,8],[6,5,2]],2]]
|
||||
[[[[0,0],[6],10],10,[4,3],9,2]]
|
||||
|
||||
[[[[],0,[8,3],[1,9,0,1,6]],9]]
|
||||
[[8,2,[[4],0],1],[[]],[0,0,9]]
|
||||
|
||||
[[],[6,[]],[3,[[0,0,6,0],[],[5,4,8],[7,0,10,3,0],0],[[],[10,3],6,1],2]]
|
||||
[[],[[[9],[8,0,10,0,9],[2,7,3],[3,2]],5,[]],[10,[8,[6,3,0,8,0],9]],[3]]
|
||||
|
||||
[[3,[0],[10,6,[9,5,4],[1,6,5,10]],9,9],[],[[10],9,[[],10,[10,4,6,0],[6,8],[7,7]],3,10],[[1,7,[5,9,9],[],9],6,7]]
|
||||
[[6,2],[[[],4,6]]]
|
||||
|
||||
[[10,6,[],[[3,8,7,7,7],[7],[5],7],4],[6,[],[0,5,1,4,2],8]]
|
||||
[[],[4]]
|
||||
|
||||
[[[[3,3]],1,[0,8,[6,10,7,5,8],[1,1,1,10]],5],[[[5,10]],[7,[7,2]],[10,7,8,[4],6],6,[[4]]],[[5,[0],0,[10,5,10],1],[10,2,9,[5,7,10,0],[10,4,10,6,1]],9]]
|
||||
[[9,[[7,9,9],[5,8,9,8],2,[6]]],[],[1,1,[2,3]]]
|
||||
|
||||
[0,3,7,3,4]
|
||||
[0,3,7,3]
|
||||
|
||||
[[4,2,9,[5,6]],[],[],[]]
|
||||
[[4,4],[9]]
|
||||
|
||||
[[[],[[6,0,7],0],[4,0,2,3]],[[6,5,[10,0,9,9]],[]],[],[[0,0,[8,9,9,0],[6]],1]]
|
||||
[[10,6,5]]
|
||||
|
||||
[[3],[]]
|
||||
[[6,7,[3,[4,4],5,0]],[9,10],[[[8,6,5,0,1],6,1]],[[],[0,10],10,[10,[1,8,1],[]],[[8],[7,2,10,6,2],6]],[[[1,4,8,8,0],5],6,[],2,[[2,5],3]]]
|
||||
|
||||
[[[],2,7],[[],[3,[8,7],[3,6,10],8,[9,4]],1,3,6]]
|
||||
[[0],[[6,[7]],[[6],[8],9,7,[9]],[[]],[[0],[7,0],[],5,1],[4,[9],[10]]],[[8,[],2,[8,1,7,4]],[[],[],[10,4,7,6],2,2]],[4],[[[0,3,7],5],[[9,0,10,7,5],7]]]
|
||||
|
||||
[[],[[[],[0,8,3]],[1,[9,0,5,10,7],9,1,5],[[1,1,2],[5],1,8,0]],[4]]
|
||||
[[2,[[6],4,1,8],7,0],[[0,[1,5],2],[[4,9,5,9,1],4,2,0]],[[[]]],[10,7,[[],2]],[[4,[6,8,8,7]],[[3,1,9,1,7],7,5,10,[3,5]],[2]]]
|
||||
|
||||
[[3,[[0,0,6,2,4],[],8]],[[8,10,9,7,[8,3,5,6,4]],[[8,10,8,2],[4,6,5,0],1,4,[4,6,9,0,6]],[[7,6],[1,2,4],3,8,1],[6,[8,9],[]]],[1,1]]
|
||||
[[9,[[2,2,3]],4,[1,0]],[7,10,4,[[9,5,2,3],[7,3],[5,6,2,8],[8,4,10],8],0]]
|
||||
|
||||
[[[8,[1,9],2,[2,9,3,8,7],[1,7,8,4,2]]],[4]]
|
||||
[[0,4],[],[4,[],[[]],[[8,5,7,9]]],[[2],4,[5,6,[0,8,8,1],[7,4,9],8]],[1,[2,[9,5]],[0,[8]]]]
|
||||
|
||||
[[6,[[6],3,2,[10,6,7,6],0],10],[10],[[3],6,7],[[[10,1],[3,3,1,5,2]],7,[0,[2,10]],[1,[1],1,5,7],[]],[7,[],[6,[3,2,0,8],[7],[0,9,9,4,9]],[[2],[1,8,6,6],[1,6,8,5,1],[0]],[5,6,[2,7,10],[4,2,4],[10,9]]]]
|
||||
[[[3,[1,5,3,5],6,[0,0]],[0],4],[8,[[9],8,8,4],[],1],[[5,[0,8,6,6,5],0,[9,10,1]]]]
|
||||
|
||||
[[[],10,[[0,6,10,0],3,[2,1],[7,4,2,8],[6,1]]],[7,8,8,6],[[9,2,6,4,1],[[7,3,8,9,0],7,3],[[],[0,10,5,9]],[[4,1,0,2]]],[[6]]]
|
||||
[[9,0]]
|
||||
|
||||
[[4],[5]]
|
||||
[[[[3,8,10],10],9,[7,[0,0,9,5,1],4],[]],[1,[1,5,0,[10,5,9,0],0],8,1,[[7],1,4]]]
|
||||
|
||||
[[5,[[2],[2,10,1,10,1]],[],3],[],[[10],0],[6,5,1],[[[10,5,4,10],[],[8,6,0,5],3,2]]]
|
||||
[[],[6],[[3,1,[4,6]],[[8,9,7],[3,0],5],0,9],[[2,[7,9,2],[2]],[[6,8,4,10],8,3,1,[5,7,8]],6,[4]],[[6,[5]],[[1,7,9],10,[3,9,0,4,3],[7,7,8,3]],4,[0,9,2,2],9]]
|
||||
|
||||
[[[2,[],[8,10,7],[0,1]],7,[8],[[8,3,3]]]]
|
||||
[[3],[6,[[3,6],3,[4,4,6,2]],4,7,[]],[[10,4,5,[2,8,4,5],4],[1],[[4,5,2,0,6]],[[],8,5],[6,[4,9,10],1,4]],[[7],[3,[9,10,2,1],5,3],10]]
|
||||
|
||||
[[8,2,[[0,5],5,10]]]
|
||||
[[1,[],[7,7,4,2,[4]],8],[[],5,4,[[2,6,2],[8],0],[]],[5,8,8,9],[[[8,8,3,5],[7,10],2,[0,1,6],8],[0,[],3,[8,7,10,2]],[8,8,[4,1],2,[8,4,9]]]]
|
||||
|
||||
[[[5,[10,10],[9,6],[],9],1]]
|
||||
[[],[7,[]],[],[9]]
|
||||
|
||||
[[2,7],[3,[[10],[6,3,8,4,1],5],1]]
|
||||
[[],[[],1,3],[6,1,[5,[2,2,8],[3,5,5,7],6,[6,7,9,10]]],[[5,[],[5,3,0,0],7],[]]]
|
||||
|
||||
[[[8,[1,8,5],8,[7]],1,10,7],[[0,6,2]],[[[],9,1,[1,4,3]],9],[0,9,[[3],[9,2,2,6,4]],[[]],[0,3,[1]]],[[[2,10,7],2],[[8,7,10,5,1],10,1,7],4]]
|
||||
[[],[[[4,3,6,8,9],9],10,6],[4,3,[[2,1,4],[10,5,9,6]],0,[[8],10,7,1]]]
|
||||
|
||||
[[1],[[[4,2,10,3,5],9,[],0,[9]]],[[3,5,[],[6,9,4]],[7,5,[7,7,5,8,8]],[]],[[1,[1,7,2,1,2],3,[0,4,9,8,2]]],[]]
|
||||
[[[5,[1,0,1,9,0],[8,6,2,7],5],[7,3,4],[[10,2,6,9],[10,9],[1],[3,5,6],7],[[]]],[2,[],10,7]]
|
||||
|
||||
[[[10],[4,[4,10,1],3],[[0,8,10,6],[],9,3],[[7],[9,2,5],[],4,[]],7],[[[2,7,10,10,9]],[[10],1]],[8,[],[[2,7,2,4],2,[0],0],2]]
|
||||
[[3,[8,[0,8,0,8,1],[1,5,5,0,8]],0,8,[[6,7,7],[0,0,9,10,10],2,5,6]],[4,[8],[8,[],9,[4,9,7,10,8],9],[2,6,2,[3,7]],7],[[0],[7,[4,5],[1,5,0]],7,[[9,0],[1,1],2,6]],[6,[3,[9],[2,5,3,5],1],[]],[]]
|
||||
|
||||
[[[[10,8]],[[7],[7,1,3],[9,6,3,6,8]],[[6],[0,4],3,8,[10,1,9]],4],[[[7],[4,7,5,0,3]],8,10]]
|
||||
[[3,1,[]],[[1,[2,10,9,10],[],[2,7,10]]],[[[],10,8,8]],[5,8,[6]],[]]
|
||||
|
||||
[[[[],0,[3,2,2,2],10]],[[5,0]]]
|
||||
[[9,[],4,[[2,0,0,8],[7,4]]],[[1],2],[[]],[[[],7],4,0]]
|
||||
|
||||
[[[8,3,[1,4,4,4],[9,1,4,7,0]],[2,[6,1,6,5,3],10,2,8],[0,9,[10,3,1,4]]],[[4,5],0,4,5,[[3,4,4,3],[1,0,10],9,5]],[],[4]]
|
||||
[[[[2,9,1],[],4,7]],[]]
|
||||
|
||||
[[[0,3,3,[],[10,0,8,2]],1]]
|
||||
[[[[4,1,3,9,0],[7,0,3],3],[],[9],[[7],7,[6,1,4,6,5]],[0]],[10],[7,4,2,8,6]]
|
||||
|
||||
[[[[0,9,3,7,1],2],[[10,2,2,4,6],5],10,0,5],[4,[]],[[[],2],[],[[6,6],8,4,[10,8]],[[5,1,2,4],4,[9],7]],[[[9],7,2,[6,0,9,8],[4,1]],5,[],[5,8,[5,2,7,6,5]],[[2]]]]
|
||||
[[],[2,[7,0,[0],[0,1,2,1,6]],2,6]]
|
||||
|
||||
[[[[5,0,9,4,6],8,2],1,0,[[9,4,3],[10,5,0,1],[]],0],[],[[[],9,4],[[2,8,3],6,0,[7,7,5]],[1,[10],8,[]]],[4,2,[4,5,[6,3,10,1,6],[10,3]]],[[[1,2],[0,1],7]]]
|
||||
[[5,9],[6,[9],[1,[9,8,9,6],9,6,[1,5,7,6]],7,[3,[4,7,2],6,[5,9,4,10],[]]]]
|
||||
|
||||
[[[[0,7,7,1,8],[2,1,9]],0,2,6,3],[5,[2,[10],6]]]
|
||||
[[7,[],[[1],[4,6]],7,[9,[1],9]]]
|
||||
|
||||
[[],[],[6,4,8],[0,[]],[[7,[]],5]]
|
||||
[[],[[4,2],0,[2]],[[[3,9],[1,0,1],6],7,[[2,4,9,5],9,[4,8,6],10,[2,2,8,4]]],[0,4]]
|
||||
119
day13/src/main.rs
Normal file
119
day13/src/main.rs
Normal file
@@ -0,0 +1,119 @@
|
||||
#![warn(clippy::all, clippy::pedantic)]
|
||||
|
||||
use std::{
|
||||
cmp::Ordering::{Equal, Greater, Less},
|
||||
fs,
|
||||
};
|
||||
|
||||
use nom::{
|
||||
branch::alt,
|
||||
bytes::complete::tag,
|
||||
character::complete::{self, newline},
|
||||
multi::{separated_list0, separated_list1},
|
||||
sequence::{delimited, separated_pair},
|
||||
Parser,
|
||||
};
|
||||
|
||||
#[derive(Debug, Eq)]
|
||||
pub enum Checker {
|
||||
Num(u32),
|
||||
Array(Vec<Checker>),
|
||||
}
|
||||
|
||||
impl Checker {
|
||||
/// # Errors
|
||||
///
|
||||
/// returns an `nom::err::Error<&str>` if there is problems parsing
|
||||
pub fn parse(input: &str) -> nom::IResult<&str, Self, nom::error::Error<&str>> {
|
||||
alt((
|
||||
complete::u32.map(Self::Num),
|
||||
delimited(tag("["), separated_list0(tag(","), Self::parse), tag("]")).map(Self::Array),
|
||||
))(input)
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for Checker {
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
match (self, other) {
|
||||
(Self::Num(l0), Self::Num(r0)) => l0 == r0,
|
||||
(Self::Array(l0), Self::Array(r0)) => l0 == r0,
|
||||
(Self::Num(l0), Self::Array(r0)) => &vec![Self::Num(*l0)] == r0,
|
||||
(Self::Array(l0), Self::Num(r0)) => l0 == &vec![Self::Num(*r0)],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialOrd for Checker {
|
||||
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
|
||||
Some(self.cmp(other))
|
||||
}
|
||||
}
|
||||
|
||||
impl Ord for Checker {
|
||||
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
|
||||
match (self, other) {
|
||||
(Self::Array(a), Self::Array(b)) => a.cmp(b),
|
||||
(Self::Num(a), Self::Num(b)) => a.cmp(b),
|
||||
(Self::Array(a), Self::Num(b)) => a.cmp(&vec![Self::Num(*b)]),
|
||||
(Self::Num(a), Self::Array(b)) => vec![Self::Num(*a)].cmp(b),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct Together {
|
||||
pub left: Checker,
|
||||
pub right: Checker,
|
||||
}
|
||||
|
||||
impl Together {
|
||||
/// # Errors
|
||||
///
|
||||
/// returns an `nom::err::Error<&str>` if there is problems parsing
|
||||
pub fn parse(input: &str) -> nom::IResult<&str, Self, nom::error::Error<&str>> {
|
||||
separated_pair(Checker::parse, newline, Checker::parse)(input)
|
||||
.map(|(input, (left, right))| (input, Self { left, right }))
|
||||
}
|
||||
}
|
||||
|
||||
/// # Errors
|
||||
///
|
||||
/// returns an `nom::err::Error<&str>` if there is problems parsing
|
||||
pub fn parse_data(input: &str) -> nom::IResult<&str, Vec<Together>, nom::error::Error<&str>> {
|
||||
separated_list1(tag("\n\n"), Together::parse)(input)
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let file = fs::read_to_string("./input.txt").unwrap();
|
||||
let (_, all) = parse_data(&file).unwrap();
|
||||
let part1 = all
|
||||
.iter()
|
||||
.enumerate()
|
||||
.filter_map(|(i, Together { left, right })| match left.cmp(right) {
|
||||
Less => Some(i + 1),
|
||||
Equal => panic!(),
|
||||
Greater => None,
|
||||
})
|
||||
.sum::<usize>();
|
||||
let two = Checker::Array(vec![Checker::Array(vec![Checker::Num(2)])]);
|
||||
let six = Checker::Array(vec![Checker::Array(vec![Checker::Num(6)])]);
|
||||
let mut p2 = all
|
||||
.iter()
|
||||
.flat_map(|Together { left, right }| [left, right])
|
||||
.chain([&two, &six])
|
||||
.collect::<Vec<_>>();
|
||||
p2.sort();
|
||||
|
||||
let i2 = p2
|
||||
.iter()
|
||||
.enumerate()
|
||||
.find_map(|(i, b)| if *b == &two { Some(i + 1) } else { None })
|
||||
.unwrap();
|
||||
let i6 = p2
|
||||
.iter()
|
||||
.enumerate()
|
||||
.find_map(|(i, b)| if *b == &six { Some(i + 1) } else { None })
|
||||
.unwrap();
|
||||
let part2 = i2 * i6;
|
||||
println!("Part 1: {part1}");
|
||||
println!("Part 2: {part2}");
|
||||
}
|
||||
Reference in New Issue
Block a user