From 51473b135259574f22da4f8cdf4ce815d80df34d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobos=20=C3=81d=C3=A1m?= Date: Sat, 17 Dec 2022 23:59:47 +0100 Subject: [PATCH] Day13 --- day13/input.txt | 450 ++++++++++++++++++++++++++++++++++++++++++++++++ day13/order | Bin 0 -> 16400 bytes day13/order.c | 245 ++++++++++++++++++++++++++ 3 files changed, 695 insertions(+) create mode 100644 day13/input.txt create mode 100755 day13/order create mode 100644 day13/order.c diff --git a/day13/input.txt b/day13/input.txt new file mode 100644 index 0000000..4b8be08 --- /dev/null +++ b/day13/input.txt @@ -0,0 +1,450 @@ +[[9,1],[[[8],2,5],10,5],[[],[[0,10,2,10,2],[6]],5],[[10,[]],[],[[5,1,3,10],5],[[],[],[10,0]]],[[4,3],[[],[],[2,8,0,6]],4,[[8,1,7,1],1,[2,9,0],4,4]]] +[[5],[10,[[4,9,6,5,0],1,5,[],[]],[9],7,[]],[0,[[4,3,7,8],[0,1,2,5]]],[[[],[8,7,8,4,1],4,9,1],[[0,8,1],6,[0,7,1,1]],6,7,9]] + +[[1,[[],3,[2,7,7,5]],[10,[7,7,7,1]],[[9],4,4,7],[[7],1]],[],[5,10,7],[[0,[],[]]],[]] +[[2,2],[[0,[9,5,0,6],10,[],[8,1,6,6,0]],0,[[],[],[7,3,1,8,1]],10,1]] + +[[[2,7,7,[9,0,0]]],[[[1,6,0,1]],[[9,0,3,9,9],10],1,10,9],[[[3],2,[0,3,4],[],[7,4]],10,[8],9,6],[[5,2,6,4,[10,8]],[[0,5,9,10],[9,5],[10,3,4,0],0]],[]] +[[[],10,3,1,[[]]],[9,10],[],[[],3,10,5],[[[],4,3,0],[[],8,9,5,3],[],6]] + +[[[8,[],8,3,8],7,[]],[8,0],[7,3]] +[[],[[0,10],[[5],[10,2,2]]],[[6,[6,5,0,7],[],[]],10,5],[[1,[10,4,4]],5,7,5,7]] + +[9,9,7,10] +[9,9,7,10,0] + +[[0,[3,0]],[0,7,4,10]] +[[[[],[],3,[2]]],[]] + +[[],[10,1,[7,8,[10,7,0,8]],[],[0,[1,5,7,6],8,[5]]],[10]] +[[],[],[[[],9,[],9,[2]],[[10,8,1,6],[7,8],[8,2,5,6,9],[]],[],[9,6,2],[[0,4,7],[],3,8,[10,1,0,6,4]]]] + +[[6,1],[[],[3,[8,7,5,4,1]],[[9,10,6],[2,1],[4,10,5]],[[2],[8,1,4],3]],[5],[1,[1,7]]] +[[2],[[4],5,9,10],[3,7,9],[]] + +[[2,8,[4,[10],3],[],[2]],[0,[[3,0],[5,10,10]],[[10,1],[10,6,5,9,3]]],[],[],[[]]] +[[[10],[[],6,1,7]],[],[[[7],[3,10,8,7]]]] + +[[[1,[],[0]],0,[[6,1,10],[4,4,6],3,[0,5,2],5],6]] +[[],[],[[[],4,[],0,[8,7]],7,5],[[8,[],1,1]],[3,7,[],[[6,2,0],9,[0,3],10,4]]] + +[[[[9,5,5,1,2],1],9],[[[],3,4],[6,8,[4,3,3,10],[]],4],[[],1],[4]] +[[[[8,10,9,1,9],[],8],[[4,9,10],3],4],[0,9,6,[[9]]],[[[],[3],[],4],9]] + +[[7,[[9,8,7,6,10]]],[[[7],[4,9,6,1],[7,2,1],3],8],[[9,[4,4,10,3,1]],[6,0,8,2]],[[[9,7,7,9,6],10,[1,4,0,4,9],[7,3,4],[9,9,8,3]]],[10,[[2],[4,2],[3],6,3]]] +[[[[0,6,6,9],[1],[8,3,5,3,7],[1,4,2,0]],[],[[10],[1],[7,5,5,10],[5,2,8],[0]],[6],[1,5,[],[5,2,7,6]]],[[[4,7,9,9,3],[7,4,5]],3,5],[[9,4,1,[5,1]]],[[4]],[10,[]]] + +[[],[[5,[4,7,9,5]],[6,4]]] +[[[[7,1,7,3,2]],2,0,[[6,10]],[3]],[[],[8,[],[3]],[6,[],0,8,[10,5]]],[],[6,9,[[8,3,2,1],6]],[[3],[5,[]],[[0,4,7,0],0],[[1,2,7],[0,3],[10,6,0,5,5],[],4]]] + +[[[],[0,[10,1,0]],[0,[5,5,3,5,4],8,[],[2,9,10,0]],[3,4,3],[[10,3],[7,6,5,3],[2]]],[10]] +[[4,[0,6,1,[],[7,8,7,5]],[9]]] + +[[3,8,10,7],[[6,7],[[2,7,9,4,9]],0,[],4],[[],[[2],0,4]]] +[[0,[[5,6,9,8],2],2,10,[2]]] + +[[3,9,[[],[3]],[[]],5],[],[[[3,5,1]],9,3]] +[[6,1,[]],[[9,9],8,6,[6]],[[],3,4,[2]],[],[3,[],[3,[5,9,8,5,9],5,[]]]] + +[[3,[10,[8,3],8,2],[10],[5,4,[5,2,0,6,5],[],[8,10]]],[5,6,6,[]],[]] +[[],[],[[10,1,7,6,3],[[7,1,10,10],7,5,[]],[[],10,[5,2,7],6,[0,0,1]],4,9],[[[6,10,8,4],8,[3,0,5],10,3]],[]] + +[[0,[],9,[3]]] +[[],[1,[],3],[[8,5],[1,[5,2,4],[4,9,4]],7,[9,[10,7,6,4,6],6,[9,2,1,3],3],5],[[8,[1,7]],6,8,[[4,3],8]]] + +[[],[7],[6,10,[]],[],[[[1,4,7,2],6]]] +[[[],4],[[6,[4,5,4,5,8]],[[3,4],9,7],6,6],[7]] + +[[[]],[[5,[]],2,[8,6],[3,[3,0,1,9,5]],[[9,9]]],[[8,[]],[5],[1],[[],[0,1,1],9,[8,2,7,6]]],[[[],9],[4,[7,5],[7,5]]]] +[[[[8,7,4,0],5,[]],[10,10],5,9]] + +[[[[10,1,5,7,10],10,[],[1,7]],8,10],[[10,[9,6,10,9]],8,4,[[2,1,0],0],[6,7,8,[6,8],10]],[[],[[],[1,2,1],8],7,[[3,0,2,7,9],9],[5]],[5,[1,1,[]]]] +[[[[8],0,8,[]]],[[7],[[6],6,[9,0,6],[1,2,1,0],2]],[[],2,5,4,[1,[3,8],[5],7]],[[[0,1]],[5,[9,9,7,2,8],4],9],[0,3]] + +[[[[0,9],8,[]],2],[],[[[1,2,5,1,4]]],[[[1,7,5,2],4]],[[],9,3]] +[[[],8,[]],[9,8],[3,6,[]],[10,0,4,5]] + +[[],[9],[4],[[1,7,2]]] +[[2,1],[[]]] + +[[],[],[[8,5,[1,7,2,5],[1,5,9,2],[2,6]],0,[],9,0],[5,[],[9,[0,2,6,0],[8,3,9,0],[2,4,7],[7,2,10]],6],[3,[[7,1,0,5,0],9,[9],[0,10,8]],[]]] +[[[0],[[4,9,5,2],[10,8],8],10,[[3,1],3,[8,10,3,2]],[4]],[]] + +[[[[],4,10,5]],[],[[[5,10],6],3,10],[7,0,8,9,[[2,9,6],9]],[10,7,[2,6,10,3]]] +[[[3,3,[2,7,0,10],[9,10,2,7,10],[5,2,7,7,0]],1,5,[[0,5,3,2,7],5,[3,3],[2],10]],[10,[[9,3,0],[1,9,7,4,3],[8,4],[]],8],[[7,8,8,[],2],10,[[0,9],9,5,[7,7,5,4]],1,6]] + +[[10,[4]]] +[[1,10],[[[5,5],[],2],2,[],1]] + +[[],[[]],[],[5],[0,[],[6,[9,10,2,8,7],[4,7,1]],7]] +[[8],[6,[[4],[7,0],0,10],5],[[[4,10,9],9]],[10,3,[[6,1,5,8,2]]],[[10,2,0],[[5,2,10,6],[],[8,9,6,6],[],[9]]]] + +[[9],[[10,[8,4,4,8,10],5],[6],[[5],8,6],4,[[0,6,4]]],[10,2,0],[[[2,5],[1,9,1,1,7],0,[3,4,0,7,7]],5,[],[],0]] +[[[[],[3,8,7,8]],10,9,3],[[],0,[[7,10,10],1,[0,2],2,[1,7,0]],[[2,0,7,4,8],10,[9,4,2,0],[]],8],[[7,[2,2,8]],[[10,4,7,3]],[[8],3,[3]]],[],[[10,[9,6],6,[8,0,10,5]],[[9,10],10]]] + +[[[[2]],6,[[2,4],[]],4],[[1,10],[[1,1,7,8],4,[1,4,4],[7,6,8,6],[9,10,7,2]],[2,6,[0,9,2]],[]],[[[1,9,9,3,5]],[],[[2,4],3],[[0,10],8,[9,6],[0,3,4]]],[[[8],[9,1,5,9],3,1,7],[2,[2,0,8],[3,4,9,5,5],[],7]]] +[[[0,[0],3,[8,8,7]],2,9,8,5],[],[[5,4],[3,[4,4,6,4,2],1],0],[[10,5,[2,9]],2]] + +[[5,1,5,8],[[5,9,4,0]]] +[[9,8,[5,2,6,[2,4,8,10,1]],10],[6],[[[7,8,2,2,9],9,7],[10,0,0,[],6],[[],3,8,[],[8]],[[3,6],4,3,[]]],[8,10,8,7],[[5],9]] + +[] +[[9,5],[5,5,[[3,7,1,6,10]]],[[2,9,[],10]],[3,[4,[3],[0,8]],2],[[1,[7,6,5]],10,[1,[8,0,2,6,7],[4,3],[9,7,10,3],7]]] + +[[[[4]]],[9,7],[]] +[[4,1,3,8,[5,[2,5,9,7,9]]],[[1,[0,7,4],[],[6,3,8,1,3]],[8,[8,3,5],9,[7,0,6,10]],7,[[8],10,[5,4,10]]]] + +[[[1,[]],9,8,0],[1,[[5,9,10]]],[[[4,6,2,2],[],2],10,4,[6,[],10]]] +[[[5,[9,4,3,0,3]],6],[[3,10,10,[0,5,6,6,9],7],[4,[],10,[1,9,6,7],[9,6,4,2,0]],[3],10,9],[[],[2,[6,7,8,5]]]] + +[[[],[[7,4,2],[10],[2,10,6],5],9],[],[[[1,10,2,9]],[],8,[[6,0,8],[10,0,2,9],0,9]],[[6,0,1,[0],8],[1,[10,3],[2,3,5,10],[5,4,4,6,8],[]],[[9,1,10,10],10,[8,3,9],2,5]],[]] +[[8,9,7,[[10,3,2],[8,0,7],9,3],5]] + +[[],[],[1,9,0,9,8]] +[[10]] + +[[[7,[9,9],8,10],[[],[9,9,7,8]]],[[4,[5,10,4,7]]],[]] +[[],[[3,4,[3,7,5],2,[0,8,5,8]],[6,[6,6]],[3,2,[],[1,7]]]] + +[[5,2],[2],[[[7,8],[],[3,5,8],[10]],5],[8,[9,9,3],7,3,[4]],[[],[5,[9],[5,10,10,4],[4,6,3],8],[[9,9,10,3],4,10,[0]]]] +[[0,3,5,[[7,5,3,6,10],3,2]],[],[[10,[5,8,4],8,8,1],[9,5],2,[],[[8,9,0,7],[3,6]]],[3,2,4],[4,5,[[4,0,2],[1],[3],[6,0]]]] + +[[6,9,0,3],[],[],[4,[[0,3,8,6,9]]],[2,7,[],[[4,6,9,4],[4,10,8,7,0],[3,5],[6,10,5]],[3,1,[]]]] +[[],[],[[[7,6,8],[6,8,1],[9],[3],8]]] + +[[8,[1,4,[5,1,4,8],3,6],[10,[8,2,5,1],10],[0,6,[9,10,6,3,4],[8,6]],7],[1],[]] +[[6,6],[0],[],[1,3,[[7,9],1,6],10,[[8,3,5],[10,7,5,8,10],[10],10,[]]],[5,[[]],6,0]] + +[[[10,8],[[2,9,4]]],[[4,2,[7,4,6,7,7],[0,6,7,7],10]],[[2,[7,9],[2,2,0]]]] +[[1]] + +[[[7,2],8,[[2],4,5,[0],8]],[]] +[[3,6],[[[2],[6,10,1,5,3],[3,3],9],1,9,0,5],[[8,[4,8,6,9],[9,7],[7,8],[3,7]],10,6],[],[[[5,0],[7,1],[5,4]],5,6,6,[5,3,[2],[10,8,5]]]] + +[[[[8,2,4,4]],[],[[8,10,9,3],6,8,[3,9,4,5]],[[],8],[7,[]]],[9,8]] +[[[],[[9,0]],6],[9,[[0,5],8,[6,7,3,6]],[],[[9,4,5,8,10],10,4,[10],5],8]] + +[[],[[[],4,[3,9,8],[4,10,7,1]],[],7,3,[2,[8,3],8,7,[6,4,0,6,2]]],[[9,[0,10,0,5,0]],[],[2]]] +[[10,[10,10,0,[0,8,7]],5,5,[[7,4,1,5],[4,2,8,1]]]] + +[[],[[[2,2,5],9,1],[2,[4,4],[],5],5,10,[]],[0],[[6,[5],[3],3]],[7,5,5,3]] +[[[9,[0,9,3],[7,1,9,8],7],[6,0,[1]],10],[3,1],[],[[],[],[],3,[[6,6,9,3,7],[6,4]]]] + +[[[[6,2],10,8]],[[[0,7,8,4],[],7,4],0,3,3,[2,1]],[[6,[5,2],[8,1,7,3]],2,[[9,4,8],[7,0],[],10],8]] +[[],[1,[],[[4,8],1,7,[0,1,3,4,8],4]]] + +[[[[5,7,9],0,[9,7,5]],6,7,[4,9],5],[[0,[7,7,4,0,0],1,5,9]]] +[[4,[7,[10,6],7,10,[]]],[],[[[8],7,[0],7],9,[[1,1,4],[2,10,7]]],[[[9,10,7,2],1,4,6,9],[8]]] + +[[3,5]] +[[],[[7],4,9],[[7,[2,10,9],6,8],3,9,[]]] + +[[[8,5],[[3,7,7,0],10]],[[],[[],[2,9,0,4]],[[8,3,10,7,1],[]],3]] +[[],[10,6,0,[],6],[[],[5,6,[1,2]],[9],10,[[9,7,6,4],6,6]],[]] + +[[10,[9,10,[],[3,5,4,9,5]],7,9,[4,[0,10]]],[[0,[6,2,4,4,2],9,[7,9,4]],[10,[],[8],8]]] +[[4,0,6,6],[1,6,[[2,5,7]],[]],[]] + +[[[[0,5,0,9,4]],6,[0],5,4],[[10,[3,10,4,8]],[0,7,1,10,[3,10,8,5]],7,10,4]] +[[9,[9],4,[5]],[],[9,[0],9,[[1,3,0,7,10],[3,0,6,2]]]] + +[[[2,[7,6,7,6,0]],[1,[7,2,1,4,9],[7,2],3,[5,6,2]]]] +[[],[[6,[0,8,1,6,0],[4]],0,2,[[0,1],10,[1],2]]] + +[[[[2,5,4]],[],4,0],[6,[9,[8,4,9,3],9,4,[2]],[4,[10]],[[5,2,2,1],9,7],[5,[8],[10,8,6,2]]],[8,4,[],[10,0,2],0],[10,5]] +[[],[3],[],[8,4,[[1,10],2,2,[7,4,9]],7]] + +[[[],10,10,5,[[7],6]],[[3,[4,6,9,3,2],[10]]],[9,7,[5,10,[2,3,7,3,0],[]],9,[2,2,[6,9,7,0]]],[[0],5,3,[[8,3,10,1]],[[9],[8,10,8,1,6],[9,5,1,10,2]]]] +[[9,[],9]] + +[[3],[[[0]]],[],[]] +[[],[],[3,[]],[[2],[8,[6,5],10],[[0,5,4],1],5]] + +[[[5,1,8],1,0],[[]],[[8,[2,5,9,3,5],[8,9,5,9,9]],8,[[4,6,5,9]],0]] +[[8,[5,6]],[5,10,1,[10,3,8,10,[0,2]],[1,0]]] + +[[[3,1,7,[3,2,2,9,1],4],0,3,[[],[],10,[],9]],[[[6,5,3,6,8],1],[[]],3],[6,4],[[9,7,[6,3],6],9],[[[4,2,2],8,[8,1,7],[6,6]],[10],[[4,10,9,10,1],0,[],[9]],4]] +[[4,7,6],[[[9,9,5],[2,4],10,2],[6,[0,9,0]],8,4,2]] + +[[[7],[[9,5],0,1],7],[[3,3,4,[],[3,2,10]]],[],[4,6,4,[],[[4,6,1],[4,7],[0,9,10,10],8,0]],[[],3,1,3,[6,[3],0,[5,1,5,3,0],5]]] +[[1,[[],[9,4,6,1]],[[],[10]]],[8,[1],[[7],6,[9,10,6,0,5],[1]],3]] + +[[0,[],10,[],[]],[[[4,4,1,8]],7,8],[5]] +[[1,[]]] + +[[[[10,8,8],9,8],[0,6],9,[[4,6,1,7],[4,3],[10],4],3]] +[[[2,[10,7,10,10,8]],5,3],[9,4],[[[2,1],2],[3,0,[7],0,[5]]]] + +[[[],[6,[]],[[4,2],[0,4]],5],[]] +[[[7,[0,2,0],6,5,[]],[[10],0,[5,4]],[9,5,[9,2,4],3]]] + +[[[8],7,4,2],[],[10],[4,[[6,7,4],2,3,[6,1,0]],4,[1]]] +[[[[7,4,5,5,1],[9,1],[0]],[6,[8,2,3,0]],[2]],[7,[5],[8],[]],[9,[6,[8,4,2,2],1],4],[8,[[],[0]]],[[],3,8,9]] + +[[8,0,[[0,7,9]],0,[7]]] +[[[[]],[]]] + +[[4]] +[[6,[1,0,10],1,[[10,3,1,2],[4,6,5,7],5],[1,1,[3,1,8],6]],[2,1],[5,10,[1,[3,0,8],6]],[[0,9,[9]],4,[[]],7,[1,[7,4]]],[]] + +[[[[8,6],[6,2],[8],1]],[10,10,[[2,5],6,[4],[1,7,2,9],10],1,7],[],[[[10,7,5],5],[2,8,9],[[1,4,9]]],[[[9,10,6,2,4],1,8,[9,7,2,0],[]],10,5,5]] +[[]] + +[[1,[[1],[],[8]],[[6,1,6,7,5],1,4],10],[[7],[],3,[10,7],0]] +[[[]],[[[9]],[0],10,6],[[7]]] + +[[1,[[1,6,10,1,4],3,2,[8,7,9],[6,5,0,4]],[[],2,[10,1]],[[],[9,2,7],[],0,5]],[[6,[9],[],6,[9,10,2]]],[4,3,[[2,1,3,7],4,3,[3],4],9,[3,9,[2,8],1]]] +[[0,[[6,2]],[2,2],[[]]],[],[],[[[3,4],5,7,10]],[5,3]] + +[[[[8,2,0,1],[10],6],2,7,10],[[[]],10,1],[8,7,1,0],[[[2,9,2,8],[3,3,0,6],[2,0,2],[],0],1,[9,[4],5,[1,6,1]]],[[7],[[8],[7,4],[2],4],3,[[10,6,5,3],9]]] +[[9,8,[[],[9,0]],1],[9,8,8,10,7],[10,[8,0,[10,6,3],[6,3,0,4,8]],10,0]] + +[[[],1,[],[[9,9],0,[0,2]],4],[5,0],[4,[],7,7,0],[],[[4]]] +[[[[]],4,8,6,8],[9,[[10]],[[2,8,6],[9,0,2,8,4]],10,[1,[3,10,8]]],[[[]]]] + +[[5,6,5,4,6]] +[[[9,8,5,3,7],2,[[0,4],[10,2,5,10,1]],0],[[]],[6,[7,[1,5,10],[3],[6,1],[3,10]]]] + +[[[[3,3]],[],[6,5,[0]],[[8,7,9],[2],[1,5,2,5],[6,7,4,4],9],[9,[5,7,4,7,1],7,[10],4]]] +[[[7,[5]],6,[[7,9]]],[[[8,2],[1,7,4,2],[8,8,8],[1,9,3,5,8]],7,3,9,[2,2,6]]] + +[[],[[],2,[[1],[3,9,0],2,8],[[8,9],[1,2,3,1],[]]],[[9,[],[],[9],[5,1,3,6]],3,[1,[],[],[4,7,9,10],[10,5,5,8]],[0,[]]],[[0,5,4,7,[10,4,10,6,4]],[[4,8],0,7,10]]] +[[[[],7,[],8],2,7],[10,2,[[10,8,0,7,3],8],0],[8,8],[8]] + +[[5,10]] +[[10,[[9,1,1],0],[[3,1],1],[2,4,[4,0]],4],[9,[[0],4,3],10],[[[6,3,7],4,[],9]],[6,[[]],[]]] + +[[[[10,9,7,10,4],6,0],5,[[5,3,5,1,9],0,[3,7,10,7,5]]],[],[],[1,10],[]] +[[[[7,8],5,[8]],[[0,0],[9,7,6,6],[6,9],2],0],[7,[4,9,[0,2,2],[10]],[],9,10],[[],[[]],[2,8,6,8,1],[4,9,[0],10,7],[4]]] + +[[[[]],[[0,0,2,5]],[],5],[],[10]] +[[[[7,7,6,6,3],3,4,6,[3,8,10]],4,[[9,1,9,4],9,[2,6,4,1,0],9,1]]] + +[[[],[8,6,8]],[9,[9,[4,8,3,4,7],9,10,10],[[3,10,5],[10,1]],[]],[],[[1,[1,3,0,6,10],[2,0,10,4,3]]]] +[[10,[3],10,[[2,3,6,7,6],2,4],5],[6,[]]] + +[[[]]] +[[9],[1,[[6,9,7,6,5],[6],[2,3,3,3],10]]] + +[[[2,2],2],[4],[9,1,4,[[3,9],10],0]] +[[],[[4]],[[5,[7,3,2],0,[5,5,1,8,1]],3],[4,[3,[6,3],[],[9,0],[0,4,2,10,6]]],[[9,0,[3,3,9,6]],[[2,3,3,1],[10],5,4],[2,[],1,5,3]]] + +[[[[7,1,3],[0],3,[5,6,6,8],6],4,2,7,[[],[3,3,4],[9,2],[7]]],[],[7,9,[9,[6,8,7]],[[7,2],[1],8,6,[7,9]]],[],[[1],7,4]] +[[],[[9,3,8],4,0,10],[[[3,3,5],[5,3,3,6],[5,3,7]],9,8,[9,4,[],2,[0,3,8,0]],[[6,9],[1,8],4,[2,3,9,2]]],[],[[10,[7,6,6,1],[],6],[1],[10,[4,8,3,1,2]],[[7,9],8],0]] + +[[9,[[2,10]],[[4,8],[],4,8,[0]]],[],[[[1,3,9],[7],[9,4,9]],7,5,8],[[[1,2,3],7],5]] +[[1],[[],[[8,8]]],[2,3,10,[[1,3,5,8],[0,5,5,7],4],4],[2,5,6]] + +[[3,0],[10,8,[10],[[4,7,3,2],[2]],7],[[[8],3],3],[2,[7,[10],6],[],8,[2]],[[8,8,6,9,[8,2]],3,[[6,2,7,4,1],[1,7],[4,0,1],[5,4]],6]] +[[5,3],[[],2,[2,[5,9],[3,4,5,0,10],[0,2,6,0,5],[5,1,5]],5]] + +[[3,1,[7,8,[7,3],6],[],[[10,0,6],3,[6,0,8,4,5]]],[],[[[],6,[6,5,4,8,2],[]],[],[6,[3],9,2]],[0,10,7,[[],5,[10,2,0,7,2],[]]],[4,[1,8,[2],[1]],8,1]] +[[],[[],[[3,7]],6,[[9,10]]],[[6,[0,2,9],8,[7,7,2,4],[]],10,6,0,[1,[],3,6,[6,1,2]]],[[[],[10,8,6,2,6]],[4,[],[5,5,5,9],7]]] + +[[[],6],[[[3,4,5,8],[9,3,3],8,[],[8,5,10,0]]],[[4,9,[7,2,0]],[1,[9]],[]]] +[[7,[[3,0,0,1],8,9,7,[3,9,8,5,1]]],[[[4],4,4,7,7],0]] + +[[8,[]],[4,[[1,5,6,10,10]]]] +[[2,4,[[],9],[[9],8,[9]],[6,[6,2,9,10,6],4,3]]] + +[[9,0,8],[[5,9],6,[[2,2,4,4],1,[0,3,1,10,5],[4,8,7,0,6],5],[],9],[5,[10],0,4],[[],1,8,9,[[],[0,8,2],[0,10,7],0,[4,3]]]] +[[8,[3,1],[],[[2],[10],8,8,[8,3,1,8,5]],[10,[3,3,6]]],[],[[8,[6],[3,3],4],9],[4,2,8,4],[[5,[9,4],[6,7,6,7,4]],0,[0,[],[9],10,[5,4,10,9]],[[],9,5]]] + +[[[[4,8],10,[8],[2,1]],[[8,3,0,6],[5,6,6,0],6,[1,1,2,6],[0]],10,8,6],[5,[7,[],[4,1]],4,[4]],[9,[3,[5,4,1],[0,1,9,10]],2,[[2,0,2],[]]]] +[[],[10,[10,[10,7,8,2,1],7,[9,6],6],8],[[6,0,1],[8,[0,4,0],[],[2],[9,9]]],[],[3]] + +[[],[[[]],8,7,[[10,3,2],2]],[1,[0,6,[1,4,1,4]],5,[6,[8,0],[4,4,2,5,5]],1],[2,[[8,7],3],0,3,[6,[],[]]],[6,[3,2,0,10,[7,1,8,3,10]],[],9,[4,9,[5,3],5]]] +[[2,5,9],[],[]] + +[[],[6]] +[[],[[4,8]],[1,6],[10,1,[[3,10,0]]],[]] + +[[5,3,[5],[9,[8,7,2]],[[10],[9,3,0,4,6]]],[[],9,9,9],[[[],8,1],7,[[],[1,7,1,3],10,8,[9,5,9,5,0]],3,4],[2],[[[6,4,10],4,7],4,9,[[3,9,1,1],[],[8,3,9],[3,9,1,10],[8,0,6,4]]]] +[[[[7,7,9,6],2,4]],[[[4,10,2,8],10,9,3],0],[1,[],3]] + +[[],[],[],[[[5,5],[],[]],[[9,6,10,4],7]]] +[[0,4,8,7,[5,[4,3,7],[7,1,9,5],10]],[],[[9]],[[1,[7],[10,1],[2,10,5,3],[6,6,7,8,3]],[7],[8,0,8,3],6],[2,[[7,6,4,10,2],[2],5],[9,[1,2,3,5],4,[]]]] + +[[],[[3],[6,6,[6,2,3,5],4],[6,0],1]] +[[[1],0],[],[[],[10,0],5],[2,3],[[6],4]] + +[[6,2,[9,4,1,[0,4,2]]],[8],[[6]],[6,[[2,3,7,0],[10],[]],[2,7],1,8]] +[[],[6,[[5,8,4,0,3],1,[9,1,4,3],0,[3,5,9,8]],[[],5,[10,0,4,7],[3,10,2,6],[7,4]],9,[]],[[[1]],10,[[4],[5,2,3,5]],[10,9]]] + +[[9,6,[]],[5,[[5,4],[10,2,2,6,10]],[10,[7,10,8,2],[2,6,0,2],7,[9,1,7]],[[5,9],7,[0,4,2,2],0]],[[0,[10,5,4,5,6],[6],[9]],[[5,1,8,8],[9,2,5,4,0],[]]],[[],[[8,8,8,9],7,[3,6,8,3,1],[8],7]]] +[[[[3,7],[9],7],6],[[6,[6],[9,1,0,3],[8,5,3,6],4],[8,0,7,2]],[[4,[]],7],[],[9,6]] + +[[[[7],[],4,[1,0,3,9]],[[1,9,3,8,5],[1,4,6],0]],[[],0],[[6,[10,1,4,10],3,0,0],10]] +[[1,3,9,[10,[10,10,1,3,7]],6],[[[7,4],8,8]],[[8,[10],[7,0,0,9],[0,3],3],[0,5,[2],1],[[3,8,1],10]],[[[3,1,2],6,5,[0,9,7,1,7],10],[[6,6,8,2,2],[10]],[],9,3]] + +[[4,4]] +[[9,[0,8]],[[0,[],0],[0,7],10],[]] + +[[2,[3,[9,8,10,7,3],6,[],[4,0,5]],0,5,9],[],[0,2],[[[10,5,7,7,10]],3],[4]] +[[5,4,9,1],[[[8,0,2,8,0],10,4,8,[3,6]],[],[[4,0,6]]],[1,[0,[6],[5,2,2,2,8],4,2]],[[6,[2,8,10,0],7,9,10],[[5,0],[]]]] + +[[],[],[6,4,[[6],7,[6],[9,1]],[[3,6,7,1],4,[],[8],8]],[[[5,8,6,7,9],10,[7,10,10]],3]] +[[],[10,3,[2,[8,0,7],3,[6,3,2,6,7],9]],[1,[[1,10],[],[],6]],[],[[8,[6],9,[]],[[3,10,4,2,4],3,[4,4,4,10,10],4,[]],[4,4,[0,10,6,3],1],9,[6]]] + +[[[],8],[[5,10,[10,1,9],9]]] +[[9,[[0,8,2]],[9,9,2,[],[8,3,5,9]]]] + +[[[1,[8]]]] +[[],[4]] + +[[8,5,6,[3],3],[8,0,[]],[[[2,9,4,3]],[[10,2,3,9,0],[3,2,1],4],10],[[10,[5,5,1],[3],0],0,[3,8]],[[3,6]]] +[[2,[[6,3,7,10,7],[4]],[[6,0],[5],3],8],[6,7,[[4,0,7],5,[10,2,8,8],[10,6,9,8]],[3,[5,7,9,1]],6],[3,[[4,6,10],1,[]],[10,[3,10,6,9,6]],[8,10,9],[4,[5,10,9]]],[[7]]] + +[3,2,1,2,7] +[3,2,1,2] + +[[[3,[],[],3],5,1,6]] +[[[0,4,0,[7,8,0],10],[[2],8],[[9],2,1]],[[[],[1,3,5,10],5,[6]],[1],[9,10],[[4,3,8],[0,4,5,8],[4],7],4],[7,[[5,2],[1,4,8]],5,[2]],[[[10,7,8],[],[]],0,4,[2,[1,5,10],9,[4,1],7]]] + +[[[10,[],9],[[]],[0,7,5,0,[]],3,1]] +[[[[9,7,3,7,8]],6,3,[]],[[[],6,[8,9,6,0,7],[],[2,4]],2,[5,3,[2],[8,9,8],5],4],[],[]] + +[[5,[]],[[[9]],5,4],[8,6,[5,[0],6,7]],[[[8,3,5],[3],9],0,[4,[3,7]],9],[[7,0],[[9,7,8],[2,8,6],2,[],[9,3,1]]]] +[[1,3,[3,4,[1,7,3,6],5],[8]],[[9,0],[]],[4,4,[3,[2,2,5],[5]],[10],[[3]]],[],[[[],[5],2,6,7],[[2,2],[8,4]],8,8]] + +[[],[2],[[[0,6,4,1],0],7],[5,[[2,8]]]] +[[5,3,[]],[6,9,[5],1,0],[0,0],[2],[9,0,[],0,3]] + +[[],[],[[[4,4,2,3,1],[7,1],[5,2,2,4,0]],5,[3],10],[[10,[9,6,5,2,7],10,[],[1,8,1]],8],[[[9,2,10],[4,5,7,8,10],[5,9,4,4],[3,2,8,4,7]],1,6,9,[[0,4,9,10],[9,3,3,8,10],10,[],5]]] +[[[[7],[6],4,5],[4],[[9,1,2],5,10,[9,9]],[1,9]]] + +[[[2,[],[],[9,3]],[3,3,0,0],[[2,10,2,4,1],[9,4,2,7,9]]],[[[7],10],[9,5],6,5],[[4],4],[],[4]] +[[9,[9],4,9,[2]],[[[3,5,8,5],[],[6,3,1,9]]],[[],7,[],7]] + +[[[7],7],[],[4,[[],5,4,3,9],6,[[5,0,8],1],[3,[4,6,0,1,10],7]],[]] +[[[7]]] + +[[[],7,[[8,9],5,[6,1,7,7,4],0,2]],[[3,8],[[5,9,2,0],[6,0,8,8,4],9],10,6,[[5,10]]]] +[[[],[],2,5,[]],[0,[[8]],[4,3,10,[6,0]],[],10],[[1,1,9,3,[7,6,4,2,8]]],[10,[[8,2]],[],3,[9,[]]]] + +[[],[],[[[10,7],6,[5,3,6,5]],4,[6,9,10],5]] +[[[[9,4,7],2,7,3]],[[[4,6,10,6,5]],0],[5],[6,[],0,1],[4]] + +[[9,6],[[[9,6,6,2],6],5,4,7],[2,[],[]],[[],7,7,[[3],[0,3,8]],0],[[[0,0,9],5],[6,[2,1],[],7,9],[[6,4,4,4],5,9],0]] +[[[10],5,7,1],[7],[7,7,9,4]] + +[[7,1,[8,2,[4],[]]],[[[10,3,8,4,2],0,[6,10,0,3],[9,8],[4,4,6,3]],[[],5,3,2]],[[[5,5]],2],[]] +[[[[8,2,1,6,5],7,6,0,2],[7],[[3,3,6,3,3],[7,10,5],5,[3,0,2,8],2],[[],1,9,[7,3],[2,1]]],[],[[5],[10,5,0,[]],[5,[6],[],1]],[]] + +[[[[4,1,1]],[0,1,4],5,[[3,1,10],[7,4,8,8],[]]],[],[]] +[[[[6,4,1,5,1],[2],3,7],5],[[6,3,2],[]]] + +[[7,2],[],[9,[[0,0],2,7],[3]],[3,[[8],9,4],[10,[],[9,3,8]],[]],[[]]] +[[[]],[0],[]] + +[[[]],[3],[],[[[7,5,3,0],[7,1,8],0,[3]],[10,[6,7],[5,9,8,1,1],6],[2,0,[10,7,10]]]] +[[10,8,[4,[3,1,9,9],1,[1]]]] + +[[[[]],7,3,[]]] +[[5,[6,1,0,0],[[1,4]],3,[[5],0]],[1],[[[7,10,1,10,1],1,10],4,3,5],[[[1],8,[5,1,9,0,4]],[[],[9],[0,1,2],[8,5,8,0,1]]]] + +[[[[5],[],[0,3,8,10]],[3],[],[[8,3,1],7,0],[]],[[3,2,6],[],8,[[3,4,4,5],[],[7],[],8]],[[1,5,[1]],7]] +[[1,[[0,7,4,7,5]],[],2,4],[[9,0,[0,9,6,6,10],[0,7,7]],5]] + +[[[7,10,1,2],[3,[5,1,8,10],[0],0]],[5,[0,6],[[2,5,5,1,1],[5,1,5,5,2],8],[4,[]],[[4,4,8,6,6],[8,9,0],[2]]],[3,[9,[10],[4,2],[10,1,2,6]]],[[7,[5,3],[10],2],[[5,9,10],[8,2],0,[7]],5,6,2]] +[[7,[7,2,1,[6,5],[10,0,3]],[[3,10,0,3]],0,[9]],[[]],[],[2,[[3,5,6,0]],0,3,[9,[9,0,5,1],[1,3,5,5],6,[5,9,1,6,1]]],[8,[[2,2],[2,4,8,0],[2],3],[7,2,2],[2,1,10,[3,0,9,8,3],2]]] + +[[3,1],[5,7,[4,[],8,9]]] +[[[[],4,5,3,[5,5,0,7,4]],[[5],1,[],1]],[2,2]] + +[[10,[[4,2,7,9],1,[0,4,9,7]],3,[[8,5]],2]] +[[1,0]] + +[[[[7]],7,6,6,9]] +[[[1,0,[8,5,6],9],4,10,8,[4,9]],[9,[[7,1,6,1,6],9,[9,2],[],10]],[[[9],0],7,4,[[4,1,3],[8],2,[6,0,5,8,0],[2,4]],[2,3,[]]]] + +[[[[3],[10,10,9,6,2]]],[[5,[5,4,8,8],[8,9],[4,3,6]],[],4,9,[[],[7,10],[6,9,1,4,9],[],[5,2,2]]],[5,[],[2,9,3,[9],10],7,[5,[2,2,1,8]]],[7,9,2],[[3,8,[],[9,0,1,7],7],[7],[],5]] +[[[],[],0,[[],3,[],4],[8,[6,10,7],1,5]],[[[8],10],5,[10]],[]] + +[[1,7,[4,[6,3,0,3],[3],[]]],[[[8,7,6,7,0],[2],0,[7,7,6,3,0]]],[10],[4,7,[10,[6,9]],2,3]] +[[[8,4,[0,4,1,9],7,8]],[],[[]]] + +[[[[9,8,3,0],4,9],1,[5,6],2],[8,[5]],[[[8,8,4,10],[0,8,3,4,5],[10],7,2],1],[9,[3,[2,8]],[[],[1,8,6,6,0],10,[8,10,3],8],1]] +[[[]],[[[6,1,0],9,[3]],0,0],[9,3,1,[2],[1,[0,3]]],[1,[[3,2,5,2]],5,[[],10,[6,6,7],0,[]]]] + +[[1,10,4],[5,4,8],[[[5,7,1,2,4],4,[8,4,10,2,10],[0,7,4,9,6]],[[3,5,4,0],[2,5],10,[4,8,9,9,1]],[2,[3]]]] +[[1,[[3,1,3],6,[2,8,10,8,2]],[6,[1,5,2,1,3],[],[0,4],4],[[0,7,4],[2,1,5,5,4]]]] + +[[[3,4],3,0,1],[2,[[4,1,5],2,[1,2,4],5,9],9,5,[[],3,[3,9,10],[],[5]]],[[8,[1,4,1,10,10],4,[1,9,1]],7,9],[8,1,8,[4,6],[[6,10,7,1,5],[8,9,4,5],[],[]]],[8,10,1]] +[[8,6,[2,[10,2,7,1,0]],[6,[7]],9]] + +[[3,[[8,7,2,5,6],1,7,4,[0,4,10]],[8],[[2,7,5,5,1],[6],0,8,8]],[[[],[1,0,3,10],7,[0,2,8,8,0],4],[1],5,[[7],[3,6,5]]]] +[[[6,[10,9,3,4],[6,10],9]],[[[6,6,2,2,3],7,4,7,[]],7,3],[[6],0],[[6,0],[[10,1,0],5,7,[5,8,2,1],4],[],[7]]] + +[[],[[10,10,6,6,10]],[9,[[5,2,9,2],2,8,[]],1,[10,0,10,4],[[3],2,4]],[[1,[3,10,8,4,7],[1,7,2,2,4],[2,4,6,5,5]],1,[[2,8,1,8,4]],[2,[10,3,7],[0,1,0],[6,10,2,10],0],[[],[4,10,0,10],2]],[]] +[[[[1,0],10,[],[1,2,10],[8,2,4,1]],8,2,[5,3,[10,0],[9,7,7,10],[]]],[0,10],[[6,9],[[5,8],0,[5,3,8],0],1]] + +[[9,[4,8,4,7],8,9,7],[[],1,9],[2,9],[],[[9]]] +[[[[10,7,5,0,2],8,[8,2],10],10,[6,0,[],8]],[]] + +[[[],0,3,8,[0,[7,2,6,7,8],2]],[2,2,5,[7,5],[]]] +[[[0,3]],[7],[4],[6,1,[9,[8,5,7,1]]],[[],[[1,8,3,0],[10,10,5,3],3,[3,7],[10,4,3]],8,[6]]] + +[[[3,5,[0,2],10],1,[[],6,[0,7],8],[10]],[[7,8,[6,6,6]],[0,[8,1],[],9],4],[[[7,9]],1,6,3],[[8,5,[10]],0,[[0],7,[6]],7]] +[[1,[[9,3,3]]]] + +[[],[],[[[7]],8,1,4],[[[6,0],4],1,2,[6],[[9,4,6,10,10],8,6,[6,4,4,3],4]]] +[[],[],[[[],[10,1,7],8,[]],4],[8,[[0,6],[]],1,[[0,10]]],[4,3,[],6]] + +[[[[5,0,7,8],[8,5,7],[1],5,[1,6,9,0,2]],10,3,1],[[],[5],5,5],[[],5,[[],3,[10,9],4],[[10]],[]]] +[[[[2,2,0,10,10],2,5,10,0],[],[[4,5,1,10],1,8,7,[1,6,10,8]]]] + +[[[7,[6,0,6],2],4,[[1,10,3],[3,5],[2,8,5,4,3],5,3],[],0],[2,3,6,4],[4,8,9,[0,8,[0,9,0,1]],[7]],[7,6,[8,[],3],[[5,6,0,6],[],[6,10,2,1]]],[8,5,10,7,8]] +[[2,[[9],[3],[10,5],8],9,3,[9,[7,6,7],[0,10,7]]],[[[3,0,9,0],[0,8],9,10],4,[[],8,[5,9,1,10,3],9,[8,5]]]] + +[[0],[[]],[[7,2,6],[[],[0,7,8,2,1]],[9,9],[[6,1,4,8],10,6],10],[8,2,[],4],[]] +[[[[1,10,10,8],[9,1],[]],[2,[7,10,2],[0,8,9,8,6],[],3],[[]]],[[],[1,0,[],[2,7,7,6,8]],[[0,0,4],[0,2],4]],[[[4],[1,9,6,9,3],1],[[5],2,5],1],[6],[[[],0],10,7]] + +[[[],[4,[],1],9,8],[[[10,3]]],[0],[7,[5,[4,10,1,5],4,[0]]]] +[[9,[],8,[]],[8,[],[4,2,[6],[],1],[6,[5,10]],0],[8,10,[[4,2],[10,7,9,3],6,[10,7,3,10,3]],[6,7,[6,3,2,6],[4,3,8,0,7],7]],[[],0,[7,[4,8,1,6],10,4],2,[10]]] + +[[],[[[0,2,6,5,9],4,[6,2]],[5,5,[4,6]],9],[3],[10,[[],[10,7,7,10],[5,0],4,[3,3,2]],0,9]] +[[[6,[],10,[4,4,1]],0,7,[4,[6,2,4],[8,8]],1],[[5,[],1],[[1,6,5],[7,5,6,2,3],5],7]] + +[[[9,[8,1,8,7,9]],9,3]] +[[],[[4,[9,10,2]],[4],10]] + +[[[],10,[]],[6,9],[7,2]] +[[],[[[5,5,1],7,10,8,2]],[],[1,[7,1,10,2,7],[[8,3,2,6,2],5],[[]],[5,0,7]],[[],[7,1,4,7],3,9]] + +[[[],0,7,[9,5,[9,9,5,10],5,4]],[[],[[9,4,3,2],8,6,[8],0]],[9]] +[[1,10,[],6,5],[8,2,0,3],[],[4,[2,6,[],[0,5]],[0],9]] + +[[],[[[5],[],[6,1],[4],[8,7]],[[6,2,7,1,8]]],[10,[0,[7,5,3,4],[],5,[6,3]]],[]] +[[1,4,[[6,4,0,1,9]],[1,[],6,[2,5,6,10],[0]]],[[],3,[],[],[[8,10,5],10]],[[1]]] + +[[6,[4,6],8,[9],[2,8,2,[5,6,10,8]]],[2,6,5,[8,10]],[]] +[[],[1,[],2,0],[7,9,[[0],[10,9],[3],0],4,[[3,7,2,8],[],[6,5,10],[2,3,4,4],7]],[4,2,[[2,6,10,7],8,6,9,3],1]] + +[[[7],9,[[2,1,9,10],4]],[],[[]],[[10,[2,2,8,5],0],[[4,10,2,10,7],0,[0,0,7],[3,3],[9,1]]],[1,[4,[8,4],[]]]] +[[1,[],10,2,0]] + +[[[4,10,[8,1],10],[[],[10,8],[6,7,2],6,3],3,[[],7,5]],[[[5,6],0,6,9,5],[[9,6,9],4,[8,2],0,7]]] +[[],[6,7],[8,[10,[0,6,4,0,9],[],[]],6,[[2,1,2,6],[10,10,7,3,4],6,[],[8]]]] + +[[[[5,3,7,3],7,[3],4,[5]],10,9,[1,2,6]],[9],[[2,10,[9,2],[10,1,7]],[9,0,[4,3,6,0,4],2,[4,4,9]]]] +[[[[],[3,4]],[]]] + +[[[[6,1,9],6,3],0,10,9,5],[]] +[[[[0,7,6,5],8,[],[2,6,6,1,10],[10,9]],5,5,4],[4,[[8],[7]],8,10],[]] + +[[1,3,2],[]] +[[[[10,3],9,[10,1]],[4,4,[0,1,6,1,4]]]] + +[[[],[3],[[7],5,7],[[4,2],6,[]]],[[[1,3,3,6],[1]]],[1,0,6,[[10,5,0,7]]],[]] +[[8,0],[3,3,[[9,10,6],[0,2,8],5],[4,9,[],1],[10,[8],8]],[4,5]] + +[[3,[[9,5,7,7],1,10,5],[[8,10,2,5,5],5,[2,7,6],[8,2,3,10]],[[],[10],2]],[8,1]] +[[[[9,5,8],[7]]],[7,[10,6,[1,9,3]],[[0,8,7,1],7,[0,6,8,1,8]],4],[[2,7],[[8,7,10]]]] + +[[[],[],[[4]],[[9,9,0,8]],4],[[[8,0,10,10,9],2,5],[[8,3,4,1,3],[9,7],2,3],[[7,4,1],[7,5,9]]],[],[10,6],[]] +[[2],[[8],[]],[]] + +[[2,[2,4]],[]] +[[[8,[1,0]],2,7],[3,[7,[6,8,10,8],3,[3,7,6,4],[5,4,6]],[5]],[1,[]],[],[[0,[1,3,6,8,8]],2,[[5,2,2,0],[9,5],0],[],[4]]] + diff --git a/day13/order b/day13/order new file mode 100755 index 0000000000000000000000000000000000000000..195d34f9a5d299688402d972ea358e00b4fd7c36 GIT binary patch literal 16400 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ⓈH<9(L?a<9B;=?Nzx;&++sR6lFl8mvVe95ZBr5Jq$HI4{ z5=l$Hv0&>_D(a1gG6?^qyrW^7cuRth0lhv^@tug&-JyQ5D;l+0@nQvR zobP|wq2w{3!!1N0wX4qxb%I(+MSHl1w>zTAei4W#tZ1M+o(}XU6aCSowaWo@rek=k zC>GJs`VCu`(`=UNJ)u;O2t; zJbvCc$AHn+jO}^<&y@H3P?1f$V^-XW9_^*sp7+m8`LfOVvmVpku&2E_^SnQ2+O8wH z^XCNUK?SNQ+w=Vb(-E!6@!jL6M;^$2gVys?AT*|rDOQj@)y!@GC16w&_K!=hYMSzW znMP$S?i2kYK2CeTwqrU-N{;4oFTMtu)BaJdz?Ajb1@lbzx$O680n>gq)RgU*KH;+W z>-{;?WqhOPvS+tXx$Jqr$dvDUS>JvB9M<-H{Dog@YO1#(8dS&HX3%*7AF3bQH~7Jz zG5v^Q?QeJdmmqQ45BQZT(^e8X8qXhwPNK5_AHL7z_viTiRkuF#Okahq&tcE^HN(pR zqOqRhW_ZS5hk)iT$LISEejj;C=dVu-+aDkQufvv9*q-nAhpq#NHlT?8&2gEY17oMX zXwj;TigFxwz;?{j|56F#_`H9u*Y<9Gisft<==fUQ7P0*`HljLg@1#6;oT@F_VUM0L rmqAEdZqA3-U%Ef$+@1E1tyJ8nT+TTz>(c2~$-a5D(pc;=aIxZ_oDuLm literal 0 HcmV?d00001 diff --git a/day13/order.c b/day13/order.c new file mode 100644 index 0000000..85cbdd1 --- /dev/null +++ b/day13/order.c @@ -0,0 +1,245 @@ +#include +#include +#include + +#define BUFFER_SIZE 256 +#define MAX_MEMBERS 64 +#define MAX_PACKETS 512 + +enum NodeType { + NUMBER, + LIST +}; + +enum orderType { + INORDER, + OUTOFORDER, + INDECISIVE +}; + +typedef struct node { + enum NodeType type; + struct node *members[MAX_MEMBERS]; + int member_count; + long value; + int marker; +} NODE; + +void destructNode(NODE*); +long yeetList(NODE*, char*); +enum orderType inOrder(NODE*, NODE*); +void quicksort(NODE *[], int, int); +void swap(NODE *[], int, int); + +int main() { + char buf[BUFFER_SIZE], *p, c; + memset(buf, 0, BUFFER_SIZE); + p = buf; + + int isLeft = 1, iter = 0, sum = 0; + NODE *left, *right, *curr; + NODE *packets[MAX_PACKETS]; + int packet_count = 0; + + while ((c = getchar()) != EOF) { + *p++ = c; + if (c == '\n') { + if (buf[0] == '\n') { + // Empty lines don't matter + memset(buf, 0, BUFFER_SIZE); + p = buf; + continue; + } + + // The root Node is always a list + if (isLeft) { + left = (NODE*)malloc(sizeof(NODE)); + memset(left, 0, sizeof(NODE)); + left->type = LIST; + left->marker = 0; + curr = left; + isLeft = 0; + } else { + right = (NODE*)malloc(sizeof(NODE)); + memset(right, 0, sizeof(NODE)); + right->type = LIST; + right->marker = 0; + curr = right; + isLeft = 1; + } + + + // Parse node + yeetList(curr, buf+1); + packets[packet_count] = curr; + packet_count++; + + if (isLeft == 1) { + iter++; + // Compare + + if (inOrder(left, right) == INORDER) { + sum += iter; + } + } + + memset(buf, 0, BUFFER_SIZE); + p = buf; + } + } + printf("%i\n", sum); + + // Add the two extra packets + curr = (NODE*)malloc(sizeof(NODE)); + memset(curr, 0, sizeof(NODE)); + curr->type = LIST; + curr->marker = 1; + yeetList(curr, "[2]]"); + packets[packet_count] = curr; + packet_count++; + curr = (NODE*)malloc(sizeof(NODE)); + memset(curr, 0, sizeof(NODE)); + curr->type = LIST; + curr->marker = 1; + yeetList(curr, "[6]]"); + packets[packet_count] = curr; + packet_count++; + + // Quicksort packets + quicksort(packets, 0, packet_count - 1); + int product = 1; + + for (int i = 0; i < packet_count; i++) { + if (packets[i]->marker) { + product *= i + 1; + } + // Cleanup + destructNode(packets[i]); + free(packets[i]); + } + + printf("%i\n", product); +} + +void destructNode(NODE* node) { + if (node->type == LIST) { + for (int i = 0; i < node->member_count; i++) { + destructNode(node->members[i]); + free(node->members[i]); + } + } +} + +long yeetList(NODE* parent, char* p) { + long tmp; + char *q = p; + while(*q != ']') { + // New list + if (*q == '[') { + NODE *newNode = (NODE*)malloc(sizeof(NODE)); + memset(newNode, 0, sizeof(NODE)); + newNode->type = LIST; + parent->members[parent->member_count] = newNode; + parent->member_count++; + tmp = yeetList(newNode, q+1); + // Jump to the end + q += tmp + 2; + // Move one up if it is ',' + if (*q == ',') { + q++; + } + } else { + // Read next int + sscanf(q, "%li", &tmp); + NODE *newNode = (NODE*)malloc(sizeof(NODE)); + memset(newNode, 0, sizeof(NODE)); + newNode->type = NUMBER; + newNode->value = tmp; + parent->members[parent->member_count] = newNode; + parent->member_count++; + + // Move pointer to the next ',' or ']' + while (*q != ',' && *q != ']') { q++; } + // Move one up if it is ',' + if (*q == ',') { + q++; + } + } + } + return q-p; +} + +enum orderType inOrder(NODE* left, NODE* right) { + // If both are numbers + if (left->type == NUMBER && right->type == NUMBER) { + if (left->value < right->value) { + return INORDER; + } else if (left->value == right->value) { + return INDECISIVE; + } else { + return OUTOFORDER; + } + } + + // If both are lists + if (left->type == LIST && right->type == LIST) { + for (int i = 0; i < left->member_count; i++) { + // Right ran out first + if (i == right->member_count) { + return OUTOFORDER; + } + enum orderType result = inOrder(left->members[i], right->members[i]); + if (result == INORDER || result == OUTOFORDER) return result; + } + // Left ran out first + if (right->member_count > left->member_count) return INORDER; + + return INDECISIVE; + } + + NODE tmp; + // If left is a number, right is a list + if (left->type == NUMBER && right->type == LIST) { + tmp.type = LIST; + tmp.members[0] = left; + tmp.member_count = 1; + + return inOrder(&tmp, right); + } + + // Left is a list, right is a number + tmp.type = LIST; + tmp.members[0] = right; + tmp.member_count = 1; + + return inOrder(left, &tmp); +} + +void quicksort(NODE *packets[], int left, int right) { + int last; + + if (left >= right) { + return; + } + + swap(packets, left, (left+right)/2); + last = left; + + for (int i = left+1; i <= right; i++) { + if (inOrder(packets[left], packets[i]) == OUTOFORDER) { + swap(packets, ++last, i); + } + } + + swap(packets, left, last); + quicksort(packets, left, last - 1); + quicksort(packets, last + 1, right); +} + +void swap(NODE *packets[], int i, int j) { + NODE *tmp; + + tmp = packets[i]; + packets[i] = packets[j]; + packets[j] = tmp; +}