add 2023/09

This commit is contained in:
kageru 2023-12-09 09:24:38 +01:00
parent 55e6875732
commit cae56e170c
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
3 changed files with 269 additions and 2 deletions

200
2023/inputs/day09 Normal file
View File

@ -0,0 +1,200 @@
21 32 43 50 52 63 128 354 980 2536 6198 14571 33400 75257 167315 367301 795349 1696172 3558635 7344376 14925482
29 42 53 56 39 -4 -34 127 1001 3868 11543 29740 69331 149906 305152 590695 1095189 1955590 3377721 5663416 9245727
4 13 31 69 161 382 885 1967 4170 8430 16326 30587 56237 103154 191459 362164 697242 1356689 2647559 5156471 10012899
8 14 21 35 62 107 169 235 286 352 697 2286 7805 23735 64493 160875 377960 854409 1890137 4141400 9048308
-2 0 12 46 132 343 844 1984 4452 9527 19484 38295 72924 135831 249908 458206 842858 1561142 2912508 5459800 10242444
16 42 79 127 186 256 337 429 532 646 771 907 1054 1212 1381 1561 1752 1954 2167 2391 2626
-4 9 49 128 256 441 689 1004 1388 1841 2361 2944 3584 4273 5001 5756 6524 7289 8033 8736 9376
6 15 41 99 222 476 978 1915 3562 6297 10611 17111 26514 39630 57332 80511 110014 146563 190653 242427 301526
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57
11 16 34 80 183 405 879 1875 3912 7964 15871 31182 60871 118775 232387 456109 896725 1761432 3446324 6695212 12877019
12 27 71 159 310 551 921 1475 2288 3459 5115 7415 10554 14767 20333 27579 36884 48683 63471 81807 104318
25 39 67 123 222 381 631 1047 1800 3232 5952 10948 19707 34332 57642 93238 145515 219597 321169 456177 630364
0 5 27 89 226 485 938 1719 3105 5678 10630 20317 39265 76053 146973 283300 545702 1052215 2030893 3915501 7513460
17 36 76 147 258 419 648 991 1582 2816 5801 13425 32663 79211 186233 420013 906687 1876052 3730754 7151959 13255880
7 11 17 38 109 303 743 1609 3143 5659 9569 15440 24101 36823 55599 83555 125527 188843 284353 427754 641261
8 14 30 74 164 316 543 855 1260 1766 2384 3132 4040 5156 6553 8337 10656 13710 17762 23150 30300
9 29 71 151 297 560 1025 1822 3137 5223 8411 13121 19873 29298 42149 59312 81817 110849 147759 194075 251513
2 5 6 11 45 174 534 1367 3067 6242 11801 21078 36008 59373 95139 148908 228512 344779 512504 751661 1088895
3 -5 -6 15 91 296 783 1837 3951 7968 15412 29285 55880 108627 215786 435173 881471 1775732 3533590 6920582 13323821
11 18 25 32 46 101 291 827 2155 5217 12011 26726 57918 122488 252680 508039 995457 1902498 3552967 6500842 11692428
11 24 37 50 63 76 89 102 115 128 141 154 167 180 193 206 219 232 245 258 271
13 24 35 46 57 68 79 90 101 112 123 134 145 156 167 178 189 200 211 222 233
22 28 44 84 162 292 488 764 1134 1612 2212 2948 3834 4884 6112 7532 9158 11004 13084 15412 18002
27 45 67 96 138 201 294 428 633 1028 2015 4713 11804 29030 67658 148319 306727 601895 1127587 2027878 3517838
8 30 63 121 237 485 1024 2185 4646 9781 20348 41841 85141 171666 343209 680367 1336484 2599512 5004405 9537913 18013797
10 10 14 42 136 379 933 2105 4463 9056 17866 34769 67544 131882 258944 508821 993268 1912306 3610674 6661600 11986844
7 13 25 66 168 379 783 1537 2936 5525 10284 18918 34291 61055 106548 182077 304773 500317 807003 1281842 2009738
11 21 36 60 108 208 400 741 1351 2584 5494 12906 31614 76529 178004 394079 830019 1668255 3212664 5952008 10648248
2 10 19 29 40 52 65 79 94 110 127 145 164 184 205 227 250 274 299 325 352
-5 2 29 85 179 320 517 779 1115 1534 2045 2657 3379 4220 5189 6295 7547 8954 10525 12269 14195
4 14 39 89 175 320 578 1060 1967 3636 6638 12065 22361 43471 89833 195044 433277 960398 2090534 4436219 9163714
21 41 72 131 253 494 930 1655 2787 4506 7183 11741 20578 39801 84406 189816 436559 1000915 2254664 4953815 10582281
-5 6 28 69 155 345 759 1638 3478 7327 15428 32567 68787 144607 300592 614104 1227345 2392320 4539856 8380705 15045783
18 31 56 109 207 370 626 1019 1620 2541 3952 6101 9337 14136 21130 31139 45206 64635 91032 126349 172931
22 41 77 143 260 474 887 1719 3443 7075 14767 30963 64582 133092 270144 540021 1065144 2078221 4019725 7716207 14698156
5 12 30 69 144 294 609 1261 2535 4856 8808 15141 24762 38706 58083 83997 117433 159108 209282 267525 332436
13 23 43 81 141 225 343 546 1025 2377 6244 16709 43130 105590 244973 541055 1144241 2330135 4591621 8791389 16409943
20 43 84 154 278 505 921 1681 3100 5882 11631 23892 50133 105348 218464 443802 882247 1722191 3322063 6380638 12289547
13 24 61 153 351 743 1488 2878 5446 10168 18876 35129 66017 125783 242944 474251 932396 1841997 3654208 7281858 14577432
24 36 61 113 223 451 908 1803 3534 6846 13083 24565 45125 80845 141034 239495 396132 638952 1006521 1550937 2341387
13 31 58 85 98 78 1 -162 -445 -887 -1532 -2429 -3632 -5200 -7197 -9692 -12759 -16477 -20930 -26207 -32402
4 16 34 64 118 214 376 634 1024 1588 2374 3436 4834 6634 8908 11734 15196 19384 24394 30328 37294
0 8 29 77 171 335 598 994 1562 2346 3395 4763 6509 8697 11396 14680 18628 23324 28857 35321 42815
18 30 52 101 215 464 963 1906 3659 6980 13490 26638 53664 109612 225525 464976 956767 1958266 3975889 7991209 15881332
10 16 19 19 22 44 118 305 715 1550 3194 6415 12852 26207 55060 119140 262452 579200 1262385 2690847 5579062
10 23 62 139 267 469 805 1434 2748 5652 12123 26270 56260 117733 239826 475877 922618 1754665 3286004 6077749 11122661
3 23 59 116 210 384 739 1498 3132 6604 13845 28675 58528 117543 231875 448547 849996 1578028 2873822 5145925 9087381
10 15 29 72 176 391 804 1583 3072 5981 11728 23000 44642 85151 159526 295296 545638 1017171 1925979 3704516 7195220
27 50 99 196 384 747 1436 2701 4929 8688 14777 24282 38638 59697 89802 131867 189463 266910 369375 502976 674892
-1 9 35 73 119 175 265 485 1132 2998 7993 20396 49248 112722 245761 512898 1028997 1991719 3730863 6781403 11989085
2 -6 -17 -31 -48 -68 -91 -117 -146 -178 -213 -251 -292 -336 -383 -433 -486 -542 -601 -663 -728
14 28 59 122 244 464 833 1414 2282 3524 5239 7538 10544 14392 19229 25214 32518 41324 51827 64234 78764
12 22 41 65 90 112 127 131 120 90 37 -43 -154 -300 -485 -713 -988 -1314 -1695 -2135 -2638
13 37 80 154 282 497 850 1448 2565 4904 10147 22032 48377 104819 221770 457708 925433 1845227 3653286 7220830 14287600
-1 -6 -6 2 25 96 308 856 2076 4457 8595 15081 24402 37127 54997 84091 142053 272492 571160 1230420 2610879
3 9 28 62 112 178 259 353 457 567 678 784 878 952 997 1003 959 853 672 402 28
19 40 87 183 362 678 1222 2163 3844 6979 13012 24714 47109 88835 164061 295096 515841 876250 1447981 2331433 3664380
0 -5 -10 -15 -20 -25 -30 -35 -40 -45 -50 -55 -60 -65 -70 -75 -80 -85 -90 -95 -100
7 12 23 54 144 369 856 1795 3452 6215 10775 18687 33821 65670 136226 293290 634805 1351286 2796903 5604532 10866454
7 14 42 112 253 494 848 1288 1723 1998 1965 1702 2013 5505 19045 59827 170862 459857 1192547 3005047 7361792
13 18 38 93 226 527 1166 2435 4799 8956 15906 27029 44172 69745 106826 159275 231857 330374 461806 634461 858134
19 28 39 55 89 186 453 1101 2509 5326 10633 20193 36823 64928 111243 185835 303423 485080 760387 1170115 1769517
-1 -5 -3 13 55 147 343 755 1591 3207 6185 11461 20543 35879 61459 103763 173199 286211 468277 758061 1213031
24 49 83 122 168 243 417 870 2031 4877 11546 26544 59038 127052 264818 534995 1047702 1987749 3648997 6468498 11039752
5 12 36 92 191 344 576 951 1603 2771 4864 8664 15972 31435 67185 153670 363341 859814 1995608 4499528 9824817
0 6 15 29 64 158 392 933 2105 4491 9066 17358 31631 55081 92033 148124 230454 347684 510057 729315 1018482
13 11 11 15 27 54 113 251 586 1383 3191 7083 15067 30820 61210 120074 238471 492299 1072847 2455763 5781103
1 -4 -9 -14 -19 -24 -29 -34 -39 -44 -49 -54 -59 -64 -69 -74 -79 -84 -89 -94 -99
7 16 28 43 61 82 106 133 163 196 232 271 313 358 406 457 511 568 628 691 757
10 5 -6 -23 -38 -22 103 512 1550 3835 8396 16851 31630 56248 95633 156514 247874 381473 572446 839981 1208082
8 34 85 183 373 742 1459 2855 5565 10750 20410 37805 68058 119193 204287 346326 589250 1022625 1835625 3432928 6678819
5 15 50 129 279 537 952 1587 2521 3851 5694 8189 11499 15813 21348 28351 37101 47911 61130 77145 96383
7 4 11 39 104 234 474 888 1573 2738 4980 10045 22668 54691 133852 321950 751427 1697236 3714453 7894811 16332024
17 31 59 109 192 331 593 1157 2431 5231 11035 22325 43030 79083 139105 235229 384077 607903 935915 1405789 2065388
4 23 47 84 151 266 446 730 1252 2401 5143 11687 26937 61735 140023 314179 696706 1523629 3278065 6926340 14362313
8 15 29 53 91 154 266 484 972 2210 5475 13795 33632 77579 168379 344727 669988 1247009 2247245 3973269 6994941
10 28 65 139 290 594 1180 2250 4102 7156 11983 19337 30190 45770 67602 97552 137874 191260 260893 350503 464426
-2 5 28 86 224 519 1076 2012 3430 5387 7858 10704 13704 16884 21805 35415 80057 217361 602265 1600596 4037315
16 36 60 88 125 193 363 816 1943 4504 9897 20658 41452 81077 156491 300791 578834 1117596 2164918 4202664 8163063
3 1 -1 -3 -5 -7 -9 -11 -13 -15 -17 -19 -21 -23 -25 -27 -29 -31 -33 -35 -37
-3 -1 10 39 110 277 661 1525 3403 7298 14962 29268 54680 97822 168141 278652 446745 695025 1052146 1553589 2242322
10 30 62 102 143 187 275 543 1318 3284 7777 17305 36414 73001 140100 258154 458293 789341 1337679 2284475 4057632
-1 8 28 61 124 259 539 1070 1989 3458 5654 8755 12922 18277 24877 32684 41531 51084 60800 69881 77224
1 16 53 121 234 421 751 1390 2716 5538 11513 23968 49586 101947 208990 428557 880119 1807897 3702851 7531050 15146778
14 32 63 106 170 293 575 1234 2708 5857 12376 25631 52311 105622 211377 419549 826259 1616051 3144318 6100173 11830933
21 48 95 167 268 412 653 1149 2295 4992 11163 24683 52958 109468 217681 416849 770313 1377072 2387511 4024335 6609920
16 28 44 81 180 415 900 1791 3272 5500 8463 11676 13599 10595 -4866 -47200 -142354 -333762 -685820 -1270723 -2098484
1 -1 11 56 161 364 717 1289 2169 3469 5327 7910 11417 16082 22177 30015 39953 52395 67795 86660 109553
18 45 88 145 219 334 569 1129 2476 5550 12134 25488 51555 101452 196862 381858 748582 1491751 3020928 6184195 12698771
3 5 11 21 35 53 75 101 131 165 203 245 291 341 395 453 515 581 651 725 803
17 33 63 105 164 268 490 990 2107 4560 9868 21181 44836 93123 188975 373592 718381 1343051 2442253 4323809 7462340
9 23 57 119 219 374 621 1036 1749 2934 4744 7176 9953 12839 17624 34779 101193 321513 955899 2593509 6476439
7 19 61 148 295 517 829 1246 1783 2455 3277 4264 5431 6793 8365 10162 12199 14491 17053 19900 23047
21 38 60 87 119 156 198 245 297 354 416 483 555 632 714 801 893 990 1092 1199 1311
3 1 3 20 71 195 478 1108 2481 5400 11454 23762 48450 97532 194331 383273 746991 1435693 2718066 5073041 9365215
11 7 1 6 54 205 562 1296 2686 5178 9470 16659 28585 48744 84606 152966 291173 578793 1176475 2391408 4781528
-3 -4 -6 -4 28 164 572 1594 3899 8799 18916 39570 81597 166944 339586 686518 1377527 2739292 5390832 10486002 20138400
-8 -8 -3 7 22 42 67 97 132 172 217 267 322 382 447 517 592 672 757 847 942
-1 0 1 0 -5 -16 -31 -32 54 477 1993 6632 19294 50777 123123 278526 593489 1200454 2319769 4305608 7710333
11 25 50 85 126 172 244 431 995 2608 6866 17331 41486 94127 202808 415903 813491 1520355 2718546 4653681 7623718
-8 -2 19 61 144 309 620 1175 2156 3964 7504 14715 29491 59222 117331 227521 431372 803446 1484353 2756569 5217854
6 16 36 80 175 368 732 1378 2498 4491 8258 15785 31152 62099 122255 234164 433539 776254 1352552 2320115 3983784
25 42 75 147 293 560 1002 1662 2532 3493 4278 4606 4865 8190 25705 88487 273202 754587 1908904 4510872 10095920
28 46 73 115 178 268 391 553 760 1018 1333 1711 2158 2680 3283 3973 4756 5638 6625 7723 8938
10 16 33 64 110 172 269 488 1097 2775 7044 17027 38703 82885 168210 325501 603940 1079578 1866803 3133490 5120668
8 22 61 145 311 635 1264 2458 4643 8478 14942 25451 42020 67491 105855 162704 245858 366222 538939 784917 1132821
17 28 44 89 200 432 876 1696 3191 5888 10672 18959 32918 55748 92016 148062 232477 356660 535460 787909 1138052
-7 -5 13 56 128 221 317 420 655 1507 4357 12657 34461 87730 211050 484406 1067785 2270071 4667481 9300322 17989898
15 26 37 48 59 70 81 92 103 114 125 136 147 158 169 180 191 202 213 224 235
17 31 45 59 73 87 101 115 129 143 157 171 185 199 213 227 241 255 269 283 297
6 0 -2 19 96 274 600 1102 1756 2442 2892 2635 946 -3192 -11102 -24390 -44870 -74420 -114750 -167061 -231572
16 37 85 182 366 702 1296 2312 3992 6679 10843 17110 26294 39432 57822 83064 117104 162281 221377 297670 394990
9 21 42 72 111 159 216 282 357 441 534 636 747 867 996 1134 1281 1437 1602 1776 1959
7 13 28 63 135 281 591 1268 2716 5652 11253 21418 39400 71416 130468 244623 473549 939359 1880978 3745553 7336141
-3 -1 1 10 54 191 525 1242 2687 5516 10985 21507 41771 81082 158377 313086 628643 1282987 2655535 5549498 11643446
16 21 27 33 38 41 41 37 28 13 -9 -39 -78 -127 -187 -259 -344 -443 -557 -687 -834
9 18 32 45 63 125 328 854 1997 4188 8016 14243 23811 37839 57608 84532 120113 165878 223296 293673 378023
23 50 99 185 340 618 1096 1881 3150 5287 9257 17497 35852 77529 170857 374135 803533 1684672 3446307 6887105 13466072
-8 2 26 74 163 312 531 799 1033 1075 782 419 1773 10829 43698 139199 384858 969400 2286094 5130524 11067635
6 17 57 155 364 786 1612 3179 6057 11212 20358 36726 66660 122726 229428 433217 819324 1539135 2853467 5199337 9290808
20 31 43 73 157 357 767 1526 2854 5131 9039 15783 27399 47145 79955 132916 215704 340887 523971 783029 1137713
11 19 27 46 112 312 821 1955 4266 8754 17369 34153 67670 135848 275086 556557 1114185 2190937 4213027 7905588 14468576
22 29 36 43 50 57 64 71 78 85 92 99 106 113 120 127 134 141 148 155 162
-1 -6 -5 19 93 268 645 1413 2899 5630 10407 18391 31201 51024 80737 124041 185607 271234 388019 544539 751045
11 12 28 88 250 618 1360 2734 5134 9174 15845 26827 45156 76731 133822 243301 465777 939108 1974358 4260058 9281170
-3 6 37 100 204 357 566 837 1175 1584 2067 2626 3262 3975 4764 5627 6561 7562 8625 9744 10912
7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 109 115 121 127
21 33 49 75 117 181 273 399 565 777 1041 1363 1749 2205 2737 3351 4053 4849 5745 6747 7861
8 3 -9 -24 -30 9 181 674 1874 4579 10454 22950 49070 102617 209940 419748 819340 1560659 2900985 5264908 9336546
0 -1 -4 -9 -16 -25 -36 -49 -64 -81 -100 -121 -144 -169 -196 -225 -256 -289 -324 -361 -400
8 22 58 134 278 532 966 1714 3050 5528 10216 19060 35420 64826 116008 202260 343204 567026 913262 1436218 2209114
14 22 45 109 262 586 1217 2387 4527 8517 16241 31704 63106 126490 252015 494865 954984 1814628 3412789 6395547 12019194
7 6 2 -10 -35 -78 -144 -238 -365 -530 -738 -994 -1303 -1670 -2100 -2598 -3169 -3818 -4550 -5370 -6283
-3 -7 -8 4 46 158 440 1124 2698 6097 12974 26074 49781 91047 161262 280425 486675 857613 1556156 2924876 5671816
26 44 75 127 208 326 489 705 982 1328 1751 2259 2860 3562 4373 5301 6354 7540 8867 10343 11976
18 34 60 112 219 431 845 1656 3240 6275 11896 21865 38748 66201 109806 179668 297474 513316 941800 1833442 3706877
15 32 53 87 162 341 750 1621 3353 6594 12347 22103 38004 63039 101276 158133 240691 358052 521745 746183 1049174
0 11 39 106 244 498 943 1737 3256 6400 13240 28332 61325 132062 280424 585017 1197947 2408229 4755563 9233031 17649795
18 27 50 95 172 297 508 916 1838 4102 9683 22939 52900 117392 250396 515221 1028290 2002397 3825452 7202899 13411956
2 7 27 81 203 459 965 1909 3599 6600 12095 22721 44314 89286 182813 373725 753080 1485037 2857027 5359617 9811189
23 35 61 117 217 383 678 1281 2638 5744 12642 27282 57014 115305 226987 438835 841137 1611045 3097163 5978791 11554847
21 48 84 122 158 199 280 507 1162 2944 7484 18364 42989 95824 203819 415666 818856 1574720 2997048 5735627 11204595
11 20 39 66 100 147 244 526 1367 3626 9017 20598 43362 84981 157036 277796 479194 823845 1444298 2629535 5010339
13 30 65 123 214 374 700 1399 2851 5686 10875 19835 34548 57694 92798 144391 218185 321262 462277 651675 901922
24 38 56 78 106 147 217 346 584 1008 1730 2906 4746 7525 11595 17398 25480 36506 51276 70742 96026
26 46 78 124 182 251 341 488 774 1352 2476 4536 8098 13949 23147 37076 57506 86658 127274 182692 256926
26 52 96 158 239 346 497 726 1088 1664 2566 3942 5981 8918 13039 18686 26262 36236 49148 65614 86331
8 20 33 41 37 14 -23 -22 196 1106 3814 10687 26506 60580 130707 270788 545700 1080392 2116163 4117365 7968791
9 15 36 90 202 414 817 1611 3207 6404 12720 25069 49235 97138 193942 392967 805641 1659073 3402208 6894216 13727420
9 5 1 -3 -7 -11 -15 -19 -23 -27 -31 -35 -39 -43 -47 -51 -55 -59 -63 -67 -71
-2 -4 -6 -8 -10 -12 -14 -16 -18 -20 -22 -24 -26 -28 -30 -32 -34 -36 -38 -40 -42
14 29 65 132 250 461 853 1616 3155 6289 12576 24843 48109 91342 171008 318334 593884 1115809 2112483 4016842 7629460
7 11 14 29 83 215 484 1002 2007 3991 7898 15407 29315 54035 96224 165556 275655 445203 699238 1070657 1601939
14 20 34 66 147 350 814 1773 3602 6906 12696 22718 40027 69928 121440 209477 357982 604296 1005094 1644274 2643243
25 50 87 136 208 340 627 1281 2727 5746 11675 22674 42070 74788 127879 211155 337941 525954 798319 1184732 1722780
10 23 41 74 151 331 711 1444 2791 5242 9755 18198 34197 64937 125330 247907 505764 1063445 2284177 4944950 10648687
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62
17 34 62 98 136 159 136 41 -82 31 1180 5366 17198 46829 115941 269729 600768 1296786 2737078 5687933 11697555
-4 2 24 75 180 380 727 1274 2073 3203 4859 7542 12399 21771 40016 74683 138122 249624 438194 746069 1233102
0 2 3 14 68 227 585 1269 2453 4421 7740 13629 24629 45688 85801 160525 296431 540825 985869 1829358 3521633
4 -3 -15 -35 -66 -100 -87 135 972 3286 8687 19870 40906 77315 135639 222090 339668 482923 629269 725443 667334
8 1 1 16 53 131 299 652 1336 2531 4399 6982 10033 12761 13469 9062 -5600 -38531 -101659 -212108 -393755
16 38 83 176 363 733 1456 2838 5408 10085 18542 34018 63069 119148 229527 447998 877104 1705456 3268101 6141044 11285031
15 28 42 57 73 90 108 127 147 168 190 213 237 262 288 315 343 372 402 433 465
9 19 40 95 210 423 820 1616 3315 7007 14889 31128 63214 123977 234461 427857 754693 1289459 2138806 3451397 5429402
8 8 7 20 76 224 542 1146 2194 3875 6371 9797 14205 19992 29701 53641 124600 332086 895211 2307026 5603526
13 24 44 74 127 242 514 1154 2603 5740 12246 25214 50129 96382 179528 324550 570449 976544 1630936 2661666 4251179
-1 -5 -9 -8 4 47 182 550 1431 3354 7325 15289 31004 61580 120024 229233 427991 779653 1384339 2395614 4042796
-2 7 26 52 82 129 259 666 1809 4654 11107 24803 52543 106858 210438 403507 755664 1384257 2482024 4357534 7492904
23 35 52 77 113 163 230 317 427 563 728 925 1157 1427 1738 2093 2495 2947 3452 4013 4633
23 29 35 39 31 5 -2 172 962 3328 9182 22127 48764 101020 200255 384354 719641 1320311 2379213 4215287 7344821
-4 -5 -1 17 60 147 335 785 1889 4512 10462 23423 50840 107764 224685 463291 947494 1922849 3866917 7687909 15071384
3 3 7 21 69 214 592 1480 3431 7523 15800 32054 63236 122034 231623 434567 810055 1508651 2824621 5348275 10284171
21 32 42 49 58 87 173 382 847 1903 4470 10967 27236 66230 154589 343710 727529 1469994 2846138 5301781 9538222
6 19 45 94 175 299 503 910 1840 4000 8832 19224 41044 86435 180702 376335 781063 1613369 3311338 6743524 13610498
13 17 38 89 190 380 735 1404 2700 5321 10834 22649 47865 100620 207965 419860 825719 1581081 2949534 5367057 9538568
14 34 76 160 323 630 1185 2142 3716 6194 9946 15436 23233 34022 48615 67962 93162 125474 166328 217336 280303
12 35 77 144 252 442 797 1456 2611 4466 7141 10538 14298 18290 24867 45994 122477 371167 1093487 3013051 7776621
21 32 47 74 129 236 430 782 1491 3133 7231 17442 41911 97842 220310 479203 1011714 2084459 4211816 8380503 16473754
9 -1 -13 -22 -23 -1 100 437 1378 3712 9054 20599 44448 91802 182389 349544 647391 1160565 2016845 3402928 5583339
18 30 53 96 190 403 855 1733 3306 5940 10113 16430 25638 38641 56515 80523 112130 153018 205101 270540 351758
-2 5 32 104 263 567 1095 1965 3380 5734 9839 17393 31947 60949 120134 242909 499954 1038783 2160586 4463858 9103247
-3 9 36 87 179 347 665 1295 2610 5478 11842 25781 55287 115047 230590 444272 823767 1474067 2554548 4303535 7074127
18 27 37 56 110 258 608 1334 2694 5049 8883 14824 23666 36392 54198 78518 111050 153783 209025 279432 368038
7 10 23 68 188 460 1016 2078 4010 7382 13028 22062 35793 55452 81611 113136 145473 168018 160269 86400 -112166
19 37 59 87 130 215 403 809 1628 3172 5926 10634 18429 31024 50984 82102 129905 202319 310525 470041 702068
9 35 82 155 269 469 863 1679 3363 6736 13222 25158 46254 82533 144891 256500 473057 933989 1982762 4432101 10117535
12 21 46 108 233 456 835 1488 2684 5047 9970 20384 42085 85890 170971 329804 615268 1110537 1942526 3299780 5455833
-6 -5 11 51 128 277 596 1325 2988 6647 14365 30066 61148 121512 237250 457402 874660 1666206 3176229 6085656 11764662
0 0 13 53 138 298 595 1157 2229 4249 7968 14652 26433 46917 82212 142610 245246 418166 706367 1180527 1949324
8 5 15 61 188 492 1161 2523 5091 9586 16903 27954 43260 62044 80358 87401 58574 -57129 -359205 -1033041 -2411304
1 13 53 139 303 597 1102 1942 3310 5528 9188 15456 26666 47386 86203 158549 290975 527375 937767 1630353 2767705
14 26 38 50 62 74 86 98 110 122 134 146 158 170 182 194 206 218 230 242 254
22 34 54 102 210 433 873 1721 3325 6294 11650 21042 37040 63544 106402 174488 281836 452086 727634 1187674 1981962
-1 7 18 26 31 49 132 407 1141 2844 6445 13628 27507 53962 104163 199087 377195 706893 1305964 2370838 4219375
14 25 53 114 230 440 837 1648 3375 7017 14404 28710 55306 103330 188803 340996 615344 1118937 2059099 3832618 7183906
11 17 24 25 22 44 170 570 1595 3984 9336 21163 47176 104104 227581 491997 1049739 2207916 4577110 9357568 18885542
13 30 66 143 303 618 1197 2189 3794 6315 10322 17076 29512 54353 106383 216620 447187 917180 1845890 3622477 6914757
23 45 90 175 319 541 858 1295 1931 3010 5145 9649 19071 38152 75731 148745 290543 567483 1110468 2172027 4225151
24 32 35 33 26 14 -3 -25 -52 -84 -121 -163 -210 -262 -319 -381 -448 -520 -597 -679 -766

