From 725af40f392f8526669c4e75d71fc74d97407e6a Mon Sep 17 00:00:00 2001 From: Andy Teijelo Date: Sun, 10 Dec 2023 15:08:00 -0500 Subject: [PATCH] day 10 part 1 --- example.txt | 8 +- input.txt | 340 ++++++++++++++++++++++------------------------------ src/main.rs | 75 +++++++----- 3 files changed, 188 insertions(+), 235 deletions(-) diff --git a/example.txt b/example.txt index 539a763..682499d 100644 --- a/example.txt +++ b/example.txt @@ -1,3 +1,5 @@ -0 3 6 9 12 15 -1 3 6 10 15 21 -10 13 16 21 30 45 +..F7. +.FJ|. +SJ.L7 +|F--J +LJ... diff --git a/input.txt b/input.txt index 2d0cfd3..56b1d9b 100644 --- a/input.txt +++ b/input.txt @@ -1,200 +1,140 @@ -11 33 79 170 328 578 967 1621 2872 5498 11130 22891 46343 90829 171308 310792 543505 918895 1506641 2402808 3737314 --4 12 58 149 300 526 842 1263 1804 2480 3306 4297 5468 6834 8410 10211 12252 14548 17114 19965 23116 -4 9 26 66 146 290 544 1024 2021 4198 8945 19036 39915 82362 168258 343303 705045 1463670 3070651 6483469 13694943 -0 -1 4 30 99 245 525 1038 1973 3753 7431 15644 34662 78403 175746 383088 804886 1625931 3160350 5923858 10737621 -21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 126 133 140 147 154 161 -22 30 38 46 54 62 70 78 86 94 102 110 118 126 134 142 150 158 166 174 182 -23 32 41 50 59 68 77 86 95 104 113 122 131 140 149 158 167 176 185 194 203 -17 24 42 85 177 360 712 1386 2687 5210 10068 19245 36115 66174 118038 204766 345573 568004 910646 1426461 2186829 -13 21 32 47 68 115 262 694 1798 4335 9803 21207 44641 92458 189568 385972 781800 1577454 3174336 6378503 12816737 -11 30 74 153 286 528 1018 2059 4246 8678 17345 33906 65340 125498 242657 475189 943094 1889595 3798425 7612912 15140047 -27 46 72 118 215 434 924 1975 4137 8477 17150 34609 69993 141534 284300 563515 1097813 2101901 3970290 7451561 14023129 -2 -1 1 17 53 107 171 257 483 1295 3974 11705 31719 79466 186642 416552 893420 1858051 3772775 7517333 14749965 -22 44 94 189 349 596 956 1482 2328 3920 7297 14748 30975 65212 135122 274090 545170 1068268 2073636 4006875 7732265 -21 47 92 165 274 421 597 777 915 939 746 197 -888 -2735 -5621 -9879 -15903 -24153 -35160 -49531 -67954 -16 46 103 194 323 506 799 1339 2398 4450 8251 14932 26105 43982 71507 112501 171820 255526 371071 527494 735631 -21 33 45 66 116 230 466 920 1764 3352 6500 13173 28066 62062 139525 313342 695599 1519803 3266545 6915774 14449172 -21 41 82 166 322 582 977 1533 2267 3183 4268 5488 6784 8068 9219 10079 10449 10085 8694 5930 1390 -15 32 65 131 248 432 704 1122 1858 3342 6504 13183 26880 54285 108538 216211 431869 867304 1747887 3516991 7022508 -14 38 71 114 187 343 682 1365 2628 4796 8297 13676 21609 32917 48580 69751 97770 134178 180731 239414 312455 -7 9 10 21 70 217 591 1471 3450 7744 16735 34866 70039 135714 253990 460106 809089 1385779 2320288 3812243 6169100 -7 16 40 99 234 521 1085 2114 3873 6718 11110 17629 26988 40047 57827 81524 112523 152412 202996 266311 344638 -21 44 93 194 398 804 1598 3120 5987 11341 21374 40427 77190 148871 288683 558651 1070601 2019298 3733091 6749144 11922430 -12 15 14 7 -6 -23 -40 -51 -48 -21 42 155 334 597 964 1457 2100 2919 3942 5199 6722 -9 31 66 121 217 407 805 1631 3280 6437 12303 23097 43194 81597 156980 307347 607507 1199155 2340472 4484921 8402439 -14 22 26 26 22 14 2 -14 -34 -58 -86 -118 -154 -194 -238 -286 -338 -394 -454 -518 -586 -5 13 26 52 105 213 434 881 1777 3610 7548 16410 36670 82208 180884 385710 793921 1580563 3060030 5802092 10852699 -8 7 16 38 76 138 242 421 728 1241 2068 3352 5276 8068 12006 17423 24712 34331 46808 62746 82828 -12 20 38 66 104 152 210 278 356 444 542 650 768 896 1034 1182 1340 1508 1686 1874 2072 -11 28 56 96 158 290 632 1517 3663 8544 19118 41257 86513 177343 356747 705695 1374143 2635504 4981096 9281682 17059596 -5 14 50 138 313 615 1083 1763 2771 4490 8043 16309 36006 81865 184821 407664 873997 1819974 3683540 7253236 13908603 -22 52 110 209 362 582 882 1275 1774 2392 3142 4037 5090 6314 7722 9327 11142 13180 15454 17977 20762 -22 41 74 129 225 403 747 1437 2868 5888 12235 25293 51368 101893 197507 376218 710574 1344127 2567364 4970517 9739327 -14 16 21 26 33 71 225 669 1711 3882 8151 16448 32862 66200 135126 278004 571179 1162423 2331940 4603961 8951410 -18 22 38 89 211 462 950 1891 3718 7280 14198 27490 52649 99468 185064 338766 609802 1079042 1876414 3205983 5381031 -1 13 37 85 177 350 680 1317 2528 4731 8496 14508 23557 36765 56498 88749 148207 267717 514331 1014563 1991669 -16 37 75 140 260 494 948 1795 3311 5972 10736 19796 38393 78822 168725 367451 797225 1701138 3549550 7234285 14423393 -13 34 69 139 293 621 1267 2442 4437 7636 12529 19725 29965 44135 63279 88612 121533 163638 216733 282847 364245 -15 22 29 36 43 50 57 64 71 78 85 92 99 106 113 120 127 134 141 148 155 -12 13 24 72 203 502 1124 2338 4602 8719 16173 29806 55063 102088 188981 346500 624384 1099249 1883630 3135164 5064083 -16 22 31 57 136 332 737 1459 2591 4157 6057 8120 10584 15760 32504 86828 245372 665255 1697550 4099589 9468672 -18 20 22 35 84 212 485 999 1888 3330 5546 8785 13286 19206 26501 34745 42870 48808 49014 37847 6784 -26 40 60 100 185 365 753 1608 3505 7668 16599 35239 73093 148135 294064 573935 1105880 2111392 4004662 7554350 14169005 -14 37 79 157 301 568 1066 1991 3687 6748 12192 21750 38328 66717 114645 194286 324364 533015 861597 1369667 2141375 -26 46 80 139 236 397 692 1291 2558 5207 10554 20905 40120 74386 133218 230687 386850 629332 994988 1531559 2299236 -1 8 26 59 113 196 318 491 729 1048 1466 2003 2681 3524 4558 5811 7313 9096 11194 13643 16481 -0 4 29 86 181 316 500 777 1289 2426 5187 12003 28474 66768 151844 332218 697718 1407600 2733553 5123540 9294139 -12 7 4 11 50 181 537 1383 3231 7080 14929 30865 63312 129553 264648 538893 1092110 2201596 4417932 8837368 17646010 -15 19 30 60 135 306 678 1466 3095 6390 12973 26143 52850 108034 223821 468228 981780 2047002 4217481 8554651 17060138 -4 23 62 145 315 646 1261 2365 4324 7855 14438 27119 51943 100338 192865 364855 674572 1214671 2127862 3627845 6026747 -0 -2 1 17 70 225 639 1664 4038 9205 19811 40451 78840 147845 269432 482915 862636 1555638 2860301 5386215 10370274 -9 16 36 81 178 382 793 1573 2968 5363 9450 16694 30481 58719 119464 252853 546219 1186490 2567764 5506931 11663356 -8 12 29 70 149 283 492 799 1230 1814 2583 3572 4819 6365 8254 10533 13252 16464 20225 24594 29633 -2 0 4 23 66 142 260 429 658 956 1332 1795 2354 3018 3796 4697 5730 6904 8228 9711 11362 -13 32 57 90 148 285 627 1420 3091 6322 12137 22002 37938 62647 99651 153444 229657 335236 478633 670010 921456 -21 32 44 61 106 241 607 1495 3457 7463 15099 28772 51831 88420 142742 217210 308613 400694 449818 356347 -94816 -6 4 -2 -7 0 48 214 692 1942 4996 12059 27638 60570 127510 258691 507089 962526 1772732 3173972 5534535 9415188 -20 38 72 131 224 360 548 797 1116 1514 2000 2583 3272 4076 5004 6065 7268 8622 10136 11819 13680 -14 23 32 41 50 59 68 77 86 95 104 113 122 131 140 149 158 167 176 185 194 -13 28 43 58 73 88 103 118 133 148 163 178 193 208 223 238 253 268 283 298 313 -20 32 54 85 126 194 353 775 1844 4325 9661 20564 42270 85202 170484 341139 684723 1379417 2788967 5659626 11527921 -12 42 94 190 372 707 1290 2244 3715 5862 8851 12896 18508 27457 45805 92242 218753 557969 1425339 3529889 8394603 -1 16 52 121 245 478 939 1856 3627 6908 12736 22683 39011 64754 103587 159250 234173 326792 426852 507757 514745 -9 23 49 92 169 312 569 1010 1759 3101 5767 11605 25054 56263 127560 286684 633455 1372598 2916433 6081111 12456613 -8 8 4 -4 -16 -32 -52 -76 -104 -136 -172 -212 -256 -304 -356 -412 -472 -536 -604 -676 -752 -26 50 92 159 258 396 580 817 1114 1478 1916 2435 3042 3744 4548 5461 6490 7642 8924 10343 11906 -7 6 17 60 181 465 1050 2151 4118 7575 13716 24876 45577 84429 157644 295650 555589 1044640 1962503 3676488 6850057 -10 22 50 115 247 480 857 1461 2494 4432 8290 16037 31207 59758 111237 200315 348762 587938 961882 1531087 2377055 -22 44 88 166 295 510 888 1586 2898 5337 9747 17448 30422 51580 85246 138213 222154 358926 591542 1005502 1768013 -6 14 41 90 173 328 648 1335 2797 5811 11780 23117 43794 80099 141649 242712 403896 654268 1033971 1597412 2417099 -11 22 32 41 58 123 337 898 2137 4539 8720 15312 24684 36398 48265 54827 45047 -1060 -117176 -357189 -803906 -4 14 40 86 151 234 349 562 1075 2413 5840 14278 34296 80279 182833 405042 872646 1827912 3722368 7371206 14202685 -15 31 63 134 282 578 1161 2296 4461 8469 15631 27966 48464 81408 132761 210624 325771 492267 728175 1056358 1505382 -10 16 17 21 46 120 281 577 1066 1816 2905 4421 6462 9136 12561 16865 22186 28672 36481 45781 56750 -3 3 4 24 106 323 775 1573 2804 4484 6546 8990 12455 19672 38535 87897 207673 475425 1032328 2122284 4148976 -18 23 20 2 -27 -33 73 468 1460 3543 7466 14318 25631 43503 70743 111040 169158 251159 364656 519098 726089 --6 4 34 91 180 308 508 892 1734 3580 7384 14674 27752 49914 85622 140447 220402 329964 467606 616981 730972 -7 10 12 9 -4 -31 -65 -51 207 1234 4216 11535 27576 59885 120767 229423 414735 718818 1201468 1945645 3064140 -19 25 32 40 49 59 70 82 95 109 124 140 157 175 194 214 235 257 280 304 329 -5 7 27 90 242 556 1145 2198 4062 7416 13636 25544 48873 94970 185545 360820 693659 1315057 2462389 4573894 8475508 -17 30 60 126 262 519 965 1696 2892 4985 9054 17635 36258 76249 159748 328622 660175 1294516 2481452 4659216 8583698 -10 25 69 169 366 716 1304 2281 3933 6796 11854 20926 37510 68672 129125 249524 492296 980111 1944451 3804703 7291826 -9 28 54 82 114 173 320 681 1502 3269 6974 14709 30979 65516 139058 294709 619447 1283730 2613166 5217048 10218000 -9 23 51 111 234 465 864 1517 2574 4343 7497 13505 25482 49760 98589 194440 376331 708331 1289779 2265607 3833254 -2 1 2 9 26 57 106 177 274 401 562 761 1002 1289 1626 2017 2466 2977 3554 4201 4922 -6 10 14 15 20 71 275 848 2196 5070 10846 21995 42822 80567 146975 260456 448970 753786 1234278 1973935 3087776 -3 13 30 54 85 123 168 220 279 345 418 498 585 679 780 888 1003 1125 1254 1390 1533 -8 8 14 28 56 116 247 516 1032 2012 4014 8574 19687 46897 111270 256338 567509 1206143 2470123 4904763 9513099 -1 0 -2 -8 -11 25 191 680 1894 4693 10930 24493 53162 111684 226585 443458 838118 1535101 2743069 4832537 8518726 -6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 -12 19 33 54 82 117 159 208 264 327 397 474 558 649 747 852 964 1083 1209 1342 1482 -12 15 20 35 69 134 255 497 1035 2331 5557 13539 32728 77088 175449 385066 816382 1678303 3361374 6590903 12707671 -12 38 77 141 271 567 1233 2637 5386 10416 19097 33353 55797 89881 140061 211977 312648 450682 636501 882581 1203707 -2 -2 5 33 103 269 656 1523 3360 7028 13951 26369 47661 82747 138578 224723 354062 543594 815369 1197553 1725635 -6 19 34 61 126 273 566 1091 1958 3303 5290 8113 11998 17205 24030 32807 43910 57755 74802 95557 120574 -13 28 52 98 190 356 631 1090 1943 3739 7746 16604 35393 73320 146304 280813 519357 928026 1606324 2699210 4410612 -11 25 41 60 83 111 145 186 235 293 361 440 531 635 753 886 1035 1201 1385 1588 1811 --1 9 37 101 235 490 935 1658 2767 4391 6681 9811 13979 19408 26347 35072 45887 59125 75149 94353 117163 -13 23 33 43 53 63 73 83 93 103 113 123 133 143 153 163 173 183 193 203 213 -3 18 48 113 249 507 943 1597 2475 3572 5003 7342 12318 24135 52013 115394 255183 558334 1210486 2604295 5552483 --3 -11 -12 2 39 107 212 354 521 681 772 690 275 -705 -2572 -5758 -10827 -18499 -29676 -45470 -67233 -5 2 2 15 59 159 340 624 1055 1805 3471 7786 19205 48346 119383 285791 663345 1497620 3297968 7094833 14917719 -7 13 31 67 134 273 596 1373 3200 7319 16241 34988 73571 151821 308464 617466 1216269 2352705 4460235 8274849 15011628 -18 30 42 54 66 78 90 102 114 126 138 150 162 174 186 198 210 222 234 246 258 -5 12 22 39 72 145 333 835 2093 4964 10950 22489 43308 78837 136681 227145 363805 564116 850046 1248723 1793080 -18 30 42 54 66 78 90 102 114 126 138 150 162 174 186 198 210 222 234 246 258 -23 31 34 42 74 151 297 564 1100 2289 5028 11295 25347 56244 123056 265289 563085 1175063 2406874 4831400 9492944 -24 34 44 70 151 373 907 2068 4414 8929 17391 33143 62698 118976 227618 439040 851304 1653716 3210518 6221840 12031157 -5 5 6 9 25 93 298 784 1757 3473 6206 10191 15537 22105 29346 36094 40309 38765 26678 -2731 -58743 -8 30 65 113 181 304 577 1206 2612 5663 12165 25814 53897 110131 219145 423241 792216 1437188 2529545 4326327 7203557 -3 -3 2 45 172 456 1007 1994 3698 6624 11709 20672 36561 64561 113136 195587 332117 552503 899484 1432983 2235290 -16 28 42 55 65 82 154 417 1176 3020 6973 14694 28780 53330 95148 166377 290076 511444 919320 1685677 3135807 -18 42 77 132 229 414 786 1567 3248 6857 14418 29731 59741 117031 224435 423500 789622 1458244 2668651 4834758 8656005 -22 33 53 94 170 308 580 1163 2439 5174 10885 22642 46793 96506 198710 407198 826684 1656043 3264645 6324818 12037692 -9 2 -5 4 60 221 589 1330 2700 5103 9257 16631 30457 57846 113895 229237 463363 927376 1821807 3497966 6555306 -20 29 43 70 124 227 415 751 1362 2544 5016 10456 22541 48887 104627 219002 447452 893523 1747765 3355078 6328150 -10 30 76 166 319 551 871 1277 1752 2260 2742 3112 3253 3013 2201 583 -2122 -6246 -12176 -20358 -31301 --1 -4 -12 -25 -43 -66 -94 -127 -165 -208 -256 -309 -367 -430 -498 -571 -649 -732 -820 -913 -1011 -21 42 78 141 255 462 838 1529 2822 5276 9951 18788 35210 65034 117809 208728 361307 611086 1010692 1636719 2599033 -17 22 32 65 156 375 869 1946 4237 9006 18747 38346 77349 154341 305211 598293 1161213 2226966 4210582 7833071 14316598 -23 35 56 97 184 372 770 1588 3227 6448 12676 24520 46620 86967 158882 283885 495735 845977 1411392 2303811 3682824 -12 22 50 102 193 369 738 1519 3123 6285 12283 23336 43417 80027 148066 277964 531906 1034564 2028564 3970366 7689797 -9 24 56 105 167 230 283 360 645 1665 4596 11702 26919 56585 110303 201907 350481 581358 927000 1427631 2131463 -14 41 82 137 206 289 386 497 622 761 914 1081 1262 1457 1666 1889 2126 2377 2642 2921 3214 -15 15 25 55 122 265 572 1228 2593 5319 10515 19969 36436 64001 108526 178190 284131 441199 668829 992043 1442590 -6 12 33 73 141 260 476 867 1552 2700 4539 7365 11551 17556 25934 37343 52554 72460 98085 130593 171297 -1 1 11 56 170 393 762 1305 2075 3308 5874 12352 29361 72304 174536 404269 894401 1893019 3845673 7524704 14225928 -16 34 67 130 253 498 998 2037 4211 8749 18154 37491 76971 157065 318416 640655 1277578 2522408 4928725 9534976 18281777 --4 7 28 69 151 314 645 1333 2768 5722 11693 23596 47228 94470 190320 388188 802635 1678168 3530805 7432530 15567904 -18 36 71 135 251 451 770 1238 1875 2697 3744 5144 7230 10730 17053 28697 49808 86922 149925 253269 417485 -17 27 39 53 69 87 107 129 153 179 207 237 269 303 339 377 417 459 503 549 597 -12 30 62 105 166 290 607 1404 3228 7032 14409 28053 52790 97915 182299 345074 667188 1313670 2614596 5216937 10363390 --3 3 14 34 79 179 385 791 1581 3111 6036 11492 21343 38503 67343 114193 187949 300795 469050 714150 1063775 -20 27 34 42 57 94 185 406 955 2332 5700 13574 31162 69089 149059 315518 658934 1360377 2773254 5567058 10970703 -12 31 66 136 277 553 1084 2099 4022 7604 14135 25826 46566 83450 149722 269974 488312 879201 1557928 2681748 4422091 --6 -12 -15 -10 7 50 176 548 1548 3988 9514 21369 45783 94400 188345 364791 687222 1261020 2256551 3942608 6733911 -9 11 24 56 115 209 346 534 781 1095 1484 1956 2519 3181 3950 4834 5841 6979 8256 9680 11259 -19 28 47 85 150 249 393 608 953 1545 2589 4408 7464 12356 19775 30389 44623 62290 82019 100415 110874 --7 -3 23 96 256 573 1173 2275 4239 7625 13263 22334 36462 57817 89229 134313 197605 284709 402455 559068 764348 -5 17 36 77 173 376 752 1366 2253 3371 4532 5307 4901 1994 -5456 -20452 -47243 -91659 -161500 -266983 -421251 --10 -1 35 108 224 390 635 1065 1983 4134 9187 20644 45469 96853 198665 392271 746516 1371737 2438683 4203132 7036782 -25 38 65 120 217 370 593 900 1305 1822 2465 3248 4185 5290 6577 8060 9753 11670 13825 16232 18905 --9 0 31 93 201 391 757 1533 3259 7106 15519 33524 71431 150402 313665 648355 1326471 2678800 5323567 10382883 19835829 -26 43 77 141 253 444 771 1351 2445 4634 9142 18374 36750 71929 136530 250470 444052 761949 1268243 2052691 3238403 -3 23 56 102 159 224 304 453 872 2156 5868 15800 40606 99088 230553 514885 1111321 2333185 4790980 9662890 19196825 -5 7 11 11 11 41 177 569 1488 3426 7340 15251 31643 66547 142001 305012 652619 1378773 2859373 5802111 11503367 -22 36 51 78 145 311 707 1627 3695 8141 17236 34977 68211 128605 236311 426997 765336 1370358 2461653 4440740 8029569 -6 11 26 57 119 258 583 1305 2775 5516 10276 18226 31642 55815 103621 205270 427380 907857 1916302 3954039 7913625 -15 31 62 110 187 328 607 1156 2187 4017 7096 12038 19655 30994 47377 70444 102199 145059 201906 276142 371747 -0 3 16 55 149 340 683 1246 2110 3369 5130 7513 10651 14690 19789 26120 33868 43231 54420 67659 83185 --1 -7 -20 -48 -97 -155 -157 87 1031 3644 9836 23143 49779 100190 191275 349472 614943 1047131 1732004 2791346 4394503 -2 1 11 55 171 420 898 1747 3154 5329 8473 12793 18703 27498 43092 76090 152970 336313 768231 1760599 3975675 -17 23 30 37 38 32 58 269 1059 3257 8402 19113 39568 76106 137966 238177 394613 631227 979478 1479965 2184282 --2 -5 -6 10 70 213 500 1061 2230 4863 11016 25301 57457 126982 271071 557577 1105218 2113727 3906986 6992264 12138316 -15 31 72 145 263 460 824 1562 3120 6398 13135 26613 52974 103703 200257 382480 723413 1354473 2506834 4577305 8230185 -19 44 99 206 404 767 1426 2586 4530 7614 12296 19331 30440 50097 89734 176986 375280 824379 1822508 3988499 8572027 -17 21 33 79 200 453 925 1781 3379 6502 12778 25380 50112 96984 182346 331572 582141 986731 1615599 2557037 3914040 -17 17 25 61 159 381 834 1684 3174 5694 10033 18079 34436 69710 146592 310348 645927 1304631 2544169 4786953 8702701 -0 -5 -16 -27 -22 19 120 326 748 1647 3568 7535 15318 29783 55336 98472 168440 278035 444528 690745 1046306 --5 0 21 67 147 270 445 681 987 1372 1845 2415 3091 3882 4797 5845 7035 8376 9877 11547 13395 -6 12 28 65 133 250 460 861 1655 3260 6582 13659 29103 63147 137747 298222 634504 1318424 2666836 5245089 10031765 -6 18 41 81 140 211 283 381 694 1883 5722 16328 42405 101185 225113 472799 946338 1817748 3367939 6042215 10526702 -20 37 65 118 226 454 941 1966 4057 8184 16121 31129 59206 111276 206873 380241 690732 1242056 2221884 3989792 7277474 -9 19 50 117 246 497 1001 2011 3967 7575 13900 24473 41412 67557 106619 163343 243685 355003 506262 708253 973826 -2 4 2 0 21 119 402 1079 2547 5554 11537 23379 47108 95539 195615 402326 823680 1663384 3290796 6351474 11936431 -7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 -9 2 1 28 118 328 760 1600 3179 6074 11287 20568 36984 65880 116430 204036 353901 606178 1023181 1699236 2773850 -23 30 32 29 21 8 -10 -33 -61 -94 -132 -175 -223 -276 -334 -397 -465 -538 -616 -699 -787 -7 18 34 64 130 265 512 930 1611 2712 4509 7487 12495 21028 35768 61654 108003 192634 349640 643518 1193940 -25 41 63 97 150 223 302 347 276 -60 -896 -2467 -4479 -4246 8519 64329 241515 721811 1894997 4544673 10161184 -4 15 39 94 222 501 1072 2196 4356 8419 15873 29154 52078 90393 152466 250120 399636 622935 948955 1415238 2069742 -23 37 51 66 79 81 57 -11 -127 -225 -24 1310 5911 18795 51062 126073 290811 635857 1329097 2670530 5178487 -6 6 13 40 103 217 395 652 1010 1507 2246 3601 6868 15981 41506 109097 276067 661833 1501004 3232495 6646054 --5 -10 -3 41 171 485 1169 2548 5143 9732 17438 29930 49949 82618 138512 240597 439619 847736 1710719 3559493 7520095 -20 45 85 142 224 354 580 995 1791 3392 6744 13910 29276 62012 131130 275921 577546 1203739 2501051 5183334 10710516 -7 2 -8 -8 30 147 402 898 1853 3748 7598 15426 31110 62005 122301 240325 474579 948318 1921648 3936104 8093318 -4 16 42 89 180 376 809 1728 3571 7103 13720 26137 49890 96451 189423 376603 753528 1510350 3027408 6073069 12213482 -16 39 81 168 346 699 1394 2771 5514 10971 21737 42674 82616 157095 292526 532405 946204 1641791 2782361 4609036 7470478 -0 8 24 66 178 456 1093 2460 5256 10786 21465 41707 79473 149013 275959 507333 931952 1722236 3218006 6088132 11628236 -13 32 63 120 220 378 598 858 1098 1239 1289 1635 3690 11180 32545 85226 203063 448694 933791 1851278 3525444 -21 36 68 130 243 444 794 1386 2353 3876 6192 9602 14479 21276 30534 42890 59085 79972 106524 139842 181163 -7 7 16 42 102 243 575 1314 2830 5692 10709 19002 32234 53313 88239 150435 270173 514121 1024546 2095878 4320626 -4 20 45 88 171 329 615 1129 2109 4150 8654 18660 40258 84855 172634 337629 634930 1150632 2015251 3421448 5647029 -15 33 53 88 175 390 873 1877 3862 7661 14752 27691 50842 91789 164433 296086 543337 1025693 1992739 3950666 7888377 -21 41 85 175 345 637 1092 1743 2624 3816 5558 8458 13846 24318 44527 82284 150039 266819 460707 771953 1256815 --5 -4 -1 4 11 20 31 44 59 76 95 116 139 164 191 220 251 284 319 356 395 -7 20 45 91 166 275 418 588 769 934 1043 1041 856 397 -448 -1814 -3861 -6776 -10775 -16105 -23046 -16 29 53 90 144 217 312 463 835 1973 5324 14213 35544 82670 180222 372347 736982 1410761 2632275 4816136 8677196 -15 36 81 165 317 603 1168 2310 4617 9241 18462 36823 73327 145569 287449 563757 1098426 2130571 4127378 8012790 15629588 -13 16 36 94 229 505 1026 1979 3736 7055 13432 25685 48934 92364 172697 321490 600845 1137023 2190924 4302259 8577205 -15 33 62 100 137 145 70 -153 -527 -813 -180 3392 14047 39431 92632 194815 378699 693037 1208274 2023572 3275405 -9 17 26 43 87 194 424 880 1758 3457 6794 13396 26384 51528 99142 187109 345583 624113 1102178 1904417 3222189 -15 28 60 127 254 494 975 1984 4105 8449 17045 33490 63970 118770 214450 377138 648203 1095478 1837082 3092037 5284118 -10 22 46 91 176 339 651 1243 2358 4441 8278 15190 27280 47720 81051 133452 212914 329232 493702 718381 1014736 -6 15 24 33 42 51 60 69 78 87 96 105 114 123 132 141 150 159 168 177 186 --6 -11 -16 -21 -26 -31 -36 -41 -46 -51 -56 -61 -66 -71 -76 -81 -86 -91 -96 -101 -106 -7 24 56 112 206 361 614 1035 1799 3399 7184 16588 39739 94671 219193 488711 1047141 2158900 4294817 8274127 15504252 -7 28 60 109 202 412 903 2013 4400 9280 18800 36656 69277 128420 237158 443522 850421 1678603 3394366 6960828 14320024 -15 27 40 54 69 85 102 120 139 159 180 202 225 249 274 300 327 355 384 414 445 -14 24 40 73 153 333 702 1425 2852 5779 12001 25373 53704 111983 227731 449783 862713 1610849 2939409 5268068 9329214 -10 7 4 1 -2 -5 -8 -11 -14 -17 -20 -23 -26 -29 -32 -35 -38 -41 -44 -47 -50 +LF-|7F-7.F--7---F7-J-F77.FLF7FF|---J-7-L-J7.F7.-.FF|7|7J7-L7.-F7|.|.F|-F-|7.---777L7-.FF77|77F7.|.FF777FJ.-L-|--7FF.F|-|--|--L.L-|F|-FJ7-JF| +LL7L77-J-J|L7F|FJLJJLFL--7|F--7--L7L-J.||7FJ.|-|.F7LFLJL7..7JLLJLFJF7|7|FF77-L||J-F|.F77--F.7L-7|7FLJF-FJ-||-|7|LLJF-L7|J.L7.|7..|7||LJL-7L7 +.F|-LJ-|---LJ-J--7---|F|.|L.L|J.LFL.LLJ-7-|LL--JJFF7JL77LJ-|.FF|L7FJ.FJ|F|L-7J||J.|L7LJJ77|F|.L|J-FJF7LLF-7JFLJ|.L-J7-L-7F-7-77FLJFJLJL7--J| +-7|F|J7F7J7-77L|.-FJ-FLJL-..L||F--|7..LJ|L|-|JFL-7||F7|J-|F7.FF7-F7L-FF--JF-JFF7--F777-FJ7.F77-J|FL--|.JLLLJ|.LJ-77LL7|7F77LF7L-|-L.|-F|LJ|L +LFF-J---J.--JF7L.|F.F--7.JF|J.J..--J7-|F-7|-7.7LFL--J|J||LFJFLLFFJ|J|LL--7L--7||7-|L-7JJ|LF||7.J7FLL|L--L||F7-L|JL-FJ|--.|-JJL7-F7FF7-F-7-FJ +.|FJ-7J|.F|7-FL-|FF77.F|-||JF-7.77LLL-F-7F|.|7.FF7...|LJ7LF7-.|JL7|F|7|7LL7F-J|L-7|F-JJLFL-J-|J.F-7|F|JF7--|J..L-7FJ7|LJ-|-F-L---J--|J|.F7.7 +F7J.L||J-JLL.JLF-7JFJ--F-F|FL7FFF7L||L|7|.F7JF7-||F7-|J77.L...L7FJL77FF7FL|L-7L7FJ|L-7J7|-L-LJFF7JF7L7.|L||LF-J7|F-.L777L-J.J.FL7|J-L-F7L7F| +JLL-7LF-F7|LJ-|JLF7FJ.L|-|LL.L--J77||F-JLFJ|-F7.||||7|-77F-FLJLFL-7L7FF-7F|F-JF|L-JF-JFF|7|.|J|7|7J.F|.|FFJ.F-LF7L7.FL-7.L77.FF|--J.L-FL---7 +|-LJFF77L--.F-7.|J|-F7|F-J||7LL7LF.|JL.|JL7||||FJLJ|77F7F7-J.|.F-7L7L7L7|FJL7F7|F--JJ7--7L-J|.LLF77.F-J-L7.FF7J|FLJ.FJLF7.LJ-L||.L|-|LJ.|.|J +J7.FFJJJ.FJF|-F-77|JJJF7|.7.F7.L-FF-7L77-FJL7|||F--JLF7JFLJFJ-FL7L7L7L7||L-7|||||L|-LF7LL-J7|--F||77..LF7|7JLJ||-F.L--7J|.FJ7FJ-7F7.|.F7--7. +|F-||FJJF7.F7-7.|7F77FF|7-FF||7-F7L7|7J|JL-7||LJ|F-7FJ|J|--J|||.L7|FL7LJL7FJ||LJL7JF7||-F7FJ7L-FJL-7.F|LJLFJ-L7--F-JLF|7FJ--F|-FLJJLJ.FJF--7 +--|JJ..-||-F-.LFJLL-F-7J||F-JL-7|L-JL-7-F7J|||F7|L7||FJF7|J|-FFF-JL-7L--7||FJL-7FJFJ||L77J-LL-LL7F-J777.FF|L7-LJ-|F|LLF7JJFFJJ-JJ|-F|-|.LF|| +FL|||F7|LJ-|L-J|LJ.L|7|LL-L---7|L-7F--JFJL-J|||LJFJ||L7|L7JF.F7L---7L-7FJ|||F7FJL7|FJL7L7L7.|FFJ|L7.L7.FLJ.|.L|J7F777J||J||7J|FJ-|-FJF|.7|F| +--77FJ-F|-L|J.-L7|FLJ-L-..F|F-JL-7|L-7JL-7F7LJL7FJFJL7||FJ.F7||F---JF7|L7LJLJ|L7FJ||F7|FJF--77F-JFJ-LF7--F--7FF77|L77.LF-JJL-|J.F-7|LF-7.L|| +JF||-JF7-7F7.7J.JJ7.|J7FJ7|FL--7FJL-7|F7JLJL--7LJFJ7FJLJL7FJLJ||F--7|LJ|L7F--J-|L7||||||FJF-J-L-7|..L||J.|.LF-J|F77JL-L.JJF7.L--7-L7L|FJ7|LJ +FL-JFJ-|L-||.7.77---|FLJF|-J-F-J|F7FJ|||F7F---JF-JF7L7F--JL7F-JLJF-JL7F7FJ|F7FFJFJ|LJ||LJFJF-7F7|L77F||7FF7JL-7||L777.|F.FJF7-LFJLLF-JL-7FLJ +L-LLJ-FFFJ|JF--.-7..7-..LF7LFJF7|||L7|||||L-7F7L-7|L7|||F--J|F7F7L--7|||L7|||FJFJ|L7FJ|F-J|L7||LJFJF7|L7FJ|F-7|||FJF77-77-JL-7|.|FFL7F--J-J| +L7||J.-F-7--F...FL--|JF|7|L-JFJ||||FJ||||L7LLJL7FJL7LJL7|F--J|||||F-J|||FJLJ|L7|JF-J|FJL7F7F||L-7L7|||FJ|FJL7LJ|||||L7F7|F-7FFJ77L-FJL7J...F +FLF7.F|F.||FJ.-7-|JFJJ||FL7F7|FJ||||FJ|LJFJF7F7|L7FJF7FJ||F7FJLJ|FJF-J|||F--JFJL7L7FJL-7LJ|FJL-7L7LJLJL7||F7L-7|||FJFJ||-7L|-|FLJ7.|F7|.LF-7 +.-7F-J-L--L7FFLJLJF|JF|F7L||LJL7||||L7L-7L7|||||FJ|FJLJFJLJ||F--JL7L--JLJL7F7L7FJFJL-7FJF-J|F--JLL-7F--J|LJ|F-JLJ|L7L-J|-F77-F7F|FFJ|LJJJ|L7 +|J|LFJ77L7LL-7L7.|--7-FF77LJ-F-JLJ|L7L--JFJ|LJLJL-J|F7JL--7LJL7F-7L---7F--J|L7|L7L7F-JL7L--J|F77F--JL7F7|F-JL---7L7L7F7L7||F7||F|7L7L7JJF|.L +|--L|F-7LF7.LL-L7.LJ|.||L--7JL---7|7L7F-7L7L-7F---7|||F7F7L-7FJL7|F---JL7F7|FJ|FJFJL-7FJF-7FJ|L7L--7FJ|LJL-7F--7L7L7LJ|FJ||||||7F7FJFJ--||-| +|FFJ||FFJL77FJ7LJ|--L7FL7F-J.||F-JL-7LJJ|FJF-J|FF7LJ|LJ|||F7||F7||L-7F-7|||||FJL7|F--JL7L7LJ7L7L7F7||FJF---J|F-J7L7L7FJL7|||LJL7|||FJJ---JLF +|L|FJ.7|LFF-|.7.FJ..FF7J|L-7FF7L-7F-JF7FJL7L-7L-J|F7|F-J|LJ||||LJL-7LJFJ||||||F-J||F7F7|FJF-7FJFJ||||L7|F77FJL7F7FJFJ|F-J||L7F-J|LJL7FJ.|.F7 +.FFL.FF|-|JFF-J7-LF-7||FJF-JFJL--J|.FJ||F7L7LL-7FJ||||F7L7FJ|LJF7F-JF7L7||LJLJ|7FJLJ|||||7|FJL7L7|||L7|||L7L-7|||L7L-J|F7||FJL-7L7F-J7FL|FLJ +--JJ-|-L7L-7JJ|JF|L7LJ|L7|F7L--7F7L7|FJLJL7|F7F|L-J||LJL7|L-JF-JLJFFJ|FJ||F--7|FJF--J||||FJL-7L7||||FJ|LJFJF7||||F|F--J|LJ||F--JFJL-7FF-L|7J +LJJ.|.|JF.F|J.FFFF-JF7L7||||F-7LJL7|||LF7FJ|||FJF--JL7F-J|F--J7F7F7L7|L7LJL-7||L7|F7-|LJLJF--JFJ||LJL7L-7L7||||||FJL-7FJF-J|L--7|F--JF7-.LJ. +L|7-7-|7.-J---FFJL-7|L7LJ||||FJFF7|LJL7||L7LJ||FJF7F-JL--JL-7F7||||FJL-JF---JLJFJ||L-JF---J-F7L7||F--JF7L7||||||LJF--JL7L7FJF--J||FF-J||.FJ7 +FL7F--L7FJ.-JFJFF7F||FJF7LJLJL7FJ|L-7FJ||-L7FJ||F||L-7F-----J||||||L7F-7|F7F7F7L7LJF--JF7F7FJ|FJ|||F--J|.||||||L7FJF--7|FJL7|F7FJL-JF-J77J.F +|-J-|JFJ7.7|FFFFJ|-LJL-JL---7FJL7|F7||||L7FJL7|L-J|F-J|FF77F-J||LJL7LJFJLJLJLJ||L-7|.F-J||||FJ|FJ||L--7|FJ||||L7|L-JF-J||F-JLJLJF7F7L-7J-..7 +|--77-L7|.F7-F7|FJF|LF-7F--7|L-7|||||L-JFJL-7||F--JL-7L7|L7L-7|L--7L7FJF7F7F7FJF-7|L-JF-J|LJ|FJL7|L7F7|LJFJ||L7||F--JF-JLJF-7F--J|||F-J||J7F +J.L-J7---F7JFJLJ|F7F7|FJL7FJL-7LJLJ|L--7L7F-JLJL--7F-JFJ|FJF7|L-7FJFJL-J||LJ|L7L7LJF-7|F7L-7|L-7||FJ|||F-J.|L-JLJL7F7L-7F7L7|L--7|||L7-FFJF| +L||LLL-7J|L7L-7FJ|||LJ|F-J|F7LL--7FJ-F-JFJL7F-----JL-7L7|L7|||F-JL7L7F--JL-7L-J|L-7L7LJ||LFJL7FJLJ|FJLJL7|FJF7F7F7LJL--J||FJ|F7FJLJL-J-|-7F7 +FL7||JLF-FJFF-JL7||L7FJL-7|||F---J|F7L-7|F-J|F-7F--7LL7||FJ|LJL-7-L7|L--7F-JF-7F--JFJF7||FJF-JL-7FJL7F--JFJFJ||LJL7F---7||L7||LJF7F-7L7JJJ7J +--JL7J.|.J||L--7LJ|FJL7F-JLJ|L---7|||F7||L-7|L7||F-JF7||||-L7F--JF7||F7L||F7|FJL--7|-|||||FJF7F7||FL||F7J|FJ|LJ.F7|L--7LJ|FJ|L--JLJFJ..JL||- +|FF|-7-JJ-F----JF7|L-7|L-7F7L7F7FJLJ||||L7FJ|FJ|||F7|||||L7FJL7F7||||||FJ||LJ|F7F7|L7|||||L7|||||L7FJ||L-JL--7F-J|L--7L-7LJ||F7F-7FJF77JFJ|7 +F|-J7L7J|FL-----J||F7||F-J||FJ||L--7LJ||.||FJL7LJ||LJLJ||FJ|F7||LJLJ|||||||F-J|||||FJ||||L7LJ||||FJ|FJL7F-7F-JL-7L-7|L--JF-7|||L7||J|L7F7F7J +J..LF|L-J.F----7FJLJLJ|L--J|L-JL7F7L7FJL7LJ|F7L-7|||F7-||L7LJ||L--7FJ|LJFJ||F-JLJ|||FJ|||FJF-J||||FJ|F-JL7|L--7FJF-JF7F77|FJLJL7|LJFJFJ||||7 +.F-.LF7||-L7F-7LJF7F-7L----JF--7LJ|FJL--JF-J||F-J||FJL-JL7L7FJ|F-7|L7L-7|FJ||F7FFJ|||JLJ|L7L7FJ||||FJ|F--JL---JL7L--JLJL-J|F7F7LJF7|FJFJLJL7 +FL7LJLL7-J|LJFJF7|LJFL7F-7F7|F7L-7LJF---7|F-J|L-7LJL7F7F7|F|||LJFJ|FJF-J|L7|||L-JFJLJF--JFJFJL7||LJL-JL----7F---JF7F------J|LJ|F7|LJL-JF7F7| +|FJJF7L||7FLFJFJ||F---JL7LJ|||L--JF-JF7FJ||F-JF-J7F7LJ||LJFJL--7|FJ|FJF-JFJLJL--7L--7L7F7|FL7FJ||F---------JL--7FJLJ.F7|F7FJF-J||L7F-7FJ||LJ +LJJJL7.-|J-FJFJ|LJL-7F--JF7LJL7F-7|F-JLJ-LJL7FJF--JL--JL-7L-7F-JLJFJL7L-7L--7F--JF7FJ7LJ|L-7LJFJ||F--------7F7FJL----JL-J||FJF7||FJL7LJFJ|J7 +FJ|-FL|J|.|L7L-7F--7LJF--JL---J||LJL-7F----7||JL7F7F--7F7|F-JL---7L-7|-FJF7FJL7F7|||F7F-JF7|F7L-JLJF-7F7F--J|||F-7F--7F-7LJL-JLJLJF7L-7L-J|| +7-|.L-|7|.F-L--JL-7L--JF--7F7F7|F----J|F-7FJ|L7FJ|LJ-FJ||||F7F7F7|F-J|FJFJ|L7FJ||||LJ|L-7||||L7F-7|L7|||L---JLJL7|L-7||FJF-7F-7F--JL7FJF7-L- +7||7LFJLF7L-F7|JLFJF-7FJF-J|||LJL-----JL7LJ.L7||FJ7F-JFJ||||||LJLJL--JL7||L-JL7|LJL7FJF7||LJL7|L7|F7|||||F7F----JL--JLJL-JFJL7|L7F7.LJL||||J +F7-LF--LL7FL|L7F-JFJ-LJLL-7|LJF------7F-JF--7LJLJF7L-7L7|||||L-----7.F7|L---7FJL--7||-|LJ|JF-JL-JLJLJLJL-JLJF7F7F7F7F7F--7|F7|L7LJL----JL-7. +L7-.77L|FL--L7LJF-JF---7F-J|F7L----7FJ|F7|F-JF7FFJ|F7L7|LJ|||F---7FJFJLJF7F7||F7F7||L7L7FJFJF-7F7F-7F7F7F---JLJLJLJLJ||F-JLJ|L7|F7F-7F-7F7|7 +7L|.J----.-.FL-7|F7|F--JL-7||L--7F-JL7||||L-7|L-JFJ|L-JL7FJ||L--7LJFJF7FJLJLJLJ||||L7|FJL7L7L7|||L7LJLJLJF7F-7F7F-7F7LJL---7|FJ||||FJL7LJ||7 +L-|-|.L-|JLFFLLLJ|LJ|F7F7JLJL--7|L--7LJ|LJF7LJF-7L7L-7F7||FJ|F-7L7L|FJ|L-7F7LLFJ||L7LJL--J7L-JLJL-J7F7F--JLJFJ|LJ-||L7F-7F7||L7||LJL-7|FFLJ7 +.-|L|FFL-.|F----7L-7|||||F-7F--JL---JF-JF-JL-7|-|FJ7FJ|||||FJ|JL7L7LJFJF7LJL7FJFJL7L-77F----7F--7F--JLJF---7L-JF-7||FJL7LJLJL7||L---7||F7F-7 +JLJFFJ7J.F-L---7|F-J|||||L7|L--------JF7|.F7.|L7||F-JFJ||||L7|F-JFJ.FJFJ|F7FJL7|.FJF-JFJF--7|L-7|L7F-7FJ-F-JF--JFJLJL-7L---7.LJL7F-7||LJLJFJ +|-LL7F-F7F.LF7FJLJF7LJ|||FJL--------7FJLJFJL7|FJ||L7FJFLJLJJLJL7FJF-JFJFJ|LJF-JL7L7L-7L7|-FJL7|||FLJFJ|F-JFFJF7FJLF--7L----JFF77LJJ||L7F--JJ +7.F||FJL--L7||L---JL-7|||L---------7LJF77|F-J|L7|L7|L---7F-----JL7|F7L7L7L-7L--7|FJF-JFJ|FJF7L-JL7F7L-JL---JFJLJF7|F7|F7F7F--JL-7F7||J|L7J|| +-.FJJ-|.L7LF||LF7F---J|||F7F7F-----JF-JL-JL7||FJL7|L-7F-JL7F7F7F7||||FJF|F-JF-7||L7L-7L7|L-J|F7F7LJ|F7|F7F--J|F7||||LJ|||LJF----J||LJ-L-J7LJ +|.L7L||JFL7FJL7|LJF7F7LJLJLJLJF----7|F--7F7L7|L-7||F-JL--7||||||||LJ||F-JL--JFJ||FJF-JJLJF7FLJLJL-7|||FJ|L----JLJLJL7-|||F-JF----JL7J77F|-.| +FJ-F.L.LJF-L-7LJF-J||L7F7F7F7FJLF--J|L-7||L-JL--J||L7F7F7|LJ||||||F-J||F-7F--JJLJL7L-7FF-JL77F----J|||L7|F7F7F-7F--7L-JLJL-7|F7F7F-JFF-FL-77 +||7F.|.JLL.FFJF7|F7||-LJLJLJ||F7L---JF7|||F--7F-7||FJ|LJLJF-J|LJ||L7FJ||FJL----7F-JF-JFJF-7L-JF7F-7LJL-JLJLJLJ7LJF7L-7F----J||LJLJL|FLJJL..| +-F|JFFLJ7JF-|FJLJ||||F--7FF7LJ|||F---JLJLJ|F-J|FJ||L7L7JF7L7FJ-|LJFJ|FJ|L7F7F-7|L--JLFJFJ-|F7FJLJJL---7F----7F7F7|L-7|L-----J|F7F7F7L|JFJLLJ +|.LF.-7F-7L7LJF--J|LJL-7L-J|FFJL-JF---7LF7|L--JL7LJ|L7L7||7||J-F7F|FJ|FJL|||L7LJF---7L-JF7|||L7F------J|F---J|||||F-JL--7F7F-J||||||F7FF-|J. +|-7LFJLJFJ7LJ|L7F7L7F-7L--7L-JF---JF-7L-JLJF---7L---7L7LJL7LJJ7F--J|FJ|7F||L7L-7L7F7L---J|LJL-J|F------JL-7F7|LJLJL7-F7FJ||L--JLJLJLJL-7-7F7 +LJ7F-7-F7-|LLJ7LJ|FJL7||F7L---JF7F-JJ|F7F--J-F7L----J.L7F-JJL7FL--7|L7|-FJL7L7FJJLJL----7|F7JF7LJF7|F-----J|||F---7L7||L7||F-7F-7F7F7F7|F77F +FF-J.L7|J||J7LF--JL--JL-JL--7F7||L--7LJLJF---JL----7F-7|L7JFJ-7.|FJL7||LL7FJLLJF7-F7F---JLJL-JL7FJL7L7F----JLJL--7L7LJL7LJLJJLJLLJLJ||LJJ.|| +-7|F7F||FFF77LL------------7LJLJL---JF7F7|F-7F7F7F-J|FJL-JJL..|FFJF-J||FFJ||7LFJL-JLJF--------7LJF7|LLJF--7F7F---JFJF7FJF---7F7F7F7.|L7J77JL +|FJJ.LLFJFJL7JF----7F--7F-7L-----7F77|LJLJ|JLJLJLJF-JL-7J.FJ7FLFJFJJFLJ-L7|7-.L7F----JJF----77L--J|L---JF7LJ|L---7L7|||FJF--J|||||L7|FJLJJ7| +7-7|FLF--JF7L7L---7|L-7|L7|F7F7F7LJL-JF7F7L7.F----JF---J|7FLFJ|L7|JFJ.J|.LJ-.LL||F-----JF--7|F----JF----JL-7|F7F7L7LJ|LJFJ|F-J||||FJLJF7J|L7 +|-|-J.L-7FJL7L7FF-JL--J|-|LJLJLJL---7FJLJL7L-JF---7L--7F7777.L||LJ-F-J-F-.||-.FLJL7F----JF-J|L---7FJF---7F-J||LJL7L-7L7FJLFJF7LJLJL---JL7-FJ +F-JJLJ77LJ|7L7L-JF7F7F7L-JF7F7F7F7F7LJF--7L--7L--7L--7LJL-777LLJ.LJL-L-|JLFJ.L|.F7LJF----JF7L----JL7L7F7LJF7LJF-7|F-JFJL--JFJ|F7F----7F7|-7| +|L|F---J||-F7L7F7|||||L---JLJLJ||LJL7FJF-JF-7L---JF-7L--7FJ-7LLJ-|.|F|FL--F-L.F-J|L|L----7||F------J.LJL-7|L-7|FJ|L-7|F----JFJ||L--7LLJLJ7LF +|FFF-J7.L77|L-J|LJLJLJF7F----7FJ|F--J|FJF7L7L-----JFJ7F7LJ|-|F7LLJ-L7F|JLF7-L-|F7L7F----7LJLJF7-F7F7F---7LJF7LJL7L--JLJF---7L7||F7FJ.FL|J|-| +LL-77LF-LF-JF-7|F---7|||L---7||FJL---JL7|L-JF7F---7L--JL--7FLJ77.|FJ-F.F.|LJ|.LJL7|L---7L----JL-J||||F-7L--JL7F7L------JF--J7LJ||||J-J-|.L77 +L|FJ--JJJL-7|FJ|L7F7L-J|F7.FJ|LJF-----7LJF7FJ|L--7L--7F---J7J.|J-L77LJ7|.JJLFF.LFJL7JF7L7F----7F7|||LJLL----7LJ|F---7F--JF7F-7FLJLJ--|J|L.|| +.J7.L-|JFLFJ|L-JL||L7F7LJL7|FJ|FJF---7|F7|LJFL---JLF7||F7FFF-F|L.|-J7L|7FJ.F-..L|F7L-J||||F--7LJ|LJL7LF-----JF7|L--7LJF7FJLJFJF7F7..|F77-FL7 +L7LF77.7JJL-JF--7LJFJ||F-7LJ|F7L7|F--JLJLJLF7F7|F-7||LJ|L7-J-7L-7JLJJ.L77J-|L7--||L7F7L7LJL-7L--JF-7L7L7F7.F-J||F--JF7||L7F7L-JLJL7-FJL7-|.| +LL7|-F||.|.JLL-7L--JFJLJFJF7LJL-J|L-7F-----JLJL7L7||L--JFJ7|LFL-7L7.L-JLFF-L----LJ.LJL7|F7F-JF7F7|FL7L7LJL-JF7|LJF7FJ||L7||L-7F---JFJF-J77-| +F-J|-|LF7FLJ.FLL----JF7FJFJ|F7F-7|F-J|F-7F--7F7L7|||F---JJFJFF7L|.F7.|7LFJFLJFL-JLF---J|||L-7|||LJF7L7L---7FJLJF7||L7||FJ|L7-LJLF--JFJJFLF-- +L-7|-F-|7JJ.FFF7F7FF7||L-JL||||FJ|L--JL7LJF7LJL-J|||L-7F7.FFFFF.|7FL-|-7|FFF777LL7L---7||L7FJ|||F-J|FJF--7||-F7|LJ|FJLJ|||FJF--7L7F-JJ-|JL7| +|LLJ7|7J|L7FF-JLJL-JLJL-7F7LJLJL7|F---7L7FJL--7F-JLJF7LJ|F7FF|J-LJJ.LFJ|J-7.-J7.LFF---J||FJL-J||L-7LJFJF-JLJFJLJF-JL7F7L-JL-JF7L-JL7FJ7F7LLF +7|LJJJF.777FL----------7LJL--7F7LJL--7L-JL7F--J|F---JL--J||F7JJ.||7|77.L.L|..F7.F7L-7F7LJL7F-7LJF7L--JJL--7.|F-7L-7FJ|L7F7F--JL--7FJ7JFLLJL| +LFF|-FF7|.FFF----------JF---7|||7F---JF---JL---JL--7F7.F7|LJL7F|--JJJ|7J-7-L7-F-JL77LJL7F7LJFJF-JL--------JFJL7L-7LJFJLLJ|L7F7F-7LJF7-LL7--L +.LF|-FJ|F77-L-----------JF--JLJL7L----JF7F7F-7F7F-7LJL-JLJF7FJ7|||-7.7-JJ.L.|.L--7|7F-7LJL7FJJL------------JF7L-7|F7L---7L7LJ||FJF7||7LFJJJ| +J.|J.L7LJL7-F7F7F-7LF7LF7L---7F7L------JLJLJLLJ|L7|F7F-7F-JLJJ|FF7-7JJ||7F.FJ.FF-JL7L7L---JL7JF7F-----------JL--J||L7F7FJ||F7LJL-J|||F7JL-7J +|LJ|-LL-7FJ|||||L7|FJL7||F7F7LJ|F7F-----------7L7||||L7|L----7-F-7|J.F7FF7-L|-LL7F7L-JF7F7F7L-J||F7F-7F7F7F-----7|L7LJ|L-7|||F-7F7LJLJ|JJ.-F +FJ-J-F7|||F7|LJL-J|L-7||LJLJL--J|LJF7F7F-7F7F7|FJ||||FJL7F---JF|FJF--F7FJ|.|F77FLJL7F7|LJLJL--7LJ|LJJLJ||LJF----JL7L-7|F7||||L7||L-7F-J.LJ.| +7J7LL|L-JLJLJF7F-7L--JLJFSF7F---JF-JLJLJFJ|||||L-JLJLJF-J|JF7F7||F7.F||L7|F7||F-7F7LJLJF------JF7|F7F7|LJF-JF7F7F7|F7||||||||FJ|L-7|L7-F-.7J +-.F7LL7F7F7F7|||FJF7F7F7|LJLJF--7L-----7L7|LJLJF-7-F7JL-7L7|||LJ|||FF||FJ|||||L7LJ|.F7FL---7F--JLJ||||F-7L--JLJ|||LJLJ||||||||FJF7|L-J-L7FL. +L.F-F7LJLJ||||LJL7|LJLJLJ.F7FJF7L------J|LJF-7FL7L-JL7F7L-J||L-7LJL7FJ|L7LJ|||-|F-JFJL----7||F7F--JLJ|L7L--7F7FJ|L-7F7LJLJ|||||FJLJFJ.|FL-7. +.FJJ|L----J|||LL|LJF--7F7FJLJFJL------7F7F7L7|F7|F--7LJL--7|L7-L7F-JL7L7L7FJ||FJL7FJF---7FJLJ|||F---7|FL--7LJLJFJF7LJL--7FJ|LJ||-F|7.F--7.|7 +.FJ|L--7F7FJLJF7F7.L-7LJ||F7FJF77F7F-7LJLJL-J||LJL7FJF----J|FJF-J|F7FJFJFJL7|||F-JL7|F--JL---J|LJF--JL7-F-JF7F7|FJL-----JL-JJ7||-F.|77LL-JJL +-L7F|-|LJ||F7FJLJL7JFJF7LJ|||FJL-J|L7L7F7F7F7LJF7FJL7|F-7F7|L7L-7LJ||FJFL-7||LJL7F7||L-------7L-7L-7F7L7L--JLJLJL--7F7F-7F7F7-LJL|FF77.LJL|| +LL-L.L|J.||||L-7F7L7L-J|F7||||F7F7L-J-LJLJ||L7FJLJF7LJ|FJ|||FJ|FJF-J|L7F7FJ|L--7|||LJF-7F7F-7|F-JF7LJL7L----------7|||L7LJLJL--7-L7.L|-.LF7J +F77LJF|J-LJ|L-7LJ|FJF7LLJLJLJ||LJ|F7-F--7JLJFJL-7FJ|F7||FJLJL-7L7L7||FJ||L7|F--J|||F7L7|||L7LJ|F7||7F7L7F------7F7LJ||FJF------JJ-7-F|.J-FFJ +|F7-L|J|JF-JF7L--JL-JL-------J|F-J|L7|F7L-7FL---JL7LJ||||F----JFJFJFJ|FJ|FJ|L--7||||L7|LJL-JF7LJLJL-JL7LJF7F7F7LJL-7||L7L-7JF7F7-F7F-7F|.||. +||JLLJLLJL7FJL----7F----------JL--JFJ||L--JF7.F7F7L-7||LJL--7F-JFJFL7|L7|L7|F7FJLJ||FJL--7F7|L7F-----7L--JLJLJL-7F-J||||F7L-JLJ|-|LJFJ-J.L7| +FL7L|.7.LFLJF7F7F7||F-------------7L-JL--7FJL-J||L77|||F----JL-7L--7||FJ|FJ|||L-7FJ|L--7FJ|||FJ|F7F7JL-----77F7.LJ-FJL-J|L7F---JJ|F-JJJFJLF| +F---LFJFFFF-JLJ||LJ|L7F7F7F-7F---7L-7F---J|F---J|FJFJ||L77F7F7.|F--J|||FJL7||L7-|L7L-7FJL-JLJL7||LJL-------JFJL77F-JF-7FJ|||F7.|FJ|F-7L|JJ.| +L7|F-|-F--JF7F7LJF7|JLJLJLJFJ|LF-JF7LJF7FFJ|F7F7|L7L7|L7|FJLJ|FJ|F7FJ||L7FJ|L7L-JFJFFJL7|F7|F7LJL7F--7F7F---JF7L-JF7L7||.FJLJL-7L7LJFJ.|F77| +||F-J|-L---JLJL7FJLJF7F----JFJFJF7|L--JL7L7||LJ||FJFJ|FJ||F--JL7|||L7LJFJ|FJJL--7L7FJF-JFJ|FJL7F7||F-J|LJF---JL---JL-J|L7|F----JFJF-J7F|-JF| +F7JJF77L-F-----J|F7FJLJF7F-7|FJFJLJF-7F7L-J||F7||L7|FJ|FJ||F7F7||||.L-7L7||F7F7|L7||FJLFJFJL-7LJLJ|L-7|-FJF--7F7F----7|FJLJF7.F7L7|-J7-LJLF| +|JJFFJ-7LL7F-7F7||LJF--JLJFJ|L7|JF7L7||L7F7|||LJ|FJ|L-J|.||||||||||F7FJFJ||||||F-J||L-7L7L7F7|F-7FJF-JL7L-JF7LJLJF---JLJF-7|L7||FJL7.|F|77.. +JL|..|-|7|||FJ|LJL--JF7F7.L-JFJ|FJ|FJLJ|LJLJ|L7FJL7|F--JFJ||LJLJ|||||L7L-JLJ|||L7FJ|F-J-|FJ||LJFJ|-L---J.F7||F7F7|F7|F7FJFJ|FJ|LJF7L7J.77FFL +LFFL7FF|J-LJL-J7F77F7|LJL----JFJL7|L----7F7.|FJL7FJ|L--7L7|L-7F-J|LJL-JF----J|L7|L7|L7F7||FJL-7L-JF------JLJLJ||LJ|L-JLJFJ-||-|F-JL-J.L||-|7 +.-JJF7JJ|7F7JF7F||FJLJF-7F----JF-JL--7F-J||FJ|F7||FJF--JJ|L-7||F7L--7F-JF-7F-JFJL7LJFJ|||||F--JF-7L---------7|LJF7|F----JF-JL-JL-7F7JF-J.F77 +J.LJ--F--F||FJL-JLJF-7|FJ|F----JF7F-7LJF7||L7LJLJ|L7|F7F7L-7|||||F7FJ|F7L7|L-7|F7L-7|7|LJ||L7F7L7L7|F7F-----JF7L|||L--7F7|F--7F-7LJL7-7L7J|| +.F.|.|L7-FJLJF--7F7|FJ|L-JL-----JLJFJF7|||L-JF---JFJLJ||L7FJ||LJ|||L7LJL7||F7|LJ|F-J|FJF-J|FJ|L7|FJFJ|L----7J||FJLJF-7LJLJL7LLJFJF-7|F7-J-7J +FL--L7-JFL-7FJFFJ|||L-J-F7-F7F-----JL||||L-7FJ-F7.L7F-JL7||FJL7FJ||FL7F-J|||||F-JL7FJ|FJF7||LL7|||-L7|F7.F-JFJLJF-7L7L7F-7FJF-7L7L7LJJJ7.FL. +L|FFJ..LLLJLJF-JFJLJF---JL-JLJF----7FJ|||F7|L7FJL7FJ|F7FJ|||F7|L7|L-7|L7FJLJ|||F7FJ|FJL-J|||F7|||L7FJ||L7L--JF7FJ|L7L7||FJL7|FJFJFJ7.||F-|F7 +F7--7-.F|L|L|L7FJ7F-JF7F7F7F7FJF---J|FJ|LJ||FJL-7LJ-||||FJ|||LJFJ|F-J|FJL-7F||LJ||FJ|F---J|||||LJ|||FJ|FJF7F7||L7F7L-JLJL-7LJL7|FJ|FF--7||LJ +|L-L-7FF7-|-F-J|F7L7FJLJLJLJLJ.L7F-7|L7L-7||L7F7L-7FJ|LJ|FJ|L-7L7|L-7|L7F-JFJL-7|||FJ|F-7FJLJ|L7F-J|L-JL7|||LJL7LJL------7|F-7||L-77J.|JF|F| +|L-.L7L|F.JLL7FJ|L-J|F-7-F------JL7||L|F-J||FJ|L-7|L7|F7LJFJF7|FJ|F-J|FJL-7L7F7||||L7||FJL-7|L-JL-7L7F--J|LJF-7|F7F7F----J|L7|||F7L7.|-7LLL7 +F-J7-J|FJ..FLLJFJF-7|L7L7L-7F---7FJ||FJL7-||L7L7JLJFJLJL7||FJLJL7|L7FJL7F-J.||LJ|||FJLJL7F7|F-7F7F|FJL7F7L-7|FJLJLJ|L----7|FJLJLJ|FJ.-JF7-LJ +LFJ7-|||-|7JJ|JL-JJLJFJFJF7LJF--JL7||L-7|FJL7L7L--7L7F-7L7|L--7LLJ7||F-JL--7|L7L|||L---7||||L7LJL-JL7-LJL-7LJL----7|F7F--J|L-7.|LLJJ.LF|JLJ| +LJ-FJFJ|.LJ--F-JF--7JL7L-JL7LL7F-7|||F7||L7FJFJF7FJFJL7L7||F--JF---J||F7F-7|L-JFJ||F-7FJ||||.L-7F7F7L----7|F7F7F--J|||L--7|F7|--JJ|F|||L77.7 +|L--..7J-L||LJ.|L-7L--JF--7L--J|FJ||||LJL7||.L7||L7L7FJLLJ|L-77L---7|LJ|L7||F--JFJ||FJ|-LJ||F--J||||F7F7FJ|||||L-77||L--7|||||77JLL-JL7JF7FJ +|7.|.FJL7JLFJFF7|FJF7F7|F7|F-7FJL7|LJL7F-J|L7FJ|L7|FJL--7FJF7L7F---JL7F|FJLJL7F-JFJ|L7L--7LJL7F7|||||||||FJ||||F7L7|L--7LJ||LJ7-7.|7FLJ.|JF. +.L-7-JLFJ.F7--|-LL7||||||LJ|FJL7|LJFF7|L-7L7|L7L7|||F7F-JL7||FJ|F--7FJFJ|F-7J|L-7|FJFJF7FJJF7||||LJ||||||L7|||||L-JL7F7L7LLJ7|.L|7J|--J7F-|. +FL.J.L7.J7|-FJ|7LL||||||L-7|L-7|F---JLJF-JFJL7|FJLJ|||L7F-J||||LJF-JL7L7LJFJFJF-J|L7L7||L-7|LJ||L-7LJLJ|L7LJ||LJF7F7||L7|7F-7J.7JF-J..--F-77 +F-77|.LL-J||J.|LJ7||LJ||F-JL7FJ||F-7F-7L7FJF7||L-7FJ||FJL-7||L--7L7F-JFJF7L7L7L-7|FJ.LJ|F7||F7||F7L7F--JFJF-JL7.||||LJFJL7|FJ7LF.|.7J7.|L7L7 +||J7|-7.FLF.FFJ7FLLJF-J|L-7FJL7|||F||FL7||FJLJL7FJL7||||F7|||F7FJFJ|F-JFJL7|FJF7|||F---J||||||||||FJL-7FJJL7F7L-JLJL-7|F7LJL-7L--J7|LJ7F-7L7 +FJ-|JF7FL7J7FFFFJ7LL|F7|F-J|F7|||L7LJF-J||L---7|L7JLJ|L7|LJ|LJ|L7L7||F7|F-J|L7|LJLJ|F7F7|LJLJLJ|||L-7FJL--7LJ|F------JLJ|F--7|7J|7FJJLFJ-|7| +|.FL|JLF.|FF7-LJJLJF||LJ|F7||LJ||FJF-JF7||F7F-JL-JF--JFJ|F7L-7L-JFJ|LJ|||F7L7|L7F7.LJ||||F-----J|L7FJL-7F-JF-JL--------7|L7.LJ7LFF|JF-JF|.|7 +L|7F|7FF-FJ.-7.LF.--||F-J|||L7FJ||FJF7|LJ|||L---7FJF-7|FJ||F7|F7F|FJF-J||||FJL7LJL7F-J|||L---7F7L7LJF--JL-7|F-7F7F7F-7FJ|FJ7LL7-|.F--J-F-FL7 +|L7J.L-L-|JF7|..|7L7LJL7FJ||FJL7LJL7|||JFJ||F7F-JL7||LJL7||||LJL7|L7L--J|||L77|F--JL7FJLJ-F--J|L7L-7L--7F-J|||||LJ|L7||FJL-7J|JFJ7|||.L|-J7| +|.-77|77|J-LLJ-F7--FJJJLJ-LJL7FJF--J|||FJFJ|||L7F-JL7F--J||||F7FJL-JFF--J|L7|FJL---7LJF--7L--7L7L7FJF--J|F7LJFJL-7L7|LJL7F-J-|L7JL7FLF-J7|.F +JF|7J7FFL7FJL|L-7-FJ|7|L|||-FJ|J|F-7|LJL7|FJ|L7|L7F7|L-7FJ||LJ||F-7F-JF7FJJ||L-7F-7L7.L-7L---JFJLLJLL--7LJL-7L7F-JFJL77LLJJJL7L7J||J|FJ7L-|| +F|L|JLF--F7-JF7F7J|-F-LJ.-7.L7|FJ|7|L-7|LJL7L7|L7LJLJF-J|FJ|F7|LJFJL7FJLJ--LJF-J|.|FJ-FFJF7F-7L----7F7FJF---JJ|L7JL7FJ7-L|-.||-JFF|-|LF|JF-J +L-7.FF7|FL-J..FLJ||LFJ|77L|7F||L7|FJF-JF---JFJL-JF--7|F7|L7LJ||F7L7FJL--7|LF-JF7L7LJ77FL-JLJFJF----J||L7L-7F7FJFJ.LLJ-FF7L7F-J.LF---JF--7|.| +|.777JF7LF7F7-L-JF-7|-J7F|F7FLJFLJL7|F7L-7F7L---7L-7LJ|||-L7FJ|||FJL7F7FJ7FL-7|L7L--7F-7F--7L7L---7FJL-JF7LJ|L-J.F7|7|.|F7|LLF-J|J..7LJ|F7F7 +L.|LF-JLF7J|7-LF|J|L7.FJ-FLF7JLF---J||L--J|L7F7FJF7L7FJ|L-7LJFJ|||7L|||L--7JFJL7|F7FJ|FJL-7L-JF7F7||F7F7||F7L----JL77LF--7J7.FJ.F---|--7J.J. +.FL-LJ-7LLJL--.LL.7FJFJ77L.J|LFL---7|L7F-7L7LJLJ||L-JL7L7FJF-JFJ||-7|||F--J.L7FJLJLJ|||FF7L--7|||||||||||LJ|F7F-7F-JJFLJJLFF-L-JL-J-L|-F-.L. +-7F|JF7.JJ7|||FLL-7-.JFFJJFL7.-F---JL7||LL7L7F7F7L7F7FJFJL7L-7L7LJ.LLJLJJ.L7FLJ7JJ.F-JL-JL---J||||||||||L-7LJ||-LJF7L7.|FFF|F|7F-77LFL.--JJ7 +J.FF-J...FLJF.||L7JFLJLFJ.--J-|L-7F7FJ||.FJFJ|LJL-J||||L7FJF-JFJJL.|7-JLL.||-JLJ.|.L7F7F----7FJLJ|||||||F7L7FJL---JL7L---JL|L|FJJ7L-|.FJ7FF7 +.-7||.F-L7|F-7|7L7FL7-||JFJJJ.FLFJ|||-LJ7L7L7L-7F7FJ|L-7||FL-7|L7FF-F-J.|F-||.LL--7L||LJF---JL--7|||||||||FJL--7F-7FJ.|.|-F--JLJLJ..L.F-F-LJ +LJLJ-FL7.-J7-|JJ-7-||FF|-|J.FFJ|L-JLJL|-F-JFJF7LJ|L7L7FJ|L7J-||7|LL-7.FF-L.77F7.JLF7||LLL7F-7F7FJ||LJLJ||||J-|J|L7LJJ.7.F-.7..|7F|7.|-L7JL|7 +|L-.|F|J.|L|-L7|F7LFF77J.-J-7LJ-LJJ7||JFJF7L-J|-FJFJL|L7L7|L|LJJ77|7J.F--|7J|7.LJ7LFLJJ|.||FLJ|L7|L-7JL||LJ77FFL7|JF7---FJ-F-F7FLJ--7JLF.|L7 +||LFLJL--F-F-7F7FJ-7FJLJ7.|-JFJF|J.-L|-L7|L7F-J-L-J.FJFJ.LJFJ-J-||J|.L.||LJ-|77FF7.7.LFF-JL-7-|FJ|F-JJJ||LJ7-|LJLJ7LJFJ7L..|FJLF7|7.L-7|F7F| +FJF7LJ-FF.|.FL-||J.7J|7L|FJ-7|FJJ.7|JL7|LJFJL7J-JJJFJFJ-FJLJF--FJ7FJ7.7-L7L-JLF--L7LL--L--7FJ-LJ.|||LFFJL7J-7-JJF|77FJ7F|L-7L--J7J7|7||J|L|7 +LF7|.F77JF7FJ7LLJ7FL.LJF|-|LL-J.FF77|FJJ-LL7FJJL||.|FJ|LJ.|J|||FL--7-FL7-LJL7|L.FLFJ7.JJFFJL7FJJ-LJ7FL|F-JJJL..FF|JLJ.7FJJ.F.L7||.-JL-J-JJFJ +L|J|-7J|FLJ-7F..FJ7-J.|L-JFJL.J7LLL-J.FL7LLLJ7|-J-F||.|JLF7F---JL7L7-7.JJF--L|.77L|F7J..-L--J7JJFL|-|-LJF|J-|FFL7J|J.F.LJL7JFL-JF7|7L||.L7|J +FLF..||LJJ7-F-FF-J|F.FL7L7J-|7LFF7|J|-L-L7J|.L7F7FFLJ-J..||LJJ|.L|-J-L-7F|JJ7|.7J.LL7--|FJJLLF..|F-FJ7.|-JF--J77L.7|F-7.|FLF--7FJ-|-7LJFFJL7 +LL7-LL-L-L-J|--7JL|7-7.J.JJ.L7LFJJ--|-L-JLLLF-LJJ..L.LL-FLFJ.L-JLL-JLJ-|7.LF7-FL-|JJF7.J-JLLLL-JLJJJLF-J.-7.J.7J.-LJ.7..JJL|JLJJJJ|LFJLLJL-- diff --git a/src/main.rs b/src/main.rs index 1eaea06..cf8b99b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,41 +1,52 @@ -use std::io::stdin; +use std::{ + collections::{HashSet, VecDeque}, + io::stdin, +}; use anyhow::Result; fn main() -> Result<()> { - let mut sum = 0; - for line in stdin().lines().map_while(Result::ok) { - let nums: Vec = line - .split_whitespace() - .map(str::parse) - .map_while(Result::ok) - .collect(); - let mut sequences: Vec> = vec![nums]; - - loop { - let v = &sequences.last().unwrap(); - let mut diffs = vec![]; - let mut all_zeros = true; - for i in 0..(v.len() - 1) { - let diff = v[i + 1] - v[i]; - if diff != 0 { - all_zeros = false; - } - diffs.push(diff); - } - sequences.push(diffs); - if all_zeros { - break; - } + let mut grid = vec![]; + let mut start = (0, 0); + let mut max_x = 0; + let mut max_y = 0; + for (y, line) in stdin().lines().map_while(Result::ok).enumerate() { + if let Some(x) = line.find('S') { + start = (x, y); + } + let cells: Vec = line.chars().collect(); + max_x = std::cmp::max(max_x, cells.len() - 1); + max_y = std::cmp::max(max_y, y); + grid.push(cells); + } + // println!("{grid:?}"); + // println!("{start:?}"); + let mut front = VecDeque::new(); + let mut visited: HashSet<(usize, usize)> = HashSet::new(); + front.push_back((start.0, start.1, 0)); + loop { + let Some((x, y, depth)) = front.pop_front() else { + break; + }; + if visited.contains(&(x, y)) { + continue; + } + visited.insert((x, y)); + println!("x: {x} y: {y} depth: {depth}"); + + if x < max_x && "-J7".contains(grid[y][x + 1]) { + front.push_back((x + 1, y, depth + 1)); + } + if x > 0 && "-LF".contains(grid[y][x - 1]) { + front.push_back((x - 1, y, depth + 1)); + } + if y > 0 && "|7F".contains(grid[y - 1][x]) { + front.push_back((x, y - 1, depth + 1)); + } + if y < max_y && "|JL".contains(grid[y + 1][x]) { + front.push_back((x, y + 1, depth + 1)); } - let mut prediction = 0; - for seq in sequences.iter().rev() { - prediction = seq.first().unwrap() - prediction; - } - println!("{prediction}"); - sum += prediction; } - println!("{sum}"); Ok(()) }