Compare commits
3 Commits
466df5506a
...
f951932c2c
Author | SHA1 | Date | |
---|---|---|---|
f951932c2c | |||
3d507bbda4 | |||
c38853b577 |
@ -57,4 +57,12 @@ path = "src/day11/main.rs"
|
||||
name = "day12"
|
||||
path = "src/day12/main.rs"
|
||||
|
||||
[[bin]]
|
||||
name = "day13"
|
||||
path = "src/day13/main.rs"
|
||||
|
||||
[[bin]]
|
||||
name = "day14"
|
||||
path = "src/day14/main.rs"
|
||||
|
||||
[dependencies]
|
||||
|
449
day13.txt
Normal file
449
day13.txt
Normal file
@ -0,0 +1,449 @@
|
||||
[[[5,[10,6],5,1,6],4],[[9,[7,4,7],6,[],7],[[9,6,0,10],7,[8,5,5,2,7],[7,10,5,6]]]]
|
||||
[[[[10,8,4,6],7,2,[8],0],7,8],[[4,[0],[10,0,9],[1,10],4],[[6,6,1,10],4,6,[],[9,1]],[[4],[7,6,4,10,6],1,[2,2,5,3,2]],[[10,9,5],[1,1,1]],[[3,4,3],[3,10,0,8],[0,7,8,9],2,4]]]
|
||||
|
||||
[[],[1,[[6,9,6,9,7],[9,2,3]],[[9],6,[2,9]],[2,6,2,4]],[[[10,3,1,4],[6,5,5,5,1]],[4,[9,3,6],7,2],7,8],[],[6,6,[8],2,1]]
|
||||
[[9,[[1,9,9,4],6,9,[4,10,5],[0,9]],8],[],[10,[[2,10,3,10],[]],2,[10]],[3,[8,[],3,8]]]
|
||||
|
||||
[[2,[[8,4,1,10,4],[0,8,3,6,4],[6,9,8,9],7,6],[6,[3,3,3,1]]]]
|
||||
[[[6],8,[[1]]],[[[0,0],2,[0,9],[6,1],[7,1,4]],[7,[9,5],[10],[],2],8],[1,8],[],[1,[[7],[10,6],[],4,8],[10,[4,9,9,5],7,[8,10,3,0,2]],0]]
|
||||
|
||||
[[[3,8,9],[],[[4]],[]],[],[[9],5,10,3,[3,[],3,[6,8,4],8]],[],[8,7,[],0]]
|
||||
[[],[[[10],5,0,6],5,7,1,[[5,5]]],[8]]
|
||||
|
||||
[[9,8,4,[2,4,6,[4,9]]]]
|
||||
[[[9]],[9,[[4,7,8],[4,4],[5,10,0,7,9],2]]]
|
||||
|
||||
[[[],[8],[[9,4,1,6],[4,10,9,5],[],[5,8,2,7,3]],6,4],[[[3,0]],5],[2],[0,[],[2]]]
|
||||
[[[6],[1,[5,9,10,7,6],10],8,6],[[2],[[],[1,7],[10,2,0],[4,4]],[[8,4,10,10,9]],3,[5,[],5]],[]]
|
||||
|
||||
[[[],5,9,2,8],[7,10,0],[2,0],[[9,[3],[],2,[0,2,0,9]],4,[]]]
|
||||
[[[[],[7,0,0]],1,9,[[2]]]]
|
||||
|
||||
[[[],[[]],4,4,[0]],[],[[[9]]]]
|
||||
[[8,[],10],[[2],9,[2,3,[],[0],[0,3,0]],9]]
|
||||
|
||||
[[6,6,[[],[0]],1],[9,5,8]]
|
||||
[[3,0],[10,5,8,2,[0,6,[1,8,1]]],[9,10]]
|
||||
|
||||
[[[2,[4,2,10,4]],4,10,1,[5]],[[[4,1,5],4],6],[7]]
|
||||
[[3,[[1,2,5,7,7],[9,8,5,8,7],7],[10,9],0],[10,[],5,[6,[],[0,6,6,4,4],[6,1,1,6,0],[]],[4]],[[7,[4,10,0],9,[9]],[[0]]]]
|
||||
|
||||
[[[6,1,[]]],[3],[]]
|
||||
[[[8,[10,8,6],8],4,[4,7,10,1]],[0,[[],8,[9],5],[[9,8,8,1]]],[[[9,5,4],[7,8,10,7,10],[]],[[],[10,10],[],8,[8]],[],[5,[3,7,6,1]]],[[[5,5],[10,7]],1,[5],[],[[4,5],2,10,[]]],[[],8,10,9,[10,6,[6,3]]]]
|
||||
|
||||
[[[[],[7,1],[7,0,10,0,6],8],[],7,[[],2,4,4],[]]]
|
||||
[[],[4,1,[[3,5,8,3],10,0],[4,[],[0,8,4,1],[5,9],1],10],[[[2,5,4,10,6],[2,8],8],1,[[]],[0,[],2,2,2]],[],[]]
|
||||
|
||||
[[[[],8,8,9]]]
|
||||
[[10],[[[3,6],3],[[1,6,2],[6,10,2],7]],[],[]]
|
||||
|
||||
[[[10,6,[3,3]],[[5],9,[10],10,6],[5,0,2,[10,8,10],[8]]],[4,6,6,[10,[0,9],8,6,[0,5,5]],5],[7,[[]],3,9],[[9,1,[8,0,7,3,2],[8,1,7,4],[6,9,4,7,5]],[[5],0],1,[1,7,[]],[5]]]
|
||||
[[],[6,1],[[7,2],[5,[6,6,6],[9,1,2,5],[9,1,8],9],2,7,[[],[4,1,4,9,1],[4,4]]],[0]]
|
||||
|
||||
[[],[10,7,1,4,2],[9,8,4,[[3,7,9,8],2,9,[6],[6,9,0]]],[[[6,5,7,7,0]],[7],4]]
|
||||
[[3,[[7,10]],9]]
|
||||
|
||||
[[0]]
|
||||
[]
|
||||
|
||||
[[4,2,6],[10,[],3],[2,[2,8,3,[],[9,10,5,2,7]],9,7,9],[[],[],10,[[5]]]]
|
||||
[[3,[[1],4,4,[1,7,3,2,9]],9,7,[[]]],[[4,[5,5,1,0,7]]],[4],[8,[8,9,1],[[],[10],3]]]
|
||||
|
||||
[[7,10,3],[[5]],[]]
|
||||
[[[[6,0,6,1,6],5,[10,2,9,2,8]],[],[2,[3,5,5,0,6],10,2],1],[[]],[[[3,0],[],7,7,1],[[8,4,8,9,2],1,[10,3,5,5],5,2],5,6,[[0,8,0,2],[5]]],[3,10,[1],[[2,10,2,9,8],[6,10,4],[]],[9,[3,2],[8,8,5],9]]]
|
||||
|
||||
[[[[2],[8,7,8,4,10]],8,1,8,10]]
|
||||
[[[1],0,[[9,3,4,0]],9,[0,3,1,7,[4,2,7,3,10]]],[6,3,[[9],1,7],1],[],[[7,5,1,1,[2,5,2]],6,4,0,[[2,7,0,8,1],[7,4,7],[3,0,1,6],[7,9,0,1,1],[9]]],[[0,5],1,2,[4,2,7]]]
|
||||
|
||||
[[4],[[1,2,[8,10],[2,8]],10,0]]
|
||||
[[3,4],[2,[[1,8]],[10,[1,0,8],[1],[4]],[0,4,8]],[6,[[8,10,7],6,2]]]
|
||||
|
||||
[[[1,[6,9,9],[8,6,0]],4,[6,[2,1,10],4],7,[2,[2,9],1]]]
|
||||
[[],[5,3,[8,[],9]],[8]]
|
||||
|
||||
[[[3,[8,2,1,4,0],[9,5,7,7,8]],[[5,5,2,2,9],[10],8],1,3]]
|
||||
[[0,1,[],5],[[8,4],[10],6,7,0],[2],[[7,[3,2]],7,[],2,[0,[5,8,7,1,2],[0],1]],[[[4,4,4,10,8],0,2,10],[[9,8,6],3,[9,2,4,3,8],5,1]]]
|
||||
|
||||
[[4,[[]]],[10,[[2,7],8]],[[[6,7],10,10,5],1,2,[[],2,10]],[[2,5,1,0,8],[[5,8,10]],6]]
|
||||
[[8,[[4,5,6,2],5,[7],8,9]],[],[[],3,[],4],[[0],5,1]]
|
||||
|
||||
[[3],[0,[],[3,1,4,10],2,[5]],[2,6,[],[[1,5],1]],[[],7,8,[]]]
|
||||
[[[[],9,10],[[6,10,6,7]],7],[]]
|
||||
|
||||
[[[4,[10]],9,[9,[9,8,5,9,1],[10],[3]]]]
|
||||
[[3],[2,[10],[[4,2,7,2]],[[],[8],[7,5]]],[[[5,3]],3],[[7,[9,9,5,2,3],10,5],8,6],[4,[[3,1],[10,4,6,8],[8,0,8,2,5]],[[1,6,10,2],[2,10,5],6],1,[9,2]]]
|
||||
|
||||
[[],[[[4,2,4],8,[8,9,3]],9,[]],[],[[[3]]]]
|
||||
[[],[5,[[2,8,5,1],[0,10,6],[],2],[[1],[2,1,6],7,[1,5,1]],7],[0,9,7,5,0],[[[0,2,10,8],4,[6,6,5,4],[10,8,0]],0,4]]
|
||||
|
||||
[[[]],[1,8,0,[[1,1,1,1],9,7,[],9]],[6],[6,[[0,4,9]],[[10,0],3,[0,10,4,6,1],[4,6,6,10,5],[]],[4,3],[8,3]],[2,5]]
|
||||
[[[6,10,7,1]],[7,[[0,6,5]],[[10,8,9]],[[]]]]
|
||||
|
||||
[[4,[[2,7,2,9,4],[8,8,3,2,1]]]]
|
||||
[[[[],0,7,1],[[]],0,[6,[2,10,4,2]],[7,8]],[8,[[8,0],[10,0],10],1,4,[[10,9,3,8,0],7,[10,3,1,1],3]],[],[[1,10,[7],[4,8,1,2,10],4],[[],6]],[[1,[7,10,10,0],[],[],[2]],[[2,0],8,[7],[2,2,10],3]]]
|
||||
|
||||
[[4,[[2,7],10,3,10,[1]]],[0,1,[[],[],1],[[8],2,6,[],4],[7]],[],[2,6,[[3],[1,1,4,9,0],0,[8,3,0,9],1],0],[2,8]]
|
||||
[[9,1,9,[4,[8,4]]]]
|
||||
|
||||
[[[0,[6],6,9,[2,2,3,2,5]],[9],[7,3,[1,7]],[[0,5,10,3],[],[5],0]]]
|
||||
[[[[0],9,0,9],[[4,3,9,3],[],2,0,[3,9,5]],[3,10,5,[9,3]]],[9,[5,8,8,[]]],[[[6,5,8,5,8],[4,7,5,6,1]],9,6],[8,7]]
|
||||
|
||||
[[5],[],[8,4,[],[[3,7,0]],3]]
|
||||
[[[[1,6,9,6,4],8,[]],10,[10,[0,3,7,2,4]]],[[6],[7,10],[[],6,[7,8]],7],[4,[5,[2,6],5],3,5]]
|
||||
|
||||
[[],[[]],[],[10,8],[[5,9,[5],[],[]],[[6],[5,8,3],[2,8,7,10,2]]]]
|
||||
[[],[[]],[[[10,5,9]]],[8,6,[0,8],0,[4,[8],7]]]
|
||||
|
||||
[[[],[],[],0],[5,[[],0,[10,3,6,1,8],[7]],0,[[],8,[],[9,9,6,1]],[[6,3],10]],[[[1,8,5,1],[4,1,10,2,9]]],[7],[[],[7,2,[3,1,8],10,[8,5]],2]]
|
||||
[[],[[[2],1,10,6,[0,7,7,10]],7,0,[[0,8,9,6,9],[7,10,9,4,9],9,5],[[9,10,0],[],5,[10]]],[],[[[0,7,5,4],[10,7,7,4],9]],[2]]
|
||||
|
||||
[7,6,8,6,7]
|
||||
[7,6,8,6]
|
||||
|
||||
[[[[]],[[],[7,5,3,9,4],[4,4,5],[5],[10,0,9,1]],[10]],[[],[[4],0,1,10,[]],[[],3,0,[2,7,8,10,3],10],0,7],[[],[5],[],[[],8,3,2],[[4,7]]],[]]
|
||||
[[[[4,3,6,1]],3,[3,5,[6],8,3],[[4],[]]]]
|
||||
|
||||
[[[],[8,[2,7],10,9,6],7],[[],[[2,4,1,4,3],[6,0,8,1],[7,3,8,1],[0,6,5],3],9,[[8,0,2,9,1]],2],[5,1,8,3,[[2,9,5,3],9]]]
|
||||
[[0,[[10,6,0],10],[],4,5]]
|
||||
|
||||
[[9,[9,[7,7,4]]]]
|
||||
[[],[[]],[0,7,[[10],[3],[2,6,1,4]]]]
|
||||
|
||||
[[[[4,6,1],8,4,3],7,[[10,5,0]],0],[7,[],10,[9,[3],[7,3,3],[8,10,9,6],2]],[1,5]]
|
||||
[[[5,[9,2],[6],10,[5,8,6,8,3]],[[2,0,8]],6,[2,4,[10],1],[1,[6,9,10,2],0,[4,9],[9,6,2]]],[[[3,4,3,5],[4,3,7,8],[5,5,1,10],4],[6,[],[9,9],[8,2,5],1],[[],[2],[5,0,9],7,0],[7,9],7],[1,5]]
|
||||
|
||||
[[7,[[3],[0,2,5,10],9,10,4],1,7,6]]
|
||||
[[1,[8],[6,3,3,[6,3,1],[9,5]],10,[9,[3,3],3,0]],[[8,3],7,5,[9,4]],[10,[2,5,9],10,[4,3,[1],[8,8],0]],[],[]]
|
||||
|
||||
[[[[1,1,3,9]],[[6,10],2],[[8,0,7,3],[0,8,4,8],0]]]
|
||||
[[],[9,[[10,8],0,[1,5,5],10,4],[0,2,9,[0,4,6]]],[[[9,0],[10,0,9],[9],[10,9,10,4,2],[1]],3,[],[[],3,[0,5,6,1],[]]]]
|
||||
|
||||
[[10,[[3,7],2,5,[0]],[4,[3,6,9]],3],[6,8]]
|
||||
[[1],[8,10,3],[1],[1,3],[3,[6,[4,2],4,[2,9,0],[8,7,1,10]]]]
|
||||
|
||||
[[[[],6,5,0,10],4,0]]
|
||||
[[5,[[1],6,3],9]]
|
||||
|
||||
[[7,[[],[],[2,6,10],[0,6,4,2]]]]
|
||||
[[],[4,1,[[0,3,2,10]],[]],[[7,2,7],[[2,10,6,1],[10,6]],[4,3,8,[9,8,0,2,6]],7,[]]]
|
||||
|
||||
[[4,0,[[3,6,1,2,1],[10,9,6,7,10]],[2,[6,9,3,10],[6,2,9,5,6]],[]],[[5,[9],10,[10,1,0,10,2]],2,[7,10]],[],[8,8],[1,8,[],[[7],9]]]
|
||||
[[],[5,[9,2,[7,9],[9,3,3,0,3]],[[4,0],[1,7],[9,2,8]]],[[[1,8,10],[],[]]],[[[8,5,9,2,10]],[],[[0],2,[4],[5,1]],10,7],[3,7,[[8,3,1,6,9],1,[],6,[9,3]],5]]
|
||||
|
||||
[[],[4,[2],6,8]]
|
||||
[[[5,[7,3]],8],[[[4,3,1],4,2,2],[10,4,[3,0],[8,7,8]]],[],[[[7,0]],8,4,2,[5,0,4,[5,10,1,1],[0,9]]],[[[10,6,2],3,[2,6,4]],3]]
|
||||
|
||||
[[8,[[8,1,0,0],9],5,7,[7,[8,6]]],[[[7,10,5,10,7],[8,8,1,10],7,[2,10,4]],5,7],[4,2,1,[[0,3,4,7],[9,0,1,8],6,9]]]
|
||||
[[8,[3,[],[3,3,10]],[10,[4],[10,5,2,4,5],4,[]]],[[3,0,3,9,2]],[[[]]],[8,6]]
|
||||
|
||||
[[[]],[[8,[1,0,0],[6],2,[8,4,3,3,10]],5,[[3,1,3],[2,6],[9,2]]],[[]]]
|
||||
[[7],[[9,1],10,5,8,[7,[3,2],[7,0,2,1,1]]],[5,1,0,[1,[8,0,2,9],10,1],6]]
|
||||
|
||||
[[5,2,[]]]
|
||||
[[[[10,10,2,4],10],0,7,[2,[10,8,3,0,8],[8],[4]]],[],[2,[]]]
|
||||
|
||||
[[[3],[],[]],[],[[[5],[9,2,4,8,10]],[[3,6]],5,[[],[4,6,1,4],1],0],[3,[7],[[],7,[],4]],[[],[[9,3,3,8],4,9,5]]]
|
||||
[[[],[0,3],[1,6,7]],[[]],[],[8,6],[4,[[5]]]]
|
||||
|
||||
[[],[[0,[8,0,5,6,2],[6,8,4],[8,2],2],[],[1,[6]],9],[1,[7]]]
|
||||
[[[[0]],[[0,10,4,8,7]],8,0],[2,9,[[9,8,2],8,[7,10,7,5]],[[],[],3],7]]
|
||||
|
||||
[[8,8,[6],6,[8,0]]]
|
||||
[[4,5,[1,1],8,[]],[10,[[4],7]],[[[3],9],0,[3,8,8,[7,8],[]],0],[[],[5,[5,2,0]]]]
|
||||
|
||||
[[[],8],[[],4,7,[],7],[5,[],[],[[6,7,0,5,4]]]]
|
||||
[[[5,[2,1,3,0,3],[6,3],[6,5,4,1,4]],[[2],[]],7,10,1],[],[[[],[9,9,2,5],[1,9,7,10,5],4,[1,0,10,7]]]]
|
||||
|
||||
[[7,8]]
|
||||
[[6,[[9,5],[2,10],4],9,[[10,0,8,6],5,[4],8]],[],[[[3,3,1,2],7],6,8,[[]]],[]]
|
||||
|
||||
[[2,[]],[4],[],[],[[2,8,7,[8,8,0]]]]
|
||||
[[0,3,4,[2,3,2,0,[7,7,9]],[[2,0,9],[1,6,1,0,3]]],[3,[[3,2,5,3],6,[2,2,3,7],[10,7,4],3],10,[3,4]],[1,5,1,1,[[3,8,6],[0,1],[2],[]]],[9,4,8,7,10],[0,[3,[9,4,3]]]]
|
||||
|
||||
[[[[0],9,[6,3,5,9]],[[1],8,[4,2,1,7,10],[1,6,3,7,8]],[[9,2,0,8,7],6]],[7,9,[[7,9],[],[5,9]],0,1]]
|
||||
[[7,[[],[4,2,0,3]]],[[8,9,3,8],3,[[]]],[10,5,[8,[6,10],0,1,7],5,4]]
|
||||
|
||||
[[[1,5],7,9]]
|
||||
[[10,[[4,9]],[[5]],7],[[],[[1,4,7]],[[1,9,0,0],[2,10,5,2,1]]]]
|
||||
|
||||
[[],[[6],[[6,6]],9,[[5,3],9,2,[8,1,6],8]],[],[[[3],[6],[0,3,0],[4,0],[1,8,8,3,1]],0,[[],[10]]],[2,[7,[6,10],5,0,8],[1,[5,1,1]],1]]
|
||||
[[9]]
|
||||
|
||||
[[6,3],[4,4,3,6,[4]]]
|
||||
[[],[3,10,0,10]]
|
||||
|
||||
[[8,[4],[[8]]],[6,[]],[],[2],[0,3,10]]
|
||||
[[[0,[6,2,1,3],2,4,[3]]],[[],0,1,[7,[1,9,4,3]],1],[[[10],[7,10,2,8],6]]]
|
||||
|
||||
[[7,[[3,8,1,7,10]],6,[9,0,[9]],8],[[9,7,4],[[2]]],[[[2,5,7,7],2]]]
|
||||
[[[[8,0,8],0],[0],[[0,8,5],[8,10,6,2,2],7,[9,0]],0],[[[0,2,9,0],10,[0,3],[1,1,7],0],5]]
|
||||
|
||||
[[],[[5],[],[]]]
|
||||
[[],[[[6,2,4],10,[8]],1,2,6],[[[3,2,2],8],[]]]
|
||||
|
||||
[[[[],[10],10,7]],[],[6,6]]
|
||||
[[8,4]]
|
||||
|
||||
[[7,4,[1,[3,5,3,0,7],4]],[4,[4,8,[]],[[2,6]]]]
|
||||
[[],[4,1,0,4],[]]
|
||||
|
||||
[[10,[6,[9,9]]]]
|
||||
[[2,6,9,10]]
|
||||
|
||||
[[9,8,[[7,2,8,6],[7],[5,1]],4,[5,1,[5,8,10],[7,5]]],[1,3,[[1,7],10,2,6]]]
|
||||
[[9,2,[6,2]],[[[2,10,7,7,3],[7],[7,6,5,8,1],[2,0],[6]],[[0]],0]]
|
||||
|
||||
[[],[],[9,[[6,4,0],[4,9,0,2],[0,8,5,0,0]]]]
|
||||
[[1,[[0],10,6,2,[7,5,5,5,0]]],[7],[]]
|
||||
|
||||
[[[6,6],6],[[3,[3],[]],[1],[3,2,2,6,[10]]]]
|
||||
[[[[],4,4,10],[[9,4,6],4,[1,2,4,6,4],5,[]],2,[[6,1,9,1,7],9,8,[5,0],[8,3,7,6]],[[8,10,0,5],9,10,10,4]],[[[4,2,6],9,7],9,0,7,9]]
|
||||
|
||||
[[9,10],[9,3],[],[9,[[2]]],[[[],1,[1,9,3,8],[7,2],10]]]
|
||||
[[[[10,0],9,4],[6],[[5],8,[2,10,8,1,8]],[[10],0,[8,1]],[8,[10],[2,4,5,10,8],[1],[8,6]]],[3]]
|
||||
|
||||
[[2],[[6],0,[8]]]
|
||||
[[[[10,1,0],[4]],1,[[7,4],[10,7,5,5]]],[9,[[10,8],[1],6,7],3,[[4,8],[],10]],[[2]],[6],[0,3,2,[7,[3,9,8],6,4]]]
|
||||
|
||||
[[[[10,4]],[6,[],1,5,5],[8,8,3],3,[0,[6],[],2]],[7,[9],2],[[[0,4,1]],3,[7,[3,5,2,7,5],3],9,4],[2,3,7,7,9],[2,5,[4,[8,2,4,4],[9],[2,3],[6,7,10,0]],[[9,8,6],[6,1,2,0,1],[7,1,5],[5,0,9,7],2],3]]
|
||||
[[0,[[8,4,7,3,6],2,[8,10,8]],[3,2,1,[5,3,1,4,1],1],[[4,2,8,1],[10,0,3],[5,7],5]],[5,4,1,2],[[[10,0,2]],[[3,10],4],0]]
|
||||
|
||||
[[[3],[[10,4]]],[0,[[4,2],6,6,10],[[9,6,4],[6,8,4],[10,7,10,4],2],2,5],[7]]
|
||||
[[5,[[0,9,4]],7,5,[[0,10,3,8,10],[7,2,1]]],[9,[1,[9,2,10,1,1],[1,0]],2,[[9,4],3],2]]
|
||||
|
||||
[[[],8,1,7],[[1]],[8,2],[5,[[],[4],[4,9,2,4],[10,3,0,9],[9,3]],[[4,3,4,1,6],[2]],[[6,6],10,5,[6,8,9]]]]
|
||||
[[10,[],[[],[1,5,4,10,3],[2,4,5,6],[7,8],[]],[5,[6,1]]],[],[3,[7,[6,0,2,1]],8,[10,[8,9],4,9,7]],[[[],1],[[10,6,9,2],10,[6,1],1,1],9,0,[[9,10,4],9,0,[9],1]],[[[6,0,6],[6,9,0,1,2]]]]
|
||||
|
||||
[[1],[3,9,6,[[5],[],0,5,10]],[[9,[],[3,1,8]],0,[[6,8],6],[[],10],[4]],[[4,[5,6,4,1,5],3,[1,6,5,7]],[[8],2,2],6]]
|
||||
[[7,5,9,[4],[[],[8,1],5]],[7,3,1,8],[[8,3,0],9],[],[[[1],8,5]]]
|
||||
|
||||
[[6,9,[2,[4,9,3],[7,6,10,7],2,7],8],[[4,10,8],2],[[[8,1,7],8],3],[[[6]],[3],[[],8]],[2,0,8,[8,5]]]
|
||||
[[4,[9,9],2,[[],[1]]],[[],7,6,1,[]],[]]
|
||||
|
||||
[[[[5,2,4,9],[9,10,8],[]],0],[[8]]]
|
||||
[[],[9,[[10,4,10],[1,7,10,7],[]],[],7],[[9,5],[[2,2]],0,[[3,4]],[[10,9,1,9,6],[3,0,5,4]]]]
|
||||
|
||||
[[[10,10,[5]],[10],7,[]],[3,5,3],[],[],[[],[7,[9,8,9],[4,2,9,9,2],[]],0,0,7]]
|
||||
[[[[],1,6,9,[]],0,[0,[0,0],[10,0,0,1,2],0],[[1,7,7],3,[],[9,4],6]],[],[1,6,[5,2],[1,5,[7,2,8]],[[5,9,6,4],[0,10],[6,9,3],[3,8,0]]],[7]]
|
||||
|
||||
[[0,[2],10],[2,10,7,[[9]]]]
|
||||
[[2,0,2],[10,2,[9,8,9,2,4]]]
|
||||
|
||||
[[2],[2,[10,[4,1,3],10],7,[[7,7,3],[7,8],[0,7,6,3,8],3]],[[[9,0,3],[],[1,3,10,0,8]]]]
|
||||
[[[[1,3,8,5],10,[4],2],10],[0,9,7,[[0,4,10,0,6],[]],7],[[[0],1,9,[3],[6,9]],4,9],[[5],6],[1]]
|
||||
|
||||
[[[3,[5,3,2,7,9]],10,[]]]
|
||||
[[[5,7,5],[[9,1,6,7],9,[2,6,5],[6,6,1],[0,6]],[[]],[],9],[[1,[3],[3,10,0],4],2,[],[[2,1,1,5,9],6,8],[]],[],[[],6,[[5,2],2,[8]]],[]]
|
||||
|
||||
[[],[],[1,[[2,0]]]]
|
||||
[[7,2,2,[],[[8,7,3,6],4,2,2,[]]]]
|
||||
|
||||
[[6,9,8],[[],3,8,[],2],[3,9],[[[],10],[[9,3,9,8]],2,7]]
|
||||
[[2,[8,[]],[7,8,5,5,5],2,1],[],[[[6,1,9,2,9],7,4],[3,[3,8,1,6]],[[4,6,5],[3,10,8,5,6],[1],8,[5,0,4,0,6]],1]]
|
||||
|
||||
[[],[],[2,1,[4,7,[1]],[9,[7],0,6]]]
|
||||
[[3],[0,[[6,6,9,6],[4,7,10,1,8],[4,0,10],1,[10]]],[0,[6,5,[8,9,3,9,6],[],[4]]],[[],[[]],4]]
|
||||
|
||||
[[1,8,10,[]],[9,[],[[8]],[[9,6,3,2],[3,8,10],[],3],[1,9,[0]]],[],[5,[1,[],[4,5,7,10,9]],[[10,6,0,1]],9,[0]]]
|
||||
[[0,3,[9,9]]]
|
||||
|
||||
[[4,0,3],[],[],[[[]],[[5,3,1],8,[],1,[1,8,3,7]],[6]]]
|
||||
[[[]],[[[8,0,3,2,2],[3],[1,6,8],10,4],[6,4,7,[1,2]],[8,[3],[10,9],[4,0,10,8],[1]]],[[],[1,2,6,8],5],[3,9,7],[[6,6],0]]
|
||||
|
||||
[[7,[],[0],5],[7,[7]]]
|
||||
[[0,[8,[3,3,8],10,7],5,[[1,7],[0,0],[5,2,0],1],2],[7,8]]
|
||||
|
||||
[[4,[2,2,2,9],[[6,6,1,10,4],[]],5,10],[],[6,[[5,3,7,9,2],[4,2,4,9,7],[1,4,9,7,1]],2,[],[]],[[[7,0],7,[9,4,0]],9,[1,[1,0,1],[9,3,3],[9,2,10,5,10],10],7,[[9,0,8,1,8],8,[7,7,10,2]]],[]]
|
||||
[[[3,7,[]],[9,7],0],[[[9,9,3,5,2],1],7,[10],[[10],2,[6,1],[1,10,3,1]],8],[3,9],[7,7,2,[2,[8,7,6],10]],[1]]
|
||||
|
||||
[[[7,[10,1],[2,9],[3,4,6,9]],2,[],3],[[],6,3,[],[[4,7]]]]
|
||||
[[],[[6,[],[],[0,10,2,6],1],1,3,[3,[10,2,7,1,4],[6,3,0],[1,3,6,3],[4]],[0,[8,10,0,8,5],3,2,6]],[],[]]
|
||||
|
||||
[[5,[[4,0],[1,3,4],7,2],0,8,[]]]
|
||||
[[],[[[],10,[10,9,6,0,1],[]],[[8],4,6,4,[0,2,8]]],[4]]
|
||||
|
||||
[[],[],[],[[[],[8,6],[],[2,7,7,4]],[],1,[9,9,[1,3,4],0,[5,2]],[[4,4,5,6,10],[5,1,3,3],0]]]
|
||||
[[10,[[6,4],[3,1,1,8,4]],9,[[3]]],[9,2,6,8,1]]
|
||||
|
||||
[[],[1],[[[4],[5,1,6]],[]]]
|
||||
[[10,[[]],[[8,10],8],[1,[5,3,7,8,7]]],[],[],[[[7]],[[2],6],[[0,8,1,3,10],[],2,0]],[[7,8,[]],2,1,[[8,7,4],1,[4],[],2],7]]
|
||||
|
||||
[[[[3,5],[]],[7,0,5],[[],1,[7,2,7,10,1],3],[[4,1,5,5,6],[3,4],[6,1,3,9,2],8],[8]]]
|
||||
[[10,10,[6],[4]]]
|
||||
|
||||
[[[]],[8,4],[4,7,8,3,[[8,4,2],6,0]],[[1,[4,6,4],[],1]]]
|
||||
[[[5],[[4,4,9,2,0]]],[9,[[7]],[[6,2],[0,3,1,1,7],5,4],[0]]]
|
||||
|
||||
[[[3,[1,0,10,7],[8,8,8,10]],[10,[0,3],8,[9,5]],6],[[10,[3],[9,10,0,2]],[7,4],[0,7,4,6,[3,5]],[],[10,[5,4,6,1],5,4]],[[[0],0],5],[4],[8,[[9,4,5],3],[9,[0,7,2]],[],[]]]
|
||||
[[5,3,9,0],[7,[6,[8,1,0,1,8],3,[9,2],5],[[1,0,0,6,4]],[6,[2,4],5,[2,10]]],[],[3,9]]
|
||||
|
||||
[[[1,[4,0,10,6,8]],1],[],[[[]]]]
|
||||
[[],[],[[9,[9,7],7,[9,4,3],0],9,6],[2,[[6,8]],2,[9,7,[4,6,10,4,2],[]]]]
|
||||
|
||||
[[2,10,[4,9,[],[7,10,0],1],[[1,8,5,4,6],5]],[[[]],[[10,2,1]],[[]]]]
|
||||
[[9,9,[10,[1,5,1,2]],[9],3],[8,8],[4,[5,[6],10],[[0,5],[7,10],2],6,[[2,9,8],[5,4,7,5]]],[1],[[10,8,4,[1,7,8,9],8]]]
|
||||
|
||||
[[3,[]]]
|
||||
[[10],[[3,[7,10,7],[2,6,6,1,1],5],8],[1],[4,[9,1,[2]],7]]
|
||||
|
||||
[[],[[[3,2,0],[3,4,5,10,8],[3,3,3,0,3],[8,3],9],[[5,0,7,8],[],[1,1]],[[10],[2,7,4,4],[],6],2],[[1,[3],[7,4],[8,1,9],3],0,7]]
|
||||
[[0,8]]
|
||||
|
||||
[[[],[]],[3],[1,9,10,[[4,3,2],[3,10,0,6,4],7,7,10],[6,[10],[9,8,0]]],[]]
|
||||
[[[5,0,[0],[9,10,7],[1,0]],5],[],[5,3,0,3],[[[3,8,9],[],[2,2,6,6,10],[]]]]
|
||||
|
||||
[[[[9,1,6]],3,[[2,0,8,1,0]]]]
|
||||
[[3,[[2,1],[8],10,6]],[10,2,3,6,[]],[0,10,0,[[4,7,9],[],3],3],[[[4,2,5],[8]],9,6,[3,[],7,[0,4,8,0]]],[[[6],10,[10,9]],2,[7,[3],[2,0],[6,5,5,7,0]]]]
|
||||
|
||||
[[1,5],[8,[5,1,10,[0,4,9,4,1]],6],[],[7,[3,3,5,10,4]]]
|
||||
[[],[10,[7]]]
|
||||
|
||||
[5,8,1,2]
|
||||
[5,8,1,2,1]
|
||||
|
||||
[[0,[],[],[[6,6,7,7],10,3],1],[[6,7,[8,1,4,4,7],[6,6],2]],[[[],7,[],4,2],[[5,5,5,0,7],6,[8,9,7]],[[6,3,3,8,9],1,[6,9,8,5],3],3,[[9,9],[],7,[8,2,8,10],8]]]
|
||||
[[[9,[2],[],[4,6],[10,2]],5]]
|
||||
|
||||
[[[9],3,[7,2,10]]]
|
||||
[[2],[9,1,7,[9]]]
|
||||
|
||||
[[],[]]
|
||||
[[5,[],7],[[[6,0],[7,5,9,7],2]],[[],[[5,2,8],[]],[[5,4,1,10],[3,5,2,2,10],[0,6],10]],[[2],0,8],[]]
|
||||
|
||||
[[[9,10,[4],7,0],1,1,[[],5]]]
|
||||
[[[[9,8,8,3,1],[10,7,2,10,5]],4,3],[9,[5],[[],[5],10,[10],[10,3,4]]]]
|
||||
|
||||
[[10,[[2],[7,7,3,3,3]],[1,[],[10,4,4]]]]
|
||||
[[[[1],[1,2,5,7]],[6,3,[2,1,7]],8],[4,5]]
|
||||
|
||||
[[[3,[1,6,1,4,4],[4,5,5,0]],8,8,9],[[],[],[6,[4,10],[],[4,9,2]],6]]
|
||||
[[0,5,7,8],[]]
|
||||
|
||||
[[2,[[0,5,9],[10,8],[2,1],[5,6,5],[7,9]]],[7,1,[10,3,[2,4],[9,10,1,9,10],0],0],[0,[[2,10,4,0],4],[6]]]
|
||||
[[[[9,10,9],[8,7,5,7,8]],0,0,[[2,3],8,0,[2,5,10,9,8]],6]]
|
||||
|
||||
[[2,[9,4,5,[2,0]],1,7],[9,[6,[9,5,1]]]]
|
||||
[[],[[],4,[[4,10,5,8],10,[0,3,6],8],[6]],[[9]],[3,9,9,[],[9,[7,9,5],8]],[[2,1,9,[2,0,9,7,4],[9,10,10]],[8,[9,2,3],2,[6,9,3,8]],[10,7,[],10],2]]
|
||||
|
||||
[[5],[],[],[9],[[[7,8,8],5],[1,[7,4,10],[9,1],2,[]],[],[4,5,1,10,10]]]
|
||||
[[[10,[10,3,4,0,8],4,5,1],[10,7],[[9,6,6],[5,6,3,7],[5,9,2,0,8],3],[[]],[[1,10,7,1,3],8,4,3]],[[[]],[9],2]]
|
||||
|
||||
[[6,[[1],[7],[]],5,6,8],[6,[2],[[]]]]
|
||||
[[[7,[10],[7,8,8,7,1]]],[3,10,3,[[6],7,[0,9,7,7],1,[9,9,1,2,2]],3],[6,[6,[2,9]],[[],[2,1,3,2,9],[3,7,9,6],5],[[1]],[6,[9,6,1,3]]],[[2,[2],[5,0,2],5],0,4,5,1]]
|
||||
|
||||
[[[9,0],4,[[7]],4],[9,7],[[1,[0],[1,0,7,1,3],[8],[4,2,0]],9,[[0,5],0,7],6,[[],10]],[]]
|
||||
[[[[5,10],[4,4,5,3],[9,8,9],[],[5,2]],10,9],[],[[[],[]],5]]
|
||||
|
||||
[[],[],[[],7,7,[2,[8,9]],[0,[7,3],[3,6,1,10,5]]],[3]]
|
||||
[[[[0,9,7,10]],5],[[],[]],[[[0,2,10],[10,0,5,3,9],9,[],5]]]
|
||||
|
||||
[[8]]
|
||||
[[[2,[1,6]],[[9,6,6,4,10],[],9,6],[],[]],[],[[1,1,6],4,[[],[4,3,2,9,2]],3]]
|
||||
|
||||
[[5,8,10,4,3],[0,9,[2,9,[4],[6,9,8,0],[9]],6,[]]]
|
||||
[[],[7,5,[5,[6,5,1,1],4],[[4,10,0,4,10],[10,9],[0,9,1]],6],[[],[[0,9],2],[0,[2,7,9],[],10],[[7,1,9,5,0],[4,3,1,8,1],3,[8,8]],9],[[10,3,5,[5,4,9,10,6]],7],[[1,[],1],[[0,4],6,1,[10,10,8,6,9]],[],6]]
|
||||
|
||||
[[],[1,[2,2,[2,9],4,[]],2],[],[4,10,[],7,[8,[],[]]],[6,8,10,3]]
|
||||
[[[3,0],4],[[8,[1,10,5]],[[1,7,0,3],[7,3,5]],[10,8,[0],2,[9,2,1]]],[[],[10],[[9,0]],[8,0,4],[[8,0],3]]]
|
||||
|
||||
[[10],[6],[[6,[5,2,7,10,1],[1,6,6],[9,6,10,8],10],2,9,[[0,3,7],0]],[[[3,2],2,9,[]],10,7],[3,1,[6],[9,10,[]]]]
|
||||
[[[],[[]],6],[[],[],[7],[]],[3,0,8,5]]
|
||||
|
||||
[[],[3,[10],8],[[[9]],[],[[4,5,0,9,2],[],[8],[0,6,9]]],[],[8]]
|
||||
[[7],[[8,9,4,8],[]],[],[3,8,[[8],[],[6,4,4],3]],[[[10,6]],[[],[],9,[2,3,7,1],10]]]
|
||||
|
||||
[[9,[9,3]],[[7,7,7,7,3],1],[7,[[],[6,10,1],[4,5,3,8]]]]
|
||||
[[8,4],[[4,1,[1,3,3],0,[0,10]],[[0,6,8],0,[7,5,4],6,[7,2,5,7]],10,2,9]]
|
||||
|
||||
[[],[6],[[[1,4,4,1],[]],2],[1,1,[[0],[6,6]],2]]
|
||||
[[6,[[0,7],0,[6],3],9,[[8],3,[1,5,0,8,6],[]]],[0,8,2,2,10]]
|
||||
|
||||
[[3,[[7],[10,6,9,3,0],[3],4,4],8],[[0,7,[7,8,8],1,[0,4]]]]
|
||||
[[[10,9,[],[5,2,8,3]],[8,[8,1],9,[]],10],[6,8,[9,[7],9,[5,8,8,10,1]]],[4],[[[4,9,6],5,9],4,4]]
|
||||
|
||||
[[],[],[[0,[5,5,5,1,3],1,[],0]],[[5,1,[2,10],[1]],9,2,[8,9,[10,10]]]]
|
||||
[[[3,1]]]
|
||||
|
||||
[[[8,3,[4,2,1,2]],[10],9],[[0,5],[2],3,1],[0,[[1,7,7,9]],1,[8,[7,6,8],5]],[[8,[8,8]],[10,3,[3],[10,9,1]],[]]]
|
||||
[[[[2,0,2]],[0,2,9]],[8,5,[0],[8,6],10],[10,[[5,1,4],3],10],[[5,[],0,3,[2,4,7,8]]]]
|
||||
|
||||
[[],[[],[6,[5,7,5,5],[8,4,3],6,8],10,[[8,5,6,1,7],[9,8,9,2],[5,2,4,10]],[[8]]],[[5,5,[2,4,4,4,9],9],2,6,[[7,5,7,4,4],3,[],[9]],[[3,9,5]]]]
|
||||
[[9,6],[[[0]]],[0,8,[[9,7],4,[8,0,0]]],[]]
|
||||
|
||||
[[1,1],[4,1,[5,[0,7,3,5,0],[7,8,9],[4,0,0,8],2],1,[9,[1,9],[],[3,4,8,4,1]]],[[5,0,[4,2,0,9,4],[]],0],[3]]
|
||||
[[0,7,[[6,0,8],0,[]]]]
|
||||
|
||||
[[],[[],[6],1],[7,[6,3,5],[]]]
|
||||
[[],[[7,[6],[3,2,2],[10]],[[],[6],[7,9,9]],[[8],[2,10,5],[1,9,5,6,4],3],8],[[],[[9],[2],[0,8,10,6],[3,7]],[5,[1,3,9],2,10,7],[7]]]
|
||||
|
||||
[[[[]],[[1,5,5,3,3]]],[],[1,[8,8,[3,9,6]]]]
|
||||
[[[],7,2,6,[9,[5,10,0],[9,6,6,5,5],1]],[]]
|
||||
|
||||
[[1,5,[4,0,[8]]],[[[5],8,[7,6,5],3,0],[],4,6],[2,[[2],[0,2,5,3,3],1],4,7,6]]
|
||||
[[2,[[10,10,1,0,9]]],[[],9,1],[[3,4]],[[[10,2,3],[9,3,7],[10,1,6,1]],7]]
|
||||
|
||||
[[0,[],[[],10,7,[7,8,8]]],[],[0,[[7,2,2,7],4,1,7,[7,8,0,6,6]],[[8,8,6]]]]
|
||||
[[9],[[[4,7,5],[1,5,8,2],[3,2,8,6,0],[7,5]],[[7,9,6],[]],[0,3,8]],[[4]],[[],[2,5,[]],0]]
|
||||
|
||||
[[8,[[2],0,[]],[5,9],[]],[[2,6],[]]]
|
||||
[[[]],[0,3,9,4,0],[[[2,4],[6],[4,2,1],[]]],[[1,0,[0,0],7,6],1,5,7,[2]]]
|
||||
|
||||
[[[[4,10,7],0],[[1,1,7,4,5],[1],8,5,9],[[9,9],3,[],[7,6,2]],[[3,0],[3],3],[2,[3,6,3,2],[10,2,6],[],4]]]
|
||||
[[[10,9,3,0],8]]
|
||||
|
||||
[[[[4,10,7],7,[4,8,5,2,4]],8,4],[[[],5],[],7,[2,3]]]
|
||||
[[[9],[1,0,[],2,[0]],[[0,1],[10,8],[10]]]]
|
||||
|
||||
[[[[10,1,3,6,3],[3,0],2],[],6],[9,9,[4,[10],4,5,[5,0,4]]],[9,9]]
|
||||
[[10,10,8]]
|
||||
|
||||
[[[[3,6]],8,[],6,[0,2,8,[1,0],8]]]
|
||||
[[6,6,6,7,1],[],[],[],[[[6],[6,3]],[4,0],3,3,[[],[10,4,9,8]]]]
|
||||
|
||||
[[1,[[2,1,2,10],5,[],[8,4,2],1],[7,9,[4,5]],[3,[6,6]],5],[]]
|
||||
[[]]
|
||||
|
||||
[[[3,10],[8,9,9],2,9],[8,[],10,10]]
|
||||
[[[[],[0]],3,6]]
|
||||
|
||||
[[3,4,[]],[4],[3,9,[5,[1],[],[10,7],[9,0,2,9]],[2,2,9],4],[[[2,2,6]]]]
|
||||
[[],[4,6,[[],[],[3,7,5],9,7]],[],[[8,5,7],8,1,3,8]]
|
||||
|
||||
[[],[[0,2],0,7,[],[[6]]],[[],[8],[3,[],3],[7,[5,0,4],7],5],[1,1,[[]]],[[[0,10,7,10],2,0,[3,7,1,1]],9]]
|
||||
[[[8,[7,6,6]],9],[10,8,9,6],[[[],[1,7,3]],[[5,5,5,1],[],0,[7,7,9,8],7],[10,[],[3,9,7,4,3],10],[[8,7],10]],[[2],[5],4,[[2,6],[7,7,10,7,0],[3,8,3],3,6],10],[9,10,[[6,2]],5]]
|
||||
|
||||
[[4,2],[[9,5,7,7,[]]]]
|
||||
[[[1,[4,8,7,2,4],4,[4,6,5,6,4]],[8,[6]],8],[3]]
|
||||
|
||||
[[3,2,1,8]]
|
||||
[[[10,6,[2],2],10],[[],3,10,[[],[],[4],6,8],[[8,5,10],[],5]]]
|
||||
|
||||
[[[6,[5,5,0]],5],[[],7,1,[],7]]
|
||||
[[3,4,1,6,[[],[4],9]],[[[3,4,5]],[],4]]
|
||||
|
||||
[[4,[5,4],[[0,10,9,1,5]],5,5]]
|
||||
[[3]]
|
||||
|
||||
[[0,[8],9],[3,[[5,7]],8],[[5,7,1,10,4]]]
|
||||
[[6,[3,6,3,[9,2,9,2,9]],[[3,4,1,9,5],7,4,10,[5,0,4,4,2]]],[0],[[0,1,[7],[],0],[5,4,[9,3]],9,1,[[6,0],[7,4]]],[[5,8],2]]
|
||||
|
||||
[[6,[],[[4],[3,5]],6],[8,[7,5,3]],[5,[[],2,[1,1]],[6,4],[],[[0],9,[0,8,10,4],0]]]
|
||||
[[[[10,5,10,4],[9,1,7,6,10],[0]],9,[1,2,3,5],[0,[5,7,4,7],[9,10,7],1,7]],[[[],0],7,[8,[10,1,10,7,8]],[4,1,[4,3,10],[],1],5],[8,9],[[7,10,2,[4],2],[[3],[8,8,0,6],6,4]]]
|
||||
|
||||
[[[[7,8,2,2],[8,2,3,0],[4,3,8,0,8]],5,[[9,7,1],[],[1,0],[1,2,6]],9,[[5,1,7],3,[],5]]]
|
||||
[[[0,[8,3,5],[5],1],[8],[[4,10,10,8]],0],[[0]],[[[7,2],[8,9],[]],[[],[1,9,7],[9,4,6],[5]],[[5,8,7,2]]]]
|
||||
|
||||
[[[],2,[1,[6,6,2,2,5]],8]]
|
||||
[[0,[[2,7,6,0]]]]
|
||||
|
||||
[[],[10,1],[6,[2,[],8,0,[5,1,7,9,4]],9,4,9],[[[8,5,9,4,1],6],3,[],9,3],[[2],[],[[9,3,7],8,[0,1],[1,2,1,9,1],[]],[[6,7],[5],2,9],[[]]]]
|
||||
[[[8,6]],[0],[],[10]]
|
||||
|
||||
[[],[9],[],[[[],[2],[9]]],[6,7,10,[8,[],[6,3],0]]]
|
||||
[[7],[9,8,[[2,5],[6]],[[3,10,5,5,4],[1,8,3],0,9,[0,2,5]]]]
|
||||
|
||||
[[6,[],[[6,6,0,3],[10,0,6,5,0],9]]]
|
||||
[[],[[10,[7]],8],[7,7],[[5,1,[10],[8,1,6,0,10],3]],[4,[0,6]]]
|
||||
|
||||
[[3],[[6,9]]]
|
||||
[[[[5,10],8],10,[[9,1,10,4,4],[10,3],4,[9,9,9,9,5]]]]
|
23
day13_test.txt
Normal file
23
day13_test.txt
Normal 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]
|
129
day14.txt
Normal file
129
day14.txt
Normal file
@ -0,0 +1,129 @@
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
484,41 -> 484,42 -> 495,42 -> 495,41
|
||||
494,51 -> 498,51
|
||||
470,158 -> 475,158
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
468,123 -> 468,127 -> 460,127 -> 460,132 -> 474,132 -> 474,127 -> 473,127 -> 473,123
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
458,171 -> 462,171
|
||||
473,73 -> 473,77 -> 466,77 -> 466,82 -> 485,82 -> 485,77 -> 477,77 -> 477,73
|
||||
492,162 -> 497,162
|
||||
494,27 -> 498,27
|
||||
471,162 -> 476,162
|
||||
480,156 -> 485,156
|
||||
498,13 -> 498,17 -> 497,17 -> 497,24 -> 505,24 -> 505,17 -> 502,17 -> 502,13
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
461,165 -> 465,165
|
||||
477,70 -> 487,70 -> 487,69
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
473,73 -> 473,77 -> 466,77 -> 466,82 -> 485,82 -> 485,77 -> 477,77 -> 477,73
|
||||
462,85 -> 462,88 -> 454,88 -> 454,94 -> 470,94 -> 470,88 -> 466,88 -> 466,85
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
482,37 -> 488,37 -> 488,36
|
||||
473,73 -> 473,77 -> 466,77 -> 466,82 -> 485,82 -> 485,77 -> 477,77 -> 477,73
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
464,162 -> 469,162
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
473,173 -> 477,173
|
||||
462,85 -> 462,88 -> 454,88 -> 454,94 -> 470,94 -> 470,88 -> 466,88 -> 466,85
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
473,73 -> 473,77 -> 466,77 -> 466,82 -> 485,82 -> 485,77 -> 477,77 -> 477,73
|
||||
498,13 -> 498,17 -> 497,17 -> 497,24 -> 505,24 -> 505,17 -> 502,17 -> 502,13
|
||||
464,167 -> 468,167
|
||||
468,107 -> 468,100 -> 468,107 -> 470,107 -> 470,104 -> 470,107 -> 472,107 -> 472,97 -> 472,107
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
476,154 -> 481,154
|
||||
461,173 -> 465,173
|
||||
468,123 -> 468,127 -> 460,127 -> 460,132 -> 474,132 -> 474,127 -> 473,127 -> 473,123
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
468,107 -> 468,100 -> 468,107 -> 470,107 -> 470,104 -> 470,107 -> 472,107 -> 472,97 -> 472,107
|
||||
494,33 -> 498,33
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
477,70 -> 487,70 -> 487,69
|
||||
473,156 -> 478,156
|
||||
455,173 -> 459,173
|
||||
478,162 -> 483,162
|
||||
462,85 -> 462,88 -> 454,88 -> 454,94 -> 470,94 -> 470,88 -> 466,88 -> 466,85
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
467,173 -> 471,173
|
||||
498,13 -> 498,17 -> 497,17 -> 497,24 -> 505,24 -> 505,17 -> 502,17 -> 502,13
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
484,41 -> 484,42 -> 495,42 -> 495,41
|
||||
497,30 -> 501,30
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
498,13 -> 498,17 -> 497,17 -> 497,24 -> 505,24 -> 505,17 -> 502,17 -> 502,13
|
||||
498,13 -> 498,17 -> 497,17 -> 497,24 -> 505,24 -> 505,17 -> 502,17 -> 502,13
|
||||
468,123 -> 468,127 -> 460,127 -> 460,132 -> 474,132 -> 474,127 -> 473,127 -> 473,123
|
||||
485,162 -> 490,162
|
||||
482,37 -> 488,37 -> 488,36
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
491,30 -> 495,30
|
||||
468,107 -> 468,100 -> 468,107 -> 470,107 -> 470,104 -> 470,107 -> 472,107 -> 472,97 -> 472,107
|
||||
467,169 -> 471,169
|
||||
452,171 -> 456,171
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
464,171 -> 468,171
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
484,41 -> 484,42 -> 495,42 -> 495,41
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
468,123 -> 468,127 -> 460,127 -> 460,132 -> 474,132 -> 474,127 -> 473,127 -> 473,123
|
||||
474,160 -> 479,160
|
||||
500,51 -> 504,51
|
||||
494,45 -> 498,45
|
||||
461,169 -> 465,169
|
||||
468,123 -> 468,127 -> 460,127 -> 460,132 -> 474,132 -> 474,127 -> 473,127 -> 473,123
|
||||
488,51 -> 492,51
|
||||
458,167 -> 462,167
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
468,107 -> 468,100 -> 468,107 -> 470,107 -> 470,104 -> 470,107 -> 472,107 -> 472,97 -> 472,107
|
||||
498,13 -> 498,17 -> 497,17 -> 497,24 -> 505,24 -> 505,17 -> 502,17 -> 502,13
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
466,137 -> 466,138 -> 484,138
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
468,107 -> 468,100 -> 468,107 -> 470,107 -> 470,104 -> 470,107 -> 472,107 -> 472,97 -> 472,107
|
||||
468,107 -> 468,100 -> 468,107 -> 470,107 -> 470,104 -> 470,107 -> 472,107 -> 472,97 -> 472,107
|
||||
468,107 -> 468,100 -> 468,107 -> 470,107 -> 470,104 -> 470,107 -> 472,107 -> 472,97 -> 472,107
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
468,123 -> 468,127 -> 460,127 -> 460,132 -> 474,132 -> 474,127 -> 473,127 -> 473,123
|
||||
498,13 -> 498,17 -> 497,17 -> 497,24 -> 505,24 -> 505,17 -> 502,17 -> 502,13
|
||||
467,160 -> 472,160
|
||||
468,107 -> 468,100 -> 468,107 -> 470,107 -> 470,104 -> 470,107 -> 472,107 -> 472,97 -> 472,107
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
481,160 -> 486,160
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
497,48 -> 501,48
|
||||
491,48 -> 495,48
|
||||
455,169 -> 459,169
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
500,33 -> 504,33
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
449,173 -> 453,173
|
||||
473,73 -> 473,77 -> 466,77 -> 466,82 -> 485,82 -> 485,77 -> 477,77 -> 477,73
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
470,171 -> 474,171
|
||||
477,158 -> 482,158
|
||||
468,123 -> 468,127 -> 460,127 -> 460,132 -> 474,132 -> 474,127 -> 473,127 -> 473,123
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
462,120 -> 462,112 -> 462,120 -> 464,120 -> 464,114 -> 464,120 -> 466,120 -> 466,119 -> 466,120 -> 468,120 -> 468,118 -> 468,120 -> 470,120 -> 470,119 -> 470,120
|
||||
473,73 -> 473,77 -> 466,77 -> 466,82 -> 485,82 -> 485,77 -> 477,77 -> 477,73
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
473,73 -> 473,77 -> 466,77 -> 466,82 -> 485,82 -> 485,77 -> 477,77 -> 477,73
|
||||
466,137 -> 466,138 -> 484,138
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
484,158 -> 489,158
|
||||
462,85 -> 462,88 -> 454,88 -> 454,94 -> 470,94 -> 470,88 -> 466,88 -> 466,85
|
||||
462,85 -> 462,88 -> 454,88 -> 454,94 -> 470,94 -> 470,88 -> 466,88 -> 466,85
|
||||
488,33 -> 492,33
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
462,85 -> 462,88 -> 454,88 -> 454,94 -> 470,94 -> 470,88 -> 466,88 -> 466,85
|
||||
480,151 -> 480,145 -> 480,151 -> 482,151 -> 482,150 -> 482,151 -> 484,151 -> 484,144 -> 484,151 -> 486,151 -> 486,148 -> 486,151 -> 488,151 -> 488,142 -> 488,151
|
||||
482,64 -> 482,59 -> 482,64 -> 484,64 -> 484,55 -> 484,64 -> 486,64 -> 486,58 -> 486,64 -> 488,64 -> 488,54 -> 488,64 -> 490,64 -> 490,55 -> 490,64
|
||||
488,160 -> 493,160
|
||||
462,85 -> 462,88 -> 454,88 -> 454,94 -> 470,94 -> 470,88 -> 466,88 -> 466,85
|
2
day14_test.txt
Normal file
2
day14_test.txt
Normal file
@ -0,0 +1,2 @@
|
||||
498,4 -> 498,6 -> 496,6
|
||||
503,4 -> 502,4 -> 502,9 -> 494,9
|
179
src/day13/main.rs
Normal file
179
src/day13/main.rs
Normal file
@ -0,0 +1,179 @@
|
||||
use std::fmt::{Display, Formatter};
|
||||
use base::read_file;
|
||||
|
||||
#[derive(Debug, Eq, PartialEq, Clone)]
|
||||
struct List {
|
||||
elements: Vec<ListElement>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Eq, PartialEq, Clone)]
|
||||
enum ListElement {
|
||||
Number(u32),
|
||||
Sublist(List),
|
||||
}
|
||||
|
||||
impl Display for List {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||
f.write_str("[")?;
|
||||
for (idx, element) in self.elements.iter().enumerate() {
|
||||
match element {
|
||||
ListElement::Number(n) => {
|
||||
write!(f, "{}", n)?;
|
||||
}
|
||||
ListElement::Sublist(sub) => {
|
||||
write!(f, "{}", sub)?;
|
||||
}
|
||||
}
|
||||
if idx != self.elements.len() - 1 {
|
||||
f.write_str(",")?;
|
||||
}
|
||||
}
|
||||
f.write_str("]")
|
||||
}
|
||||
}
|
||||
|
||||
fn add_to_list(next: &Vec<char>, start: usize) -> (List, usize) {
|
||||
let mut list = List { elements: vec![] };
|
||||
let mut index = start;
|
||||
|
||||
if start == 0 {
|
||||
index = 1;
|
||||
}
|
||||
|
||||
while index < next.len() {
|
||||
match next[index] {
|
||||
'[' => {
|
||||
let (sublist, new_idx) = add_to_list(next, index + 1);
|
||||
index = new_idx;
|
||||
list.elements.push(ListElement::Sublist(sublist));
|
||||
continue;
|
||||
}
|
||||
']' => {
|
||||
return (list, index + 1);
|
||||
}
|
||||
_ => {
|
||||
let mut number = String::new();
|
||||
if next[index].is_digit(10) {
|
||||
number.push(next[index]);
|
||||
while next[index + 1].is_digit(10) {
|
||||
index += 1;
|
||||
number.push(next[index]);
|
||||
}
|
||||
list.elements.push(ListElement::Number(number.parse::<u32>().unwrap()));
|
||||
}
|
||||
}
|
||||
}
|
||||
index += 1;
|
||||
}
|
||||
|
||||
return (list, index);
|
||||
}
|
||||
|
||||
|
||||
fn are_in_right_order(lhs: &List, rhs: &List) -> Option<bool> {
|
||||
let mut left_iter = lhs.elements.iter();
|
||||
let mut right_iter = rhs.elements.iter();
|
||||
loop {
|
||||
let next_left = left_iter.next();
|
||||
let next_right = right_iter.next();
|
||||
if next_left.is_some() && next_right.is_some() {
|
||||
let left = next_left.unwrap();
|
||||
let right = next_right.unwrap();
|
||||
match left {
|
||||
ListElement::Number(ln) => {
|
||||
match right {
|
||||
ListElement::Number(rn) => {
|
||||
println!("Compare {} vs {}", ln, rn);
|
||||
if ln < rn {
|
||||
println!("Left side is smaller; Right order");
|
||||
return Some(true);
|
||||
} else if rn < ln {
|
||||
println!("Right side is smaller; Not right order");
|
||||
return Some(false);
|
||||
}
|
||||
}
|
||||
ListElement::Sublist(rl) => {
|
||||
if let Some(value) = are_in_right_order(&List { elements: vec![ListElement::Number(*ln)] }, rl) {
|
||||
return Some(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ListElement::Sublist(ll) => {
|
||||
let value = match right {
|
||||
ListElement::Number(rh) => { are_in_right_order(ll, &List { elements: vec![ListElement::Number(*rh)] }) }
|
||||
ListElement::Sublist(rl) => {
|
||||
are_in_right_order(ll, rl)
|
||||
}
|
||||
};
|
||||
if let Some(value) = value {
|
||||
return Some(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if next_left.is_some() && next_right.is_none() {
|
||||
println!("Right side run out of items; Not right order");
|
||||
return Some(false);
|
||||
} else if next_left.is_none() && next_right.is_some() {
|
||||
println!("Left side run out of items; Right order");
|
||||
return Some(true);
|
||||
} else {
|
||||
println!("Both sides run out of items. Going back");
|
||||
return None;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn create_list(str: &str) -> List {
|
||||
return add_to_list(&mut str.chars().collect::<Vec<_>>(), 0).0;
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let lines = read_file("day13.txt");
|
||||
let mut lists = vec![];
|
||||
for line in lines {
|
||||
if !line.is_empty() {
|
||||
lists.push(create_list(&line));
|
||||
let line = line.trim_end();
|
||||
let last_line = lists.last().unwrap();
|
||||
let test_result = last_line.to_string() == line;
|
||||
if test_result {
|
||||
println!("Compare: {} with {}", line, last_line);
|
||||
} else {
|
||||
panic!("Parser error!");
|
||||
}
|
||||
}
|
||||
}
|
||||
let task1 = lists.chunks_exact(2).enumerate().filter(|(_, chunk)| are_in_right_order(&chunk[0], &chunk[1]).unwrap()).fold(0, |acc, (idx, _)| {
|
||||
println!("Found matching pair at: {idx}");
|
||||
acc + idx + 1
|
||||
});
|
||||
|
||||
println!("Task1: {task1}");
|
||||
|
||||
let list_2 = create_list("[[2]]");
|
||||
let list_6 = create_list("[[6]]");
|
||||
|
||||
lists.push(list_2.clone());
|
||||
lists.push(list_6.clone());
|
||||
|
||||
for idx in 0..lists.len() {
|
||||
for list in (idx + 1)..lists.len() {
|
||||
if !are_in_right_order(&lists[idx], &lists[list]).unwrap() {
|
||||
lists.swap(idx, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let mut index_2 = 0;
|
||||
let mut index_6 = 0;
|
||||
for (idx, list) in lists.iter().enumerate() {
|
||||
if *list == list_2 {
|
||||
index_2 = idx + 1;
|
||||
} else if *list == list_6 {
|
||||
index_6 = idx + 1;
|
||||
}
|
||||
}
|
||||
|
||||
println!("Found index {} and index {}. Result is {}", index_2, index_6, index_2 * index_6);
|
||||
}
|
101
src/day14/main.rs
Normal file
101
src/day14/main.rs
Normal file
@ -0,0 +1,101 @@
|
||||
use std::collections::HashSet;
|
||||
use base::read_file;
|
||||
|
||||
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)]
|
||||
struct Pos(i32, i32);
|
||||
|
||||
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
|
||||
struct Line(Pos, Pos);
|
||||
|
||||
impl Line {
|
||||
fn contains(&self, p: &Pos) -> bool {
|
||||
let Pos(x1, y1) = self.0;
|
||||
let Pos(x2, y2) = self.1;
|
||||
let x_max = x1.max(x2);
|
||||
let x_min = x1.min(x2);
|
||||
let y_max = y1.max(y2);
|
||||
let y_min = y1.min(y2);
|
||||
return if x1 == x2 {
|
||||
let y_range = y_min..=y_max;
|
||||
p.0 == x1 && y_range.contains(&p.1)
|
||||
} else if y1 == y2 {
|
||||
let x_range = x_min..=x_max;
|
||||
x_range.contains(&p.0) && p.1 == y1
|
||||
} else {
|
||||
false
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
impl Pos {
|
||||
fn can_move_to(&self, relative: &Pos, lines: &Vec<Line>, others: &HashSet<Pos>) -> bool {
|
||||
let relative = Pos(self.0 + relative.0, self.1 + relative.1);
|
||||
for line in lines {
|
||||
if line.contains(&relative) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
!others.contains(&relative)
|
||||
}
|
||||
}
|
||||
|
||||
fn do_simulation(rock_lines: &Vec<Line>, max_height: i32) -> u32 {
|
||||
let mut spawns = 0;
|
||||
let mut sands = HashSet::new();
|
||||
let sand_spawn = Pos(500, 0);
|
||||
let mut sand = sand_spawn;
|
||||
|
||||
|
||||
loop {
|
||||
if sand.can_move_to(&Pos(0, 1), &rock_lines, &sands) {
|
||||
sand = Pos(sand.0, sand.1 + 1);
|
||||
} else if sand.can_move_to(&Pos(-1, 1), &rock_lines, &sands) {
|
||||
sand = Pos(sand.0 - 1, sand.1 + 1);
|
||||
} else if sand.can_move_to(&Pos(1, 1), &rock_lines, &sands) {
|
||||
sand = Pos(sand.0 + 1, sand.1 + 1);
|
||||
} else {
|
||||
if sand == sand_spawn {
|
||||
spawns += 1;
|
||||
break;
|
||||
}
|
||||
sands.insert(sand);
|
||||
sand = sand_spawn;
|
||||
spawns += 1;
|
||||
}
|
||||
|
||||
if sand.1 == max_height {
|
||||
println!("Sand reached void");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
spawns
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let lines = read_file("day14.txt");
|
||||
let mut rock_lines = vec![];
|
||||
|
||||
for x in lines {
|
||||
x.split_whitespace().filter(|s| !(s == &"->")).map(|s| {
|
||||
let mut split = s.split(',');
|
||||
let x = split.next().unwrap().parse().unwrap();
|
||||
let y = split.next().unwrap().parse().unwrap();
|
||||
Pos(x, y)
|
||||
}).collect::<Vec<_>>().windows(2).map(|pos| Line(pos[0], pos[1])).collect::<Vec<_>>().iter().for_each(|line| rock_lines.push(*line));
|
||||
}
|
||||
|
||||
|
||||
let max_height = rock_lines.iter().flat_map(|line| [line.0.1, line.1.1]).max().unwrap() + 1;
|
||||
println!("Everything above {max_height} is void");
|
||||
|
||||
let task1 = do_simulation(&rock_lines, max_height);
|
||||
println!("Task1: Got {task1} spawns");
|
||||
|
||||
rock_lines.push(Line(Pos(i32::MIN, max_height + 1), Pos(i32::MAX, max_height + 1)));
|
||||
|
||||
let task2 = do_simulation(&rock_lines, i32::MAX);
|
||||
println!("Task2: Got {task2} spawns");
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user