aoc

Advent of Code Solutions
git clone git://git.alexkarle.com.com/aoc
Log | Files | Refs | README | LICENSE

commit 8b19bd2b4aa8fbc54f7a34e766a9f5dfbee81323 (patch)
parent 0758ee4e559a83fea7e1fc6611a22a1568ca63d6
Author: Alex Karle <alex@alexkarle.com>
Date:   Tue, 13 Dec 2022 22:44:06 -0500

day13: Add part 1

Diffstat:
A2022/13/input | 450+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022/13/sample | 24++++++++++++++++++++++++
A2022/13/sol.scm | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 527 insertions(+), 0 deletions(-)

diff --git a/2022/13/input b/2022/13/input @@ -0,0 +1,450 @@ +[[[1,6,[1,9,0,9],6]]] +[[],[[[5,6,3],6,[6,5,3,3]],8,3],[],[4]] + +[[1,9,2]] +[[[[],[0],[1,8,10,6]],7,2,[[]]],[6,9],[[[3],[9,7,8],4,[8,1,5],10],2],[1,[[8,10,10,4,1],9,1],8,[[5,1,2],2,0,7,[0,1,7]]]] + +[[10]] +[[3,[],[7,4,8,[]],1]] + +[[],[[6],[9],[10,[9,9,8],[1]],5],[],[[1,[9,4]],10],[10,1,7]] +[[5,2,[2,0,[10,5,6,1,7],[9,5],8],4,[[10,4,2,4,2]]],[[[1,5,8],[5,2,2,0],[7]],[10],[[10,3,1,10]],7,6],[[[6,7],7]],[[[9,9,2,4],8],[6,[8,0,5,0],[8],8,8],[],9,10]] + +[[6,0,[[2,8,1,3]],[[9,4,9],3,[5]],[[5,5,5],[5,4,8,7,7]]],[4,[8,7,3,[5,0]],[[10,4,7,1],[1,3],[6,9,1,7,1]],[]],[[10,2],6,[[10,3,3,1,2],[8,8,8],[9,5,8,2,2]],[1,[]],[6,[2,1,6],6]],[4,[3,2,6,5,[8,0,5]],8],[[[9],[],[1,1,2]]]] +[[[[3,10,4,5]],[]]] + +[[6,4,[[3,6,8,9],[],[2,7,6,3],9]]] +[[2,4],[10,[],4,[[7,4,0,1,4],[6,8,0],9,[5,3,2,9]],9],[[],5,7,3,[[5]]],[]] + +[[10,10,[],5],[[4,8,[7,3,2],[0,7,2,0]]],[[[1],[9,1,9,10],1,[9,1,7],9],[[],[10,7],[4,3,0,4,0],[]],9,4,2],[[2,[]],[5,[4,3],[1],[],[4,9]],[[9],8,[1,1,6,10],10]]] +[[[[],0,[0,5,7]],8,7,9,[]],[],[4,3,[7,[10,9,2,3],6,[3]]],[[8,[]],[[1,10],[3,7,0],[2,4]],1,[[]],[[3,2],8]],[]] + +[[],[9],[7,3,5],[2,[[1],[10,9,10],[8,6,5],[]],8,[7,8,[5,3,6],[10],1],[0]]] +[[10,0,8],[7,[[8,3,3,5,6],[4,1,1,3],[]],[3,0,[9,10,2,0],[0]],1]] + +[[],[7,5,8,[9,[2,6,5],[1,0,0,9,6],[0,9,1,4]]],[[3,[4,5],[3,8,6,6,3]],[[],[2,7,5,8],[5,6,3,2,5],3,4],[],0],[0,[[8],[],[],[6,0,8,2]],5]] +[[[0,[10]],[[0,7],10],2,[[9],0,8],7],[9,[[9,8,9],3,6],2,3,6],[6,5,[],[[],[3],[10,6,1,3,3]]]] + +[[8,[[7,10,10,5],[8,4,9]],3,5],[[[3,9,4],5,[7,5,5]],[[3,2,5],[10],[5,5],0,[8]]],[4,2,[],[[7,5,6,3,0],[4,4,10,7],6,[8,10,9]]],[[4,[],4],10,1]] +[[[[8],[3,10],[7,6,3,7,4],1,8]]] + +[[10,[7,0,[],[]],[0],0,[4,[5,0,4],[10,6]]],[10,2,10],[[[5],0,1],[9],4,[[7,2,8]]],[[3,[9],9,4],[],[0,10,5,[]],10,[[3],7,[3]]],[]] +[[[4],[[],8,[10,4,6],[3]]]] + +[[],[3],[[[9,3,7],3,[6]],2,6,[[0,2]],4]] +[[10,7,[],9],[],[3,4],[[1,[4],8,8,2],[[1,1,7,8,5],1,7,1],[]],[]] + +[[2,[6],[[10,4,3,9,4],1,7,9,[5]],[2,[4,4,3],9,0]],[[[]],[[],3,9,10,8],7],[[3,8,2,8,[]],5,4,2],[[6,[3,4,9,6,10],[9,5,10,5],[4,8]],[[2,2,1,1],[6]],7,0,[]],[7,[[1,3,7,3]],6,[2,1,[8,9],7]]] +[[[],[],7,9,[[3,4,6],[],8,9]],[2,6,2,4]] + +[[],[],[],[[9,[0,4],10],[[1,2,2,9],5,10],[[0],0,10],[[8,2,8],[2,7,5]]],[]] +[[[6,[9,3],8,[6]],0,2],[7,[7,[3,8,8],[6,3,6,8]],[[],[0,8,7],[],6]]] + +[[5,[3,7]],[8,[]],[1],[[[6,4,7],[]],[[2,10,9],[1,1,1,6,3],[4],1,[4,6,5,3]],5,[[10,1,10,10],[10,7]]]] +[[8,5,[[4,6]],[8,9,10,6]],[],[[3,[3,1,5,4],[8,7,3,7,3],8],7,5,[7,10,[5,6,9,1,2],5,6]]] + +[[],[9,[2,[7],0,[]],7,2],[7,[5,5,[5,7,4,3],[7,7,10,9,8]],[4,6,[0,0,9,10],9,[9,5,9,6]],7]] +[[[0,[],9,[],1],[4,[9,4],1,[]],[[]],[5,0,2,[3,10,2]],[[1,9,10,1],5,[4]]],[1,5,5,[2]],[5],[0,5,7]] + +[[10,7,6],[[[1,10,0]],1,[0]],[[9,10],[[9,4],7,[0,0,5,1,5]],[7,6],[],3],[0,[[8,6,6,0,3],5],2],[3]] +[[[]],[[[3,4],[9,8],[4,8,5]],[8,8]],[7]] + +[[1],[1,[[7,8],[6],[4,7,5,5],[10]],[[]],9,7],[1,[[9],[10,2],2,3],[[9,5],2,7],[10,[0],5],[[10,4],[7],6]],[5,[2],3,[8,9,[8,4,4,5,0],[],5]]] +[[10,[3,[6,9,10,1],[0],[0,0,6],[1,3]],[1,[2,2,8,5]],[[0,10,3,10,2],[7,3,10],3,3,10],[[4,6,4],0]]] + +[[[],4,[3,[3,2,0,4,2],8]],[[0,[7,10,8,7,8],[1,4]],[[5,3,4],5,8,[7,4,3,4]],[[8,4,10],0]],[0,[[],[]]],[0,[8,9,0],[2,1,7],8,2]] +[[[6,[7,1,7,4],9,8],[[9],[0],1],[9,0],[[],0],[[],[1,9]]],[[7,[],6,[5,5]],[[0,9,5],[6,7,5,2],[]]],[[3,0,6,5],9,0,10,[[9],10,[10,0,1,8,5],4,[]]]] + +[[],[7,1,9,[4,[1]]],[9,2]] +[[3],[[[9,8]],[5],1,6,[4,[3,8,6,6,4]]],[[[0,1],3,[9,7],9],[],[],5],[8,[[],[2],5,[10,4,9,5,7]],[9],[[7,8,1,7],[4,2,6,4,3],6],4]] + +[[[[4,2,8,8,2],[10,8],[2,3,6,2],[7,1,8,1],[6,9]],[]],[[[]]],[10,[[0,2,2,7],[2,2,6,3,6],[1,3,5,9,2],[0]],4,[[7,9],[0,0],0,[0,2,4,8]],[6,[7,1,9,3,3]]],[2],[[0,7,2,10]]] +[[],[[],8,7,[[2],1,[],[7]],10]] + +[[2,6,10,8,8],[7,5,[[]]]] +[[],[[7,0,9,[2,0,7],10],[],5,[1,0,[6],5,[7,8]]]] + +[[],[[]],[4,[6,10,[6,2],[3,1,10,10],3]],[[4,5,7,[3,0,5,9,1],1],[[1,10],0,[5,4,7,4]]],[3,[6,8,9,[10,10,5,5],[4,0,7,6,10]],[[0,0,1,2,8],[1,9,10,9],5,10,[4,4]]]] +[[[[4,3],10,[3]],5,[8,9,[0,3,6,8,5],4,9],1,[[8,4,2,10,1]]],[]] + +[[0,10,[2,1,0]],[[9,10,[7]],[10],2],[[[2],1,[3,0],10]]] +[[5,4,8,2],[[[3,2,7],8,6,[7,5,8,0,5],[2,1,0]],[[10,5,8],[]],[1,7,[]],[[]]],[[9,[6,5,5],[7,1]],[],[]]] + +[[[],10],[],[3,[2]],[[6],8,[[8,7,4,9]],[[4,3,10],[10,6,9],[4,8,10,2,5],[5,6,9,3],3]],[[[0,8],[],8,4,10],[0,1],5,[10,[0,7,7,3,3],[8,7],8]]] +[[[],2,3,5]] + +[[],[3],[]] +[[[7],[[0,6],[2,9],3,[4,3,7],5],[5,[4,10],[5,10],4,2],[[4],0,[],[8,7,1,5,7],2]],[[],[[8],[10,7,0,2,10],[]],[6,[10,2,7,2,8]]],[[],[4,3,[4],[3],[1,1]],0],[5,[],[1,[3,7,2,5,8],3]]] + +[[],[0,[[2],[10],[5]]],[7],[[8,[3,3],[3,5,6,2,6]]]] +[[[4,[0,3]]],[[[8,2,1,10,0]],[],6,0,2]] + +[[[10,[6,10,0,4],[7],1,[3,7,4,1,9]],[[0,6,5,2,1],8,[8,2,3,10,6],[],3],10,[7,[5,1,9,8],6]],[8,[[3,7,0,7],9,[7,3,10],3,[5,5]]],[[[1,10,1,3]],[7,[3]],7,9,4],[[1,6,[5,4,2,0,2],[8,1,1],[5,7,3,1]]],[[3,10,[9,5],[1,0,7]]]] +[[0,[[3,3,9,8,1],[10,3,4,10,1],4],6]] + +[[[[1],9],[[],0,3,5,4],[7,10,[]],2],[[[3],9,6,1],[],[[],[8,3,7,1]],7]] +[[[9,3,[4,2]],4,6]] + +[[[[],8],[[7,8,5,4],7,9,1,[8,10]]],[[],[[6,1,1],7,10,[6,9,3,5,4]]]] +[[],[[[4,7,10,5],5,[],[1,3,6,3,1]],[9,7,[5,1],5,[10,0,4]],8],[4,2,8,3]] + +[[[7],9],[[[10,3],[10,8,10,2,9],[3,0],[3,8,0,3,0]],5,[[2]]]] +[[[[4],[],8,9]]] + +[[[[10,9,2],3],6,[[4,8,4,0,4],[3,10,5],[10,6,6]]],[4,4,10],[4,0,[[2],5],6,[[3,2,0,5,3],[8,4,3,8]]],[]] +[[2,7,6],[1,[3,[0],[0,9],[3,5]],[[4,2,10],1,[5,4],2,10],[3,0,[7]],8],[[[1,8,8,1,1],[4,2,1,4,7],9,[6,8,9,8,8]],[],8,7,[3,[8,4,7]]],[[]],[[],8,[2,3,[8,6,3]],7,[[1,2,6]]]] + +[[],[0]] +[[[[8,0,7,4,6],[8,7],[3,9,9],0,1],[[5,10,4],3],[6,5,[4,3,2,9]]],[[9,7,[]],[[2,6]],10,[],[5,1]],[[3,4,[]],4,5,2,[]],[10,5,2]] + +[[],[],[]] +[[],[[8,9,3,7,[10,5,3,2,7]],[10],[5,9,1,[5,5,3,4],10]],[6]] + +[[],[[[2,10,8,8],8,9],1,8,[[2,5,8,6]]],[],[]] +[[[5,5,[6]]],[[9,[4,7,3,0,6],5,0,8]],[[0,[10],2,5],4]] + +[[5,5],[[],[6,[],[8],0,[]]],[1],[[[6,9,7,0,3],[],[1],6,3],4,7]] +[[[],10],[],[],[[6,[4,2,2,2],[10,10,0,8]],7,[]]] + +[[0,[0,10,7],[0,4,[4,7,9,10],10],2,7]] +[[[],10],[],[],[[8,10,[5,8,1],4]]] + +[[],[5,[0,[9]]],[],[[[4,9],[],[3,7,1,7],[],1],8]] +[[[[1,8],[7,1,9],4,[],3],0,[4,2,[8,6,9]]],[[],[7,6,[1,5,0],5],[8],3,3],[],[7,[]]] + +[[[2,[1,3,6,0,5],[2,10],8],[],3],[6,6,2,[[5,5]]],[[],9],[6,[[7],2]]] +[[9,9,[[]],4,9]] + +[[6],[[[],[9],10],2,[1,10,6,5,9],[[],[],[]],9],[4,[[9,6,7,10],0,[4,6,5,1],2,5]],[[],[8,[9],9,[5,1]],5]] +[[],[[[2,6],6],6,[[1,1,5,7,0],9,0,[4,5,3,3,2]],[[],[6,3,5],0,8,[3,3,5,2]]],[10,[1,0,[10,9,6,7],[7,0,2,0],[]]]] + +[[[[7,8,1,0],3,5,3]]] +[[[3,10],9,3]] + +[[[[10,7,2,4]],3,1,10],[[6,9,8,10,3]],[6,[]],[[[],2,[6,9,5],[3,3,7],6]],[10,[0],2,[2,[8,10,7,4]],3]] +[[[[8,0,1],[]]],[[[4,9,4,3,9],[4],[1,1,6,3]],[[3,6,0],[9,7],0,[5,3,8]],0],[],[3,9]] + +[4,7,8,3,9] +[4,7,8,3] + +[[[9],6,9,[[],[1,10,10],[5,0,8,7],1],[[10],3,5]],[0,[2,[],4,[7,10,3,6,10],1],3]] +[[5,1],[[[9],8],[[9,6],9,1]],[],[3,5,[],[]]] + +[[2,[[4],3],5,7],[8,6,4,[]],[]] +[[[]]] + +[[0,[],[1],8,7]] +[[0,10,[1,[1,9],8,[]]],[[[6,3],1,1,5],10,[]]] + +[[5,[[0,9],9,[3],7,5],[10,[3],[0]],2,[[4,9,9,9],4,3,10]],[],[[[],[],0,1],[6,[8,0,5,2],3,[0,6],[5]]]] +[[9,6],[6,3],[]] + +[[[[1,6],5,2,[3],[10,6]],9,6],[[3,0,[1],[1,2]]],[6,8,10,0]] +[[4,[[7],0,[4,2,2,1],2],6],[8,[10],[[1,1],4,4,0]],[[[1],7,7],4,[[10,3,1,1,2],[8,9,1],9,[7,6]],4],[[2,[8,0,1,9,6],[1,0,6,6],[5,8,0]]]] + +[[10],[],[[[7]],[[3,3,5],[5,3,0,0]],[10],[1],[[],5,10,[6,3]]],[[4],[[8,5],10],[[2],[3,3,6,7,6],7,[4]],0,10],[5,[[7,7]],[10,7,10,10,[1,9]],[8,[5,5,5]]]] +[[1,[[],[3,5,2,8],[]]]] + +[[5,[2,3,6,[0]],5,[[9,10,1,6],[2,3,10],[1,6,7,7,10],[10,10,2,9,3]],[[4,10,3],[5,9,2,7,0]]],[[9,4,[],6,[9,0,10,10,7]],3,[8,[8,5,10,9],[],3]],[[0,2,7,5],4,[]]] +[[[[2,10,3],10,6,4,3],[]],[0,4,[[2,1],2],[[9,7,10,6],[1,0,0,1,3],[3,7,2,9,4],8]],[[[3,1,9,7]]]] + +[[[2,[1,0,8,2,5]],2,[[9,3,0,1],7,9],[8,[],[7,9,10,10],5],[4,4,[8,7]]],[1,4],[6,10,[4,[],[],6],4],[3,[7,[1],5,[9],0]]] +[[5,1,9,8],[9,[4],1,[[7,4,5,5,6],[10,5,9,9]],[]],[9],[9,5,[8,7,[2],[8,9],9],0]] + +[[[[3,10,8,7],[9,10,3,10],8,0],[1]],[[9,8],1,[8,10,9]],[[[8,0,10],9,2],0,4],[],[[4,7,2,1,7]]] +[[[5,[]],6],[10,[3,[8,2],3,6,[]]]] + +[[[5,[9,4,7,6],5,[8],[7,3]],[],[4],[[3,8],[8,8,9,6,9],[1,5,1]]],[[],5]] +[[10,[8,[9,6],4,[6,0,3]]],[]] + +[[6,3,[]]] +[[[2,2]],[9,5]] + +[[[[5,2,4],4,[0],7,[8]],[[]],[4,[3,8,5,8,6],[8,3,10,0,10],[6,9],6]],[[[7],[3,4],8],[[3,10,3],5]],[6],[[9]],[]] +[[[6],[[],[8],5,4],[],[[8]],4],[9,[],2,5]] + +[[5],[6,2,[9,[1,3,9]]],[[8,[2,0,8,2],[],[8,6,2,9]],9,5],[3,0,3,8]] +[[],[[],[],[],[6,8,[5,10,6],7],0],[[[0,5,7],[],[0,3,4,10,2],[1,0,1],[10]],8,[1,4]],[[[10,2,10,10,2],3,6,8,0],2,5]] + +[[9,6,[[3,4],[10,2],[6,2,2,1],6,3],9,6],[6,10,[4],4],[],[[3,[9,2,5]],6,[4,10,[],[10]]],[[[6,5],8,4,8,[]],[7,[9],9,[2,5,2,6,6],[]],[9,[7,7,3]],7]] +[[7],[]] + +[[[8,5],6,2,[[10,1,4,2,9],[]]]] +[[[[9,5],[9,7,7]],9,[[5,4,9,5,5],6,9],[]],[[[5,8],[],[]],5,3,[],8],[4],[],[7]] + +[[[2],10,[4],10],[]] +[[[7],[[],[2,6,6],[],7,6],5,1],[1,1,[1,[],8,[2]]],[[[3,5,3,7,10],[3,3,8,4],[10],7],7,9,7],[10,[[8,6],[0,5,2,7],9,0,[0]],10],[2,9,2,6]] + +[[[[7,4,1,7],[1,0,2,2],2]],[7,[[8,0,4],1,6],[5,[9,9,2,9,3]],7]] +[[],[2],[8],[[4,3,[10,10,5,8,10],3,[2,1,6,8]],10],[10,[[8,9,5],[],[10,4,9],[6,9,8,5]]]] + +[[8,[],2,5],[2,[[7,0,5,6],5],[10,9,7,9],2,0],[8,7,9,10,[[6,6,9,0,7],6,[5],5,[2]]],[[2,10],9],[]] +[[10,2,[1,4,[4,4,5,2,1],[],6]],[[10,6,7],[[0],[2,3,4,4],[7,10],[9,4]],[1],[7,5,6],[[5,3,4,5],0]],[4,[[3],[0,8,5,8],8,[],[1,7,9,9]],0,2,0],[5],[[[4,10],[1,2,10],7,[6,2]],[],[6,9,6,[6,3,3],6],9]] + +[[[[3,9],0]],[0,10,[],[]],[],[2]] +[[10,[[5,7,4,8]],[[7,3,3,6]],[7],4],[],[[[8,6,4,0,3]],3,8,[[7,9],[1,0],4,[],[5]]],[[0,[8,9],[3,7],[]],8,4,[[4],8,[6,3],3],8],[5,9]] + +[[4,[[4,3,4,5],[3],5,6]],[0,5],[[3,10,3,4],[]],[[5,[10,8,7,3],[10,5,6,8,4],6,2],[]],[2,[[7,6,0,4,2]],3,[[6,0,1],[9,1,10],7]]] +[[[[8,5,3],[4,2,3,6]],[8,10,[1,1,1,2,6],7]],[[0],8,2,2,[4]],[5,5,2,[3,[1,7,10,10,1],[4,3],[5,6],[4,6,10]]],[]] + +[[9],[]] +[[10,6],[[[4],2],[9,[6,3,5],[]],[8,10,[],[0,2,1,1],[9,1,3]]],[[[6]]],[10,[[5],[],[4,8],8,0],7,[9,2,0,6,3]]] + +[[3]] +[[9,5,2,[9,8,[10],5,[]]],[[[0]],[[6,7,7,6,10]],8,6],[[3,[10,9],2,9]]] + +[[0,[9,[],[10,9],4,[]],[[1,8,1],8,5,9],0,[[5,0,5],4]],[0,10],[10,[],[[10,4],[3],[3,0,1,6],2],[[10,0],[2]]],[[5,[],[8,0],8]],[[9,[9,6],[]],6,[[6,9,9,8],[1,4]]]] +[[10,[5,[0],8,[10,8]],4,[[]],7],[9,7,[],10],[[[9],5,6],3],[1,0,[7,0,3],2,[[7,2,7],0,[3,2,7,3],0]],[[[2,2],10],[],4]] + +[[1],[[]]] +[[6,[6,[6,2,3,6],2],4]] + +[[4],[2,10,[],4]] +[[9]] + +[[10,1,7,[7]]] +[[2,[[6,9,5,6,6],[7,1,8,7,10],[],1],[]],[],[]] + +[[[8,4,[0,5,6,10,1],[9]],3,0],[[1,[],5,[3,0,1,10],3],10,3],[4,6,[[1,2,0,3,0],[10,9,6],0,[1,0,10,7]],[],[3]]] +[[[[9,7],3,[9,1,10]],4,[9,[1,9,10,7],[1,2,8,0],7],7]] + +[[[[10,7,1],5]],[[0],4,[],[]]] +[[0,0],[[[],7,[1],[7,0,4,0,3],5],[2,[],4,3],[],[6]],[0,10,10],[6,[5,[9,2],6,[6,4,7,7,0]],[[4,8],4]]] + +[[[6,10]],[]] +[[3,[[8,9,6,6,1],9],7],[2,[],[],4,3],[2,[[10,8,9],0,[8,9,10,2],8,1],[0]],[[[],[],[4,5,5,4,10],9]],[]] + +[[5,3,9,8],[3,[[2,1,9],[9,4,8],[],2]],[6,[[0,10,6],[5,8],8,[]],[3,6],[[9,3,4]]],[],[[6,[6,3,5]],[[8],0,9,9,3],7,[[3],[2],[5,4,2,5,10],1],[[5,3,2],3,[6,6,1,8,9]]]] +[[],[6,7,[[7,3],0,1,6],[10,5,[],[9,4]],10]] + +[[],[[4,8,[0,8,6,0,1],[1,3,10,10,3],[1,0]],[7,0,[4,8,0,3],3]],[],[5,7]] +[[4,3],[[0,[3],[],2],[]],[7,5,1]] + +[[10],[6,[[7,7,7,2,1],[2],[1,2,6,8,0]]],[[],5,[2,8,1,7,0]],[],[]] +[[[],2]] + +[[[[],9,[0,5,3],10,[5,2,8,3,2]],[],9,7,9],[8,5,[10,[2,10,1],[2,3],[3,0,2,6,0],[10,1]],[],[[0],[3]]]] +[[9,[4,2],[]],[],[[1,3,8],[[5,7,8,7],7],7,[[3],[5],2,6],[[0,5],4]],[10],[6,[],[5,8,8],8,[9,[1,2],[3],[],[7,3,0,0]]]] + +[[1,[],[[9,10,7,8],6,4,3],[[5,1,5],[0,8,5],0]],[8],[[2,[7,2,8,0],5],[[3,4,9,10],0,0,[],[9,7,3,9,0]],7,6],[5,3,[]]] +[[3],[[7,6],[7,0],[2,[2,8,5],2],9]] + +[[[[2,6],2,[1,3,7,2]],5,[[5,1,7,6],[7,0,2,7,3],7],[[10,3,0,7],7],[5,1,[2,3,7,6,8],4]],[[4],3,[8,[4,1,2,0]],4,[[1]]],[[[0,5,7,1,4],[9,7],[3,6],10,[9,5,5,8,0]],7,5,[[3,2],[8,10,2],[10,0,1]]],[6]] +[[1,8,[]],[[],4,[6,8]],[]] + +[[[0,[9,3,5],[10],2],6,[[],5,[5,6,10]],[5,8]],[],[7,[[3],[1],2,1,[5,5]],2,6,[1,3,[5,7,1]]]] +[[[[7],[10],7,6,[9,10,3,0,1]],4,1,4,6],[5,[[]]],[],[5,[1],[[1,0,2,6,4]],[[6,0,7,10,10],0],2],[]] + +[[],[[1,3],4,[5,2,7,[9,7,2]],10],[3,[8],6,[6]]] +[[3,[]],[2,9,[5]],[[],9]] + +[[10,8],[],[[],3,0,3,5],[[[8,9,6,10],[0,5,3],[],[0,1]],2,6,7]] +[[],[[],10],[[[],[0],0,2,[1,7,2]],[]]] + +[[[2],8,[]],[0,[10],10],[9],[[5,[9,2],[0,1,1,4],2,[1]],[],[[8,8],[4,6,7],2,[7,4,3]],4,4],[[[8],[9],1]]] +[[2,[[3,6],9,7,0,[8]]]] + +[[2,[3,[9,3]]],[[[1,10,3,6],[],3,[7,7]],[4],8,9,3]] +[[],[],[[[4,7,7,8,5],[4,6,5],[8,10,10,9,1]],[[10],0],9,8],[[],7,[7]],[]] + +[4,0,6,0] +[4,0,6,0,7] + +[[0,2,2],[[[9],[8,5],[1,8,2,6,1]],[3,3]],[5,5,0,[9,3,[],[2,8,6],[]]],[4,[[8,6],[8,6,8,2,10],8,[6,10,5,0,8]],[],[[],2,1,[2,9,2,3],5],[]]] +[[[[],[6]],[],6,9],[[]],[]] + +[[[0,[8,1,6,10],10,[2,9]],10],[6,[1],10],[5,5,7],[0]] +[[1,7,[5,1]]] + +[[[9],[[5,6,1],4,5],[2,[9,4,3,2,6],[10,9,9,8],[7]],4],[[7],[[3],1,[0]]]] +[[6,[[],4],6,1],[[[]]]] + +[[[[5,9,6],[1,1,6,5],[10,10]],[[5],[],[6,9,4,5,7],3],6,[],[]],[8,[[10,9,4],[6,3]]]] +[[8,[6,[9,8,9,4,1],[0,3,8,1,0],9,4],6,[7,1,[],[0,9,7,7],9]],[10,[[0,7],9,2,5,[1,10,2,5,10]]]] + +[[3,[],[[7,2],5,3]],[3,5,0,[[8,9,3,1]],0],[[[10,10,6,7,10]],3,5],[[1,[],[],9],10,[4,[9,1],0,4],9]] +[[7,1],[8,[9],8]] + +[[3,3,9],[[],6,10,[2]]] +[[1,7,[[9,6],[2,4],[9,8,1]]],[[[0,8]],[[6,4],0,[10,5]],[2,[7],4,[],8],0,2],[[],6,[0,5],9]] + +[[10],[6,9]] +[[[1,9],5],[6,5,2],[[7],[1,[2],0,[5],[0,2]],5],[],[5]] + +[[],[]] +[[[9,[0,8,8,7,3]],8,6,[[],[4,4,2],[9,9,3,5,1],9,[0,10,7,8,5]],[[10,1,8,0,6],10]],[5]] + +[[[7,0,[0,8,4],[10,1,7,0,9]],[6,[8,2,6,6,6]],[5,[3,5,5,6],[],7,[7,0]],[6],[2,10]],[[2,[],6,[7,6,9,10,10]],3,[[0,10,4],[3],9,[2,10],[1]],2],[[],[[],[6,4,9]],1]] +[[[],[2,6,5]],[4,7,[[5],[5,10,2,0,7]],[2,[2,8],6,[3,9,1,0,3]]],[10]] + +[[2,3,[[7,8],[6],[3,10,9,8,6],6]],[[[]]],[[]],[[],0,6,0],[10,0,0,8]] +[[[1,5],6,8,10,0],[[[7,1,10,2],2,0,[3]],[[8,6,6,5],[1,0,0],2,3],3],[10,0,2,10,10],[4,6],[]] + +[[],[1,[7,9,[6,3,9],[9,4]],4]] +[[[],9],[5],[]] + +[[5,[7]],[[6,3],[8,[]],6],[[[3,8,1,1,3]],1,7,[],0],[1,[],[],0],[]] +[] + +[[[],0,6,[4,2]],[],[[2],0,0,[[9],[10,2,10],[4],3]],[[[5,2,2,4]],0,[[4,4],[2,7,7,7,6],7,[0,5,8,9]],2,[7]],[]] +[[],[3]] + +[[[2,10,[],6],6]] +[[8,[8,10,[2],3],[[3,10,8,0],0,3,[8,2,1],[1,5,0,0,8]],[2,[3],3],[[1,9,8,4],[1,5,8]]],[[[10,4,6,4],[5,2,4],10,0],[],3],[4,[0,10,4],7]] + +[[7,[[5,4,7,0,0],[3],[7],[0,4,9,2],[1,10,0]]],[],[],[3,[[7,7,8,5,6],[4]],[5,[7,4,0],[10,4,8],[]]],[[[7,8,5,10,3],10],[[10,0],[4,7,9],[],[4,7,5,0],3]]] +[[5,[[8,3,2,10]],[5,[4,10,2,7],9,3]],[9],[5,10]] + +[[8,[1,2,2],0,2,[[3,9,8,0],3]],[[9,[9,9,5,10]],[3,[5,7,3],[9]],[[],3,[4,0,1,8,9],[7,9,1]],[[6],4,4],[9,[8],10,[],5]],[[10,1,[]],7],[[4,10,[3,9,4]],9,[[6,9,4,4],[4,0,1],[4,1,1],9,[3,9,0,0,0]]],[6,[0,0]]] +[[],[],[0],[[],6,7,[2,0,[5],9,3],10]] + +[[7]] +[[10,4],[10,3,4,[7,[5,3]]],[[[6],2,6]],[[2,[4,10],[2],4],8,[0,[2,10,4],4,9,3]],[8,10]] + +[[],[],[[[8,6,8],10,[3,6]]]] +[[[4,[8,9],[8,5,10],[]],8,2,7,6]] + +[[[5],[[],0,[5,10],[]],2]] +[[3,[],10,[]],[[[2,10],8,4],4,[0,4,4],[[2,3],5]],[[[0,7],[7]],[],8,[],[[],0,9,[7,1,5,3,7],[4,1,6,7,6]]]] + +[[[],7,6,[[2,6],9,[0,4,1,1],[1,1,4,2,5],[5,5,6,6]],[1,[6,9,0,6],[5,3]]],[6,[[7,8],5,[8],[8],[8,0,5,10,0]],8,[]],[10,[7,[0,7,8,5],2],[[10],[3],6,[8,7,9]],0,[[],[3,1],[0,2,8,2,1],[6,8]]],[],[[7,[2],[9],0],7]] +[[4,[]],[[[],[5,3,0],[0,5,5,7],9],4,[10,3],[0,0,7],[7,[10],1,0]],[[[],1,[3,4,9,8]]]] + +[[4],[[8,4,6],1,[6,10]],[3,[],9]] +[[[[1],6,10,[]],[[1,7],[5,8],9],[8]],[[5,6,[1]],0]] + +[[],[8,[[8,2,1],4],1],[7,10,[10,10,[8,6],[10,3],[7]],[[4,2,8],8,[3,2,6,9,1],1,[0,0,4,3]],0],[6,9,7,9,6],[[[6,6,9,9],9],1,1]] +[[],[[0],[5,0,5,6,[7,4,9]],[[7,2],[5,7,3],[],[1,9],[6,5,3]],10,[5,[0,6,9],[9,5,4,0],7,[1,2,7,10]]],[1,[[2,0,10]],[1],[8,[],[5,10,0,6],[1,2,2,9]],[1,[],[3,10,7],0,1]],[]] + +[[1,[[3],2,10,[],[2,6,2,3,8]],10,3,2],[],[1]] +[[[[0,7,10,8]],10,[],[[2,9,4,0],2,3,8]],[10,8,[],9,1],[[[9,8,8,3],1,[9,10,8,1,5],[]],[[],[7,8,9,6,5],0],8,[5,4,[8,7,3,3,7],0,10]],[2,1,2,[]],[8,10,[],7,[10]]] + +[[10,[[6,0,2],[10,7,6,5],6,10]]] +[[2,[9,1,1,[8,10]]]] + +[[[[0,5,3,5,5],9,2],[0,[],2,[3,3,6,8]],[4,4,4,[9],6],[[3,1,4],[1,1],10,2]],[[[6,4]]]] +[[[],[],2,[[2],[9,6,0],[],[],4],5],[5,7,7,2,0],[[[1],1,5,3],2,[[7,7,5]],10],[]] + +[[[0,1,[0,0],10,6],[0,[6,2,6]],[6,7,[3],8,5]]] +[[7],[5,[1],1,8,2],[[3,[7,8,4]],9,7,0],[5,7,[2,10],[[],4],[1,8,9]],[[]]] + +[[3,[0],[0,[10],[6,8,2]],4,[1]],[6,[],[[8],[8]],[[7,6,0,3,5],[],5,[0,7,0,1]],[8]],[[7,10],9,[],8],[2,9,[9,[3,5],2,6,[9,6,5,6,8]],2]] +[[9,[5,[2,5,1,0,5],4,5,0],8,0,0],[[[1,1,2,2,7],5,5],[0,[]],9,[[1,1],6,2,0],6]] + +[[[[3,10,1,8],[0,0]],[5,1,[10,8,6]],[5,7,7,[10,6,9]],[4,[],2,[3,6,2,6],0]]] +[[8],[[[9,5],4,[3],[6,7]]],[]] + +[[7,8,[1,7,7,[4,6,3,4,4],9],1,5]] +[[4,[10],[2,9],[7,5,6],[[9]]],[10,[[],[],[5,10,9,1,10],[1,3,5,6]],7,[[1,7,9,3],[6],[],8,[1,8,5,3]],0],[0,[[4,5,2],9,[3,5,7,1,8]],[[7,3,4,9],1,10,7,[10,1,8,0,0]],[[8,3,4],6,[5,4,9,10],7,[6,8,8,5]],[[8,3,1,0,2]]]] + +[[0,[[8,0,3,3,9],0,10],6,[[9],6]],[[2,[],6],[4,[],[2,6,6],10,[2,1,2,4]]]] +[[5,5],[7]] + +[[],[4,[4,[]]]] +[[7,[],8,5],[4,[[3,1,1],4,6,[],[9,4,2,2]],0,6,[[6,3,7,6,6],6,4,[3,5,9,3]]],[[3,7,[0,5,6],[5,2,1,4,4]],7],[[3,[8,0],6],[[],5],[[5,10],4,[9],2,8]],[[[10,6,2]],8,[[],5]]] + +[[[[],8,10,6]],[[[3,10,0,5],2,10,[8],10],0,4],[10,3,[1,[2,1],2,[8,0,10,3,9],3],3,[[3,1],[10,5,4,6,4],[1,2,6,9,1]]],[0,[],6,10,[9]]] +[[],[5,10,[6,5,[10,8,9]],[],4],[[[10,9]],[[],10,5,[6,5,1,3]]]] + +[[[],10,[1,4,5,[7,9]],[[8],7,[1,3,8],1,9]],[[[9,9,7,6],0,10,1,[2,9,3,6]],[3,[2,8,5,4,6],[8,10,1],[1,4]]],[4,10],[[4],6]] +[[10,[9]],[[[],8,6,4],[[7,5,4,5],5,5,[9,1,1],[0,3,2,4,2]],1,4],[]] + +[[10,[6,[2],6,[],[9]],8,7],[],[[],[[3,5],[9,7]],2]] +[[[[1,7]],[[0],5,[]],[[5,4,9,9,5],[3],[1,5,5,3,2],[5],2]],[[],[[10,1,7],[6,0,7,6,6],[],[]]],[8],[[9,[8,8,2,10,1],1],9,[[10],2,7,7],[8,[10,10,8,2,3],1,[6,8,1,7]]],[9]] + +[[[8],[[3],9,0,0,[3,1,8]],5,1,3],[1,5,1]] +[[3,1,[[10,2,7]],[[3,0,9,4,8],[10,1,7,4,10],1,[7,10,6,5]],[]],[],[1,[[4,6,1],1,5,5],[],4],[6],[[0,[4,9,7,3],[3,8,8,8,9]],[]]] + +[[[[0,5],10,3],[6,4,0,5,[]],[]],[]] +[[],[7],[]] + +[[1,[[0,2]],3,[2]],[9,[],6,[]],[]] +[[[[0,2,1,1],[10,1,10,0],[1,9,7,6,1],6,3],5,[[2],3,[9,8,8,8],4]]] + +[[],[2,2,2,[],3]] +[[2,10,[]],[3,0,[[8,0],1,4,[10,5,1,9,6]],6],[1,10,[6],4],[6],[[[7,7],4,10,[6,4],4],5,1]] + +[[[[8],5],[4,3],3,9],[8,[[8,4],[10]]]] +[[0,9],[[[],7,[8,5,4]]],[[],[[8]],2],[5],[[6,[7]],[]]] + +[[],[9],[]] +[[9,[],0,[[4],1,[6,7],8,[]],7],[],[8,10,[[5],[2,6,0,7,5],8,[5,9]],[3,[]],[]]] + +[[[[7],0,[10,5,2,1,2]],2],[[]]] +[[[],[7],[]],[3,4],[[[2,2,6,1],[],[5,9,2],1]],[]] + +[[10],[1,7,6],[2,[4,[2,0,10,7],[7,9,8,4]],4,[]],[7,7],[[],10,3]] +[[3,[[4,8,6],9],[],[6,[3,4,2,8,4],[],7]],[[],9,[0,10,4,[0]],[]]] + +[[[[]],[8,8,10,[],[3,5,8]],[3],[[3,3]]],[]] +[[[9,8,3,[9,9,3,10],[7,8]],7],[4,[[8,4,1,2],[1],3,1],[[6,0],4,[2,0],[0,0,5],[10]]],[[[6,2,4,0,1],9,4],[4,[3],3,[],[3,0,2,8]],[[9,0,1]],[]],[[[7,3],6,6,3,0]]] + +[[3,5,[[10,3],6]],[],[6,[6,2,1],[1,[7,2,6,4]],[8,[]],[4,1]],[],[[5,[2,8,7,1],8],5]] +[[5,0,[[],9,[],3]]] + +[[0,[[5,3],4,[],[3]]],[6,5,[0,10,[]]],[4,[2,[10,0,7,0,2],8],4,0],[[1,[6,9]],[],[[0,0,5],9,4],3]] +[[]] + +[[10,[10,[9,8,3],3,0],[[3,10,10],[5,8,5]],[],7],[],[8],[7,1]] +[[7,1],[[2],[[3,1,7,8,3],7]]] + +[[8,0,9,[[1,3],1,[8,6,8],2,[]]],[10,10,[[2,5],4,[1,6,5,9,5],[6,1],[9,5,1]],[[9,5,2,4],[6,8,4],[]]],[],[[5]],[[[],[],[10],[6,9,2]]]] +[[[7,2,6,1,3]],[9],[7,[],10,[8,6,10,0],4],[5,9],[0,[6,7,[7,4,5],3,[8,8,10,7,6]],5,[],[5]]] + +[[4,7,[[3],6]],[[[1,0]],5,[8,[9,9,8],[2,5,9,8],[3,1],[1,7,1]],3,[[1,9,10,8],7]],[[]]] +[[2,9,5],[[[6,2]],[[],[10],[1,5],10],1,5],[6,[[3]],[[3,4,3,7],3,[4,10,1,10],9],[9,5,5,[]],[[4],6,[8,8],4,[6]]],[9],[[]]] + +[[5,0],[[[0]]],[4,[10],0,[[5,6,4,2,5],4,[],[3,1,4,9,3]],2],[7,6,8,8],[[0,[4,3],[],[],[]],0,5]] +[[5],[9,0,[],[[6,0],[6,3],2],[3]],[[[3,1,2,5]],[0],4,[[2],10,[4,6,10,10,0],4,[5,9]],0],[2,[[],[1],4,0,10],9]] + +[[[],[2],[7,[0,10,4]],[2,[],2,[],5]]] +[[6,1,8,[]],[[9,[8],[9,6,9,7],4],5,[[],[0],[10,6]],[9,[],[],9]],[],[[],6]] + +[[[10],[[1],[2,7],2,[4,4,7,8]],0,[[]]],[10,5,7,[],2],[[[7,10,3,0],7],[2],[[3,3,10,2],2]],[[[10,1,7,3],8],2,[2,5],[],[[0,2,2],0,[5,2,9,0,2],[9,10,10]]],[9,[[5,0,4],9,[0,3,1]],[10,5],[5,[],0,8,[1,5,6,6]],[10,[6]]]] +[[5]] + +[[[5,[7,8]],4],[[],[3],2,4],[5,4]] +[[[],[[]]],[[10,[2,4],[5],[0,2]],[[],[7],[4,7,5,6]],7],[[],9],[9,[8,[3,4,5,0,2],[4],7],[[],[4,10,5,8],5]]] + +[[8,[[],[9,0,2]]],[[0,4],0,[8,10,[3,0,10,2],3],[2,0,8,5,5]]] +[[[[0,7]],8,[],[[3,6,10,5,9],1],[1,[1]]]] + +[[[1,2,[9]],[[0,7,6],5,[]],[10,[6],5,[],10]],[[6,9],6,5],[[3,[],7,5],1,10,[5,2,5],[]],[[[4,5]]],[[5,[4]]]] +[[8,[[5,0,4,2,1]],[3,[1,8,7,10],1,1],[],[[8,7],4,5,[2,10,10,7],0]],[]] + +[[[[],[10,0,1],4]],[[0],7],[0,[],[]],[],[]] +[[7,[[],[1],[5,5,6],[10,3],5],10,10],[[]],[5,[2,2],1,4]] + +[[1,[[8,7,1,8]],[]],[10,6],[[]]] +[[[[1,9],8,6,0],5,[[0,1,10]],7],[[[9,4,5]],[4,8,[3,7,5],[1,0,2,4,9],0]],[[1,4],[[2,5,10,8],9],4,5],[[4,[1,8,6],2,10,[6,0,4,0,9]],[[2,2],0,[0],4],5,[[9],5,6,0,[7,2,9,0]],3]] + +[[10,[6]],[10,5,2,[[4,5,10,6,6],3,[7],[6,8,4]]],[[[10,3,9,3],9,[0,9,9,9,10]],3,[[0],[1,5]],4],[1,[[7,0,0],[7],8],9]] +[[[[9,2],9,9,[7,6,9,5,5],[9,1,3,2,3]]],[8,[5,[3],5,[6,1,8],[4,4,3]]],[[[0,1,1],[0,10,5],[2,8],[2,2,6]],7,[6],[8]],[2],[1,[8,[0,2,7,9,10],10,10],[],9,6]] + +[[[[],4,5,[0,5,5,6,2]],10,8],[10,[],[4,9,2]],[[5,6,0,8,[7,0,1]],6],[[3,[9]]],[4,[]]] +[[[10,[8]]]] + +[[[[1]],9,10,1],[3,0]] +[[[[4,9,8]],[[],[6,4,2,10,1],0],[9,[2,6,2,0]]]] + +[[[8,[],2],0]] +[[2],[],[2,[[0,4,5],1,[8,6,5]],10,1,[8]],[],[2,[[],[1,6,4],10,[10,6,9,4,9]],[1,3],[3,4,2,3,9]]] + +[[[10,[9,5],[10,9,8]],[[4,10,5],8],[[4,4],[6,0]],9],[[1,4],6,[2],[0,5],4],[1],[[[2,7],[3,5,7,7,3],[7,10,3,3]],[5,4,[5,2,4],10,6],[[4],[3,8,0,6],7]]] +[[],[[5,3,10]],[[],8],[[[],[],[5,8,5,7,6],7],[[6,7,1,2,3],10,[],[0,0,1]],2,2],[9,5]] + +[[[3,[5],7,[2,10,0,0]],[[3,10,3,6],10,9,5],7,[],[[8],[4,3,9,0,1],5,1]],[[[0,7,2,3,9],[8,10,9],10,6,[0,8,7]]],[5,10,[],9,10]] +[[5,[10,[6,9,0,3],[9,10,10,10],[2,9,1]],3,5],[[[3,3,1,5,0],[2,5,7,2,9],[2,4,4]],0,10]] + +[[[[],9,[2,3]]]] +[[7],[[]],[8,[[7,8,0,0]],[7,[2],6,10,[0,0,2,6]],10,2]] + +[[8,[10,7],[4,2,[],8,[3,6,6]],[[2],[1,7,10,5,8],[],0],1],[],[]] +[[[[3,6],10],[2,10,6,[10,10,5],9],[[],1,0]],[[7,[9,2,2],1,5,[]],6,[[0,4,6,2,9]],3,3],[0],[],[0,2]] + +[[[2,0,[8]],7],[8,2,7],[],[],[[],10,[0,0,[1,2,7],5],4]] +[[[],[1,10,5],9,[8,[6,4,4],[3,10,7],10]],[[9,[8],[2,7,0,4,0],[]]],[5,9,9,[6,[],6,[]],[[10,3]]],[[6,[4,5]],[3],[[1]],[],[[2,1],6,4,2,1]],[10,6,5,3,[]]] + +[[[]],[[3,9],[[],[10,8,3],10,[4,5,3]],[8],[[2],2],0],[3,1,[2],3,[4]]] +[[[],[[6,3,4,1]],3],[5,4,8,[6,[7,1,8],[]],[[],3,0]],[[5]],[[[8,3],[9,1,8,5,3],[6],[]]],[]] + diff --git a/2022/13/sample b/2022/13/sample @@ -0,0 +1,24 @@ +[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] + diff --git a/2022/13/sol.scm b/2022/13/sol.scm @@ -0,0 +1,53 @@ +#!/usr/local/bin/chicken-csi -ss +(import (chicken string) + (chicken port) + (chicken irregex) + (chicken io)) + +(define (parse line) + ;; HACK: Instead of writing a parser, leverage (read) + (let* ((t1 (irregex-replace/all "\\[" line "(")) + (t2 (irregex-replace/all "]" t1 ")")) + (t3 (irregex-replace/all "," t2 " "))) + (with-input-from-string t3 (lambda () (read))))) + +(define (good? pair) + (let ((l (car pair)) (r (cadr pair))) + (cond ((and (null? l) (null? r)) '()) ; passed the check + ((null? l) #t) ; left ran out first + ((null? r) #f) ; right ran out first + ((and (number? l) (number? r)) + (cond ((< l r) #t) + ((> l r) #f) + (else '()))) ; null => keep checking + ((number? l) (good? (list (list l) r))) + ((number? r) (good? (list l (list r)))) + ; compare items in lists + (else + (let ((g (good? (list (car l) (car r))))) + (cond ((null? g) + (good? (list (cdr l) (cdr r)))) + ((eq? g #f) #f) + ((eq? g #t) #t) + (else "Bad result"))))))) + +(define (parse-lines lines) + (let loop ((lines lines)) + (if (null? lines) + '() + (let ((left (parse (car lines))) + (right (parse (cadr lines)))) ; NOTE: not robust to bad input... (cdddr) + (cons (list left right) (loop (cdddr lines))))))) + +(define (score pairs) + (let loop ((sum 0) (i 1) (ps pairs)) + (if (null? ps) + sum + (if (good? (car ps)) + (loop (+ i sum) (add1 i) (cdr ps)) + (loop sum (add1 i) (cdr ps)))))) + +(define (main args) + (let* ((lines (read-lines)) + (pairs (parse-lines lines))) + (print (score pairs))))