- commit
- 91aae04b8a8bc8519d302c3d9b85b75c6c252688
- parent
- 3d092fa146c4b2e3e61c75c28e317a556690a307
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-12-03 10:15
2024-12-02
Diffstat
A | 2024/02/input.txt | 1000 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | 2024/02/solution.rs | 55 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | 2024/02/test.txt | 6 | ++++++ |
3 files changed, 1061 insertions, 0 deletions
diff --git a/2024/02/input.txt b/2024/02/input.txt
@@ -0,0 +1,1000 @@ -1 1 55 56 59 62 61 -1 2 68 70 71 74 75 76 78 78 -1 3 52 55 56 58 62 -1 4 73 76 79 82 84 85 87 94 -1 5 1 4 5 6 3 4 -1 6 77 80 78 80 83 81 -1 7 69 72 73 71 71 -1 8 14 15 17 18 17 21 -1 9 39 42 43 45 47 46 53 -1 10 72 73 73 74 75 -1 11 48 49 51 51 53 54 51 -1 12 39 40 41 41 43 43 -1 13 14 16 19 20 23 23 25 29 -1 14 69 70 70 73 80 -1 15 79 80 81 84 88 89 92 93 -1 16 7 10 13 17 18 16 -1 17 67 70 73 75 79 81 84 84 -1 18 81 82 84 88 89 93 -1 19 76 79 81 83 84 88 94 -1 20 71 72 73 80 82 83 -1 21 24 26 29 36 33 -1 22 69 70 72 73 76 81 81 -1 23 6 9 12 17 21 -1 24 45 46 52 55 58 59 66 -1 25 24 23 24 25 26 29 32 -1 26 45 43 45 48 49 51 50 -1 27 3 2 5 6 7 9 11 11 -1 28 27 25 26 29 31 32 33 37 -1 29 17 15 18 19 22 24 30 -1 30 69 68 71 70 72 -1 31 38 36 38 41 44 41 38 -1 32 16 14 12 15 15 -1 33 37 34 36 33 36 39 40 44 -1 34 80 77 78 81 79 86 -1 35 57 55 57 57 60 -1 36 31 29 30 30 28 -1 37 77 76 79 79 79 -1 38 75 73 74 76 76 80 -1 39 14 11 11 12 15 22 -1 40 72 69 72 74 78 80 81 -1 41 80 77 79 83 85 87 86 -1 42 32 29 33 36 37 39 41 41 -1 43 7 5 9 10 14 -1 44 18 17 20 23 24 26 30 35 -1 45 86 84 87 89 94 95 98 -1 46 32 29 30 37 39 38 -1 47 27 26 28 30 31 38 41 41 -1 48 20 18 25 27 31 -1 49 84 81 83 88 89 94 -1 50 21 21 24 27 28 31 32 -1 51 15 15 18 21 24 22 -1 52 42 42 43 46 47 47 -1 53 35 35 38 39 43 -1 54 61 61 63 65 67 74 -1 55 23 23 21 24 27 29 -1 56 8 8 6 9 10 9 -1 57 84 84 83 86 86 -1 58 67 67 69 71 73 70 74 -1 59 85 85 84 87 93 -1 60 9 9 11 14 17 17 20 -1 61 33 33 34 34 31 -1 62 65 65 68 68 71 71 -1 63 60 60 62 62 63 67 -1 64 11 11 14 14 20 -1 65 18 18 21 24 26 28 32 34 -1 66 43 43 44 47 51 52 55 52 -1 67 58 58 61 65 67 68 68 -1 68 55 55 57 61 63 67 -1 69 72 72 76 78 79 80 85 -1 70 1 1 2 9 12 13 -1 71 80 80 83 89 90 93 92 -1 72 24 24 26 33 36 38 38 -1 73 17 17 18 19 26 30 -1 74 21 21 23 26 33 34 37 44 -1 75 30 34 37 39 41 44 -1 76 24 28 30 31 32 35 38 36 -1 77 84 88 90 91 92 95 95 -1 78 60 64 67 70 73 76 79 83 -1 79 9 13 15 16 19 21 22 27 -1 80 46 50 51 52 49 50 51 53 -1 81 68 72 71 73 74 72 -1 82 14 18 16 19 21 23 24 24 -1 83 50 54 55 58 55 58 62 -1 84 76 80 82 81 82 85 88 93 -1 85 66 70 73 73 76 78 81 83 -1 86 37 41 42 42 43 45 43 -1 87 7 11 14 14 14 -1 88 5 9 11 11 12 16 -1 89 10 14 17 17 18 21 22 28 -1 90 32 36 38 42 43 -1 91 51 55 59 62 63 64 65 63 -1 92 14 18 19 20 24 27 29 29 -1 93 33 37 38 39 41 45 46 50 -1 94 74 78 82 85 88 89 96 -1 95 56 60 65 67 69 -1 96 30 34 36 38 43 42 -1 97 74 78 79 80 85 85 -1 98 75 79 86 87 89 91 93 97 -1 99 78 82 84 90 92 93 99 -1 100 65 72 75 77 80 82 -1 101 82 89 91 93 94 95 93 -1 102 49 56 59 62 62 -1 103 18 25 27 28 30 34 -1 104 46 52 54 56 57 62 -1 105 13 19 21 22 23 21 23 -1 106 26 32 29 31 32 31 -1 107 91 96 98 95 95 -1 108 47 52 54 51 53 55 58 62 -1 109 79 84 81 82 83 90 -1 110 75 82 82 83 86 -1 111 76 83 83 84 86 84 -1 112 9 14 17 17 17 -1 113 26 32 35 37 39 39 40 44 -1 114 40 45 45 46 53 -1 115 58 65 69 71 72 74 -1 116 34 40 44 46 48 45 -1 117 46 53 55 56 60 63 63 -1 118 18 25 29 30 34 -1 119 4 9 10 11 15 22 -1 120 51 56 61 63 64 67 70 -1 121 13 18 23 25 28 31 32 29 -1 122 16 21 27 28 28 -1 123 25 32 34 41 43 47 -1 124 29 34 37 44 47 50 55 -1 125 36 34 33 31 28 25 22 23 -1 126 27 25 22 21 21 -1 127 15 12 9 7 6 5 1 -1 128 47 46 45 44 37 -1 129 80 78 79 77 74 73 70 -1 130 16 13 11 8 5 2 4 6 -1 131 51 50 48 49 47 46 43 43 -1 132 21 18 19 17 15 13 9 -1 133 41 40 38 40 39 33 -1 134 9 8 6 6 5 -1 135 44 41 41 40 38 41 -1 136 99 96 93 93 93 -1 137 40 38 36 36 33 30 27 23 -1 138 27 25 24 24 22 17 -1 139 93 92 88 86 85 83 81 -1 140 49 46 45 41 38 41 -1 141 71 69 65 63 61 59 58 58 -1 142 51 50 48 44 41 40 38 34 -1 143 44 41 37 34 32 31 30 25 -1 144 14 13 8 5 4 2 -1 145 32 31 28 21 20 19 16 18 -1 146 39 36 35 32 27 26 26 -1 147 49 48 46 39 35 -1 148 56 54 53 47 40 -1 149 54 55 54 52 49 48 47 -1 150 78 79 78 75 74 73 76 -1 151 95 96 94 91 89 86 85 85 -1 152 73 74 72 70 69 65 -1 153 91 93 92 90 88 83 -1 154 81 84 83 86 84 83 -1 155 48 50 49 47 49 48 45 46 -1 156 88 90 88 87 89 87 87 -1 157 47 49 48 46 43 46 42 -1 158 47 48 47 46 48 42 -1 159 23 24 21 18 18 17 -1 160 66 67 67 65 68 -1 161 50 53 52 51 51 48 48 -1 162 89 92 92 90 89 85 -1 163 92 93 91 88 87 85 85 80 -1 164 88 91 88 86 82 80 -1 165 74 77 73 72 73 -1 166 30 32 29 26 24 20 19 19 -1 167 88 89 88 84 80 -1 168 42 44 40 38 35 34 27 -1 169 94 95 94 88 86 -1 170 18 19 17 14 7 4 5 -1 171 70 72 69 63 62 62 -1 172 28 30 28 27 26 19 17 13 -1 173 57 60 58 56 55 50 44 -1 174 68 68 66 63 61 -1 175 45 45 42 41 42 -1 176 76 76 74 71 68 68 -1 177 81 81 79 78 77 73 -1 178 98 98 96 95 92 87 -1 179 58 58 57 60 57 54 53 -1 180 92 92 89 87 89 87 86 89 -1 181 83 83 80 79 82 80 80 -1 182 52 52 50 47 45 46 43 39 -1 183 41 41 43 40 38 33 -1 184 57 57 56 53 52 52 50 49 -1 185 88 88 85 84 83 83 84 -1 186 72 72 70 67 65 65 65 -1 187 61 61 61 60 56 -1 188 61 61 58 57 55 53 53 48 -1 189 59 59 58 54 53 52 51 50 -1 190 45 45 44 43 41 37 39 -1 191 78 78 76 74 73 69 69 -1 192 86 86 82 81 79 76 73 69 -1 193 36 36 32 30 23 -1 194 24 24 23 22 21 18 11 8 -1 195 15 15 13 6 4 5 -1 196 41 41 38 33 32 32 -1 197 13 13 7 5 1 -1 198 74 74 71 68 65 60 54 -1 199 88 84 82 79 78 75 72 70 -1 200 91 87 84 81 80 79 82 -1 201 74 70 68 67 67 -1 202 58 54 53 52 48 -1 203 95 91 89 86 79 -1 204 51 47 50 49 48 45 44 -1 205 36 32 31 29 31 29 26 29 -1 206 86 82 80 81 80 77 77 -1 207 43 39 36 39 36 32 -1 208 77 73 76 74 71 68 66 60 -1 209 95 91 91 88 85 -1 210 12 8 8 6 5 7 -1 211 53 49 48 48 47 46 46 -1 212 30 26 26 25 21 -1 213 68 64 62 60 58 58 57 51 -1 214 45 41 40 36 35 34 -1 215 23 19 15 12 15 -1 216 38 34 30 27 27 -1 217 54 50 46 45 43 40 36 -1 218 37 33 29 27 24 19 -1 219 56 52 51 49 43 42 -1 220 66 62 56 55 52 49 51 -1 221 65 61 58 56 54 51 44 44 -1 222 70 66 65 62 59 56 50 46 -1 223 98 94 92 85 83 82 81 75 -1 224 52 45 43 41 39 -1 225 43 38 37 34 37 -1 226 57 51 50 49 48 47 44 44 -1 227 38 31 29 27 26 23 19 -1 228 23 16 14 12 7 -1 229 36 30 31 29 28 -1 230 12 6 8 5 8 -1 231 20 13 12 11 12 9 9 -1 232 93 86 84 83 84 82 80 76 -1 233 55 48 49 47 42 -1 234 17 11 9 6 6 3 -1 235 32 26 26 23 20 23 -1 236 89 84 83 83 83 -1 237 79 72 70 70 66 -1 238 56 49 48 48 45 40 -1 239 61 54 50 48 45 44 -1 240 24 18 16 12 11 9 10 -1 241 69 62 61 57 57 -1 242 34 28 27 23 20 19 15 -1 243 85 78 74 72 70 69 66 61 -1 244 59 53 52 51 46 44 43 42 -1 245 65 58 51 48 49 -1 246 98 91 86 83 83 -1 247 48 42 41 35 33 29 -1 248 47 41 40 37 31 28 21 -1 249 52 53 56 59 60 58 -1 250 62 63 65 66 67 67 -1 251 62 65 66 68 71 75 -1 252 42 44 46 47 48 51 53 59 -1 253 89 91 94 93 96 99 -1 254 29 32 34 35 36 34 31 -1 255 28 29 26 28 31 31 -1 256 74 75 73 75 77 79 81 85 -1 257 46 47 44 47 48 54 -1 258 4 6 8 8 11 12 15 18 -1 259 80 81 81 82 79 -1 260 51 52 54 56 56 59 59 -1 261 49 51 51 53 56 60 -1 262 47 50 53 55 55 62 -1 263 6 8 12 15 17 19 21 -1 264 86 89 90 92 96 98 99 96 -1 265 77 78 80 83 87 87 -1 266 55 58 60 63 66 70 71 75 -1 267 55 57 61 64 69 -1 268 83 84 85 92 93 95 -1 269 77 78 83 84 83 -1 270 26 29 34 37 37 -1 271 20 21 23 26 27 33 35 39 -1 272 28 29 30 35 36 37 39 45 -1 273 62 61 64 67 68 70 -1 274 20 18 21 23 26 28 31 29 -1 275 72 70 73 76 79 80 80 -1 276 48 46 49 52 53 55 56 60 -1 277 9 6 7 8 9 10 13 19 -1 278 69 68 65 66 69 72 75 -1 279 40 38 39 40 39 40 38 -1 280 50 48 49 48 48 -1 281 81 79 80 79 83 -1 282 15 14 13 16 18 23 -1 283 10 9 12 14 14 16 18 20 -1 284 96 95 98 98 99 96 -1 285 79 77 79 79 79 -1 286 61 59 61 62 63 63 66 70 -1 287 17 16 17 18 19 19 21 28 -1 288 22 21 25 27 28 -1 289 35 33 34 38 41 39 -1 290 62 61 64 65 69 69 -1 291 46 44 47 51 53 55 59 -1 292 46 44 46 49 50 51 55 62 -1 293 41 39 46 48 50 -1 294 39 38 45 46 45 -1 295 78 75 82 85 85 -1 296 22 21 23 26 28 34 38 -1 297 6 5 12 13 15 18 24 -1 298 58 58 59 62 65 -1 299 21 21 23 24 26 29 32 31 -1 300 96 96 98 99 99 -1 301 84 84 85 87 91 -1 302 68 68 71 74 81 -1 303 6 6 7 10 11 10 11 14 -1 304 31 31 33 36 38 36 34 -1 305 54 54 55 57 59 61 60 60 -1 306 31 31 33 35 34 37 41 -1 307 25 25 27 24 25 30 -1 308 82 82 85 85 86 88 90 -1 309 39 39 41 43 43 46 45 -1 310 39 39 42 43 46 46 46 -1 311 88 88 91 91 95 -1 312 81 81 83 85 85 86 87 93 -1 313 36 36 40 41 43 44 46 -1 314 2 2 5 9 8 -1 315 8 8 11 12 16 18 18 -1 316 79 79 81 85 89 -1 317 47 47 50 54 61 -1 318 77 77 79 81 88 89 -1 319 60 60 63 66 68 74 75 74 -1 320 76 76 83 85 87 87 -1 321 34 34 41 43 47 -1 322 65 65 68 71 76 81 -1 323 3 7 8 11 12 14 17 -1 324 53 57 59 60 61 60 -1 325 28 32 33 34 36 37 37 -1 326 45 49 51 53 54 57 61 -1 327 55 59 61 63 68 -1 328 43 47 50 51 50 53 55 57 -1 329 1 5 7 10 13 12 11 -1 330 43 47 48 51 48 51 51 -1 331 80 84 82 83 85 89 -1 332 38 42 44 45 46 44 49 -1 333 41 45 47 48 50 53 53 56 -1 334 2 6 6 8 11 12 14 12 -1 335 10 14 17 20 20 21 24 24 -1 336 12 16 18 21 23 23 26 30 -1 337 30 34 37 39 42 44 44 49 -1 338 53 57 59 62 64 68 70 -1 339 68 72 76 77 75 -1 340 9 13 16 20 22 22 -1 341 78 82 83 87 89 91 92 96 -1 342 12 16 17 19 23 25 28 35 -1 343 76 80 86 89 90 93 -1 344 86 90 91 92 98 99 98 -1 345 61 65 68 71 76 76 -1 346 24 28 30 36 40 -1 347 31 35 37 40 41 46 49 56 -1 348 43 50 51 52 55 58 60 -1 349 43 48 51 54 56 59 58 -1 350 55 62 65 68 70 71 74 74 -1 351 10 16 19 20 21 23 25 29 -1 352 80 87 89 92 97 -1 353 91 96 94 97 99 -1 354 82 87 88 85 87 86 -1 355 16 23 20 21 24 24 -1 356 20 25 22 25 28 32 -1 357 27 34 37 36 37 38 45 -1 358 80 85 88 91 93 96 96 99 -1 359 47 52 54 54 57 60 58 -1 360 62 68 70 71 73 73 73 -1 361 21 28 29 29 31 34 35 39 -1 362 40 45 46 46 47 52 -1 363 61 68 70 74 77 79 80 81 -1 364 76 81 84 85 87 88 92 91 -1 365 79 85 86 90 90 -1 366 57 62 65 69 73 -1 367 11 18 21 25 28 29 31 37 -1 368 74 79 86 87 89 90 91 93 -1 369 5 12 14 19 21 23 24 22 -1 370 36 43 45 47 48 53 53 -1 371 27 34 39 40 44 -1 372 64 69 75 78 81 82 88 -1 373 55 54 52 51 52 -1 374 73 70 68 67 67 -1 375 83 82 81 80 79 76 73 69 -1 376 24 23 22 19 18 16 14 8 -1 377 99 97 95 96 95 92 -1 378 23 20 21 20 19 17 14 15 -1 379 25 23 24 23 21 18 18 -1 380 53 51 49 47 48 46 42 -1 381 87 84 82 85 80 -1 382 95 93 91 88 88 86 83 -1 383 90 87 85 84 83 83 85 -1 384 69 66 63 63 61 60 60 -1 385 13 11 11 10 6 -1 386 59 57 57 56 51 -1 387 43 40 37 35 33 29 26 25 -1 388 14 13 9 8 6 5 8 -1 389 77 74 72 70 66 64 64 -1 390 46 44 41 37 33 -1 391 59 58 54 51 46 -1 392 55 52 45 43 42 41 40 -1 393 39 36 35 34 33 28 29 -1 394 47 45 40 39 39 -1 395 47 45 43 37 35 33 32 28 -1 396 96 94 92 87 84 81 79 72 -1 397 43 46 45 44 42 40 37 -1 398 79 82 80 77 74 73 71 74 -1 399 42 44 43 41 40 37 37 -1 400 57 58 57 56 53 52 48 -1 401 78 79 78 75 74 71 66 -1 402 31 32 31 34 31 -1 403 25 28 27 29 30 -1 404 37 38 37 35 36 34 34 -1 405 68 71 70 73 71 67 -1 406 20 22 25 22 21 14 -1 407 98 99 98 95 95 94 -1 408 84 86 83 82 82 80 77 80 -1 409 57 59 57 57 56 55 55 -1 410 24 27 25 25 22 19 16 12 -1 411 53 54 51 48 48 45 38 -1 412 28 29 27 26 22 19 -1 413 42 44 43 39 36 38 -1 414 88 91 90 89 86 82 82 -1 415 91 94 92 88 86 82 -1 416 27 29 27 23 20 18 11 -1 417 16 17 16 10 9 -1 418 69 70 67 60 58 57 56 58 -1 419 28 31 30 27 26 19 18 18 -1 420 58 61 58 57 50 47 43 -1 421 69 72 71 66 64 63 61 55 -1 422 49 49 47 45 43 -1 423 38 38 35 32 29 32 -1 424 62 62 59 58 57 56 53 53 -1 425 79 79 78 77 73 -1 426 28 28 27 25 24 22 16 -1 427 49 49 51 50 47 46 -1 428 37 37 36 34 31 33 36 -1 429 36 36 37 35 35 -1 430 50 50 47 45 46 43 42 38 -1 431 39 39 38 36 39 34 -1 432 28 28 28 27 24 22 21 19 -1 433 21 21 19 17 15 15 13 14 -1 434 30 30 30 28 25 23 20 20 -1 435 79 79 79 78 75 73 70 66 -1 436 47 47 47 46 40 -1 437 72 72 70 66 64 62 -1 438 49 49 45 44 45 -1 439 82 82 80 76 74 72 72 -1 440 26 26 22 20 16 -1 441 71 71 67 64 63 60 54 -1 442 95 95 93 87 86 -1 443 15 15 14 13 12 6 8 -1 444 69 69 66 64 58 58 -1 445 36 36 34 33 26 23 22 18 -1 446 22 22 17 15 10 -1 447 33 29 27 26 25 22 -1 448 25 21 18 15 14 17 -1 449 71 67 64 61 61 -1 450 71 67 65 62 59 58 54 -1 451 89 85 82 79 77 74 72 67 -1 452 52 48 47 50 47 46 44 42 -1 453 55 51 49 46 49 46 48 -1 454 8 4 2 5 5 -1 455 86 82 84 83 79 -1 456 38 34 32 31 28 29 24 -1 457 49 45 42 40 40 38 35 32 -1 458 24 20 17 15 15 12 15 -1 459 72 68 65 65 65 -1 460 67 63 61 58 56 53 53 49 -1 461 45 41 40 38 36 36 29 -1 462 44 40 37 33 30 28 -1 463 24 20 17 13 11 8 10 -1 464 60 56 54 50 49 48 48 -1 465 30 26 25 21 17 -1 466 26 22 20 17 13 12 5 -1 467 32 28 26 20 17 -1 468 43 39 38 33 30 28 26 29 -1 469 94 90 85 82 82 -1 470 81 77 71 68 66 62 -1 471 99 95 94 89 88 81 -1 472 21 16 15 14 13 12 -1 473 83 76 75 74 73 70 69 71 -1 474 73 68 66 65 63 62 59 59 -1 475 44 37 35 32 28 -1 476 91 86 83 82 81 79 78 72 -1 477 96 90 92 89 86 -1 478 33 27 25 28 25 23 24 -1 479 32 27 24 22 20 23 20 20 -1 480 64 57 60 57 53 -1 481 43 36 33 30 28 31 26 -1 482 10 5 5 3 2 -1 483 65 60 58 58 55 58 -1 484 69 63 63 61 61 -1 485 70 65 62 61 61 57 -1 486 56 51 50 48 45 45 42 36 -1 487 75 70 66 65 62 -1 488 17 11 7 5 6 -1 489 36 29 25 22 20 19 18 18 -1 490 26 20 18 14 13 9 -1 491 43 38 35 34 32 30 26 19 -1 492 66 60 54 52 49 -1 493 54 47 41 38 37 35 36 -1 494 40 33 26 25 25 -1 495 31 26 24 22 19 13 12 8 -1 496 80 73 71 68 62 57 -1 497 11 8 9 16 17 19 22 22 -1 498 25 25 27 26 25 24 22 20 -1 499 71 75 78 82 85 88 91 -1 500 24 26 29 33 34 37 40 42 -1 501 39 45 45 46 47 49 51 -1 502 42 42 44 45 48 52 -1 503 92 95 92 92 92 -1 504 53 56 55 53 53 50 46 -1 505 79 75 72 71 70 67 67 -1 506 26 26 23 19 18 14 -1 507 86 85 88 91 92 95 96 98 -1 508 35 35 38 37 38 -1 509 12 12 13 11 6 -1 510 27 23 26 24 23 23 -1 511 35 39 42 43 46 49 52 54 -1 512 30 24 24 21 18 15 14 14 -1 513 61 55 52 50 48 46 43 46 -1 514 9 7 9 10 8 -1 515 67 68 66 59 55 -1 516 52 56 59 60 63 64 68 65 -1 517 11 14 16 19 22 29 30 35 -1 518 52 58 59 65 66 -1 519 40 45 48 53 55 59 -1 520 47 47 50 52 56 58 62 -1 521 37 41 41 44 47 50 -1 522 22 19 16 15 18 -1 523 21 21 23 27 30 -1 524 68 72 73 74 76 77 80 84 -1 525 61 66 67 71 72 75 73 -1 526 60 63 62 55 54 -1 527 46 50 53 55 55 59 -1 528 60 58 59 58 55 51 -1 529 72 68 61 58 56 55 58 -1 530 25 24 27 28 30 34 38 -1 531 14 17 18 20 22 25 23 23 -1 532 47 40 37 35 34 -1 533 57 58 59 65 67 66 -1 534 74 69 62 61 60 57 58 -1 535 4 10 14 16 17 20 -1 536 13 18 19 20 19 22 29 -1 537 54 54 51 50 45 -1 538 72 69 71 73 70 74 -1 539 84 79 77 80 79 74 -1 540 25 25 25 24 22 -1 541 86 86 85 85 82 80 77 79 -1 542 68 65 67 72 73 74 -1 543 29 29 27 27 24 21 21 -1 544 59 61 63 62 65 69 -1 545 45 42 41 38 36 32 31 -1 546 45 38 39 37 33 -1 547 79 76 76 73 72 -1 548 31 32 31 27 21 -1 549 9 9 8 9 10 12 14 17 -1 550 47 51 54 57 57 -1 551 26 25 26 29 30 37 -1 552 91 90 88 85 81 78 74 -1 553 53 56 52 50 50 -1 554 51 47 46 43 42 39 33 -1 555 84 77 76 72 69 63 -1 556 41 40 39 41 39 38 37 37 -1 557 74 78 76 79 79 -1 558 64 64 59 57 56 56 -1 559 69 72 69 70 72 75 82 -1 560 27 32 35 36 34 -1 561 31 26 25 21 20 19 15 -1 562 67 67 70 76 79 84 -1 563 33 35 36 37 39 41 42 39 -1 564 35 32 32 29 29 -1 565 57 54 52 49 47 46 46 47 -1 566 1 5 8 10 12 13 10 13 -1 567 37 38 42 45 46 49 55 -1 568 86 91 92 94 94 92 -1 569 88 86 83 80 78 77 73 -1 570 3 5 6 10 10 -1 571 24 24 27 30 30 34 -1 572 17 15 13 16 18 15 -1 573 57 54 52 52 51 50 46 -1 574 46 43 45 46 49 51 51 52 -1 575 70 68 65 63 58 -1 576 49 55 59 60 60 -1 577 53 46 45 45 42 41 40 35 -1 578 47 51 52 58 65 -1 579 27 29 26 23 25 -1 580 23 19 16 10 8 5 1 -1 581 98 91 91 89 92 -1 582 59 59 58 55 54 53 51 -1 583 56 63 60 62 64 67 69 -1 584 3 9 9 11 14 14 -1 585 86 83 84 82 80 74 -1 586 74 77 80 80 83 85 88 88 -1 587 24 20 20 17 10 -1 588 56 62 64 65 66 69 73 -1 589 1 5 7 9 15 12 -1 590 60 63 67 70 69 -1 591 63 66 69 70 76 79 82 -1 592 38 38 36 34 32 30 31 -1 593 44 47 46 45 44 44 41 40 -1 594 66 66 67 64 71 -1 595 1 7 8 9 11 14 -1 596 13 16 15 14 12 11 11 -1 597 75 72 66 65 64 64 -1 598 56 59 56 59 57 56 52 -1 599 27 20 17 16 10 6 -1 600 19 23 27 30 30 -1 601 95 98 97 93 90 -1 602 33 37 37 40 42 40 -1 603 36 42 44 42 43 46 50 -1 604 94 88 82 79 78 71 -1 605 17 13 11 9 5 4 4 -1 606 88 88 89 91 92 95 95 92 -1 607 97 93 90 88 85 88 86 83 -1 608 15 12 12 14 17 24 -1 609 7 10 9 8 11 8 2 -1 610 59 55 54 51 47 -1 611 60 57 59 57 58 -1 612 74 79 82 85 89 94 -1 613 24 19 15 12 10 7 -1 614 12 7 5 2 2 -1 615 38 36 33 34 37 38 38 -1 616 36 32 32 31 27 -1 617 15 20 21 28 31 37 -1 618 79 79 80 82 80 -1 619 95 91 90 89 86 83 80 81 -1 620 89 86 86 87 89 93 -1 621 3 6 4 6 3 4 -1 622 65 61 59 56 55 53 52 51 -1 623 27 26 28 31 38 39 45 -1 624 81 84 87 91 95 -1 625 71 71 68 66 65 62 59 59 -1 626 28 28 27 25 25 19 -1 627 90 94 96 97 94 -1 628 63 63 67 68 69 66 -1 629 68 68 66 65 60 59 58 51 -1 630 92 92 86 85 82 80 76 -1 631 26 27 24 25 26 25 -1 632 73 78 84 86 88 91 91 -1 633 42 44 43 40 42 40 40 -1 634 73 80 82 85 85 -1 635 44 44 46 53 56 -1 636 29 25 22 20 16 15 18 -1 637 33 30 35 38 39 42 44 48 -1 638 87 87 85 80 79 78 -1 639 37 44 45 43 42 -1 640 87 87 89 91 95 97 97 -1 641 82 82 83 83 84 86 88 88 -1 642 90 90 88 90 92 95 97 97 -1 643 82 85 88 87 84 83 82 81 -1 644 70 70 73 75 77 83 -1 645 57 55 54 56 57 59 -1 646 26 19 16 11 9 -1 647 64 65 63 61 57 54 57 -1 648 81 85 86 87 92 93 95 -1 649 10 14 18 21 22 25 32 -1 650 70 66 63 61 58 52 49 46 -1 651 35 30 27 25 22 25 23 -1 652 71 77 77 79 81 82 83 90 -1 653 17 16 17 18 17 19 21 28 -1 654 31 30 23 21 24 -1 655 47 47 50 51 54 56 59 59 -1 656 74 74 71 73 70 67 64 60 -1 657 6 11 15 17 18 22 -1 658 59 55 55 53 51 51 -1 659 51 45 42 39 42 41 41 -1 660 22 29 32 30 32 32 -1 661 58 56 57 61 62 63 66 68 -1 662 16 16 12 9 7 6 8 -1 663 61 57 53 52 50 44 -1 664 60 58 55 58 55 -1 665 45 45 50 52 54 57 60 64 -1 666 31 28 29 31 35 37 40 40 -1 667 86 86 89 91 94 -1 668 32 25 23 16 13 13 -1 669 83 82 81 78 75 72 69 69 -1 670 52 56 59 61 62 63 61 66 -1 671 56 50 49 46 40 -1 672 15 18 18 17 20 -1 673 18 15 11 8 6 8 -1 674 72 72 71 67 62 -1 675 85 87 85 79 81 -1 676 36 39 37 35 33 31 31 24 -1 677 41 40 37 33 30 29 22 -1 678 63 67 67 69 71 72 79 -1 679 41 39 41 45 44 -1 680 20 23 25 26 28 29 32 36 -1 681 45 49 52 49 51 52 54 58 -1 682 48 46 40 37 30 -1 683 52 54 54 57 63 -1 684 8 11 14 17 19 18 19 -1 685 99 99 92 90 93 -1 686 14 12 13 14 20 21 24 22 -1 687 56 60 61 62 63 65 70 -1 688 38 34 36 33 31 30 28 24 -1 689 35 33 32 30 28 26 19 15 -1 690 66 68 65 62 55 48 -1 691 15 9 11 10 7 5 7 -1 692 82 82 85 92 95 97 97 -1 693 80 80 81 80 82 83 84 88 -1 694 40 36 38 35 33 28 -1 695 97 95 92 90 87 85 84 -1 696 76 77 80 83 84 87 88 90 -1 697 81 80 78 77 75 74 -1 698 94 93 91 89 88 86 -1 699 85 82 79 76 74 73 72 71 -1 700 73 71 69 66 64 63 -1 701 17 18 21 24 26 29 30 -1 702 72 73 76 79 82 84 -1 703 16 14 11 10 9 8 6 -1 704 25 27 30 33 35 -1 705 30 31 34 37 39 -1 706 82 84 87 90 93 95 -1 707 21 19 16 14 13 11 9 -1 708 43 46 49 50 52 55 57 -1 709 70 69 67 66 65 63 61 60 -1 710 29 26 23 22 20 17 14 -1 711 74 73 71 68 66 65 64 -1 712 85 83 80 79 77 76 73 71 -1 713 10 11 14 16 17 18 20 -1 714 47 44 42 39 38 35 32 30 -1 715 67 68 70 71 74 76 77 79 -1 716 35 37 40 43 45 46 48 51 -1 717 66 64 61 58 55 53 52 49 -1 718 76 79 80 81 82 83 86 -1 719 56 54 51 49 47 -1 720 67 64 63 60 58 57 54 52 -1 721 10 12 14 16 18 21 24 -1 722 79 82 83 84 86 87 89 90 -1 723 79 76 75 74 73 70 67 -1 724 48 51 52 53 54 57 -1 725 42 41 38 35 34 32 29 28 -1 726 2 5 6 8 10 11 14 15 -1 727 77 75 73 72 69 67 -1 728 81 84 87 90 92 93 94 -1 729 29 32 35 36 39 42 43 44 -1 730 25 24 23 20 19 17 16 -1 731 64 67 69 70 73 74 -1 732 17 19 20 21 22 24 25 -1 733 42 43 44 45 48 50 52 54 -1 734 45 42 41 38 37 -1 735 80 78 75 72 69 66 63 62 -1 736 8 9 11 14 15 18 20 22 -1 737 52 51 50 47 44 -1 738 23 20 19 18 16 15 14 -1 739 18 21 24 25 26 -1 740 86 88 89 91 93 94 95 97 -1 741 5 6 9 11 14 17 18 -1 742 74 73 72 71 70 68 -1 743 70 73 75 77 80 -1 744 56 59 60 61 62 64 67 -1 745 21 24 26 29 32 34 35 37 -1 746 31 34 36 37 38 -1 747 18 15 13 10 8 7 4 -1 748 36 39 42 44 45 47 -1 749 71 74 76 77 78 79 82 -1 750 31 34 36 38 39 42 -1 751 20 22 23 24 26 28 29 -1 752 72 71 70 67 64 62 61 58 -1 753 71 74 75 76 77 78 80 82 -1 754 49 50 53 56 57 58 61 -1 755 15 14 13 10 7 6 3 -1 756 28 26 24 21 19 16 14 -1 757 50 47 46 45 43 -1 758 37 36 35 32 30 -1 759 71 69 66 63 62 61 60 -1 760 62 64 66 68 69 72 74 76 -1 761 40 41 42 45 48 50 -1 762 20 17 16 15 12 11 10 -1 763 9 10 13 15 17 20 23 24 -1 764 38 39 42 43 44 45 -1 765 18 19 20 23 24 27 28 29 -1 766 5 8 9 12 14 16 17 -1 767 58 55 54 53 51 49 -1 768 15 18 21 23 25 -1 769 20 19 18 16 15 13 -1 770 69 67 66 63 60 58 57 -1 771 64 61 60 57 54 52 50 49 -1 772 20 22 25 26 27 28 -1 773 42 45 48 50 52 55 57 -1 774 18 17 15 13 12 10 -1 775 22 19 16 15 14 11 9 -1 776 67 64 61 58 55 53 51 -1 777 50 52 53 56 59 62 65 68 -1 778 52 55 57 58 60 62 -1 779 40 38 37 35 32 31 30 -1 780 69 68 66 65 63 61 58 -1 781 49 48 45 42 40 37 34 -1 782 37 36 34 31 28 -1 783 52 53 56 59 60 -1 784 39 41 42 43 45 48 51 52 -1 785 15 16 19 22 23 -1 786 84 86 89 91 92 95 97 99 -1 787 83 86 88 90 92 95 -1 788 63 64 67 68 71 -1 789 90 87 85 83 82 79 -1 790 56 58 60 62 63 64 66 69 -1 791 14 12 10 9 6 -1 792 43 42 41 40 37 -1 793 18 16 15 14 11 -1 794 57 58 59 61 64 66 -1 795 60 59 56 55 52 49 48 -1 796 19 21 22 23 26 29 -1 797 49 47 46 43 40 -1 798 84 85 87 89 91 94 96 -1 799 61 60 58 56 53 50 47 44 -1 800 66 67 70 73 75 78 80 81 -1 801 27 25 22 19 18 15 13 10 -1 802 44 47 48 49 52 53 54 56 -1 803 17 14 11 9 6 4 -1 804 94 91 88 86 85 -1 805 58 57 55 52 51 -1 806 90 89 87 85 84 81 80 78 -1 807 35 37 38 41 44 45 -1 808 38 39 40 41 43 -1 809 89 90 92 93 94 97 98 -1 810 62 59 58 55 54 52 51 49 -1 811 9 12 14 16 17 19 22 24 -1 812 94 92 89 86 85 84 81 78 -1 813 28 30 31 34 35 36 38 41 -1 814 59 61 64 65 66 69 70 72 -1 815 77 76 75 72 71 70 68 65 -1 816 55 54 52 49 48 47 44 -1 817 96 94 93 92 89 -1 818 40 41 42 45 46 48 50 53 -1 819 52 53 54 56 58 60 62 -1 820 98 97 94 92 89 88 87 86 -1 821 68 69 72 75 77 80 -1 822 49 48 47 44 41 39 36 -1 823 57 56 53 51 50 48 47 -1 824 11 14 15 17 20 23 26 28 -1 825 21 19 18 16 14 -1 826 49 51 54 57 60 63 66 69 -1 827 50 47 46 44 42 41 39 -1 828 45 42 41 39 36 33 32 30 -1 829 47 48 49 52 53 55 56 -1 830 79 80 82 83 85 86 87 90 -1 831 31 28 27 26 23 -1 832 3 6 7 10 13 -1 833 84 85 88 91 94 95 96 -1 834 59 57 55 52 50 49 -1 835 55 52 49 48 45 44 -1 836 13 14 16 18 19 20 -1 837 70 71 74 77 78 80 83 -1 838 36 38 39 42 45 46 49 50 -1 839 95 93 90 87 86 85 83 -1 840 14 17 20 22 25 -1 841 20 18 16 15 14 13 12 9 -1 842 32 34 35 36 39 40 41 -1 843 31 34 36 37 39 40 43 -1 844 73 72 70 67 64 -1 845 47 48 50 53 54 -1 846 91 88 85 84 83 81 79 77 -1 847 49 46 44 41 39 37 36 -1 848 20 19 18 17 16 15 12 -1 849 86 88 89 92 93 96 -1 850 78 80 81 84 87 88 90 91 -1 851 22 20 19 18 16 13 -1 852 2 3 6 7 10 11 -1 853 41 38 37 34 33 30 28 -1 854 28 27 24 23 21 20 17 14 -1 855 74 77 80 81 82 84 -1 856 69 67 65 64 63 62 -1 857 81 79 78 76 73 72 -1 858 54 53 52 50 47 -1 859 17 16 15 13 11 -1 860 57 59 60 62 64 -1 861 23 25 27 30 32 34 -1 862 29 26 25 24 23 -1 863 30 28 26 25 22 19 18 -1 864 70 67 64 61 58 57 -1 865 62 64 65 68 71 -1 866 83 86 89 92 93 94 96 99 -1 867 47 45 44 43 40 37 35 34 -1 868 47 48 49 52 55 57 59 60 -1 869 3 4 7 10 13 15 18 -1 870 64 66 68 69 70 73 -1 871 18 21 24 25 27 29 -1 872 73 70 68 65 62 59 58 56 -1 873 68 65 62 60 59 57 54 52 -1 874 11 8 6 3 2 -1 875 28 29 31 32 34 35 36 -1 876 37 38 41 44 46 48 49 -1 877 60 61 64 67 70 73 75 76 -1 878 22 23 25 28 29 -1 879 84 87 90 92 95 96 99 -1 880 31 33 34 35 37 40 41 42 -1 881 70 68 67 65 63 -1 882 82 84 87 88 90 92 94 95 -1 883 86 88 89 92 94 -1 884 72 69 68 67 65 64 63 -1 885 79 82 85 86 87 90 -1 886 29 30 32 33 36 37 39 -1 887 36 38 39 42 43 45 47 50 -1 888 70 67 66 63 62 60 58 55 -1 889 25 26 27 28 31 34 -1 890 82 80 77 75 74 73 72 70 -1 891 3 6 8 11 12 15 -1 892 29 30 33 35 38 41 42 43 -1 893 44 45 48 49 52 55 57 -1 894 47 49 51 53 56 58 -1 895 60 59 57 55 52 -1 896 22 25 28 29 31 33 -1 897 22 21 19 16 14 13 -1 898 19 21 24 26 29 32 34 37 -1 899 49 46 43 42 40 37 34 -1 900 40 37 35 33 31 29 27 25 -1 901 84 82 80 77 74 71 70 -1 902 75 73 70 67 64 61 59 -1 903 55 52 51 49 48 -1 904 71 74 76 77 79 81 -1 905 57 59 61 63 64 67 70 -1 906 55 54 53 52 50 49 46 45 -1 907 44 47 49 51 52 53 55 57 -1 908 84 87 88 91 94 -1 909 79 77 76 73 70 67 65 64 -1 910 48 47 44 42 39 38 36 35 -1 911 38 36 35 34 32 29 27 26 -1 912 58 61 64 67 70 -1 913 83 85 87 89 90 91 93 -1 914 70 69 68 66 64 62 60 58 -1 915 25 22 20 17 16 -1 916 59 62 64 67 70 73 74 -1 917 56 55 54 51 50 -1 918 36 37 38 41 43 44 47 -1 919 48 46 45 42 41 40 37 -1 920 41 40 39 37 35 33 31 29 -1 921 52 49 46 44 43 42 -1 922 72 73 75 76 78 79 81 84 -1 923 75 77 80 81 84 87 88 90 -1 924 28 29 31 32 34 37 -1 925 20 22 24 27 28 31 33 34 -1 926 39 37 34 31 29 26 23 20 -1 927 15 16 18 19 21 24 -1 928 36 38 40 41 44 47 48 49 -1 929 10 12 14 17 18 19 22 -1 930 27 24 23 22 19 -1 931 90 87 86 85 82 79 76 -1 932 34 35 36 37 40 42 45 -1 933 66 64 62 59 56 55 54 -1 934 60 62 64 65 66 67 70 -1 935 37 38 40 41 42 43 -1 936 79 78 77 74 73 70 68 65 -1 937 22 21 19 18 15 -1 938 95 94 93 92 89 88 -1 939 75 72 69 66 65 -1 940 25 22 19 16 14 13 12 9 -1 941 30 31 32 33 35 -1 942 5 6 7 9 10 13 14 17 -1 943 82 83 85 87 89 92 93 94 -1 944 54 52 51 48 46 45 -1 945 35 32 29 28 27 25 23 20 -1 946 51 49 46 43 42 40 -1 947 39 38 35 32 30 27 -1 948 48 45 42 40 38 37 35 -1 949 59 58 56 53 51 48 45 -1 950 76 75 73 70 68 66 63 -1 951 68 71 74 77 80 81 82 -1 952 28 29 31 34 35 -1 953 88 90 91 92 94 95 98 99 -1 954 69 68 65 64 62 -1 955 88 86 83 81 80 -1 956 85 88 89 92 93 94 96 -1 957 38 36 34 33 30 27 26 25 -1 958 69 70 71 73 74 77 -1 959 22 24 27 29 32 33 35 -1 960 80 81 83 85 87 89 91 92 -1 961 47 49 51 53 54 56 58 -1 962 45 44 41 38 36 33 30 -1 963 16 18 19 21 24 25 26 29 -1 964 69 70 73 76 77 80 82 -1 965 86 85 83 82 80 77 -1 966 7 8 10 11 12 13 -1 967 68 65 62 60 57 -1 968 20 17 16 14 13 12 -1 969 90 87 86 85 83 82 80 79 -1 970 20 18 16 14 13 10 -1 971 36 38 41 44 47 48 -1 972 64 66 69 70 72 -1 973 94 91 88 85 83 80 -1 974 25 26 29 32 33 36 -1 975 26 24 21 18 17 -1 976 63 60 59 56 54 -1 977 40 39 38 35 32 30 -1 978 60 63 65 67 69 71 72 -1 979 16 15 12 10 9 -1 980 49 51 54 57 58 59 62 -1 981 48 49 52 54 55 58 61 -1 982 36 35 32 31 29 -1 983 73 70 69 66 63 61 59 -1 984 16 18 19 22 25 -1 985 32 30 28 26 25 22 20 -1 986 39 42 45 48 51 54 -1 987 70 72 73 74 76 79 80 81 -1 988 37 34 31 30 29 -1 989 15 16 17 19 21 24 -1 990 31 30 28 25 23 20 18 17 -1 991 81 82 83 86 89 91 92 94 -1 992 78 76 74 72 71 -1 993 24 25 28 30 31 32 -1 994 80 79 76 75 73 72 71 -1 995 71 72 74 76 78 81 84 86 -1 996 8 11 14 15 18 -1 997 46 43 42 41 38 35 34 -1 998 20 18 17 15 14 -1 999 84 82 80 79 77 76 -1 1000 43 44 47 48 50
diff --git a/2024/02/solution.rs b/2024/02/solution.rs
@@ -0,0 +1,55 @@ -1 1 #[path = "../lib.rs"] -1 2 mod lib; -1 3 -1 4 fn check(a: u32, b: u32, increasing: bool) -> bool { -1 5 return (increasing ^ (a > b)) && (1..=3).contains(&a.abs_diff(b)); -1 6 } -1 7 -1 8 fn is_safe(report: &Vec<u32>) -> (bool, bool) { -1 9 let mut x = 0; -1 10 x += if report[1] > report[0] { 1 } else { -1 }; -1 11 x += if report[2] > report[1] { 1 } else { -1 }; -1 12 x += if report[3] > report[2] { 1 } else { -1 }; -1 13 let inc = x > 0; -1 14 -1 15 let n = report.len(); -1 16 let mut i = 1; -1 17 let mut dampened = false; -1 18 -1 19 while i < n { -1 20 if check(report[i - 1], report[i], inc) { -1 21 i += 1; -1 22 } else if dampened { -1 23 return (false, false); -1 24 } else if i + 1 == n || check(report[i - 1], report[i + 1], inc) { -1 25 dampened = true; -1 26 i += 2; -1 27 } else if i == 1 || check(report[i - 2], report[i], inc) { -1 28 dampened = true; -1 29 i += 1; -1 30 } else { -1 31 return (false, false); -1 32 } -1 33 } -1 34 -1 35 return (!dampened, true); -1 36 } -1 37 -1 38 fn main() { -1 39 let mut count1 = 0; -1 40 let mut count2 = 0; -1 41 -1 42 for line in lib::iter_input() { -1 43 let report = line.split(' ').map(|s| s.parse::<u32>().unwrap()).collect(); -1 44 let (safe, safe_dampened) = is_safe(&report); -1 45 if safe { -1 46 count1 += 1; -1 47 } -1 48 if safe_dampened { -1 49 count2 += 1; -1 50 } -1 51 } -1 52 -1 53 println!("part1: {}", count1); -1 54 println!("part2: {}", count2); -1 55 }
diff --git a/2024/02/test.txt b/2024/02/test.txt
@@ -0,0 +1,6 @@ -1 1 7 6 4 2 1 -1 2 1 2 7 8 9 -1 3 9 7 6 2 1 -1 4 1 3 2 4 5 -1 5 8 6 4 4 1 -1 6 1 3 6 7 9