- commit
- eed68ad94a779b4650b340bd679bb6f4928a7feb
- parent
- 79d3c4425cf0336f75076ef87c768050759eeac4
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2022-12-09 08:25
2022-12-09
Diffstat
A | 2022/09/input.txt | 2000 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | 2022/09/solution.rs | 47 | +++++++++++++++++++++++++++++++++++++++++++++++ |
A | 2022/09/test.txt | 8 | ++++++++ |
A | 2022/09/test2.txt | 8 | ++++++++ |
4 files changed, 2063 insertions, 0 deletions
diff --git a/2022/09/input.txt b/2022/09/input.txt
@@ -0,0 +1,2000 @@ -1 1 L 1 -1 2 R 1 -1 3 U 1 -1 4 R 1 -1 5 L 1 -1 6 U 2 -1 7 L 2 -1 8 R 1 -1 9 U 2 -1 10 D 2 -1 11 R 2 -1 12 D 2 -1 13 R 1 -1 14 U 1 -1 15 R 2 -1 16 L 1 -1 17 D 1 -1 18 L 2 -1 19 R 1 -1 20 D 1 -1 21 R 1 -1 22 U 1 -1 23 D 1 -1 24 R 1 -1 25 D 1 -1 26 R 1 -1 27 D 2 -1 28 L 2 -1 29 D 1 -1 30 R 2 -1 31 L 1 -1 32 R 2 -1 33 U 2 -1 34 R 1 -1 35 U 1 -1 36 D 2 -1 37 U 1 -1 38 R 1 -1 39 D 1 -1 40 R 2 -1 41 D 1 -1 42 L 2 -1 43 R 1 -1 44 U 1 -1 45 L 1 -1 46 U 1 -1 47 D 1 -1 48 U 1 -1 49 D 1 -1 50 L 1 -1 51 D 1 -1 52 R 1 -1 53 D 2 -1 54 L 1 -1 55 D 1 -1 56 L 1 -1 57 D 1 -1 58 R 1 -1 59 U 1 -1 60 D 2 -1 61 R 1 -1 62 D 1 -1 63 L 2 -1 64 D 2 -1 65 U 1 -1 66 L 1 -1 67 U 1 -1 68 L 1 -1 69 R 2 -1 70 U 1 -1 71 L 1 -1 72 D 1 -1 73 R 2 -1 74 L 2 -1 75 U 1 -1 76 D 2 -1 77 R 1 -1 78 U 1 -1 79 R 2 -1 80 L 2 -1 81 U 1 -1 82 L 2 -1 83 R 2 -1 84 D 1 -1 85 L 1 -1 86 R 1 -1 87 D 2 -1 88 L 2 -1 89 U 1 -1 90 L 2 -1 91 R 1 -1 92 U 2 -1 93 D 1 -1 94 U 2 -1 95 D 2 -1 96 L 2 -1 97 D 1 -1 98 R 1 -1 99 L 2 -1 100 R 2 -1 101 L 2 -1 102 R 2 -1 103 L 2 -1 104 R 2 -1 105 L 1 -1 106 U 1 -1 107 R 2 -1 108 U 1 -1 109 D 1 -1 110 R 2 -1 111 D 2 -1 112 R 2 -1 113 D 2 -1 114 L 2 -1 115 R 2 -1 116 U 3 -1 117 R 1 -1 118 U 3 -1 119 D 3 -1 120 U 1 -1 121 L 2 -1 122 D 2 -1 123 R 3 -1 124 D 1 -1 125 R 3 -1 126 U 1 -1 127 L 3 -1 128 R 3 -1 129 L 1 -1 130 U 3 -1 131 R 3 -1 132 U 3 -1 133 R 3 -1 134 U 2 -1 135 L 2 -1 136 D 2 -1 137 R 3 -1 138 U 2 -1 139 L 2 -1 140 U 3 -1 141 L 2 -1 142 R 1 -1 143 U 3 -1 144 R 2 -1 145 U 3 -1 146 L 2 -1 147 R 2 -1 148 U 1 -1 149 L 3 -1 150 R 3 -1 151 L 3 -1 152 R 2 -1 153 L 3 -1 154 D 3 -1 155 L 2 -1 156 D 1 -1 157 R 1 -1 158 D 3 -1 159 U 3 -1 160 R 3 -1 161 D 2 -1 162 L 2 -1 163 D 2 -1 164 R 1 -1 165 D 1 -1 166 U 3 -1 167 R 1 -1 168 U 2 -1 169 L 3 -1 170 U 3 -1 171 L 2 -1 172 D 1 -1 173 L 3 -1 174 R 2 -1 175 D 2 -1 176 L 2 -1 177 D 3 -1 178 L 3 -1 179 U 1 -1 180 D 3 -1 181 U 3 -1 182 L 3 -1 183 R 2 -1 184 D 2 -1 185 R 3 -1 186 D 2 -1 187 R 3 -1 188 U 2 -1 189 R 1 -1 190 L 2 -1 191 R 2 -1 192 L 1 -1 193 D 3 -1 194 U 2 -1 195 L 2 -1 196 U 3 -1 197 L 1 -1 198 D 1 -1 199 L 2 -1 200 R 3 -1 201 L 1 -1 202 D 2 -1 203 U 1 -1 204 D 3 -1 205 U 1 -1 206 D 3 -1 207 L 1 -1 208 U 1 -1 209 R 3 -1 210 L 2 -1 211 U 3 -1 212 L 3 -1 213 U 1 -1 214 L 2 -1 215 D 1 -1 216 R 2 -1 217 L 1 -1 218 R 2 -1 219 L 2 -1 220 D 3 -1 221 U 2 -1 222 D 2 -1 223 U 3 -1 224 L 4 -1 225 D 4 -1 226 R 3 -1 227 D 4 -1 228 R 1 -1 229 L 2 -1 230 U 2 -1 231 R 1 -1 232 U 4 -1 233 D 4 -1 234 U 4 -1 235 D 4 -1 236 R 4 -1 237 L 2 -1 238 U 3 -1 239 D 1 -1 240 R 4 -1 241 D 2 -1 242 L 2 -1 243 D 1 -1 244 L 4 -1 245 R 3 -1 246 U 2 -1 247 D 4 -1 248 U 3 -1 249 R 3 -1 250 L 1 -1 251 R 1 -1 252 L 2 -1 253 D 4 -1 254 U 2 -1 255 R 1 -1 256 L 3 -1 257 D 3 -1 258 R 4 -1 259 U 2 -1 260 L 1 -1 261 D 3 -1 262 R 4 -1 263 D 2 -1 264 U 3 -1 265 D 1 -1 266 L 2 -1 267 D 2 -1 268 R 2 -1 269 D 3 -1 270 R 2 -1 271 U 2 -1 272 R 1 -1 273 L 1 -1 274 U 2 -1 275 D 2 -1 276 U 3 -1 277 D 1 -1 278 U 3 -1 279 D 1 -1 280 R 4 -1 281 D 2 -1 282 U 1 -1 283 L 3 -1 284 D 4 -1 285 R 3 -1 286 D 4 -1 287 U 2 -1 288 D 1 -1 289 R 2 -1 290 U 3 -1 291 L 3 -1 292 D 1 -1 293 U 2 -1 294 L 3 -1 295 D 1 -1 296 L 3 -1 297 D 1 -1 298 U 1 -1 299 D 4 -1 300 R 1 -1 301 D 4 -1 302 L 2 -1 303 R 3 -1 304 D 4 -1 305 R 2 -1 306 L 3 -1 307 D 4 -1 308 U 3 -1 309 L 4 -1 310 U 1 -1 311 L 3 -1 312 R 1 -1 313 L 1 -1 314 D 2 -1 315 L 1 -1 316 U 2 -1 317 D 3 -1 318 L 1 -1 319 R 4 -1 320 L 1 -1 321 D 2 -1 322 U 2 -1 323 L 3 -1 324 U 3 -1 325 L 1 -1 326 R 4 -1 327 U 3 -1 328 D 3 -1 329 R 1 -1 330 L 2 -1 331 R 4 -1 332 U 2 -1 333 L 3 -1 334 U 4 -1 335 L 2 -1 336 R 4 -1 337 D 5 -1 338 U 1 -1 339 R 2 -1 340 D 5 -1 341 L 5 -1 342 R 1 -1 343 D 3 -1 344 U 3 -1 345 L 3 -1 346 U 5 -1 347 R 1 -1 348 D 1 -1 349 R 3 -1 350 U 3 -1 351 D 1 -1 352 R 1 -1 353 L 4 -1 354 R 1 -1 355 L 3 -1 356 U 4 -1 357 L 3 -1 358 R 5 -1 359 D 3 -1 360 R 2 -1 361 U 1 -1 362 R 2 -1 363 D 2 -1 364 L 4 -1 365 R 2 -1 366 U 1 -1 367 L 3 -1 368 D 4 -1 369 R 4 -1 370 L 1 -1 371 R 3 -1 372 U 3 -1 373 D 2 -1 374 R 3 -1 375 D 3 -1 376 U 1 -1 377 L 5 -1 378 U 1 -1 379 L 5 -1 380 R 5 -1 381 D 1 -1 382 U 1 -1 383 R 5 -1 384 D 4 -1 385 L 1 -1 386 R 4 -1 387 L 5 -1 388 D 5 -1 389 L 2 -1 390 D 1 -1 391 L 3 -1 392 D 5 -1 393 L 4 -1 394 R 4 -1 395 D 1 -1 396 U 1 -1 397 D 4 -1 398 U 1 -1 399 R 4 -1 400 L 2 -1 401 D 4 -1 402 U 1 -1 403 L 3 -1 404 R 3 -1 405 L 3 -1 406 R 3 -1 407 D 2 -1 408 R 3 -1 409 L 5 -1 410 R 1 -1 411 L 1 -1 412 R 3 -1 413 D 5 -1 414 U 5 -1 415 L 3 -1 416 U 3 -1 417 L 5 -1 418 D 3 -1 419 L 2 -1 420 U 5 -1 421 D 5 -1 422 U 5 -1 423 D 4 -1 424 U 4 -1 425 R 5 -1 426 U 3 -1 427 D 5 -1 428 R 1 -1 429 L 4 -1 430 U 1 -1 431 L 4 -1 432 R 2 -1 433 D 1 -1 434 U 4 -1 435 L 5 -1 436 D 2 -1 437 R 1 -1 438 U 1 -1 439 R 3 -1 440 U 1 -1 441 R 4 -1 442 U 4 -1 443 L 1 -1 444 R 2 -1 445 U 5 -1 446 D 2 -1 447 L 5 -1 448 U 4 -1 449 D 2 -1 450 R 1 -1 451 D 1 -1 452 U 6 -1 453 D 5 -1 454 L 4 -1 455 U 5 -1 456 R 1 -1 457 L 3 -1 458 D 2 -1 459 R 3 -1 460 U 6 -1 461 L 2 -1 462 R 6 -1 463 D 1 -1 464 R 5 -1 465 D 1 -1 466 L 1 -1 467 R 2 -1 468 L 4 -1 469 R 3 -1 470 L 4 -1 471 D 6 -1 472 R 5 -1 473 U 1 -1 474 L 4 -1 475 D 2 -1 476 L 2 -1 477 D 3 -1 478 L 2 -1 479 D 5 -1 480 R 4 -1 481 D 3 -1 482 L 2 -1 483 D 4 -1 484 R 1 -1 485 U 5 -1 486 L 5 -1 487 U 5 -1 488 D 2 -1 489 L 3 -1 490 D 4 -1 491 L 3 -1 492 U 4 -1 493 L 4 -1 494 U 6 -1 495 D 6 -1 496 U 4 -1 497 R 2 -1 498 D 3 -1 499 U 1 -1 500 R 4 -1 501 D 3 -1 502 R 1 -1 503 D 2 -1 504 R 3 -1 505 L 2 -1 506 D 2 -1 507 L 4 -1 508 D 5 -1 509 L 5 -1 510 R 2 -1 511 L 1 -1 512 R 2 -1 513 D 2 -1 514 R 4 -1 515 U 4 -1 516 R 5 -1 517 L 4 -1 518 D 1 -1 519 L 6 -1 520 R 4 -1 521 D 2 -1 522 R 6 -1 523 L 6 -1 524 D 3 -1 525 R 2 -1 526 D 2 -1 527 U 4 -1 528 R 2 -1 529 U 2 -1 530 L 2 -1 531 R 5 -1 532 D 5 -1 533 U 6 -1 534 D 6 -1 535 L 5 -1 536 R 1 -1 537 U 3 -1 538 L 1 -1 539 D 1 -1 540 U 2 -1 541 R 5 -1 542 L 2 -1 543 D 2 -1 544 U 4 -1 545 R 2 -1 546 D 2 -1 547 U 1 -1 548 D 2 -1 549 R 3 -1 550 L 6 -1 551 U 1 -1 552 D 6 -1 553 R 3 -1 554 D 6 -1 555 R 1 -1 556 D 7 -1 557 R 7 -1 558 L 4 -1 559 R 4 -1 560 D 5 -1 561 U 6 -1 562 R 2 -1 563 L 3 -1 564 R 5 -1 565 L 5 -1 566 U 6 -1 567 D 3 -1 568 U 5 -1 569 D 3 -1 570 U 5 -1 571 R 7 -1 572 L 5 -1 573 U 7 -1 574 L 6 -1 575 U 5 -1 576 D 1 -1 577 L 7 -1 578 U 6 -1 579 L 3 -1 580 D 1 -1 581 L 6 -1 582 U 4 -1 583 D 1 -1 584 U 1 -1 585 R 1 -1 586 L 3 -1 587 D 6 -1 588 L 6 -1 589 R 3 -1 590 D 3 -1 591 U 2 -1 592 R 1 -1 593 D 6 -1 594 U 7 -1 595 R 6 -1 596 L 4 -1 597 R 4 -1 598 D 7 -1 599 R 1 -1 600 D 5 -1 601 U 6 -1 602 D 4 -1 603 R 6 -1 604 L 2 -1 605 U 4 -1 606 D 7 -1 607 R 5 -1 608 D 6 -1 609 U 7 -1 610 R 6 -1 611 D 6 -1 612 U 1 -1 613 D 4 -1 614 L 2 -1 615 U 2 -1 616 R 7 -1 617 U 1 -1 618 L 1 -1 619 U 1 -1 620 L 7 -1 621 D 3 -1 622 U 5 -1 623 D 5 -1 624 L 1 -1 625 D 4 -1 626 L 3 -1 627 U 7 -1 628 L 6 -1 629 R 7 -1 630 U 6 -1 631 R 1 -1 632 L 3 -1 633 R 1 -1 634 D 3 -1 635 L 7 -1 636 R 4 -1 637 L 3 -1 638 D 2 -1 639 L 7 -1 640 D 2 -1 641 R 5 -1 642 L 7 -1 643 D 6 -1 644 L 6 -1 645 D 3 -1 646 L 3 -1 647 D 5 -1 648 U 3 -1 649 L 5 -1 650 R 6 -1 651 L 1 -1 652 U 5 -1 653 R 4 -1 654 U 2 -1 655 D 3 -1 656 R 5 -1 657 L 4 -1 658 U 5 -1 659 D 7 -1 660 R 1 -1 661 L 3 -1 662 U 5 -1 663 D 3 -1 664 L 6 -1 665 R 2 -1 666 L 2 -1 667 U 6 -1 668 R 3 -1 669 U 7 -1 670 R 3 -1 671 D 1 -1 672 L 2 -1 673 U 7 -1 674 L 6 -1 675 D 3 -1 676 L 8 -1 677 R 6 -1 678 D 3 -1 679 L 5 -1 680 R 5 -1 681 U 5 -1 682 R 8 -1 683 D 7 -1 684 R 7 -1 685 U 8 -1 686 L 5 -1 687 D 6 -1 688 R 6 -1 689 L 6 -1 690 D 8 -1 691 U 1 -1 692 R 4 -1 693 L 3 -1 694 R 6 -1 695 L 6 -1 696 D 5 -1 697 R 4 -1 698 D 8 -1 699 L 4 -1 700 R 4 -1 701 D 3 -1 702 L 2 -1 703 U 6 -1 704 L 8 -1 705 R 1 -1 706 U 5 -1 707 L 4 -1 708 D 8 -1 709 R 6 -1 710 D 5 -1 711 U 6 -1 712 L 5 -1 713 R 1 -1 714 L 8 -1 715 U 7 -1 716 R 6 -1 717 D 4 -1 718 U 2 -1 719 D 8 -1 720 U 3 -1 721 D 7 -1 722 R 6 -1 723 D 8 -1 724 R 8 -1 725 U 8 -1 726 D 7 -1 727 L 3 -1 728 D 4 -1 729 L 1 -1 730 U 4 -1 731 R 4 -1 732 U 2 -1 733 D 6 -1 734 R 1 -1 735 D 8 -1 736 R 2 -1 737 D 4 -1 738 R 5 -1 739 L 1 -1 740 R 7 -1 741 L 3 -1 742 D 1 -1 743 U 1 -1 744 R 7 -1 745 U 5 -1 746 D 1 -1 747 L 2 -1 748 R 8 -1 749 D 8 -1 750 L 5 -1 751 U 8 -1 752 D 4 -1 753 L 5 -1 754 D 3 -1 755 U 2 -1 756 L 7 -1 757 R 2 -1 758 L 5 -1 759 U 3 -1 760 R 3 -1 761 U 6 -1 762 R 6 -1 763 D 4 -1 764 R 3 -1 765 U 4 -1 766 D 5 -1 767 U 6 -1 768 R 3 -1 769 L 4 -1 770 R 5 -1 771 L 4 -1 772 R 8 -1 773 U 6 -1 774 L 6 -1 775 U 1 -1 776 L 5 -1 777 R 3 -1 778 U 1 -1 779 D 5 -1 780 U 8 -1 781 R 1 -1 782 L 2 -1 783 R 3 -1 784 L 8 -1 785 U 6 -1 786 L 4 -1 787 R 3 -1 788 L 3 -1 789 R 7 -1 790 L 9 -1 791 D 5 -1 792 R 8 -1 793 L 5 -1 794 U 7 -1 795 D 7 -1 796 R 6 -1 797 L 8 -1 798 U 4 -1 799 D 5 -1 800 R 8 -1 801 L 4 -1 802 R 8 -1 803 U 9 -1 804 R 9 -1 805 L 8 -1 806 D 9 -1 807 L 9 -1 808 D 6 -1 809 R 1 -1 810 L 8 -1 811 U 4 -1 812 L 6 -1 813 U 5 -1 814 R 9 -1 815 L 5 -1 816 D 6 -1 817 R 9 -1 818 D 9 -1 819 U 6 -1 820 L 1 -1 821 U 8 -1 822 L 7 -1 823 R 9 -1 824 U 4 -1 825 R 6 -1 826 U 1 -1 827 R 5 -1 828 U 5 -1 829 L 4 -1 830 R 4 -1 831 D 7 -1 832 L 6 -1 833 U 3 -1 834 R 9 -1 835 U 1 -1 836 L 6 -1 837 U 5 -1 838 L 5 -1 839 U 2 -1 840 L 3 -1 841 U 2 -1 842 D 6 -1 843 R 8 -1 844 L 5 -1 845 U 4 -1 846 D 4 -1 847 R 4 -1 848 D 6 -1 849 L 8 -1 850 U 9 -1 851 R 4 -1 852 L 3 -1 853 D 1 -1 854 U 2 -1 855 D 5 -1 856 U 3 -1 857 D 3 -1 858 L 2 -1 859 D 3 -1 860 L 4 -1 861 D 5 -1 862 L 9 -1 863 D 9 -1 864 U 2 -1 865 D 8 -1 866 R 4 -1 867 L 8 -1 868 R 9 -1 869 D 7 -1 870 L 3 -1 871 D 2 -1 872 R 2 -1 873 L 4 -1 874 D 7 -1 875 R 6 -1 876 D 8 -1 877 R 9 -1 878 L 3 -1 879 D 5 -1 880 U 1 -1 881 L 8 -1 882 D 6 -1 883 R 9 -1 884 U 6 -1 885 R 9 -1 886 D 6 -1 887 L 9 -1 888 U 5 -1 889 D 10 -1 890 L 4 -1 891 U 10 -1 892 R 3 -1 893 U 7 -1 894 D 4 -1 895 L 3 -1 896 R 8 -1 897 L 4 -1 898 U 10 -1 899 R 8 -1 900 L 10 -1 901 U 8 -1 902 R 5 -1 903 L 8 -1 904 U 6 -1 905 L 5 -1 906 D 7 -1 907 L 6 -1 908 U 6 -1 909 L 9 -1 910 R 8 -1 911 U 6 -1 912 D 7 -1 913 L 10 -1 914 R 2 -1 915 D 7 -1 916 L 8 -1 917 U 5 -1 918 L 2 -1 919 D 2 -1 920 U 7 -1 921 D 6 -1 922 R 7 -1 923 D 2 -1 924 U 3 -1 925 R 10 -1 926 D 2 -1 927 U 6 -1 928 D 6 -1 929 L 8 -1 930 D 2 -1 931 L 2 -1 932 D 10 -1 933 L 2 -1 934 D 1 -1 935 L 10 -1 936 D 6 -1 937 R 6 -1 938 L 7 -1 939 D 9 -1 940 R 2 -1 941 D 5 -1 942 U 2 -1 943 R 4 -1 944 L 4 -1 945 D 1 -1 946 L 3 -1 947 R 10 -1 948 U 9 -1 949 L 4 -1 950 D 10 -1 951 L 10 -1 952 D 4 -1 953 U 2 -1 954 R 1 -1 955 L 4 -1 956 D 6 -1 957 U 2 -1 958 L 6 -1 959 R 4 -1 960 U 1 -1 961 L 9 -1 962 R 7 -1 963 L 8 -1 964 U 5 -1 965 R 1 -1 966 D 6 -1 967 L 4 -1 968 U 9 -1 969 D 1 -1 970 L 5 -1 971 R 10 -1 972 D 4 -1 973 L 6 -1 974 U 8 -1 975 R 4 -1 976 L 5 -1 977 D 10 -1 978 R 8 -1 979 D 8 -1 980 R 4 -1 981 D 5 -1 982 R 7 -1 983 L 10 -1 984 D 3 -1 985 R 1 -1 986 L 4 -1 987 R 8 -1 988 L 10 -1 989 D 2 -1 990 L 3 -1 991 D 6 -1 992 L 8 -1 993 R 10 -1 994 L 2 -1 995 D 8 -1 996 R 5 -1 997 L 8 -1 998 D 1 -1 999 U 6 -1 1000 D 11 -1 1001 U 7 -1 1002 L 1 -1 1003 U 6 -1 1004 R 9 -1 1005 L 8 -1 1006 R 5 -1 1007 U 9 -1 1008 D 5 -1 1009 L 10 -1 1010 U 6 -1 1011 L 3 -1 1012 D 4 -1 1013 U 6 -1 1014 D 10 -1 1015 L 2 -1 1016 D 9 -1 1017 L 5 -1 1018 R 8 -1 1019 D 1 -1 1020 R 1 -1 1021 U 1 -1 1022 D 4 -1 1023 R 4 -1 1024 U 6 -1 1025 L 9 -1 1026 U 7 -1 1027 R 11 -1 1028 L 8 -1 1029 D 3 -1 1030 R 9 -1 1031 L 11 -1 1032 U 9 -1 1033 L 4 -1 1034 D 10 -1 1035 U 9 -1 1036 L 7 -1 1037 R 9 -1 1038 U 1 -1 1039 R 8 -1 1040 U 4 -1 1041 L 3 -1 1042 U 2 -1 1043 D 7 -1 1044 R 6 -1 1045 U 1 -1 1046 D 10 -1 1047 U 9 -1 1048 R 6 -1 1049 L 6 -1 1050 D 4 -1 1051 U 3 -1 1052 L 10 -1 1053 R 10 -1 1054 U 6 -1 1055 R 8 -1 1056 L 9 -1 1057 R 2 -1 1058 D 7 -1 1059 R 4 -1 1060 U 6 -1 1061 R 2 -1 1062 L 4 -1 1063 D 1 -1 1064 L 10 -1 1065 U 9 -1 1066 R 11 -1 1067 U 11 -1 1068 R 1 -1 1069 D 5 -1 1070 L 8 -1 1071 U 3 -1 1072 R 1 -1 1073 U 4 -1 1074 D 10 -1 1075 U 6 -1 1076 L 8 -1 1077 R 4 -1 1078 L 7 -1 1079 R 8 -1 1080 D 3 -1 1081 L 9 -1 1082 U 4 -1 1083 L 6 -1 1084 R 2 -1 1085 D 2 -1 1086 U 9 -1 1087 D 6 -1 1088 R 8 -1 1089 L 2 -1 1090 U 7 -1 1091 L 2 -1 1092 R 8 -1 1093 L 7 -1 1094 D 5 -1 1095 R 10 -1 1096 U 5 -1 1097 L 10 -1 1098 U 6 -1 1099 R 8 -1 1100 U 9 -1 1101 L 7 -1 1102 D 11 -1 1103 U 10 -1 1104 L 4 -1 1105 D 5 -1 1106 R 4 -1 1107 L 7 -1 1108 U 5 -1 1109 D 8 -1 1110 R 6 -1 1111 D 9 -1 1112 L 4 -1 1113 U 9 -1 1114 R 6 -1 1115 D 1 -1 1116 U 6 -1 1117 R 8 -1 1118 U 10 -1 1119 D 6 -1 1120 U 10 -1 1121 L 3 -1 1122 D 1 -1 1123 L 1 -1 1124 R 9 -1 1125 D 10 -1 1126 L 10 -1 1127 U 12 -1 1128 D 3 -1 1129 L 2 -1 1130 U 6 -1 1131 L 9 -1 1132 U 2 -1 1133 R 6 -1 1134 D 8 -1 1135 R 11 -1 1136 L 1 -1 1137 U 3 -1 1138 R 1 -1 1139 U 9 -1 1140 R 12 -1 1141 U 3 -1 1142 D 11 -1 1143 U 3 -1 1144 D 10 -1 1145 U 12 -1 1146 L 11 -1 1147 R 9 -1 1148 U 9 -1 1149 D 11 -1 1150 L 8 -1 1151 D 4 -1 1152 R 4 -1 1153 U 4 -1 1154 D 1 -1 1155 L 7 -1 1156 R 10 -1 1157 L 4 -1 1158 R 4 -1 1159 U 11 -1 1160 D 3 -1 1161 L 6 -1 1162 R 10 -1 1163 L 9 -1 1164 R 11 -1 1165 U 6 -1 1166 D 2 -1 1167 U 2 -1 1168 L 3 -1 1169 D 11 -1 1170 U 6 -1 1171 D 12 -1 1172 L 5 -1 1173 R 5 -1 1174 D 6 -1 1175 R 5 -1 1176 U 2 -1 1177 R 8 -1 1178 L 7 -1 1179 D 7 -1 1180 R 3 -1 1181 D 8 -1 1182 U 6 -1 1183 D 1 -1 1184 U 1 -1 1185 D 4 -1 1186 L 3 -1 1187 D 12 -1 1188 L 8 -1 1189 D 8 -1 1190 U 7 -1 1191 R 1 -1 1192 D 10 -1 1193 L 5 -1 1194 D 7 -1 1195 L 1 -1 1196 U 4 -1 1197 R 12 -1 1198 L 8 -1 1199 U 2 -1 1200 L 2 -1 1201 U 1 -1 1202 L 8 -1 1203 U 3 -1 1204 L 12 -1 1205 R 3 -1 1206 D 11 -1 1207 R 1 -1 1208 U 4 -1 1209 D 12 -1 1210 L 3 -1 1211 U 2 -1 1212 R 5 -1 1213 U 2 -1 1214 R 7 -1 1215 U 8 -1 1216 L 5 -1 1217 R 1 -1 1218 D 5 -1 1219 R 12 -1 1220 D 8 -1 1221 R 9 -1 1222 D 7 -1 1223 L 2 -1 1224 R 2 -1 1225 U 9 -1 1226 D 6 -1 1227 U 6 -1 1228 R 2 -1 1229 D 2 -1 1230 R 9 -1 1231 D 4 -1 1232 R 12 -1 1233 D 13 -1 1234 R 9 -1 1235 L 3 -1 1236 D 8 -1 1237 L 13 -1 1238 U 2 -1 1239 R 10 -1 1240 U 12 -1 1241 D 12 -1 1242 U 3 -1 1243 L 6 -1 1244 D 8 -1 1245 U 1 -1 1246 L 12 -1 1247 D 9 -1 1248 L 7 -1 1249 R 2 -1 1250 D 4 -1 1251 R 5 -1 1252 L 7 -1 1253 R 12 -1 1254 U 4 -1 1255 L 7 -1 1256 D 4 -1 1257 U 10 -1 1258 L 2 -1 1259 D 1 -1 1260 U 5 -1 1261 R 5 -1 1262 U 2 -1 1263 L 9 -1 1264 D 10 -1 1265 L 1 -1 1266 R 7 -1 1267 L 6 -1 1268 D 1 -1 1269 L 12 -1 1270 R 6 -1 1271 U 10 -1 1272 R 2 -1 1273 D 10 -1 1274 R 5 -1 1275 L 3 -1 1276 R 8 -1 1277 D 1 -1 1278 R 12 -1 1279 L 7 -1 1280 U 5 -1 1281 L 11 -1 1282 D 4 -1 1283 U 11 -1 1284 D 1 -1 1285 U 11 -1 1286 L 1 -1 1287 D 11 -1 1288 U 11 -1 1289 D 4 -1 1290 U 8 -1 1291 R 5 -1 1292 D 6 -1 1293 L 12 -1 1294 R 5 -1 1295 D 10 -1 1296 L 2 -1 1297 D 5 -1 1298 R 10 -1 1299 U 6 -1 1300 D 6 -1 1301 R 4 -1 1302 D 7 -1 1303 L 2 -1 1304 D 5 -1 1305 U 2 -1 1306 R 9 -1 1307 L 11 -1 1308 U 13 -1 1309 D 9 -1 1310 L 11 -1 1311 D 8 -1 1312 L 2 -1 1313 D 4 -1 1314 R 13 -1 1315 L 5 -1 1316 U 12 -1 1317 R 11 -1 1318 U 5 -1 1319 L 8 -1 1320 U 5 -1 1321 D 7 -1 1322 U 1 -1 1323 R 9 -1 1324 D 4 -1 1325 U 3 -1 1326 R 9 -1 1327 L 3 -1 1328 D 7 -1 1329 R 8 -1 1330 D 7 -1 1331 L 2 -1 1332 U 4 -1 1333 L 12 -1 1334 U 13 -1 1335 L 12 -1 1336 R 8 -1 1337 L 3 -1 1338 R 12 -1 1339 L 4 -1 1340 U 12 -1 1341 R 13 -1 1342 D 10 -1 1343 L 8 -1 1344 U 12 -1 1345 R 5 -1 1346 L 1 -1 1347 U 2 -1 1348 L 3 -1 1349 U 2 -1 1350 D 12 -1 1351 L 12 -1 1352 U 11 -1 1353 L 2 -1 1354 R 6 -1 1355 U 3 -1 1356 L 2 -1 1357 R 7 -1 1358 U 7 -1 1359 L 3 -1 1360 R 8 -1 1361 L 11 -1 1362 D 2 -1 1363 U 1 -1 1364 R 12 -1 1365 D 1 -1 1366 R 4 -1 1367 L 13 -1 1368 U 14 -1 1369 R 14 -1 1370 D 12 -1 1371 R 12 -1 1372 D 11 -1 1373 L 11 -1 1374 U 2 -1 1375 L 6 -1 1376 D 8 -1 1377 L 5 -1 1378 D 7 -1 1379 R 2 -1 1380 L 14 -1 1381 U 12 -1 1382 R 13 -1 1383 L 7 -1 1384 D 2 -1 1385 U 4 -1 1386 D 5 -1 1387 R 5 -1 1388 L 7 -1 1389 R 7 -1 1390 U 1 -1 1391 R 10 -1 1392 D 11 -1 1393 L 7 -1 1394 U 2 -1 1395 R 5 -1 1396 L 11 -1 1397 U 11 -1 1398 R 9 -1 1399 U 9 -1 1400 R 12 -1 1401 D 14 -1 1402 R 5 -1 1403 L 9 -1 1404 U 2 -1 1405 D 12 -1 1406 L 6 -1 1407 U 7 -1 1408 R 5 -1 1409 L 10 -1 1410 D 10 -1 1411 U 4 -1 1412 D 13 -1 1413 L 13 -1 1414 D 3 -1 1415 R 8 -1 1416 D 10 -1 1417 U 12 -1 1418 L 14 -1 1419 U 7 -1 1420 D 6 -1 1421 R 4 -1 1422 U 11 -1 1423 R 2 -1 1424 L 5 -1 1425 D 12 -1 1426 R 4 -1 1427 L 4 -1 1428 D 5 -1 1429 L 12 -1 1430 U 3 -1 1431 L 3 -1 1432 U 7 -1 1433 R 4 -1 1434 L 2 -1 1435 R 7 -1 1436 L 5 -1 1437 D 5 -1 1438 R 9 -1 1439 L 5 -1 1440 D 12 -1 1441 R 3 -1 1442 U 1 -1 1443 D 6 -1 1444 U 2 -1 1445 R 10 -1 1446 L 4 -1 1447 U 12 -1 1448 R 15 -1 1449 L 2 -1 1450 R 3 -1 1451 D 8 -1 1452 L 13 -1 1453 D 3 -1 1454 R 5 -1 1455 D 5 -1 1456 L 5 -1 1457 U 7 -1 1458 L 4 -1 1459 R 10 -1 1460 D 11 -1 1461 L 3 -1 1462 R 1 -1 1463 U 4 -1 1464 D 15 -1 1465 L 8 -1 1466 U 10 -1 1467 L 5 -1 1468 D 1 -1 1469 R 5 -1 1470 D 15 -1 1471 R 3 -1 1472 U 9 -1 1473 R 4 -1 1474 D 3 -1 1475 L 15 -1 1476 U 6 -1 1477 D 10 -1 1478 U 2 -1 1479 R 6 -1 1480 U 10 -1 1481 L 12 -1 1482 R 8 -1 1483 D 12 -1 1484 R 14 -1 1485 U 10 -1 1486 D 1 -1 1487 L 1 -1 1488 D 8 -1 1489 U 3 -1 1490 R 11 -1 1491 D 7 -1 1492 L 5 -1 1493 D 14 -1 1494 R 1 -1 1495 D 8 -1 1496 R 6 -1 1497 U 6 -1 1498 D 1 -1 1499 U 14 -1 1500 R 12 -1 1501 L 5 -1 1502 U 5 -1 1503 L 14 -1 1504 U 1 -1 1505 D 3 -1 1506 R 6 -1 1507 U 4 -1 1508 R 9 -1 1509 L 13 -1 1510 R 2 -1 1511 U 10 -1 1512 R 11 -1 1513 U 7 -1 1514 D 8 -1 1515 U 14 -1 1516 L 4 -1 1517 R 3 -1 1518 U 6 -1 1519 R 2 -1 1520 D 14 -1 1521 U 10 -1 1522 D 13 -1 1523 U 8 -1 1524 R 12 -1 1525 L 12 -1 1526 U 6 -1 1527 L 4 -1 1528 U 5 -1 1529 D 6 -1 1530 U 8 -1 1531 L 12 -1 1532 D 1 -1 1533 L 3 -1 1534 R 4 -1 1535 L 11 -1 1536 R 5 -1 1537 D 3 -1 1538 U 6 -1 1539 D 15 -1 1540 R 14 -1 1541 U 8 -1 1542 R 10 -1 1543 U 15 -1 1544 R 13 -1 1545 L 13 -1 1546 U 4 -1 1547 D 3 -1 1548 U 4 -1 1549 D 1 -1 1550 U 5 -1 1551 R 5 -1 1552 D 4 -1 1553 R 2 -1 1554 D 13 -1 1555 R 7 -1 1556 D 10 -1 1557 U 3 -1 1558 R 15 -1 1559 D 3 -1 1560 U 13 -1 1561 R 16 -1 1562 U 2 -1 1563 D 6 -1 1564 L 13 -1 1565 R 8 -1 1566 L 5 -1 1567 R 1 -1 1568 U 7 -1 1569 R 6 -1 1570 U 6 -1 1571 R 10 -1 1572 U 5 -1 1573 L 14 -1 1574 R 12 -1 1575 U 8 -1 1576 R 13 -1 1577 U 4 -1 1578 L 10 -1 1579 R 16 -1 1580 L 15 -1 1581 D 7 -1 1582 R 14 -1 1583 D 8 -1 1584 U 8 -1 1585 L 15 -1 1586 R 2 -1 1587 U 11 -1 1588 L 6 -1 1589 R 6 -1 1590 D 2 -1 1591 U 9 -1 1592 D 12 -1 1593 L 10 -1 1594 U 7 -1 1595 R 8 -1 1596 L 4 -1 1597 D 5 -1 1598 R 13 -1 1599 L 9 -1 1600 U 15 -1 1601 D 11 -1 1602 R 11 -1 1603 D 8 -1 1604 L 10 -1 1605 R 14 -1 1606 D 3 -1 1607 R 10 -1 1608 U 1 -1 1609 R 11 -1 1610 L 16 -1 1611 R 12 -1 1612 D 15 -1 1613 L 13 -1 1614 U 2 -1 1615 L 11 -1 1616 U 15 -1 1617 D 9 -1 1618 R 1 -1 1619 D 13 -1 1620 L 16 -1 1621 U 9 -1 1622 D 2 -1 1623 R 5 -1 1624 U 9 -1 1625 R 11 -1 1626 L 16 -1 1627 U 5 -1 1628 R 11 -1 1629 U 8 -1 1630 L 15 -1 1631 U 1 -1 1632 L 11 -1 1633 U 3 -1 1634 L 4 -1 1635 U 9 -1 1636 L 5 -1 1637 U 11 -1 1638 D 9 -1 1639 U 4 -1 1640 L 14 -1 1641 U 8 -1 1642 L 16 -1 1643 D 9 -1 1644 U 5 -1 1645 L 14 -1 1646 R 13 -1 1647 U 8 -1 1648 L 4 -1 1649 R 9 -1 1650 L 4 -1 1651 R 7 -1 1652 D 15 -1 1653 U 14 -1 1654 D 8 -1 1655 U 6 -1 1656 R 11 -1 1657 L 15 -1 1658 D 10 -1 1659 R 2 -1 1660 L 12 -1 1661 R 11 -1 1662 D 7 -1 1663 R 11 -1 1664 L 4 -1 1665 R 4 -1 1666 D 4 -1 1667 R 3 -1 1668 U 15 -1 1669 L 6 -1 1670 R 8 -1 1671 L 5 -1 1672 U 13 -1 1673 D 6 -1 1674 R 1 -1 1675 D 15 -1 1676 L 9 -1 1677 U 2 -1 1678 L 13 -1 1679 R 10 -1 1680 U 8 -1 1681 R 15 -1 1682 D 16 -1 1683 L 13 -1 1684 U 13 -1 1685 L 12 -1 1686 R 10 -1 1687 U 16 -1 1688 L 10 -1 1689 R 14 -1 1690 D 17 -1 1691 R 4 -1 1692 D 16 -1 1693 U 17 -1 1694 R 8 -1 1695 D 10 -1 1696 R 11 -1 1697 L 10 -1 1698 U 17 -1 1699 L 11 -1 1700 U 3 -1 1701 L 4 -1 1702 U 2 -1 1703 D 10 -1 1704 R 15 -1 1705 U 1 -1 1706 R 5 -1 1707 L 12 -1 1708 D 4 -1 1709 R 1 -1 1710 U 15 -1 1711 R 13 -1 1712 L 17 -1 1713 R 15 -1 1714 D 4 -1 1715 L 14 -1 1716 R 3 -1 1717 D 1 -1 1718 U 14 -1 1719 R 11 -1 1720 D 12 -1 1721 L 7 -1 1722 D 11 -1 1723 R 12 -1 1724 U 1 -1 1725 R 5 -1 1726 L 11 -1 1727 D 9 -1 1728 U 8 -1 1729 R 1 -1 1730 U 4 -1 1731 L 15 -1 1732 R 12 -1 1733 U 17 -1 1734 R 4 -1 1735 U 14 -1 1736 L 4 -1 1737 D 16 -1 1738 R 9 -1 1739 U 9 -1 1740 D 11 -1 1741 L 7 -1 1742 D 16 -1 1743 R 10 -1 1744 L 10 -1 1745 R 15 -1 1746 U 10 -1 1747 R 6 -1 1748 L 4 -1 1749 R 6 -1 1750 L 12 -1 1751 U 9 -1 1752 R 15 -1 1753 D 12 -1 1754 L 14 -1 1755 U 14 -1 1756 D 6 -1 1757 U 4 -1 1758 R 17 -1 1759 U 2 -1 1760 L 5 -1 1761 R 13 -1 1762 D 15 -1 1763 U 13 -1 1764 L 5 -1 1765 D 3 -1 1766 L 7 -1 1767 U 12 -1 1768 R 13 -1 1769 D 15 -1 1770 U 15 -1 1771 L 17 -1 1772 U 17 -1 1773 L 6 -1 1774 R 2 -1 1775 U 17 -1 1776 R 7 -1 1777 L 15 -1 1778 U 17 -1 1779 R 11 -1 1780 L 2 -1 1781 U 1 -1 1782 D 4 -1 1783 U 2 -1 1784 R 10 -1 1785 L 9 -1 1786 D 18 -1 1787 U 5 -1 1788 D 7 -1 1789 R 18 -1 1790 L 11 -1 1791 D 2 -1 1792 U 13 -1 1793 D 12 -1 1794 R 10 -1 1795 D 2 -1 1796 R 9 -1 1797 L 3 -1 1798 D 9 -1 1799 R 9 -1 1800 L 17 -1 1801 R 4 -1 1802 L 7 -1 1803 D 16 -1 1804 L 5 -1 1805 R 3 -1 1806 L 8 -1 1807 U 7 -1 1808 R 8 -1 1809 L 1 -1 1810 D 12 -1 1811 U 13 -1 1812 R 8 -1 1813 D 18 -1 1814 U 7 -1 1815 R 6 -1 1816 D 7 -1 1817 L 7 -1 1818 D 8 -1 1819 R 16 -1 1820 L 13 -1 1821 R 6 -1 1822 U 1 -1 1823 L 9 -1 1824 U 9 -1 1825 L 12 -1 1826 D 13 -1 1827 R 18 -1 1828 L 7 -1 1829 D 18 -1 1830 U 17 -1 1831 R 18 -1 1832 D 11 -1 1833 R 1 -1 1834 D 4 -1 1835 U 3 -1 1836 L 7 -1 1837 D 17 -1 1838 R 8 -1 1839 U 11 -1 1840 D 7 -1 1841 L 4 -1 1842 R 12 -1 1843 U 10 -1 1844 L 15 -1 1845 R 14 -1 1846 U 16 -1 1847 D 4 -1 1848 L 10 -1 1849 U 6 -1 1850 D 18 -1 1851 R 7 -1 1852 U 13 -1 1853 R 11 -1 1854 D 14 -1 1855 L 5 -1 1856 U 5 -1 1857 L 7 -1 1858 R 15 -1 1859 L 16 -1 1860 U 6 -1 1861 D 9 -1 1862 L 17 -1 1863 R 4 -1 1864 L 16 -1 1865 D 10 -1 1866 U 16 -1 1867 D 17 -1 1868 R 7 -1 1869 L 16 -1 1870 U 6 -1 1871 L 15 -1 1872 R 13 -1 1873 U 8 -1 1874 L 14 -1 1875 R 12 -1 1876 U 5 -1 1877 D 17 -1 1878 R 13 -1 1879 D 12 -1 1880 U 12 -1 1881 L 16 -1 1882 R 8 -1 1883 U 4 -1 1884 D 6 -1 1885 U 10 -1 1886 D 14 -1 1887 R 18 -1 1888 L 17 -1 1889 U 15 -1 1890 L 5 -1 1891 U 7 -1 1892 D 15 -1 1893 U 10 -1 1894 R 18 -1 1895 L 11 -1 1896 D 10 -1 1897 R 12 -1 1898 U 15 -1 1899 D 11 -1 1900 U 7 -1 1901 D 3 -1 1902 R 2 -1 1903 U 5 -1 1904 R 12 -1 1905 U 15 -1 1906 R 12 -1 1907 U 19 -1 1908 L 6 -1 1909 U 18 -1 1910 D 8 -1 1911 L 7 -1 1912 D 2 -1 1913 R 1 -1 1914 L 16 -1 1915 D 5 -1 1916 L 9 -1 1917 U 11 -1 1918 L 6 -1 1919 U 7 -1 1920 L 2 -1 1921 D 18 -1 1922 L 1 -1 1923 U 19 -1 1924 D 15 -1 1925 U 8 -1 1926 R 5 -1 1927 U 13 -1 1928 L 7 -1 1929 R 14 -1 1930 U 2 -1 1931 D 10 -1 1932 U 16 -1 1933 D 3 -1 1934 R 8 -1 1935 L 10 -1 1936 D 17 -1 1937 U 16 -1 1938 D 6 -1 1939 R 18 -1 1940 D 5 -1 1941 L 5 -1 1942 D 4 -1 1943 L 6 -1 1944 U 17 -1 1945 D 7 -1 1946 R 15 -1 1947 D 5 -1 1948 R 18 -1 1949 L 6 -1 1950 U 15 -1 1951 L 3 -1 1952 U 13 -1 1953 L 15 -1 1954 R 5 -1 1955 D 9 -1 1956 R 11 -1 1957 U 15 -1 1958 L 19 -1 1959 D 11 -1 1960 L 8 -1 1961 D 14 -1 1962 R 7 -1 1963 L 16 -1 1964 D 5 -1 1965 R 13 -1 1966 D 5 -1 1967 L 9 -1 1968 D 3 -1 1969 L 3 -1 1970 R 12 -1 1971 U 17 -1 1972 R 8 -1 1973 L 11 -1 1974 U 2 -1 1975 R 9 -1 1976 L 3 -1 1977 D 6 -1 1978 L 9 -1 1979 U 11 -1 1980 R 6 -1 1981 U 19 -1 1982 R 6 -1 1983 L 12 -1 1984 U 5 -1 1985 R 4 -1 1986 U 4 -1 1987 L 16 -1 1988 R 17 -1 1989 D 12 -1 1990 U 11 -1 1991 R 4 -1 1992 D 11 -1 1993 U 4 -1 1994 R 8 -1 1995 U 9 -1 1996 R 12 -1 1997 U 13 -1 1998 L 2 -1 1999 D 9 -1 2000 L 2
diff --git a/2022/09/solution.rs b/2022/09/solution.rs
@@ -0,0 +1,47 @@ -1 1 #[path = "../lib.rs"] mod lib; -1 2 -1 3 use std::collections::HashSet; -1 4 -1 5 fn simulate(len: usize) -> usize { -1 6 let mut rope: Vec<(i64, i64)> = vec![(0, 0); len]; -1 7 let mut visited = HashSet::new(); -1 8 -1 9 for line in lib::iter_input() { -1 10 let (dir, steps_s) = lib::split_once(&line, ' ').unwrap(); -1 11 let steps = steps_s.parse::<u64>().unwrap(); -1 12 -1 13 for _ in 0..steps { -1 14 match dir { -1 15 "U" => { rope[len - 1].1 += 1; }, -1 16 "D" => { rope[len - 1].1 -= 1; }, -1 17 "L" => { rope[len - 1].0 -= 1; }, -1 18 "R" => { rope[len - 1].0 += 1; }, -1 19 _ => unreachable!(), -1 20 } -1 21 -1 22 for i1 in (0..len - 1).rev() { -1 23 let i2 = i1 + 1; -1 24 if (rope[i2].0 - rope[i1].0).abs() > 1 || (rope[i2].1 - rope[i1].1).abs() > 1 { -1 25 if rope[i1].0 < rope[i2].0 { -1 26 rope[i1].0 += 1; -1 27 } else if rope[i1].0 > rope[i2].0 { -1 28 rope[i1].0 -= 1; -1 29 } -1 30 if rope[i1].1 < rope[i2].1 { -1 31 rope[i1].1 += 1; -1 32 } else if rope[i1].1 > rope[i2].1 { -1 33 rope[i1].1 -= 1; -1 34 } -1 35 } -1 36 } -1 37 -1 38 visited.insert(rope[0]); -1 39 } -1 40 } -1 41 return visited.len(); -1 42 } -1 43 -1 44 fn main() { -1 45 println!("part1: {}", simulate(2)); -1 46 println!("part2: {}", simulate(10)); -1 47 }
diff --git a/2022/09/test.txt b/2022/09/test.txt
@@ -0,0 +1,8 @@ -1 1 R 4 -1 2 U 4 -1 3 L 3 -1 4 D 1 -1 5 R 4 -1 6 D 1 -1 7 L 5 -1 8 R 2
diff --git a/2022/09/test2.txt b/2022/09/test2.txt
@@ -0,0 +1,8 @@ -1 1 R 5 -1 2 U 8 -1 3 L 8 -1 4 D 3 -1 5 R 17 -1 6 D 10 -1 7 L 25 -1 8 U 20