this repo has no description
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

ft: add day 13.2022

+500
+500
2022/day13.livemd
··· 1 + <!-- livebook:{"persist_outputs":true} --> 2 + 3 + # Day 13 4 + 5 + ```elixir 6 + Mix.install([ 7 + {:kino_aoc, git: "https://github.com/ljgago/kino_aoc"} 8 + ]) 9 + ``` 10 + 11 + <!-- livebook:{"output":true} --> 12 + 13 + ``` 14 + :ok 15 + ``` 16 + 17 + ## Section 18 + 19 + <!-- livebook:{"attrs":{"day":"13","session_secret":"ADVENT_OF_CODE_SESSION","variable":"puzzle_input","year":"2022"},"kind":"Elixir.KinoAOC.HelperCell","livebook_object":"smart_cell"} --> 20 + 21 + ```elixir 22 + {:ok, puzzle_input} = 23 + KinoAOC.download_puzzle("2022", "13", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION")) 24 + ``` 25 + 26 + <!-- livebook:{"output":true} --> 27 + 28 + ``` 29 + {:ok, 30 + "[[[2],3,[],[]]]\n[[6,9,1,3,[[2,9],4,8,[9,2,1]]],[],[[3],3]]\n\n[[7,[10,[3,2,6],10,[10],[4,8,7,4,7]]],[9,8,8,7]]\n[[3,9],[2,2,[6,[1,8],[10,7,8]],[[1,9,8],[],[],[2,4,2],[3]]],[8,[],[[7]]]]\n\n[[2,[6,1,0]],[],[]]\n[[[9],[[1,4],[1,10,9,2,6],6,2],4,[[10,9,3,8],6]],[[10,[]],[[1,8],6,6,7,0],[[1,9],0,4,[3],[8,8,8,10]]],[],[8,6,3,[5]],[[10],[[6,4,2,0],6,1,8,0],0,[[9],[3,4,0,5],[10]]]]\n\n[[2,7],[1,[4,[9,9,6]],0]]\n[[[[5,2]],10,5]]\n\n[[4,2,[2,[6]],5],[],[[[8],[6,10]],4,5,[[10,0],[10,1,9,10]]]]\n[[[[3,10,2,9,10],8,[4,5,5],1],[1,4,[6,4,9],[],8]],[10,2],[[0,[4,3,1,5],[2,6,2,1,6],6,[1,1]],7]]\n\n[[[5,2,[7,9,3,2,7],4,[1,3,0,7]]],[[],[[0,0,10],[7],[10,3,0,9]]],[[8,7,6,4],10,[[1,1,0,9,2],[],[6]]],[1,[],4,10,[]],[8,0,5]]\n[[[[10,6,4],[7,2]],7,[[8,9,7,6,5],2,8]],[],[[6,8,8,[7,6,1]]],[[7,5,[6],[2,7,10,4,6],[6,7,9]],[[2,0,2,3,6],[4,1,6,7,0]],[0,0,7,2,1],[[8,7],6,[4],6,1]],[[],[],[[],[9,5,4,8,3]],2]]\n\n[[[5,[4,10,6,9],2,[4,10,9,6,4],[5,2,9,5]]],[],[[1],[[10,6,6,5,10]],6,1]]\n[[[[2,8,6],8,6,4],[[1],8,9]],[10,[],[[2,5],[10],[5,1,6,3]]],[3,[]]]\n\n[[[[10,5,5,5,4]],8],[6,[[6,7,8],[3,2,5,4,6],3,5],1,[[5,7],10,8],[9,7]],[[[],[1,5,3,9],2,10]],[],[]]\n[[[7,10,6,[2],8]],[2,[],[10,[0,2,6]]]]\n\n[[[10,9,[],3]],[[10],[7,[5,8],9]],[[0],[[4,5,1],[5]],[[]],4,[[9],4,1]]]\n[[[[],8,[1,6]],[7]],[],[[7,[6,8],0,5,0],[2,6],[[6,4,7,1]],9]]\n\n[[[],[[5],[6,9]]],[]]\n[[5],[],[[8,[5],2],[2,0,[7],[8,2,1]],[1,[4,9,3],[8,1,3,1,4],[]],6,2]]\n\n[[[[5,3,10,4,10],[5,7],[5,9,2,5,1]]],[[[1],[2],8],10,9,4,[[5,5,7,4],1,[8,9,8]]],[2,[2,8],[7,7,7,0,4]]]\n[[9,4,[5],[]],[3,2,[5],[]],[[[],[4,8],10],8,[]],[7,[[7],7],[[1,4,6,4,7]],[]],[]]\n\n[[9],[[3,4,9,8],10,1],[9,[[8,2],2,2,[1,5]]],[[[1],[6]],2],[4,7,[3],[6,6],6]]\n[[[3,[5,0]],[[3],[5,5,10,0],[],[5,8,7]],3]]\n\n[[1,[1]],[],[10,[3,[5,8],9,[2,1,9],[7,4]],6,[[1],[4,10]],[5,[5,2]]],[[5,9],[8],6]]\n[[8,7,[0,[],10],[6]],[1],[[[9,6,9,7,8],9,[8,8,10,1,0],3,0],[2,2,[10,2],0,7]]]\n\n[[[[10,4,6,3],[1,6,2]],[],7]]\n[[8,1],[5,[[],[8,9,10,1]],5]]\n\n[[],[[4,0,[3,4,4,10,1]],2,[[3,3,3,5,3],3,8],5,10],[6]]\n[[[2,4,6,[9,3],[]]],[4,[1,[8,10,3,5,2],[10,3,9],8,[7,7,3,8,4]],[4,3],10]]\n\n[[3,[8,7,[6,1,5,7]],[9,[],[0,10],[2,1,2,4]],[[2,1,7,2],0,9,8,9],[[3,1,0],10]]]\n[[3,[6,9,4],[[2,1,10],8],10],[5,7,3,[[3,8]]],[6,[8,3,3,8],7,10,5]]\n\n[[[3,3,1],0,8,[3,[7,10,0,6],[7,9,10,7,10],4,1]],[[[],[],9],[9,5,[3,2,7,8],[7]],[[10,3],3],[8,5,[5,6,2,7,0]]],[10,6],[[9,[1]],9,[[1]]]]\n[[[[4],0,6,[8,3,7,6,2],5],10,[2,[0,5],[8,10,10,10,8],1,[2,2]]],[[[4,9,1,6]],[[9,1,3,10,0],7]],[1,7,4,4,[]],[]]\n\n[[4,[1]]]\n[[[[6,2,10,9,10],10],[[7,7,0,7,10],1,7,8],[9,[2,7,0,4]],10]]\n\n[[9],[[4,[8],[4,6,6],10]],[[3],[7,8,7,7]],[[[10,7,3,2,2]],[[],[],4,1,[6,4,10,10]],7,5,[7,5,0,10,[1,5,7]]]]\n[[[[8,8,9,8],[],[9,3,3]]],[8,[2],5,7,8]]\n\n[[[],[[],9,[0,4]]],[],[],[0,[1,[1]],[6,5,[3,10,1,0,6]],2,6]]\n[[6,[[4,4],1,[6]],[[5,5],[],4],7]]\n\n[[],[6,[[8],[7,3,3,6],3,8,[]]],[[0],[],6,[5,10,2,2]],[[0,3,0],2,[[9],2],3],[9,[9],7,2,[6,[],[0,9],1,[0]]]]\n[[3,[2,[10,3,0,6],0],1,9],[2,[[6]],[],[[1,1],7,[5,6,4,2],7,8],[0,[5,8,4],[]]]]\n\n[[5,7,[[7,7,6],7,5,[3,3,10,5]],3,6]]\n[[[[0,5,7]],0,[[8,7,9,1,5]],4],[[],[7,1,[10,9,7,3]],1,2,0],[[[]],[5,9],[10,2,[8,6,7,4],[]]]]\n\n[[9,[]],[[[8,2],[6,4,9,4,9],2],[4,6,9,9],2],[[],4,[[6,2,6],[4,4,9,0],[9,9,6],[2],9],[],1],[[[3,9,0],4],6,[]],[[],4]]\n[[[],[]]]\n\n[[0],[[[9,7,7],[3]]],[4,4],[],[6,5,[8,5,[3],[3,2,10,10,8],[6]]]]\n[[[3,[3,9,9],9,[0],10]],[],[[],[],[]],[[0,[5,6,3,3,4]],3,7],[[[0,4,5,2,0],10],9,9,[[0,1],6,3]]]\n\n[[6,2],[[]],[1,5,9,[[0,8,3,5,0],[8,8,10],4,9,3],[2,[8,9],[9,8,5,0,3]]]]\n[[2,1,5,5,9],[4,7],[[[9],[4,0,4,0],3,[]],3,[2],2,5]]\n\n[[[[]],[7,2],[0,[4,1],3],10],[[9],3],[[],9,[5,[2]],5],[0,[[3],[],[9,7,5],3,2],[5],[5]]]\n[[[[9,9],3,8,3],[10,[1,6,7,6,0],3,6,[10,10]],5],[],[1,[9,9,5,3],[2,[5,5,3,8,8],3,[1,7],0]]]\n\n[[],[[7,6],[[3],[],3,[0,9],[1]],0,[6]],[6,[[10,8,5,4],3]],[]]\n[[[[],[0,1,9],1,[3],7],0,[2,[2,4,1,0,9]],[[6,3,3,3,5]],[4]],[],[],[1,[],[],5,[[],1,1,[3]]]]\n\n[[3],[[[],5,[3,1,7,2],[10,10,5],[9,4,4,7,2]]],[8,[],8,[[2]],8]]\n[[],[[3,[0,6,7]],7,7],[2,6,[2,[],[]],[],[[1,9,2,6,9],[6],[9,6,3,1],4,[]]],[6,9,[[8,10,8,5,7],[6],[3]],5],[[[5,4,6],1,[1,10,9,2,2]],[[9,8,10],9,3,[2,4,1,10,0],[4]],6,7]]\n\n[[10,5],[],[[[4,3,5],[10],[10]]," <> ...} 31 + ``` 32 + 33 + ```elixir 34 + signals = 35 + puzzle_input 36 + |> String.split("\n\n", trim: true) 37 + |> Enum.map(fn chunk -> 38 + chunk 39 + |> String.split("\n", trim: true) 40 + |> Enum.map(&Code.string_to_quoted!/1) 41 + end) 42 + ``` 43 + 44 + <!-- livebook:{"output":true} --> 45 + 46 + ``` 47 + [ 48 + [[[[2], 3, [], []]], [[6, 9, 1, 3, [[2, 9], 4, 8, [9, 2, 1]]], [], [[3], 3]]], 49 + [ 50 + [[7, [10, [3, 2, 6], 10, '\n', [4, 8, 7, 4, 7]]], '\t\b\b\a'], 51 + [[3, 9], [2, 2, [6, [1, 8], '\n\a\b'], [[1, 9, 8], [], [], [2, 4, 2], [3]]], [8, [], ['\a']]] 52 + ], 53 + [ 54 + [[2, [6, 1, 0]], [], []], 55 + [ 56 + ['\t', [[1, 4], [1, 10, 9, 2, 6], 6, 2], 4, [[10, 9, 3, 8], 6]], 57 + [[10, []], [[1, 8], 6, 6, 7, 0], [[1, 9], 0, 4, [3], '\b\b\b\n']], 58 + [], 59 + [8, 6, 3, [5]], 60 + ['\n', [[6, 4, 2, 0], 6, 1, 8, 0], 0, ['\t', [3, 4, 0, 5], '\n']] 61 + ] 62 + ], 63 + [[[2, 7], [1, [4, [9, 9, 6]], 0]], [[[[5, 2]], 10, 5]]], 64 + [ 65 + [[4, 2, [2, [6]], 5], [], [['\b', [6, 10]], 4, 5, [[10, 0], [10, 1, 9, 10]]]], 66 + [ 67 + [[[3, 10, 2, 9, 10], 8, [4, 5, 5], 1], [1, 4, [6, 4, 9], [], 8]], 68 + [10, 2], 69 + [[0, [4, 3, 1, 5], [2, 6, 2, 1, 6], 6, [1, 1]], 7] 70 + ] 71 + ], 72 + [ 73 + [ 74 + [[5, 2, [7, 9, 3, 2, 7], 4, [1, 3, 0, 7]]], 75 + [[], [[0, 0, 10], '\a', [10, 3, 0, 9]]], 76 + [[8, 7, 6, 4], 10, [[1, 1, 0, 9, 2], [], [6]]], 77 + [1, [], 4, 10, []], 78 + [8, 0, 5] 79 + ], 80 + [ 81 + [[[10, 6, 4], [7, 2]], 7, [[8, 9, 7, 6, 5], 2, 8]], 82 + [], 83 + [[6, 8, 8, [7, 6, 1]]], 84 + [ 85 + [7, 5, [6], [2, 7, 10, 4, 6], [6, 7, 9]], 86 + [[2, 0, 2, 3, 6], [4, 1, 6, 7, 0]], 87 + [0, 0, 7, 2, 1], 88 + ['\b\a', 6, [4], 6, 1] 89 + ], 90 + [[], [], [[], [9, 5, 4, 8, 3]], 2] 91 + ] 92 + ], 93 + [ 94 + [[[5, [4, 10, 6, 9], 2, [4, 10, 9, 6, 4], [5, 2, 9, 5]]], [], [[1], [[10, 6, 6, 5, 10]], 6, 1]], 95 + [[[[2, 8, 6], 8, 6, 4], [[1], 8, 9]], [10, [], [[2, 5], '\n', [5, 1, 6, 3]]], [3, []]] 96 + ], 97 + [ 98 + [ 99 + [[[10, 5, 5, 5, 4]], 8], 100 + [6, [[6, 7, 8], [3, 2, 5, 4, 6], 3, 5], 1, [[5, 7], 10, 8], '\t\a'], 101 + [[[], [1, 5, 3, 9], 2, 10]], 102 + [], 103 + [] 104 + ], 105 + [[[7, 10, 6, [2], 8]], [2, [], [10, [0, 2, 6]]]] 106 + ], 107 + [ 108 + [[[10, 9, [], 3]], ['\n', [7, [5, 8], 9]], [[0], [[4, 5, 1], [5]], [[]], 4, ['\t', 4, 1]]], 109 + [[[[], 8, [1, 6]], '\a'], [], [[7, [6, 8], 0, 5, 0], [2, 6], [[6, 4, 7, 1]], 9]] 110 + ], 111 + [ 112 + [[[], [[5], [6, 9]]], []], 113 + [[5], [], [[8, [5], 2], [2, 0, '\a', [8, 2, 1]], [1, [4, 9, 3], [8, 1, 3, 1, 4], []], 6, 2]] 114 + ], 115 + [ 116 + [ 117 + [[[5, 3, 10, 4, 10], [5, 7], [5, 9, 2, 5, 1]]], 118 + [[[1], [2], 8], 10, 9, 4, [[5, 5, 7, 4], 1, '\b\t\b']], 119 + [2, [2, 8], [7, 7, 7, 0, 4]] 120 + ], 121 + [ 122 + [9, 4, [5], []], 123 + [3, 2, [5], []], 124 + [[[], [4, 8], 10], 8, []], 125 + [7, ['\a', 7], [[1, 4, 6, 4, 7]], []], 126 + [] 127 + ] 128 + ], 129 + [ 130 + [ 131 + '\t', 132 + [[3, 4, 9, 8], 10, 1], 133 + [9, [[8, 2], 2, 2, [1, 5]]], 134 + [[[1], [6]], 2], 135 + [4, 7, [3], [6, 6], 6] 136 + ], 137 + [[[3, [5, 0]], [[3], [5, 5, 10, 0], [], [5, 8, 7]], 3]] 138 + ], 139 + [ 140 + [ 141 + [1, [1]], 142 + [], 143 + [10, [3, [5, 8], 9, [2, 1, 9], [7, 4]], 6, [[1], [4, 10]], [5, [5, 2]]], 144 + [[5, 9], '\b', 6] 145 + ], 146 + [ 147 + [8, 7, [0, [], 10], [6]], 148 + [1], 149 + [[[9, 6, 9, 7, 8], 9, [8, 8, 10, 1, 0], 3, 0], [2, 2, [10, 2], 0, 7]] 150 + ] 151 + ], 152 + [[[[[10, 4, 6, 3], [1, 6, 2]], [], 7]], [[8, 1], [5, [[], [8, 9, 10, 1]], 5]]], 153 + [ 154 + [[], [[4, 0, [3, 4, 4, 10, 1]], 2, [[3, 3, 3, 5, 3], 3, 8], 5, 10], [6]], 155 + [ 156 + [[2, 4, 6, [9, 3], []]], 157 + [4, [1, [8, 10, 3, 5, 2], [10, 3, 9], 8, [7, 7, 3, 8, 4]], [4, 3], 10] 158 + ] 159 + ], 160 + [ 161 + [ 162 + [ 163 + 3, 164 + [8, 7, [6, 1, 5, 7]], 165 + [9, [], [0, 10], [2, 1, 2, 4]], 166 + [[2, 1, 7, 2], 0, 9, 8, 9], 167 + [[3, 1, 0], 10] 168 + ] 169 + ], 170 + [[3, [6, 9, 4], [[2, 1, 10], 8], 10], [5, 7, 3, [[3, 8]]], [6, [8, 3, 3, 8], 7, 10, 5]] 171 + ], 172 + [ 173 + [ 174 + [[3, 3, 1], 0, 8, [3, [7, 10, 0, 6], '\a\t\n\a\n', 4, 1]], 175 + [[[], [], 9], [9, 5, [3, 2, 7, 8], '\a'], [[10, 3], 3], [8, 5, [5, 6, 2, 7, 0]]], 176 + [10, 6], 177 + [[9, [1]], 9, [[1]]] 178 + ], 179 + [ 180 + [[[4], 0, 6, [8, 3, 7, 6, 2], 5], 10, [2, [0, 5], '\b\n\n\n\b', 1, [2, 2]]], 181 + [[[4, 9, 1, 6]], [[9, 1, 3, 10, 0], 7]], 182 + [1, 7, 4, 4, []], 183 + [] 184 + ] 185 + ], 186 + [[[4, [1]]], [[[[6, 2, 10, 9, 10], 10], [[7, 7, 0, 7, 10], 1, 7, 8], [9, [2, 7, 0, 4]], 10]]], 187 + [ 188 + [ 189 + '\t', 190 + [[4, '\b', [4, 6, 6], 10]], 191 + [[3], '\a\b\a\a'], 192 + [[[10, 7, 3, 2, 2]], [[], [], 4, 1, [6, 4, 10, 10]], 7, 5, [7, 5, 0, 10, [1, 5, 7]]] 193 + ], 194 + [[['\b\b\t\b', [], [9, 3, 3]]], [8, [2], 5, 7, 8]] 195 + ], 196 + [ 197 + [[[], [[], 9, [0, 4]]], [], [], [0, [1, [1]], [6, 5, [3, 10, 1, 0, 6]], 2, 6]], 198 + [[6, [[4, 4], 1, [6]], [[5, 5], [], 4], 7]] 199 + ], 200 + [ 201 + [ 202 + [], 203 + [6, ['\b', [7, 3, 3, 6], 3, 8, []]], 204 + [[0], [], 6, [5, 10, 2, 2]], 205 + [[0, 3, 0], 2, ['\t', 2], 3], 206 + [9, '\t', 7, 2, [6, [], [0, 9], 1, [0]]] 207 + ], 208 + [ 209 + [3, [2, [10, 3, 0, 6], 0], 1, 9], 210 + [2, [[6]], [], [[1, 1], 7, [5, 6, 4, 2], 7, 8], [0, [5, 8, 4], []]] 211 + ] 212 + ], 213 + [ 214 + [[5, 7, [[7, 7, 6], 7, 5, [3, 3, 10, 5]], 3, 6]], 215 + [ 216 + [[[0, 5, 7]], 0, [[8, 7, 9, 1, 5]], 4], 217 + [[], [7, 1, [10, 9, 7, 3]], 1, 2, 0], 218 + [[[]], [5, 9], [10, 2, [8, 6, 7, 4], []]] 219 + ] 220 + ], 221 + [ 222 + [ 223 + [9, []], 224 + [[[8, 2], [6, 4, 9, 4, 9], 2], [4, 6, 9, 9], 2], 225 + [[], 4, [[6, 2, 6], [4, 4, 9, 0], [9, 9, 6], [2], 9], [], 1], 226 + [[[3, 9, 0], 4], 6, []], 227 + [[], 4] 228 + ], 229 + [[[], []]] 230 + ], 231 + [ 232 + [[0], [['\t\a\a', [3]]], [4, 4], [], [6, 5, [8, 5, [3], [3, 2, 10, 10, 8], [6]]]], 233 + [ 234 + [[3, [3, 9, 9], 9, [0], 10]], 235 + [], 236 + [[], [], []], 237 + [[0, [5, 6, 3, 3, 4]], 3, 7], 238 + [[[0, 4, 5, 2, 0], 10], 9, 9, [[0, 1], 6, 3]] 239 + ] 240 + ], 241 + [ 242 + [[6, 2], [[]], [1, 5, 9, [[0, 8, 3, 5, 0], '\b\b\n', 4, 9, 3], [2, '\b\t', [9, 8, 5, 0, 3]]]], 243 + [[2, 1, 5, 5, 9], [4, 7], [['\t', [4, 0, 4, 0], 3, []], 3, [2], 2, 5]] 244 + ], 245 + [ 246 + [ 247 + [[[]], [7, 2], [0, [4, 1], 3], 10], 248 + ['\t', 3], 249 + [[], 9, [5, [2]], 5], 250 + [0, [[3], [], [9, 7, 5], 3, 2], [5], [5]] 251 + ], 252 + [ 253 + [['\t\t', 3, 8, 3], [10, [1, 6, 7, 6, 0], 3, 6, '\n\n'], 5], 254 + [], 255 + [1, [9, 9, 5, 3], [2, [5, 5, 3, 8, 8], 3, [1, 7], 0]] 256 + ] 257 + ], 258 + [ 259 + [[], [[7, 6], [[3], [], 3, [0, 9], [1]], 0, [6]], [6, [[10, 8, 5, 4], 3]], []], 260 + [ 261 + [[[], [0, 1, 9], 1, [3], 7], 0, [2, [2, 4, 1, 0, 9]], [[6, 3, 3, 3, 5]], [4]], 262 + [], 263 + [], 264 + [1, [], [], 5, [[], 1, 1, [3]]] 265 + ] 266 + ], 267 + [ 268 + [[3], [[[], 5, [3, 1, 7, 2], [10, 10, 5], [9, 4, 4, 7, 2]]], [8, [], 8, [[2]], 8]], 269 + [ 270 + [], 271 + [[3, [0, 6, 7]], 7, 7], 272 + [2, 6, [2, [], []], [], [[1, 9, 2, 6, 9], [6], [9, 6, 3, 1], 4, []]], 273 + [6, 9, [[8, 10, 8, 5, 7], [6], [3]], 5], 274 + [[[5, 4, 6], 1, [1, 10, 9, 2, 2]], ['\t\b\n', 9, 3, [2, 4, 1, 10, 0], [4]], 6, 7] 275 + ] 276 + ], 277 + [ 278 + [[10, 5], [], [[[4, 3, 5], '\n', '\n'], 10, 8, 2, []], [[]], [5, 0]], 279 + [ 280 + [[], 6, [5, 10]], 281 + [[4, 3, [9, 1, 10, 0, 10], [6]], [[0, 2, 6, 5]], 7, [2, 7, [], 7, [7, 8, 3, 2]]], 282 + [[7, [5, 4, 8, 4], 0, 4, '\b'], 3] 283 + ] 284 + ], 285 + [ 286 + [ 287 + [[[10, 2, 1], [3], 3], [[3, 6], [3, 10, 2, 8], [], 6], 8, [[], 8, 8]], 288 + [[[2, 5, 0, 9], 10], [[8, 8, 0, 2], [6], '\b'], ['\n', [5, 7, 8]], 10], 289 + [[6], 9], 290 + [[[], [4, 2, 9, 3, 10], 0, [2], 9]] 291 + ], 292 + [ 293 + [[[0, 6, 6, 2], [6, 9, 6, 6, 1]], [[], 5], 6, 0], 294 + [[[4, 9, 1, 3, 0]], 7, 3, 2], 295 + [8, [], 10, ['\t', [3, 8], 0, [8, 1, 10]]], 296 + [[[5, 8], [1, 6, 0, 6]]], 297 + [ 298 + [1, 8, 8, [4, 1, 10, 3]], 299 + [[8, 1, 4, 6, 1], [], [6, 0, 1, 8], 0], 300 + 7, 301 + 6, 302 + [2, [2, 4, 4, 9, 0], 10, []] 303 + ] 304 + ] 305 + ], 306 + [ 307 + [ 308 + [[[5], 1, [], 1, 1], [[3, 10, 6, 4], 2, [6, 8, 2], 7], [7, [7, 0, 8, 10, 8], 1], 10, 1], 309 + [ 310 + ['\t\a', 10, '\a', 8], 311 + [8, [9, 10, 6, 10], 0, [1, 10]], 312 + [[], [10, 3, 4], [8, 3, 0, 7, 7], [6, 8], 3], 313 + 1 314 + ], 315 + [ 316 + 4, 317 + [[], [0, 2, 1, 6], [], 10, [9, 10, 5, 9, 0]], 318 + [6, [5], [6, 10, 0, 5, 7], [2, 6, 0, 8], []] 319 + ] 320 + ], 321 + ['\t\b'] 322 + ], 323 + [ 324 + [ 325 + [0, []], 326 + [[5], 10, 5, [[4, 10, 8]]], 327 + [[], [[], [8, 1, 7], 2], [[4]], 4], 328 + [[], []], 329 + [7, [2, 6], 9, [3, [2, 4, 4, 3], 7]] 330 + ], 331 + [[7, 3, 7, [2, 6, [0, 1, 10, 3], '\a'], 10], [], []] 332 + ], 333 + [[[5, 10, 1, [[0, 4, 4, 3], [7, 4, 8, 2, 8], 0]]], [[], [10, [], [[8, 10, 9, 7, 0], 0, 7, 9]]]], 334 + [ 335 + [[8, [7, [5]]], [7, 9, [8, 9, [5, 3], 1, 10]]], 336 + [[6, 2, [[7, 4, 6], 1, 6, [3]]], [5, 6, 4, [[3, 3, 5, 3]]], [7, []], '\t', [4]] 337 + ], 338 + [ 339 + [[0, [[1], 10, 3, 8, 9], 6]], 340 + [ 341 + [[6, 1], 0, 5], 342 + [7, ['\t\t', 3], []], 343 + [[5, 4, [0, 10, 4, 9]], 10, 5, [[9, 5, 2, 8, 8], 8, 2, [1, 9, ...]]] 344 + ] 345 + ], 346 + [ 347 + [ 348 + '\t', 349 + [[[], [1, 9, 9, 0, 6], [9, 1, 7, 5, 0]], 4, 5, 3], 350 + [[], [[9, 9, 10, 3], 2, [], 6, 0]], 351 + [] 352 + ], 353 + [[[], 2, 7], [[1, 7, [4, 2], 8], 10]] 354 + ], 355 + [ 356 + [[3, 9, 5, 7, 8], [], [6, 9], [9, [], 7]], 357 + [ 358 + [['\n', 8, 0, [3, 7, 5, 5]]], 359 + [0, [5, 1, [10, 1, 1], [6]]], 360 + [[[2, 8, 6], [1, 4, 6], [5, 1], [6, 3]]], 361 + [[0, 7, 0], [6, [8, 2, 0, ...], '\b\t', [7, ...]], [7, 2, 7, [...], ...]], 362 + [[[], [], [3, 4, ...], '\b'], 5, 4] 363 + ] 364 + ], 365 + [ 366 + [ 367 + [10, 5], 368 + [], 369 + [[[3, 10], 1, [6, 4, 0], 5, 4], 6, [[], 4, [0], [7, ...]], '\n', 5], 370 + [1, [[9, 0]]], 371 + [9, 1, 4, 4, 4] 372 + ], 373 + [ 374 + [0, 6, [[0, 6, 9]]], 375 + [], 376 + [3, [9, 5, [4, 7, ...], [2, ...], [...]], 9, 3, [[9, ...]]], 377 + [[2, 0], [5, [10, 2], [0, ...]], 0, [[4, ...], [...], ...]] 378 + ] 379 + ], 380 + [ 381 + [ 382 + [9, 9, 5, 0, 10], 383 + [], 384 + [[6], 1], 385 + [9, 6, [], [[6, ...], [], ...]], 386 + [6, [2, [4, ...], [...]], [4, [...], ...], 0, []] 387 + ], 388 + [[], [5, 9, 5, [[1, 3, ...], 4, 10, ...], [3]], []] 389 + ], 390 + [ 391 + [ 392 + [1, 1], 393 + [7, ['\t\b', []], 5], 394 + [['\a\b\a', 8, [6, 0], [2, ...], [...]], 9, 10], 395 + [[8, 7, [6, ...]], [[2, 3], 2, 7, ...], []], 396 + '\a' 397 + ], 398 + [ 399 + [[[0, 8, 8, 4, 6], '\a\a\n\t', 10, [8, 9, ...], 4], [[8, 7, 6, 7]], [5, 8, []]], 400 + [], 401 + [[0, 0, 1]], 402 + [], 403 + [8, [], 4] 404 + ] 405 + ], 406 + [ 407 + [ 408 + [3, [[], [], [10, 5, ...]], 8, 1, [[1, ...], [...], ...]], 409 + [9, 7, [10, 5]], 410 + [[[], [5, 0, ...], 7], '\b\b'], 411 + [5, [1, 8, ...]] 412 + ], 413 + [[[[3, 8, 4], [], [1, 3, ...], 8], 1, [5, [4, ...], '\b'], [[5, ...], 3, ...]]] 414 + ], 415 + [ 416 + [[3, [9, [4, 4], [6], 6], 9, 10, 5], [], [[0, 0, [...]], 0], [8, [5, ...], 0, ...], []], 417 + [[10, [], '\a', [[...]]], [], [[[8, ...], 1, ...]]] 418 + ], 419 + [ 420 + [ 421 + [[[8, 6, 1], 5, [1, ...], [...], ...], [0, 6, [], ...], 9, [[...]], 1], 422 + [1, 3, 1], 423 + [['\n\t\a\b', 8, ...], [9, ...], [...], ...] 424 + ], 425 + [[[], 2, 10, [...], ...], [7, 2, 4, ...], [[[], ...]]] 426 + ], 427 + [ 428 + [[], [10, [4, ...], [...], ...], [[5, ...], [], ...], [[...]]], 429 + [[['\n'], [8, ...], [...]], [6], [], [...]] 430 + ], 431 + [[0, 3, 2, 5], [0, 3, 2, ...]], 432 + [[[[2, ...], 9, ...], [[...], ...], [...], ...], [[9, ...], [...]]], 433 + [[[[...], ...], [...]], [[...], ...]], 434 + [[[...], ...], [...]], 435 + [[...], ...], 436 + [...], 437 + ... 438 + ] 439 + ``` 440 + 441 + ```elixir 442 + defmodule Signal do 443 + def compare([], []), do: :eq 444 + def compare([], [_ | _]), do: :lt 445 + def compare(a, a), do: :eq 446 + def compare(a, b) when is_integer(a) and is_integer(b) and a < b, do: :lt 447 + def compare([a | as], [b | bs]), do: with(:eq <- compare(a, b), do: compare(as, bs)) 448 + 449 + def compare(a, b) 450 + when is_integer(a) and is_list(b) 451 + when is_list(a) and is_integer(b), 452 + do: compare(List.wrap(a), List.wrap(b)) 453 + 454 + def compare(_, _), do: :gt 455 + end 456 + ``` 457 + 458 + <!-- livebook:{"output":true} --> 459 + 460 + ``` 461 + {:module, Signal, <<70, 79, 82, 49, 0, 0, 8, ...>>, {:compare, 2}} 462 + ``` 463 + 464 + ## Task 1 465 + 466 + ```elixir 467 + signals 468 + |> Enum.with_index(1) 469 + |> Enum.filter(fn {[a, b], _idx} -> Signal.compare(a, b) != :gt end) 470 + |> Enum.map(&elem(&1, 1)) 471 + |> Enum.sum() 472 + ``` 473 + 474 + <!-- livebook:{"output":true} --> 475 + 476 + ``` 477 + 6656 478 + ``` 479 + 480 + ## Task 2 481 + 482 + ```elixir 483 + div1 = [[2]] 484 + div2 = [[6]] 485 + 486 + signals 487 + |> Enum.concat([[div1], [div2]]) 488 + |> Enum.concat() 489 + |> Enum.sort(Signal) 490 + |> Enum.with_index(1) 491 + |> Enum.filter(fn {packet, _idx} -> packet in [div1, div2] end) 492 + |> Enum.map(&elem(&1, 1)) 493 + |> Enum.product() 494 + ``` 495 + 496 + <!-- livebook:{"output":true} --> 497 + 498 + ``` 499 + 19716 500 + ```