67
2023/src/bin/day09.rs Normal file
View File

@ -0,0 +1,67 @@
#![feature(test)]
extern crate test;
use aoc2023::{boilerplate, common::*};
use itertools::Itertools;
const DAY: usize = 9;
type I = i64;
type Parsed = Vec<Vec<I>>;
fn parse_input(raw: &str) -> Parsed {
raw.lines().map(|l| parse_nums_separator(l, ' ')).collect()
}
fn build_levels(levels: &mut Parsed) {
loop {
let previous = levels.last().unwrap();
let level = previous.iter().zip(previous.iter().skip(1)).map(|(a, b)| b - a).collect_vec();
levels.push(level);
if levels.last().unwrap().iter().all(|n| n == &0) {
break;
}
}
}
fn part1(lines: &Parsed) -> I {
lines
.iter()
.map(|line| {
let mut levels = vec![line.to_owned()];
build_levels(&mut levels);
for i in (1..levels.len()).rev() {
let new = levels[i].last().unwrap_or(&0) + levels[i - 1].last().unwrap();
levels[i - 1].push(new);
}
*levels[0].last().unwrap()
})
.sum()
}
fn part2(lines: &Parsed) -> I {
lines
.iter()
.map(|line| {
let mut levels = vec![line.to_owned()];
build_levels(&mut levels);
for i in (1..levels.len()).rev() {
let new = levels[i - 1].first().unwrap_or(&0) - levels[i][0];
levels[i - 1].insert(0, new);
}
levels[0][0]
})
.sum()
}
boilerplate! {
TEST_INPUT == "\
0 3 6 9 12 15
1 3 6 10 15 21
10 13 16 21 30 45",
tests: {
part1: { TEST_INPUT => 114 },
part2: { TEST_INPUT => 2 },
},
bench1 == 2038472161,
bench2 == 1091,
bench_parse: Vec::len => 200,
}

View File

@ -22,8 +22,8 @@ pub fn parse_nums<I: ParseableNumber<I>>(l: &str) -> Vec<I> {
l.lines().map(parse_num::<I>).collect()
}
pub fn parse_nums_comma<I: ParseableNumber<I>>(l: &str) -> Vec<I> {
l.trim().split(',').map(parse_num::<I>).collect()
pub fn parse_nums_separator<I: ParseableNumber<I>>(l: &str, s: char) -> Vec<I> {
l.trim().split(s).map(parse_num::<I>).collect()
}
pub trait Splitting {