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