From 9cbaf311d917306f7c7be81c873ad9afddce2973 Mon Sep 17 00:00:00 2001 From: Anson Biggs Date: Fri, 1 Dec 2023 00:13:19 -0700 Subject: [PATCH] day 1 leggoo --- .vscode/settings.json | 4 + Cargo.lock | 4 +- Cargo.toml | 3 +- inputs/day1.txt | 3231 +++++++++++++---------------------------- inputs/day2.txt | 2500 ------------------------------- inputs/day3.txt | 300 ---- inputs/day4.txt | 1000 ------------- inputs/day5.txt | 513 ------- src/day1.rs | 126 +- src/day2.rs | 110 -- src/day3.rs | 112 -- src/day4.rs | 84 -- src/day5.rs | 163 --- src/main.rs | 13 +- 14 files changed, 1083 insertions(+), 7080 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 inputs/day2.txt delete mode 100644 inputs/day3.txt delete mode 100644 inputs/day4.txt delete mode 100644 inputs/day5.txt delete mode 100644 src/day2.rs delete mode 100644 src/day3.rs delete mode 100644 src/day4.rs delete mode 100644 src/day5.rs diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..fe95ac3 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "editor.formatOnPaste": true, + "editor.formatOnSave": true +} \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 547e72c..ca3ee87 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,9 +27,9 @@ checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "itertools" -version = "0.10.5" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" dependencies = [ "either", ] diff --git a/Cargo.toml b/Cargo.toml index 501af89..04c86e2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,8 +3,7 @@ name = "aoc_2022" version = "0.1.0" edition = "2021" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -itertools = "0.10.5" +itertools = "0.12.0" scan_fmt = "0.2.6" diff --git a/inputs/day1.txt b/inputs/day1.txt index c624c99..78729cf 100644 --- a/inputs/day1.txt +++ b/inputs/day1.txt @@ -1,2231 +1,1000 @@ -8417 -8501 -5429 -2112 -6482 -7971 -9636 -4003 - -4697 -2941 -3275 -6060 -4879 -7158 -5066 -3196 -5780 -3143 -2510 -7073 - -3820 -6710 -4781 -6241 -3975 -6308 -5289 -6575 -2662 -4804 -5352 -4610 - -18980 -3731 -16643 - -6500 -2810 -13252 -5288 -2110 -12393 - -5354 -5521 -6015 -2501 -6067 -2465 -2201 -3864 -2661 -4078 -2399 -3212 -2831 -3268 -2726 - -4701 -4530 -1699 -3015 -3682 -2537 -4554 -2826 -1895 -2652 -4074 - -3650 -2113 -4750 -6639 -5177 -3823 -1529 -5671 -3679 -7061 - -1984 -3240 -7139 -1931 -6740 -5695 -6572 -3264 -2904 -7199 - -4982 -3483 -3358 -2762 -3983 -1341 -7420 -5830 -5709 -6140 -5363 -2636 - -8943 -9452 -14560 -11685 -9792 - -51549 - -4032 -3303 -6291 -2010 -1099 -4304 -3308 -3226 -7038 -5911 - -3627 -4414 -3217 -3388 -5294 -1914 -4938 -1120 -3825 -4163 -5549 -1712 -2589 -1550 - -3683 -5829 -3937 -6935 -8588 -2765 -9142 -6662 - -2440 -1029 -5550 -4674 -3176 -1791 -3867 -2779 -5259 -4676 -5868 -2371 -4557 -1058 - -5431 -7001 -1789 -7292 -2550 -6087 -6538 -3913 -6977 -2262 -5710 -2555 - -10586 -1560 -9521 -6677 -7222 -7567 -9516 - -2974 -4438 -5184 -1797 -3472 -3685 -4252 -3512 -6003 -3274 -6482 -5545 -6207 -3442 - -2542 -2128 -3556 -3399 -2355 -2355 -2887 -5069 -6026 -2508 -1716 -1556 -2295 -3955 - -25725 -15128 -7375 - -14056 -1829 -18860 - -55324 - -6072 -6692 -4264 -6261 -1588 -1143 -7373 -6603 -5488 -3320 -2545 -5954 - -18062 -29180 - -3677 -6522 -4883 -7097 -5284 -2549 - -48546 - -3552 -4460 -1059 -2662 -4123 -4032 -4430 -3578 -3441 -3895 -3487 -1717 -5564 -2195 -5687 - -3760 -3157 -2112 -5937 -5018 -4986 -1568 -7508 -2288 -4252 -4226 - -8943 -35829 - -3615 -4087 -16628 -9725 - -18133 -3552 -19658 -8840 - -5401 -2506 -2988 -4760 -5149 -2556 -1375 -2458 -1349 -6012 -3101 -1719 -4705 - -1915 -4351 -4834 -6064 -1864 -6366 -1081 -4066 -4200 -6982 -1148 -6685 - -6497 -19940 -5418 -19755 - -6763 -4697 -4844 -6105 -7080 -7110 -3403 -1635 -2373 -4737 -1538 -4517 - -55242 - -5390 -4892 -9004 -6322 -2309 - -14406 -2408 -3189 -13705 -15881 - -8001 -4336 -7789 -3403 -7771 -5339 -3603 -2882 -2789 -5457 - -5291 -1004 -4796 -5162 -3295 -5628 -6048 -8055 -2805 -2979 -6347 - -4342 -2131 -3900 -9516 -9941 -10085 -9855 -4946 - -3766 -12591 -6027 -7521 -2532 -2965 - -6640 -8130 -2235 -3616 -1513 -4982 -5757 -6450 -7833 -2535 - -11114 -9350 -5189 -7416 -2510 -12480 - -2161 -1329 -6055 -5304 -1213 -5987 -1021 -1484 -2736 -1594 -3897 -1298 -3701 -3500 -5264 - -1393 -8359 -7732 -1479 -1367 -9665 -4956 -8989 -2423 - -14947 -26722 - -4382 -1257 -4970 -3681 -4299 -2421 -3996 -4978 -3178 -5039 -3989 -5297 -1322 -1941 - -2901 -5088 -5876 -5770 -4000 -5408 -5932 -3787 -4428 -3649 -3000 -4528 -3172 -5852 -4803 - -3841 -6352 -7104 -3285 -8693 -7082 -8890 -10598 - -32634 - -5064 -4469 -2675 -5662 -1483 -5918 -3117 -4976 -3964 -2474 -5210 -1632 -4618 -2106 -3214 - -1940 -5559 -2138 -6436 -1860 -5369 -5147 -2794 -1714 -3409 -1892 -5806 -3899 -2305 - -4500 -2147 -4251 -4609 -3619 -2567 -5201 -3390 -1319 -4424 -3005 -1397 -1693 -4714 - -2415 -4424 -3809 -3615 -3269 -1986 -2018 -4848 -5122 -1968 -3075 -2470 -5922 -1937 -4125 - -6317 -6637 -4533 -5743 -4806 -3129 -1306 -3957 -4663 -7623 - -14487 - -34032 -11976 - -5839 -5692 -6716 -1473 -1572 -6622 -7735 -2335 -5670 -6461 -2705 - -5643 -1721 -3150 -6460 -5134 -1124 -3925 -1463 -1951 -6910 -6680 -3038 -2685 - -3205 -2335 -4418 -2358 -5683 -2334 -1910 -4780 -1315 -1613 -1523 -2882 - -3266 -12924 -8477 -7172 -13876 -9290 - -18737 -7661 -5950 - -61407 - -24968 -23181 - -4341 -5288 -9306 -10062 -9350 -4045 - -4607 -2565 -2507 -4183 -3101 -5356 -3384 -4707 -2040 -5622 -2513 -2429 -2496 -1069 - -3590 -5290 -5371 -6878 -6657 -8246 -4479 -4906 -3830 - -7894 -7018 -5222 -7556 -7754 -3433 -4862 -9010 -6891 - -6337 -21986 -2791 - -1075 -5278 -3373 -3820 -1277 -3217 -1349 -1758 -2934 -1298 -5885 -1544 -4560 -4384 -4804 - -6345 -1952 -1082 -5949 -3946 -5991 -6474 -6288 -4526 -5059 -6081 -1155 -1388 -5735 - -1166 -6023 -6465 -2215 -7056 -7369 -6983 -1051 -6578 -6131 -6334 -6491 - -4486 -5666 -5937 -5460 -2587 -1803 -3938 -1771 -4157 -5144 -2624 -4098 -5403 -2063 -2746 - -6953 -11646 -2940 -6280 -4667 -1413 - -5913 -2811 -1258 -5507 -6685 -1464 -3137 -6716 -4217 -3656 -6306 -4198 -4557 - -5846 -2427 -3635 -6365 -5987 -5964 -4458 -4119 -4522 -3972 -6216 -5551 -1705 - -2125 -5680 -1450 -1701 -5256 -4673 -5045 -5515 -1432 -3565 -3246 -6050 -5755 -3390 -5847 - -1655 -5405 -6132 -3714 -1627 -7477 -10344 -6058 - -4914 -4975 -4158 -2466 -5685 -2484 -3594 -1037 -3369 -1022 -3917 -3185 -5233 -5571 -5222 - -6996 -4804 -1923 -3688 -4808 -1448 -2836 -5346 -5266 -4603 -2173 -1082 - -5730 -9574 -5903 -6668 -5482 -5088 -8905 -5333 -7135 - -5377 -2192 -6250 -1581 -5354 -3088 -1125 -2676 -3780 -3977 -4634 -3810 -4168 - -3173 -4961 -1384 -5868 -4666 -2902 -7158 -8275 -5856 -6056 - -7098 -12466 -4255 -10181 -13726 -4866 - -1681 -1910 -5175 -4773 -7702 -5183 -5759 -2788 -2596 -5676 -5361 - -6560 -5352 -5182 -13627 -7612 -10355 - -4780 -1702 -5111 -1101 -6959 -4120 -5441 -4818 -8091 -6480 - -8332 -5999 -6744 -9027 -7948 -3470 -9144 -6675 -2996 - -6961 -19157 -1485 -19127 - -22926 - -17211 -14166 -1463 - -5074 -9836 -4387 -10138 -10072 -5791 -3683 -9806 - -5623 -3668 -4324 -9990 -4865 -1793 -10752 - -9739 -18699 -14526 -4157 - -2785 -1804 -4527 -4430 -3373 -10323 -6855 - -2075 -4828 -2026 -3909 -6410 -4035 -3709 -5177 -3259 -6033 -5534 -6097 -2578 - -2246 -6146 -5899 -1864 -2881 -4628 -3176 -5663 -3088 -3834 -2935 - -16262 -11795 -14098 -15140 -13228 - -4323 -8674 -5497 -8305 -6261 -7846 -2593 -10156 - -5309 -3112 -4563 -1434 -1107 -7130 -5727 -4950 -7466 -6218 -3641 - -6379 -1200 -2050 -6235 -4257 -2532 -3132 -6179 -4883 -6282 -6576 - -11097 -12482 -7593 -3300 -3342 -2184 - -1950 -2753 -4277 -8130 -5451 -7991 -4993 -7978 -8004 - -20042 -19430 -5442 - -7059 -6666 -5832 -6485 -2405 -2744 -4710 -1726 -1121 - -2277 -1842 -1575 -1955 -1906 -4176 -4114 -5040 -5552 -4857 -2775 -5033 -3488 -3971 -3550 - -11844 -9703 -6549 -7779 -9117 -1536 - -8861 -25738 - -3649 -10095 -4132 -1888 -6453 -7269 -5898 -9769 - -5465 -8855 -12706 -6698 -3456 -4949 - -3093 -8425 -8580 -8693 -1401 -6281 -8069 -7607 -6368 -7467 - -6885 -1469 -1315 -2335 -6669 -3226 -5261 -2477 -1931 -6691 -2575 -1377 -5029 - -5220 -4639 -5985 -1669 -1162 -4269 -6532 -4630 -4169 -3164 -6896 -6432 - -12705 -4248 -5011 -7544 -2040 -7767 - -60119 - -58181 - -69195 - -10643 -5605 -3433 -3275 -4741 -2858 -8151 -10582 - -4299 -10093 -12455 -2583 -2604 -11520 - -4609 -8245 -1989 -17043 - -4998 -8893 -3978 -4961 -2847 -8109 -9266 -1034 -4808 - -6593 -3208 -3966 -1649 -5952 -1961 -4517 -3911 -4239 -3255 -4144 - -3721 -2249 -3195 -1827 -3942 -2713 -4481 -2475 -3566 -2701 -2832 -2372 -5281 -3315 -6029 - -5817 -6495 -8621 -7101 -3936 -1675 -3309 -1873 -8737 -4558 - -6533 -4655 -4205 -6051 -2902 -2566 -2173 -1535 -5827 -2807 -6391 -7194 - -5844 -2233 -4210 -2293 -2529 -3081 -1524 -5844 -5931 -6456 -6427 -4873 -3195 - -3101 -3627 -9503 -1451 -9148 -1990 -2748 -5949 - -1357 - -4305 -4183 -8665 -9225 -5169 -8711 -7360 -4352 -8762 - -19297 -6700 -3922 -13161 - -7177 -5207 -12649 -10712 -3766 - -3197 -11717 -4128 -14139 - -5844 -4035 -9789 -5874 -6510 -6863 -9172 -3398 - -3289 -3003 -7463 -5109 -6382 -5082 -2587 -5094 -7545 -2487 -2585 - -15763 -18524 -4143 -8602 - -4828 -2314 -3592 -3742 -4802 -3369 -3590 -5778 -5439 -4261 -4063 -3117 -3004 -2803 -4503 - -3356 -1306 -6227 -5953 -1962 -1596 -1031 -6259 -1314 -5303 -4053 -6606 -6141 - -23367 -13468 - -7561 -3664 -10113 -11060 -7173 -6770 - -14496 -3114 -2958 -10451 -12975 - -2779 -8809 -7880 -9646 -5169 -11946 -10951 - -1808 -8038 -4003 -2639 -4307 -2437 -3374 -6114 -3179 -2414 -6346 - -3683 -4271 -5347 -4651 -4209 -3216 -4860 -5151 -3676 -3964 -5855 -5537 -2334 -2847 - -3036 -4491 -2992 -5222 -1007 -3398 -4412 -5978 -4514 -5111 -2173 -4115 -3297 -3917 -4087 - -1120 -9199 -13194 -8285 -12725 -2925 - -4647 -8917 -5082 -2858 -7782 -3193 -7282 -2432 -6432 - -8143 -1337 -7526 -4612 -3111 -2914 -2283 -7143 - -13219 -11724 -11762 -13753 -11229 -9784 - -2649 -8191 -6390 -2745 -7430 -6038 -7916 -7448 -2535 - -16115 -13575 -13440 -12313 -7022 - -3839 -5604 -3500 -1413 -4189 -2483 -4394 -4244 -5173 -4677 -2620 -3916 -2756 -3345 -5480 - -3136 -4946 -2793 -3039 -4646 -6070 -4631 -1187 -1349 -5338 -3411 -2576 -3330 - -1836 -11177 -12819 -12092 -11081 -5211 - -3380 -3522 -6853 -4943 -3560 -6687 -2925 -1849 -7189 -2430 -4195 -4027 - -17162 -17251 - -12148 -6285 -8465 -9842 -2740 -9321 - -5968 -1099 -5670 -12712 -4090 -10669 - -5599 -11408 -2321 -8643 -7657 -3127 - -5527 -5415 -3154 -7523 -7113 -7944 -1210 -4328 -2435 -7446 - -9572 -2600 -4927 -7038 -2863 -8806 -6209 -5458 -6332 - -14202 -11728 -4854 - -2445 -4571 -5676 -4766 -6356 -3013 -7160 -4432 -4641 -5337 -2949 -7099 - -5446 -5189 -2921 -4698 -4187 -2921 -3446 -4539 -3540 -5492 -2071 -1449 -1923 -4901 -5579 - -13333 -5770 -5180 -9001 -7376 -8291 - -3865 -4909 -3073 -1720 -1261 -5913 -1136 -2052 -5530 -5411 -1702 -1550 -2913 -5178 -2584 - -10717 -2353 -1830 -5310 -8508 -10132 -10255 - -9848 -11390 -1490 -8553 -4819 -2115 - -2023 -1214 -1606 -9515 -5918 -1391 - -32192 -31035 - -6595 -5614 -7624 -8271 -4408 -5528 -1851 -1879 -7449 -6260 - -6197 -7995 -9114 - -1713 -5615 -1103 -6443 -4641 -4952 -6313 -1337 -6825 -3202 -5031 -4031 -4673 - -17667 -14248 -18603 -7973 - -4832 -5010 -1017 -2983 -1808 -6429 -5847 -5974 -2629 -2190 -5018 -5594 -3316 -2445 - -8857 -1902 -6649 -5100 -2108 -2331 -7523 -9370 -2149 - -4877 -2080 -3225 -1529 -6630 -3562 -2262 -2460 -3366 -5855 -1527 -2721 -5946 - -32414 -14299 - -6015 -2017 -6133 -9382 -3482 -7670 -1090 -4911 -4220 - -4475 -5519 -2909 -1638 -5199 -3699 -3179 -1962 -4396 -1750 -2375 -5751 -3907 -2693 -3037 - -2510 -6869 -3477 -4511 -1178 -4193 -6442 -5839 -3640 -4681 -4547 -4390 -4146 - -4965 -3818 -1807 -1184 -2238 -5347 -3971 -5439 -5111 -6372 -2632 -2137 -1616 - -5784 -6903 -3123 -5558 -6147 -3532 -4366 -2303 -6913 -1180 -6775 -2658 -5388 - -3315 -4958 -3185 -2507 -4022 -3424 -1123 -3518 -5329 -5409 -5895 -4483 -5391 -3281 -1485 - -5753 -2212 -6587 -4668 -1712 -6688 -1846 -3009 -3829 -5361 -6819 -1247 - -3500 -23879 - -3471 -4339 -3831 -4004 -5783 -5540 -5242 -5588 -4065 -5878 -1615 -1441 -4345 -3932 -3752 - -4206 -5411 -8355 -5696 -1314 -1549 -8447 -10241 - -4882 -4973 -3042 -7802 -5574 -4666 -2738 -7655 -7766 - -2498 -2714 -2695 -4724 -4075 -5588 -6234 -5988 -5455 -4229 -4890 -3590 -1722 -5413 - -1034 -2896 -4742 -4024 -5667 -6076 -5041 -8378 -3271 -8737 - -1411 -23272 -6602 - -3363 -12044 -11777 -7395 -4856 -2881 -12001 - -2064 -4239 -2992 -6806 -6814 -3037 -3173 -3336 -5565 - -2053 -2518 -5120 -4318 -1240 -3674 -7302 -1160 -3537 -4288 -2983 - -5826 -5926 -7843 -2996 -6079 -7832 -2716 -8027 -1470 -8005 - -10435 -24340 -11044 - -7277 -4053 -1588 -2648 -5715 -3133 -5720 -6702 -7375 -2244 -7196 -2918 - -20699 -12028 - -11053 -11400 -3604 -7989 -7666 -7379 -10696 - -5916 -13989 - -6510 -4784 -2679 -11144 - -5017 -3999 -6453 -1013 -3002 -4568 -6255 -6327 -5108 -2654 -1390 -3828 -5913 -2765 - -1242 -8316 -3256 -1006 -6026 -10319 -3552 -6538 - -2266 -2011 -7466 -2302 -5729 -1468 -1527 -6297 -7443 -3490 -6348 - -2767 -5816 -5452 -2946 -3461 -1647 -5520 -5237 -3193 -6009 -5393 -5583 -2746 -4326 -3446 - -2147 -1913 -3254 -5992 -7458 -4791 -7670 -3815 -2950 -6429 -1796 - -17982 -7519 - -33743 - -2744 -8866 -15440 -10433 -15680 - -1710 -3609 -1849 -4343 -5780 -4180 -3584 -2376 -4885 -4627 -1885 -3348 -2099 -1006 -2550 - -22016 -29227 - -22422 -12606 -11998 - -5357 -2121 -2744 -4713 -6531 -5164 -5774 -3553 -4974 -2279 -3932 -2702 - -4518 -3189 -3337 -1722 -2096 -5583 -2532 -1486 -2548 -2643 -5666 -6102 -4889 -5184 - -4730 -6382 -3208 -6277 -2724 -5944 -2098 -5082 -1984 -5999 - -6747 -7644 -8933 -2013 -7112 -3608 -7377 -5398 -1166 - -9919 -6479 -7831 -6544 -5801 -10986 -10245 - -9314 -10790 -5728 -3835 -9597 -7245 - -12744 -1502 -11126 -8626 -13645 -8998 - -5883 -2823 -2589 -5695 -6506 -2769 -4070 -4731 -5193 -2890 -2243 - -5437 -6241 -1398 -3651 -7865 -1854 -4169 -2921 -5701 -2839 -2277 - -4279 -4987 -5933 -1476 -2572 -1320 -2304 -1148 -4617 -4571 -1202 -3799 -3033 -2079 -5217 - -4247 -3918 -7174 -7333 -2215 -8351 -1339 -7229 -5266 - -1357 -3298 -3348 -6580 -1364 -6996 -6527 -3579 -4631 -1355 -7165 -4424 - -19948 -18739 -15360 - -2666 -3271 -1581 -6748 -3957 -6221 -1543 -2058 -5185 -1264 -2211 -1826 - -9309 -5622 -9303 -2516 -12117 -4126 -2700 - -9949 -16352 -18404 - -3351 -10708 -10017 -2594 -4711 -1749 -9432 - -8877 -7738 -10940 -6554 -6358 - -4961 -7610 -1594 -5133 -5937 -2581 -5131 -4044 -9096 - -2157 -6653 -5601 -1394 -5724 -6487 -4100 -3519 -2273 -5199 -6924 -6953 -4903 - -26443 -31228 - -2953 -10062 -5321 -4145 -2668 -2525 -4886 -2965 +eightqrssm9httwogqshfxninepnfrppfzhsc +one111jxlmc7tvklrmhdpsix +bptwone4sixzzppg +ninezfzseveneight5kjrjvtfjqt5nineone +58kk +5b32 +1dtwo +six7two7sixtwo78 +mvhsixpptztjh13sixthree2 +six1bqqvrxndt +fourmk5grmqone944nbvtj +twofiveqxfivezpkvfvxt5eightjhnpl +fpfqp7three7 +scmlf76ninegjzjkj97two +fivetkhfnnx22 +sevenxvbcbsvxr7eighttwo +1hvhqqmrs1bgttshthg6 +4bvnccbdh4onefztdrpq62vvbnvpxxvgrngnfjgfk +653spgrvd +sixctlhkjmmxh2fourfivenine37 +229mjp3txmqsxxqdbnnnbrtrcctgzseven +jfourdbpcjc39bhglgnine +bvnltxdmsp7twoxzpdjdvkxeight4twothree +jlvcdrkhzh8seven3 +418oneeight +53flcrlvqdeight84frmdcsixchcbc +114sixone1eight2 +xrbtzbklqsl11 +bhfhszrhzgrhsfd2threeseventwosevenoneseven +four9one +5p +twovhjpdxmcxshnhv5vs +qkkqeightcxcltnn7one9pmhlmvsxnine +4cbptmvp1 +84xgm +bzsmqhkrdtdmhhjgrjsdfour1ninetwo61 +onetwoeightgflhlgksevennine7two6 +mbjhkhfour6 +8cvqk6eightonethree1 +qhbllbnlkr3rcsmjvztgd +18eight4 +hhc6onegvkgkqs5mvsone +66bnfj +one99xvrhninefive +eight96nxcjjddmseightxvgsixfiverrzpvmgnl +rpgpczdsxpjgql39 +855dnthhxld6eight +four29twosspz1 +sixfiveqvrbcdr9fourlrkpkmxphlsbone +341 +mhqjjg9six9nine +7pvjctsgvsix64 +75twotwothreegcvssgbvhpzcnbgteight +7keight8eight +52threerhfmklssxcptmnlr4hqc4 +xndfqvgxn3five +974lknineseven +rlnsix3 +771m1 +xvtjhq7six64threeeightgspmxgv +4sbqdxbmmzj6fiveone +onesvvch4rvhmvncnk +mkzsftp69six6 +fiveptnn7 +94lsgsjxrrghxxsr4 +1grnvgpeightjthqmrfnszpfhfninefive9mbtf +qtsdfour2 +5mfhmskpcvqbxjzzxt4lq3sevenkv +rbhjk1cdzjhtzkcbtvmfm +nine4eightpmrptkb +bfiveeight1lxzkzvbtkkgxxs38 +mxcgbjqvhd1sevensevenrgp7two +fourxrdzzmjfmtr62one +sevenppqtlhvtwo7phlrbssxb +dhbnjmxg3bsgbhmlfiveseventwo +twoonemrbftgtzeightqjmjctmq55 +ggk2lt586dfzqbjsvj1one +jtgpzjjtwo86seventwo +37nine4onebqvsnmvg277 +hmpnzmqsfour6 +xzfhgzllmcbc56vpbpbbjffmgr3jrc +5lclone +hjbvkdtmrgvpfive9sevenfive1nlzqlkfrg +htwonetgxvjdkrvjsfjjbfmcthseven29 +six89bdlssd +3eight6one +vtbsix2twolzrhfr1 +vhdcvtj5 +167nsnmgxhtvn54fivedcbgrhm +4three1five82four +15eightonethreesixthree +dvhtsccljt51 +pbnfrxblk3sevenxjcmcvhlgrghpbgdnpl8xsr3fiveoneightq +242three8 +2fivehgqfxgl8kpdknxhmk5bmmsbz +fivejvjeight6fsqgtpvcb +1threelgkbhlhhlmrbvxqqgf +klmqfgfg1gnine253psn8 +47eight +eight83mvdtsqppjhgjnsvngfive +7mcmzvsv6seven +56seven98three4three +pfnbthreegthreefknjm4five +2nqgrdcshfpjfpqdrvnq1twoccpmxpxvv +xtwo7threemxbtpsvjkgrfivethree2 +9pkdfourfour1zjvczkhpbj +1three2 +pkkbphkgqfivellrnvnkdxpql3 +ppc62 +one73ptfxsbbpqqgctdjhzjsjc91 +nine7threefourvvk +six59542xcxqcbnrvzfbshcxxddz2 +ftsfj2ninesix1hdjsrpkonelklfpltv +ninehmxgkqbmhvtlvdmdtvpeighttqfour1three +frbnineeight4168ksmjstpqvzhnn +rgnrntwohvqhgxxfkonefour4mfdr5ftgtjjv +3ninejbszdvdgznfourxpcxspqxnthlngkncvnineccq +threemjglxtp5cqmtwotwo2seventwonerkl +eightsevensevenlmbjzprggthree1eight +57nineninezdcf +cqoneighteightjnrfkplvninefivemck18mnhszhkv4 +tbvdcsjsvmxtshv3fourseven4kmxvvfour9 +bxcsix19six8dnqsbx +7five81ncchkdk +four4ck7rtjmjpccpeightone +fivetwo6nine1tdczktmfninelrbnnine +onetwo9twoeight5sevensix +cvvtbmninebneightsix1dnnfkgmnm +h7three3 +tpnzsdm9sixtg5sixqvcqsq3 +1sevenzmbcpgtfrjvq +r8757 +fournineseven6fourfour +798dpbrkfourtwoxdrgqkrkmfeight7 +threebvqqjcldjx4nine5 +3hbl +twodndcfddkvfivermvkrfzsnqthree5 +mhdcvsixmnqlvmvxmxfour3ct +25dpfsrbcllhtwothree2pthreezfhjx +dcfggnine1onetwoone +vtbmbpgffive2hdmzjzqqqc4one +zg11 +txrknhvhbv183 +dlvscqszz82nvtpb7tktvtgjbml +twofour5sevensmqfjrjcndmvcvqdfsrsix +446sixeight6rbrltdzf +132ncq1 +4ninezdfzgvzf4four7qkzstcq +7rx5xntgxfpmvsevenzmzmbjlc3fivefive +threeseven7tshthree +gnbqhninecjnhlpcfivenine18 +gjntwonenllmzgqsvq36lc45fourdrtzlctr +3tqgbfrk +zldl3zxpfbpveight +2ninetgppcvqrq +7one1sixeighttxcnhltwooneeight +bsm3hslqcr8xslndqnnvfpzvprlkt +khvptwo7kkbznndpqsevensevenvlr +sevenscneight8one4qnkc +2v +2threerjnineonev +68qhknonebtxvmqh +3btb +kcxbqzbjqt3twofourfxdlprsxkzlmflbveight +9bmdcninecjdv7 +ceightwoninelkbbfxgsv9fb5n +ztwo2 +7four9cpkclqxtrmpdgzxgtwo +8dghrmgprdjeight8knnb852one +2three36eightfournone2 +6ztwofkzlhvjdrxtsmlbgczf +knine6ninebpmzjbkg9tttkhtgcklbfive +sevenv3 +411one4483 +88jvjggxqfour3zrbvbxjzmthree +fivelqcnqfvgp18t +fivejceightqlsdrmrnbzfbjskstzrllxrdlcxpjkvf1 +832 +sixfive77rhkjdhvbpdfjxpkmfdq66qqtfpfs +fv6svkbnsgtpznblnvkvk5 +sixsevenfoursixeight486 +gsbfrjpngshpmlxf2 +gbmmmvdhffbbcq3 +5fivehxx28 +snjxttwo1zd5sixklfl +szsvdzsix3nine32nine +onervkhknmnsix3four363 +1btphrrvxdeightonekdhv8 +gkphmq73lfhflk66xpfive2 +611four3gnjsdkvksjdxfiveeight +klbvb9zk4eightninetwo +mreight59sevengqbhnspvhqcj2six +hnvgkmljlpthsgjrzmsevensix6fcvtxddbnx5 +ckfvkblhvv6gbsnlsevenktblt29three +eightfoursevendnsghkfsg8fivextnnine +5hrdqmfjq +twojcvkkjklzmfive2fourxqgdsdgzrjltwo7 +onetwonvxnxnntxcthree3 +threentwonine6 +sprfmxlqvb9jnbzltskxppqzdscrvhpfvjjcqhxcf +sixhfour95 +41fourqhpjbztknqnfpxvzc +two23sevenfgmmnszone113 +one41seven57 +oneninebqqklhk6gmdzddbhgzqcmxxfnmrvr +4mkpgv87eightckzjjfm +vhgdmvncxn88ldbt7464 +gcczfprplf7 +6eightninesxthreefive99 +two69fivecjxjhgjmgvttl9 +mztbzjmgxnpkfrqnrbgkgfourjjfjtone8eight +63mggldkcprlz +6sevenfourfive +1zvmrdnpzcsqqmxscn +five5tkgb8rrztmcfivebknjd +7pscpfive +eight9sixgfvhvlcnineeight +seven99fourtwojvxfrqmrdlthree +sppcgnjzeight93j +fivek7seventhree +twornbhtrlnznpctrxhqtngzdtnvfb2 +sevenfivefour63five38nlrxfcjpm +qvtdcspc4zxmmhpklhcdlznqfg46lct5one +1bnndtnsfjdsevenfivetwo3k85 +8five9six +3ltcc7trmmhbbbpjfive +cmbchhhczmqlp3 +nctz78twodljcqvplcqg +nine4sevenpnbbztpvkbgztb +zseven9eight +fourktzscmnrvddnnzsqfnfctzpdvtwo9 +nrtbgdjpm2ldcfdm5jjhx9 +jq9two68kjttwo67 +lnneightfourzqz6lgvxnthreeseven7 +fiveglp85 +ninefouronesix7k1three +3five5sevendhtmjhbh2 +rbjhnmmgsvmtk8four +vtrvvjsixhnctwocvskgzt3two3 +kxfive5threezgtd2 +2fivemcnngtzxsgbxmvbl +eightlrlztkvhfivefour5 +2twojcq7qrrbddmpsb +3twosixthreebqtoneone2 +nine9six3vlmpqbgjjqdftldpq +tgrglqfxxc2onetwo76oneonex +one48one +fivesgsnrzsms6one +fiveseven1tzhxdknkseven4 +3sprtonefivelxg47 +twotwoseven3ninenqdvxgm +nskjpvvqeightnine93fivecngkjcd3 +ltfxscllxk9pjznpnmhfmrzmqbq +4nineeight6four7 +fjtpj763 +four6six73htbstbbpztwofj +oneonetwo2five43three +five8bgcjnlzcgqpfkn +11mcn +9twovhkltdpkqzc65six +8fkprfkg9xfjxspqpshlfkqpnrt +4sblrf7745 +lblxmbzfour6187tggqllj +dhdmlx71mbbxtvhszhsvcm +six1qbqglfsssx +164tsthbb2 +8nineldrtltqfivebqnrthrm +sevenlsjbsklhxxfiveclbldxxtrdllxzthree6eight +18gnkrxfmnineone +six4threetwoeightgcn +vmknclnmnphb2czdbjmcone +eightq67 +eighthnzslhbblr85eight3 +3457kdzhnppqz5four8two +crcskvmhthree41 +8pccnsbv8ln3 +4eightonevd +pdz9threenine +3sg5gkrncz +6dxnslkl3xqlnm965twonexxn +9nlhmmkzsdbpdctd7ninec +62eightnine7nine3lrd +qbprlzczreight7threegqnrshrhc +3qlmr +three1twojgptkzgxmf +twosvdsfourone8 +5sixfourzvjtkpk +six418 +five523fivecbs +nineninesevenztfggvfkgkzfcm2 +qnsix5dnv7three +three5twofour +hlmtnzsmlnjxdtwo6 +9sixnglrctg +onecrgfq5hdldpc +nhzctlx94eight +19djvld +tzp8zzv8six1 +1nsnine5sixhqxfk +33sixtwojrdvksrfsnltglggxdhbsxf +bbvtpxptrnvjqzl3rldseventhree6 +2lcntfphb2lgpjbdeight +fivetwo1jjgkt9kltwo1nc +7xnmrscpfkthreejqbhlrtf4sixrbfrone +3threetqfkv1twofive +95ninejlftlxrs1nxxfsqz +hrsrszgrcl9seven8eightksdnhqsq7eight +5436ninefour +one5five +prcmxone8lhkblvr714three +92btgsllktgf7fivejhgsg2eight5 +fourmm61nine558nine +bxjx2 +one6onetwotjxthreefour8 +threedkpnpfvgt1one3nine1 +bxfour3two2sb4twondmfdpsz +11sevennrpxftwooneeightmx6 +9mqxcrjxnp7hdjgqktxm +2rnjlg7mbxstzbdh +qmsixhckzone1 +qzsnq6sixtwosixtwohhgbsrqgnine3 +foureight7scksqtkmnfiveseven765 +15oneckvshqd +41tzlxsfivebsckffdps +threefivefournine7 +5fiveonefour8lhqmltwoeighttwo +four5six +mhnrspfourmflmvkc52cjkvxheightsevendtddjdcnb +vxrrlfnlqf1twoeightninesixonetwo +8xonetwo2 +rveightwo79three +onebjlr9sixldqrbtwo4 +f1lhrbsix +mbbkv7ffpk +8twofourmxqvkqfcjfoureightplgpmrtxm3 +2rtrxjzqeighteightqtmsfnpdscpgqvxd7 +nineqggljvzvxltwozsvsfournine9 +ninexpmnnvqsfhnprqrqlcgfive9mtnflvttwoqlgphhb +11kbpmv1 +htspdnh1xhbbh3lzcjjx1 +five6fivefive5six +sxtbktj7 +ncvkgvgbeightfour89ttbrjthree +xcgxzxbfnkxdqn73eight +5nine4fivesixtwotwo1 +ffgzdfhn6 +fourzvtfcczlxhnnx5three +threednfntx4eightwovql +sixtwoveightnine7twonineseven +seveneightcclmgknrgninemnjsrsqsevenfftmlqkch7 +pvqnltjs2hghkrphnine3scngkjfcsn +62vdnbzrcrjsndqqr2 +5cxhscqpgdzbrnnq1m9b +gnkclhmbjfourfivemmxpqx2qlxvsix +sevenxcp4fourdlqgpxcl +8eighttwoone +bjslbfrspcnffnine9rvnjjrvcsix2 +six7tfive6hkllf56six +km3 +sixtjt2threefour2vqqcxj84 +9vflltwo4five +nineprprrcjt3eightmxfour +4twoninehvsbszqr +dtdmkcsd41eightfourxppqzkjb +xmdmghzdp9sevennine94 +2bbjsdlxoneeight +ninefivetwonine8 +68four +ninepdjpfmzxthree3dkxgttvncbr +52threesevenninefour6lfrlrsgzk +ghkczjt86bdk3czvhcone +cdjsd6jhnnnhzbzllqdjgpgnninevmcvbcxxltsix +1mxfsrninegfmgvnine14hbfnshgbprone +39four8 +bxnnjqkninetwotwo58txgvrbxvq +k4bftq68seven4nineseven +seven97fivekxjnseven4fourfour +drgttpqpsevenvrkxdlmvtctsc72seven +eight298 +2zsqmjskp +six5bgdkhzqt +fournlknxg35vqdqmnln6f +565rqtzdpqhlldxgnine7oneeight +3jfthree7vlkpfour1 +fourgngnqtgd675vgrrjf +25nrfive +kmlbnrm5dtvqndldh +vgbzkpnltxrp5tpvb +5mbzzk3nine7cqkngz1mm +sevenfive952 +4pxk8four +seven87fourlzlnineone +zxllsctgqmsevensix72 +9ggkqvsrhftwobndlt +8sixsfzlfpztjtwofourqvnptkgllxcf +5dvsjvtm +29dsvjrl3pvgjqncbgcxc +9mhvrb8fbtppbhm2s +eightninel5 +jltnzpcdr8one5szgf3nine88 +8xzgs4chdkfour +three7vgnbtqvhthree8sixq +2onesix354jj58 +175rpdmxfeightwos +gmngst7hpfvgmtfrqbb +9hd2lsxprdvtqxcv55 +four13cjqkvgxvbseven8 +1kqfrqsevenqgjttjrspd +7seveneight6zfmdbzdj2 +9sixpfjbnthreedgbhblmr +7hdqqqkone6htzthree +hmnxstkbzlhqjpdn3three2 +dpbjgmnn1 +ninefivecznsbttpcvkthreeoneeight1zqtxb +6hlxdlpgrl7six +fourdhczrzd9mmmdthcngsmdqkq9fivetwofkb +7fbcrzcxjvxtqbfive168 +sevenhlrkxgrggkqgd12 +vzmpvhqvkpdfmthreetwo9 +21cqxtjtwoljsixxbf3 +bzzxkxtl3rhsrpnnzseven +threevhdqqvtwothreenine48frqsfhgsgptbbn +foureighteight3pgbcftjdbbsmcqjcrmt21 +twovpfbsd42five +6foureightwofh +5185cbhgvkvpfzk1 +1one3two5 +seven3mdjks6kctnnchjgpnineeight +sixfivecjfkx5 +sccbfqfive28bhconexmztpcftrbz +qfzhgl1nine5four59nbxhclpk +mjrvgdz3nine6gkvznv83 +mfxqslvpzeight2 +ztwoneeightknnjh4nine +onefivesevenfsmmhkbcplj6seven +2lfgzblvdflgxnsqfxtksbb +blmvzczjs61fourmtds +5two2 +jqppjfxfour2 +3five2bcrn653 +86five6bseven +rzztlcbvteight135 +1sjngcngjrsht3ninehninefive +81sixkrhvrhxqhn65 +dkrgmnlcbjdjxblbfnp5 +three85xrckdqtjqphjsjqflmt +5fmptvmz19fourmbzrttnxnk +dptwonefbqhrxtljddtkhh6four23 +xfvgkfive69 +cbtfrbpxphj2sevenmmzrpccnine +5twotwoseven +fivetwoeightonefive954 +zxccrkvgdqtklbnhtdtdsghcseventwo6 +three6vqmtchfdjxveightone +onenine39twodksvrdsxflthree +threesbpseven5zqtwobtmpgqjg1 +326dgjmzzfivehkhsjrseven +dgthreeeightthreefbhbltbdjnineseven3klvx +4xkcqeighttwo2 +eightonerhlnchp17 +2jcmzbczstsrmbpzxpftkmznzckhv7three +7foursixbrcc6twosixgnf +4lqxfourtvxhqtlhlx7xcfxhmqzbone +2sevenz6sixtwo +nine1pv +95jzlkxn +onerzfnqhmtjpqff93lrctjgqhseveneight +5eightrdjnine3 +threetwo6fourrcrq9dfmbsznshkfqmpvcb +five3hpjznhbtjonecvfgfsk9n9 +2gkbqpqn31 +sevenfivefgcvtpsxjprfh8nine +lvfxml6992 +5threexmjjgkv8985zzjqdbtwo +eight3bkqdnbmrtb5 +7sevenoneznpx +9hjg4eightrcsvdkbmldjclfqfm +9four2one4 +koneightonecdfcrjkqtcsevennlvr8hbrc +seven3lthbv8 +ninexzznsix5nine +ninentdd6qvkclninefivenine +four11pgmxz7pnjfiveeight +threeninefourpmtmlgllftnvxzn5twonine +four46eight9sevenfive3three +blztvfkqggcbshlzxppxgrxsr4three3 +one9pvlnv +8l37 +brjvlvjrhbfourxshh1vlclvrz2 +5flqnkntnxkzhcftmzb9rlfzxlg +sixfourseven77onekone +6xfmdgjfeight4qzrncxdpmb4four +four28 +seven74zrtpftdldc7fqlseven5 +6gxjzskpkfvmmd +zkoneight99jrrmgsfpsixfiveone +9jbbdtdxjsm8szxblgjppx4tpnvqvtlrj +rsrlrcb32ngsixfourfivenine +6seven9one7threegrfqpncjthree +onebjvpzzqhvlhg1pxkvmgqvxsrglb8fourptbjs +1fch +njhs4p86n22 +two1one6four1six +fourphxjkjtwo8eight +3svqrzd1fourcmlcknhvninetddpbcmbtgqpcjms +vkndzm684sixjlgkcvz4 +25five +pkzt2fivetwo2zffkjqrhgfive4jpsj +sevenmpfcthreembjgbfpkdzqlr4 +49four1mpldzb3 +hdzddkxf1cxftflb73 +zrmhdlhk2v7 +25zcd +11eighteight5qcqzpvvk +38nine43 +8lstwo +12sixnfbrgbhdpn1three3 +8eightcd82rzkzlvthqnvhjvgfour +24jcbjplcnqbcrxs25 +3fivebfkgpkglfchbmbfps +pgmvbnhskgzdmz2sixeightcjq5 +cdpmrlj1one +6hxqoneightjjv +34gxbjzrtg5 +pvddskbslqnrfngmcjgsdthree3 +6nkjjlknp9 +hflkjhgjmeightc5n1 +dmkeight1223 +five9three8 +eight7mqfsjplfprrfpkzctgtdvrmxphm +phbs2fck4sixfourqvqbr +2bnvktn +sfvkgzone83 +2threetqnthdnq32ninetwo9 +sixhdkvdcmp5three23j +8615four +twosix54vrrbvzszk9 +53671 +threevklcphgkjsnine4eight4fmtffknglthree +sixninethreeh4dj +oneone1pmdthreesrfsssbkt8 +7foureighteight3 +srpvkzrqfive378 +6twodnnrvfjrjv +4kpxlslqfbktwo +bvzpgrc9twotqsvdztwoseven8 +xkjdltjgzbjhxkjvtwo6 +five27sixsevensixtwo9nine +jk468qgkr +fourtwo89 +fourthreethreedtnzbmlfhmgjr5nineseven7 +44seven +two3psfive122jps +sevensevenghzmpdvrffive9nine3eight +497ftdf9five +gklfive6rnvpnvvkqheight +2hvdfiveprrdqspsix6 +5m8nine +bnctbninexsixonesix8five8 +xkqqlmfmrveightsix4nine93nine +6k +3foursevensix6cksix5six +7twoone +three73lfddzhd1fkxmjdzsix7twonex +sthjlrjrhd741prcsqh3rmllvjmtvgfour +4dvffpjkn +tpbttcslvz7twoneq +fourtwoninej5snfxnqzthree +n7cmsfsqd +eightssrzkxj5 +239 +three8five7xxthreebqrbx +zrlchvsevenfournine4ktvskhjgh3h +7fourfdjsnhdbgqjvnltzj6three +mrjsndmzkz7rszqnbhxt3fvsix1 +neight85eightggtnxtgljsevenfivekz +6vknslh4onetwonrlzm +37zlrksix1skbsdkpjf6twonejtx +three2843five6 +txgdvvdg959 +zfjrs2zvtbqctcdqgrpfmqsjbdone5 +six9eightninetwo72sxxnzvblthree +2jdpslvbnpqjpglczkmzggkfkdkx8hgpxtcz +threefive5eight5mnbllfpcsp29vlnbrntt +gfxndggbs16twozpcsckzqcj3sthsgq6 +gcjjvqkvzdbcsnmqqhnzzqvj4 +flcpl3btfmbbpnkjvnlmcthreetwo1eightwops +bdmeight67tvkfh2 +three645qcv1zbbheight +3ninethvbxxppxgqcqrclptxczgrcneighttwofivebrqxl +25eight41 +six22 +pcp5 +dtmgxkdqsixdhmsbj821 +eightprbxpj5oneightcxj +qvrn3jbhlxjsdq +oneclvhjhr5 +9nkmqpjjxxhvtpndls9 +215ltwo75 +threeeight16nine2mzhxnine +ktfxkmdvzprhkpdhvxhzsc68 +fivesix8five +4z1eighttwofive +73twotwo4 +gmjlpchdzfthreesix1vljxdqsrlxmmqs2 +twofxh3 +threeqzcglsdcfm4four +three1eight8 +seven7dtqhr7 +4xbjlxlptj8hzfjnz +37jzgxbjcggone +81fouronenine489four +eight3fiveoneseven135 +stzts59zqdvrdcqrc +sixnklrjbeightn2six +bqdtntwonine1eightttzlzvzfn54xmj +sjk6 +qmrbnhczj624394sevenseven +kkjdcjhfh93eight +3ptmslnconethree +cfjgdffcgvldsnvkbjqrxhxcl7fjlxdrlrrthreeseventwo +187oneseven6 +fiveprnppdg2tjfbfmlvhpmkggjc +9onetwo4 +fivesvjxkzzm59vtsevenhzxtkggdhr8hvjtjvv +kpxkbbxseveneight89sevenrbhqqpk +drhkpssxqvvnssq59four4 +oneeight17 +gteightwoone268four +eight7fourbjnlzfiveczlzppnxck +jdqpxsevenone2eight +pvh5six4hddrhfzpxfmtwo +5six56nineone2 +v96k9115three +phqhhthree5ksqhfjlbfg +gpsskbfhhllnxfvjspkjndtlfour5 +three5zqbnsrdthree8 +b4mkfpkltlfdfive4mdqxjnb8tdpnpf3 +qfivejjggrpktxponetrjzceightseven9xhdf +34cpfxc +jl9 +84four +fourthree9three48 +7threevgvtj2five4pbq +7kjkjc +seventfsvjbsh5smmdd3frthree +smgmzqzn5 +gmtd5kvglxsixeight8twothvkprlbc5 +twofour62 +nine5k +hbxnpb4four4h +6sixgnmnjv4fourone1 +9eightseventhree +9jpvccsvhqpnhsl8 +nvcnninefour9 +v237ppqbhb +78six +four165oneightxcm +9pjcsfbrghnineqzth4smx +46fpfptrq1mbqmbnktqeight +stbxvlcqz5krd1threethreeonefour +48six5seven +6bmltlrvrgpcfhjhmfiveqzfxptjtwo4zvsqqxgbrdlzsfmtzdd +jeightwo47three86twoseven +njxzmthree8fivevvchvjqdvn3foursix +83t34 +oneznzqptpxbrtqxstkmz3kmtstds +1sixsfrnqd +brs7fgkbhntv5s5 +twohs7m +gfljsixseventmgdvhqthree3threefive +f1twonekdh +oneone735eightnine +pfjvfspsseven9qgfrnmckxzsix94 +7nineninelrcqqcgcnmmqf3 +1vjdhjtrfourfive2nine278 +oneone7 +threelcxlqrzhdghp4zkjfivepjj +hcshggsmzpdmkvtdvdgqtfxlt8 +1vdjtvpfhkhfive1 +2eightstnj6three +93threeeightntjblpljbv +onermlmtncmj6pxkmhmqchzvzf +4eightfnjzfzhvg +hmjvmtwovnl8nine84 +threets6 +six9twofivexgz63 +692five +fkgblptntvhvmlv8threethreenine +seven86 +nine1n7 +97two +4threebqqnmvmqleightthreefiveszppmbhxrxvpxz +6bxbmbdkxqmzeightlrqdqvrkr5threethree +llqcbpeight1vpjninekpdvzg +6qgtdqvtvkcbcskfqtq +6threegrrmxxxqkflltr3 +312 +hqmhsxpmkxtwosix3 +rpzqtmzgdfdxcgsix1six63lxjpbxfq8 +zzkbtkghmmqfourrtsixxxfjnvvccmpsd5six +13two4bxdcqzrkqtxm1mplvqxcfhcjsc +threesixqj8two +9seventhree +dtnine5twoseven6zxd +lsqbvgjnznineone7lxtvmkmflrfcqdjmjtwo +zpkjlfp6onevxtdtdzmcqjprfive +gxplqqsz412sevenninejs1 +psvjsvvnrv796 +69tfxkbkchvlhkjbrmone +fivehnrvtb6 +eightzdlqrbzxteightptlgmcmvtwothreergcddqxf2twonepxh +343sevenxsffneightdvft +fivednmrpmvv8fiveninesevenzbggk +seventwot3hpfrzbhxlhfivetwo7zvmpmq +xnsxz8fivezhzdcbzsvp +sfzch8twoned +5rstpx +12six +gqznine5gpg +6zrmsp825seven +2493twothree +9fivemksdnmgbvx +6dvdpdpkmqpxvfive28six +dzvnrdksixonetwoonetr4 +7fncndxbqj6onetwosixsixthree +7cnprcdgk2three2dvtccqnskvzfsevenxdrnqf +cxfcdvbsjqjbnxddlggjfourtnfzvtgx4twoddkkpdd +pxjgqrmdg5mpcgcdmfeight825jxxqcnfive +1tkhgtzzfrbdvnbft +hgxfive14ddcfhshfd4 +onenzlhvtdgkjmjgldmddhngdv9onebkt +foureight8rzxkktk9eighteight1 +478nshqhnhjrmlqbmp +ddjzzxgj75zktccgqrltfivethree +eightmcnmt5jnmnqhqdfive +rcdxshk1seven5 +rdcmbznk79 +2gtbskjxpmmvdclgmfjrc48one +8mqgnfive7chknsixrfourseven +4hgdxjgbn1sixseven7twosixseven +mkjslkltjd59 +fourfoursixfkjrcfsfivenrtzv4eight +five8threeseven4 +81821tcmfourddhmzvzfive +onesix943fivejld +5eighteight3cmvvpqmdq72vrvb +two86 +nqjrpqvgqr7rjjjxglqzrmt +5kqjjvzxt +6fourvstjrlnvone3ndphzphkrnsqmkmsthreep +six8four7 +two1dntwo +eightgmcgrnptrcvztbdp4three +xxbpnnztr5eightpnqeight +three9pfpnjx6rkphpjeight3five +sevendzstsjl3krspscb1 +fsevenfqtxxhjzvnineninesixeight8 +kznjhnxbnk7qbxjrztltv +rkeightwo6zfpvrfgqr7qxbkkg43lrjqtzjrprqttxmbrzg +mcfive77vgzxonehglbj +9319 +4mzds +sevensixthree5sixdvzxkndhvjfive +9mjhfkeight88v +seven5zhdthbmrkdpdxfcp8njtqvpnjj14 +8ninetwo +95tnjldjqcrzdxlm3 +fourgffour8 +nine821qbv6five +jbtfg83two +twozcpjrcnplnz5bdtgpdctb87lzlvqhtrjj +tr4 +5foureightfourfcs +1cqjts1jgzkfm +66threetwo +jsdpkfnineeightzpjdmrvxkbhdntj9 +pgcqrsix6mqrr8threeqxgkftbmzninevndn +kmvqsqhbrcnbqqgninet6 +bxtstqzpqfzqnhjfb8htszvgqhpnggvqt +ninecpqpffivehg8 +kxmstxkffourqmx41 +scfourlkfbrjvbtwo5 +qr88fivenine1lfvksgrtqseven +four6foursix +twoqmnxrjql5fourpdlstnnsfkdjgt9 +4zsvbsjqv97bpxvncr +xhqlhsbqjhvdqqonesevenfive3qvrtbkhhlfbzsj9 +sixeight4six5szgzcjhpj1 +7vpjq9hjtrjgone +f92eight +eighteightnc8134 +22onespjpxlttsqsix8eighthxdfvsdx +5ninefourgrrmxsxjfxk +threeninepmvsv763xlxjp +oneone7lzzhjqqrg +9fourtqqmhrpmkxhrvlnjvvhsevenseven +threethreetvjpnoneseven8 +two46onetwoqbvntlxbrftpjf9 +8one5nine1three8 +three69sgdkstpqbqdz +q8rzcl +onepjmchxtlqnmrcrvm6 +61fivegjjsevenqgdkq +49fxhdzfntmk6tb8dpdkknzsb +bbseven1xvqmlrhx +2j +seventwozjqszlhzxlpgphnkz2foursixfour +1sixhgvhrbonetwom +fournine8gvmrpgdxvcbdspzdcqt87bdzvxbf5 +3sevennine2fzpt +threedcdlq9kcjhtmtz +86five +tpfqhqs3977 +8four1cgmm12shfl58 +xlkrrkpkqjtslblqfnxp7two16jzpmpkrfvdzh +243 +three9hkgnmrh6lqrsx5 +fivexsczpmltrmcgrvfc58 +mxngrsh2sevensixthreelgrmg +ljqmflvone76 +ksponeightthree2ninenine +tdsdmjznr5nine7fourtwojgjsdfsevenone +eightfive1fourseven3gsqhtv +1xfdmqtmgkmjkthree +rztwonelztpgkxzzcbn1eightttssdpone71 +zthhsgvmhqsgvdponetwo9p +293rmjjjpmjchjnbdcssfrneightvdzrkbhdln +7nfkdntfourthreefzrfxmxgqone5 +tkgrnhbflp7zltmbdoneeightwoh +7bspgfklffgsix4 +eighthcmlrpbhjjmvbjrleightgd94 +sixbgfjzgzbxsb4qsixthreehbbn +ninerhzjpjdfnsevenonenine8 +38kqzjxqmmm +jngngvc412 +4twosponesixdpj15five +41four2oneonekr2 +cpsixjnlhkthree353seven +bknflgv1sixfivefive5 +3qkhnsjqkcjmlg7gl4jthreethree +dhlngstrvbxjjll2979kjsttsfgjkc +4kkq7rqlxcldqqtwo +jfh74 +lkfpcdghgq8gpgldrsnzkzzzzskrvcvsjthree +57fivefive3cxqj2 +ztwone7vcd37122 +4qrrhhlxgpr4 +twokzfjg2sevenlnvlpzxknznpsc1 +4jjbcdbfm8six6four +5eightninesixvzvf98two +8flntwomkktkpvsone78sixone +sevenzltjhkptjfjbrppm85eight +fivemfrmnqptthreepninepd5 +6one9 +vkqxgzmbm2b4pjqjddsbjnjcqqvm9 +5443nfkv +leightwo5 +8fiveeightonetwovgvhzgzfjh16eightwohlk +fivexnbhkzjfg1 +chkxvgrgb1sqxsnhngnrtqsnqgjkd +96twoone5553dv +36pfltskrbcmlmnspn +4jbbrh95249 +xfzspqssdfourhnmtzfive2pfzczh +onexzbzhddkqgfr2 +sevenninerrlveight5nine3 +eight7qvgkbk238fiveeight +sevenseveneightgtxtxkjsgdgklzzxxc3two8 +tvfjhvtclm75skqdxsskqhrjkbg +45 +sevenfive82 +425zkhjhmk +onexdchhtxmhsevenbczrslrppneightonenbnhfmbsvdcnzjx1 +zfkscdbmtwoeightrksdmgx4 +lnseightnine9eight +fourhmbhlcpht53ngkbzjmfivesixg +threestrhbj9sixggczcg +9twoskgrps8 +3four6xdqczgtzlzf +ldfn2 +qlzjsnbzfourfdq476 +tpkczdh5hdbxvvmmt3sixsix +tdpxzld5 +lnveightwohdkgcvvrjs38 +zz8eightstvmhvrh7hftdhkrjcneight1 +9kdbcpqtx15 +rbqgdbvrstgninefive4bqq2six +nine3psmkzkgnjbndrcninesevenzvcr6 +eight4jfrqcbqfninedxmdtjgqgtrg6four5 +3mmnineninenjjpmfivetwo +cv4znxcjthreeqqtdqmzxfknnp +8pjkm +ptwonethreegrgvseven7 +onethree1bgjsix5sevengpts +96xlmmthreeeightcbdnrstvpncmr +rtc94tcninefive +onespqnnptpdbrgqsqrldstl1 +qkeightwotwocjcngknkztwo7 +gzjhzlf4fdglcrzckbrlkmg +3eighttwopninefour +2seven1c +17nine447qkmfour2 +six6xfgqddnfpsc +mkbgbkvzdpzxfmrhdcjklxfoureightzzpn3eight +95ninevhctbgznbzz871sixoneightr +31onekmseveneight2four +mlxqgmvj2six6 +2sixgvsbmrhtwofour +eight221three99two3 +88xrrbjdlzrfour8plv +xdglmrpxbz5xpjxzpmvrgsixthreeseven7threebtqfkqp +lbd2onethree +seventwoseven7threesixbpld +1pstwofour8eight3dsdfrseven +gnvzm19htsbvcsfmlrmbgtstzmm3twoqzffkrrq +94nvrbbj +one71rsfbpnnbkrklmxqfive +4six1 +eight48chsrmsix +vqxrnmsix98hlzdgvd3sevenninekng +12threehscqzvzcbgfive6three2zhtthr +6sixkzrnv +5gmnhhzkfmp +four35seven7onenvdsevenftnpbcj +6zxrhcxxkppkn2 +dgshxchmhgtgjk281seven +lbdsmfvdsfzlp6dfpgd3 +three2dpsdhfld95eightwoht +jbktdklsqkgnhnfmseven1lhdsbjksixtwo +3fdqfour +5jpljkkpmdsix +qfeightwo9threethree +hpqdx4911tzfcxlrtccqf9one +q79zspgmjpdzs63 +344zk5xbthreezgbffcb +nlzmjfqxmneightxqjdnjvr21 +8cxtrkpvzj21xfgbdgcvgrztwo +three18444 +sntrptktwo2one1five +qxjrgfcnpcjtnfjljqnq1onehzfcqlnine +kflgzv58dbzbjjdvclgtseven +twofive4eightwozz +eightfive365 +7nqnksvphhnine88 +t8eight +bjd6five +khbrbtsx5jqxmbsqtf5nine3sevenskhfg6 +seventlkmfhqkgxkbhqr6ncjztnfive +152one +three5cbpqkzb4eightseventgmqzflsfksix +seven32threegfddgtf +two5twofivexzkkvcqs3 +tvvdgrnqlmkfour1zrcznqkhseveneight1q +92threesix89 +3zbdlttpbh7fivepgxmrvbzlnfgmbkzknndfqk5 +threefnhxtdbl1jtxeightwol +5vgthldgfmgdjphvcgh53dshmdkc +3nineeightwokh +57eighttddbcdsjdss +tkcgn86xfgbmzt7rksvnchnrh +five3dn5 +three2eighteight15nine +49bn1zvbm57 +351six6xfzfjvpz +5one5zchddj4dkksn +xfhtwonesevenfivethreepqzmrzrrfourthree5 +ninetzmcgp47four +sevenbcfbpnrvkkscrjtpctdtb69bvvnvlgsmjltlvs +6threev +ninerlsbznvfn9 +fourbm2 +sdxd22 +n7 +7sixcjdsxfourfmvzrbvlnine5 +threeqtbhgznine7one +ftmkmxkd9fvvlg353rp51 +9zjhmpnjv5jvndz +58three59nineonesix +rmjvhrjjmkqsn6gqthreeonefivemxqhrzvffone +xsslv7gpgkbzdmr434four +pnzxp4nbtsjqctkvqncxzxzj +eightseven52five4ninekntfjrdt +4sixldsmv +pknxkqgdpnc7fivedbvhkn +qkpjhjlxone4sixpfkvhlmxmd3 +four3ninerkrcvgcmbb2qm +fivenine6six1eight +69sixnine +bvjx5lg5vgrqq +21ninegnhdkcxhzkcfdksvsmdthree +zjrnmhclxhrkjpffhxkthnvj83jnshbqvx +bzfphcg9fourthreegkchdvrgsx +2ninebvgdcfxtktqjxjqvxfgjdqfhv5threegqtsfhtfxg +6rqskvckjzq2qzrnbxjmlthreeeight6hrs +sixthree6lxcrsevenseven69twonegs +2dcvcqcbpshsixone3 +drkdbmv4zbjbznsqtj +eightbqfhnmvqsoneninezbrzcqkz4ftv +1eightcrcjcbdthreebscfpvznqfrj6 \ No newline at end of file diff --git a/inputs/day2.txt b/inputs/day2.txt deleted file mode 100644 index 5525ccf..0000000 --- a/inputs/day2.txt +++ /dev/null @@ -1,2500 +0,0 @@ -B Y -A Z -C Z -A Y -A Y -B Y -C Y -A Y -B Y -B Y -A Y -B Z -B Y -A Y -C Y -B X -B Y -B Y -B Y -C Y -B Y -A Y -B Y -A Y -B Y -C Y -A Y -B X -B Y -B Y -B X -B Y -C Y -B Y -C Z -A X -B Y -B Y -A Z -B X -C Y -C Z -B Y -B Y -A Y -B X -B Y -B Y -B X -B Y -C Y -A Y -B Y -C Y -C X -B X -B X -A Z -C Y -B Y -C Z -B X -B Y -B Y -B X -B Y -B Z -B Y -B Y -B X -B Y -B X -C X -B Y -B X -A Y -B Y -B X -B Y -A Y -B X -B X -B Y -A Y -B Y -B Y -B Y -C Z -B X -B Y -B X -B X -B Y -B X -C Z -B Y -B Y -B Y -B Y -B Y -B X -A Y -B Y -C Y -C Z -A Y -B Y -A Y -C Z -B Y -B X -B Y -C X -A Y -B X -B Y -B X -B X -B X -A Y -C Z -B Y -A Y -B X -A Y -B Y -A Y -B X -B Y -B Y -B Y -B X -B X -C Z -B Z -B Y -B X -C Y -C Y -C Z -C X -C Y -B Y -B X -A Y -A Y -B X -C Z -B X -C X -B X -B Y -B Y -A Z -B Z -C Y -C Y -B Y -B Y -C Y -C Y -C Z -B Y -B X -B Y -B Y -C Y -B Y -B Y -B Y -B Y -B Y -C Y -A Z -B X -B Y -C Z -B Y -C Y -B Y -B X -C Y -B Y -B X -C Y -B Y -B Y -B Y -A Y -B X -B X -B Y -B Y -B X -C Z -B Y -A Y -A Y -B X -C X -A Y -B X -B X -B Y -B Y -A Y -C Y -C Z -C Y -B Y -B Y -A Y -A Y -A Y -B Y -B Y -A X -B Y -B Y -B X -B X -C Z -B X -B X -A Y -A Y -A Y -B Y -B Y -C Y -B X -A Y -B Y -C Z -B X -A Y -C Z -A Y -B X -C Y -B Y -B Y -C Y -B X -B X -B Y -B Y -B Y -B Y -A Y -B X -B X -B Y -A Y -B Z -A Y -B Y -C Y -B Y -B Y -B X -C Z -B Y -B Y -B X -B X -C Z -B Y -A Y -B Y -B X -C Y -A Z -C Z -B Y -B Y -B X -C Y -C X -B X -C Y -C Z -B X -B Y -B Y -C Z -B X -C X -A Z -A Y -B X -C X -B Y -A Z -A Z -A Y -B X -A Y -B Y -B Y -C Z -B X -A Z -B Y -B X -A Y -B Y -C Y -B Y -B X -B X -A Z -B Y -B Y -C Z -B X -B X -B Y -C Z -B X -B X -C Z -B X -A Y -B X -C Z -A Y -C X -B Y -B X -B Y -B Y -C Y -B X -A Z -A Y -B X -A Z -B X -B Y -B Y -A Z -C X -B Y -B Y -B Y -A Z -B Y -B X -C Y -C Z -B X -B Y -B Y -B Y -C Y -A Z -B Y -C Z -C X -B Y -C Y -B Y -B X -B Y -B Y -A Y -B Y -B Y -C Z -A Z -B X -C Y -B Y -B Y -B Y -A Y -A Y -B Y -A Y -B Y -A Y -B X -C Y -B Y -C X -A X -B X -A Y -C Y -B Y -A X -B X -A Z -B X -B Y -B Y -B X -B Y -B Y -B X -A Y -A Z -C Z -B Y -B Y -B X -C Z -C Z -B Y -A Y -B X -C Z -A Y -B X -B Z -B Y -B Y -B Y -B X -B Y -B X -B X -B Y -C Y -B Y -B Y -B Y -B Y -B Y -C Z -B X -B Y -B Y -B Y -B X -B X -C Y -B X -B X -C Z -B Y -B Y -B Y -B Y -B Y -C Y -B Y -B Y -B Y -B X -B Y -B X -B Y -B Y -C X -B Y -C X -B X -C Z -C X -B Y -A Y -A Z -A Y -C Y -B X -B Y -B Y -C Z -A Z -B Y -B Y -B Y -B Y -B Y -B Y -B Y -C Y -B Y -C Y -C X -B X -B X -C Z -A X -B X -B Y -A Y -B X -B Y -A Z -B Y -C Y -B X -B Y -B Y -C Y -C Y -B Y -B X -B X -B Y -B Y -B Y -B Y -C Z -B X -B Y -B Y -B X -B Y -B X -B X -B Y -B X -B Y -B Y -C Y -B X -B Y -B Y -B Y -A Y -B Y -A Z -B Y -C Y -C Y -B Y -B X -A X -B Y -A Y -B X -B Y -B Y -B X -C Y -C Z -B X -B Y -A Y -C Y -A Z -C Y -B Y -B Y -B Y -B X -C Y -B Y -B Y -A Y -A X -B Y -B X -B Y -B Y -A Y -B X -C X -B Y -A Y -C Y -B Y -B Y -A Y -C Y -A Y -C Y -B Y -B X -C Y -C Y -B Y -B Y -A Y -B Y -B Y -B Y -C Z -B X -B Y -B X -B X -A X -A Y -B Y -B X -A Z -B X -A Y -B Y -C Y -C Y -C Y -B Y -A Y -A Y -B Y -B Y -B Z -B Y -B X -A Y -B X -A Z -B Y -B Y -B X -B Y -C Y -A Z -B Y -C X -C Y -B Y -B Y -C X -B Y -A Y -A Y -C Z -B X -B X -B X -B X -B Y -C Z -B X -C Y -A Y -B Y -A Y -B Y -A Y -B Y -B Y -C Y -B Y -B Y -B X -B Y -B X -B Y -B X -B Y -A Z -C X -B X -C X -B X -A Y -C Y -B X -C Y -B X -B X -C Z -C Y -B X -B X -B X -B Y -C Y -B X -B X -A Z -B Y -B Y -C Y -B X -C Z -C Y -A Y -B X -C Y -C X -B Y -B Y -A X -B Y -B X -B Y -B X -C Y -B X -A Y -B Y -B X -B Y -B Y -B Y -C Y -C Y -C Y -C Y -B X -B Y -A Z -B X -B X -B Y -B Y -C Z -B Y -B X -B Y -B X -C Y -B Y -C Z -A X -B X -B Y -C Y -C X -B X -B X -B Y -B Y -B Y -B X -B Y -B Y -B X -C Z -B Y -B Y -B X -B X -B Y -B X -C Z -A Z -C X -C X -B Y -B X -A Y -B Y -B X -C Z -A X -B X -B Y -B X -B X -B Y -B Y -A Z -B X -A Y -A Y -B Y -B X -B Y -C Y -A Y -A Y -B X -B Z -C Y -C Y -B Y -C X -B X -C Z -C Z -B Y -C X -A Y -B Y -B X -A Y -B Y -C X -B Y -B X -B Y -C Z -A X -A Z -B Y -B Y -B X -B X -A Y -B Y -B X -B Y -C Y -B Y -B X -C Z -C X -C Y -A Y -B Y -A Y -B Y -B Y -B X -B X -A Y -A Y -B Y -B Y -B Y -A Y -B Y -B Y -B Y -C Z -A Z -C Y -B Y -B X -C Y -A Z -B X -B Y -A Z -C Y -B Y -B X -B Y -B Y -A Y -B X -B Z -B X -B X -B X -B X -B Y -B Y -B X -B Y -C Y -C X -C Z -B Y -B Y -C Y -A Y -B X -B X -B Y -B X -B Y -B Y -A Y -B Y -B Y -B Y -B Y -A Y -B X -C Z -B Y -B Y -B Y -B X -B Y -C Y -B X -B X -A Y -A X -A Y -C X -C Y -B Y -B Y -C Y -B X -B Y -B Y -C Y -B X -C X -B X -C Y -B Y -B X -B X -B Y -C X -B X -B Y -B X -B X -B Y -B X -B Y -B Y -B Y -C Y -B Y -B Y -C Z -B Y -B X -C Y -B Y -B Y -B X -B Y -A Y -B Y -A Y -B Y -B Y -A Z -B X -B Y -B Y -C Z -B X -B X -B Y -B Y -B Y -B X -C Y -C Y -B X -B Z -A X -B Z -C Y -B X -B X -A X -B Y -B X -C Z -C Y -B X -B Y -B Y -B Y -C Z -B Y -C Y -C Y -A Y -B X -B Y -B Y -B Y -A X -B Y -B Y -B X -B X -A Y -B X -B Y -A Z -B Y -C Z -B X -B Y -B Y -A Y -A Y -B Y -B Y -B Y -B Y -C Y -C Z -B X -B X -B Y -B Y -B X -B X -A X -A Y -B Y -B Y -B X -B Y -A Y -B Z -B X -C Z -B Y -B X -B X -B Y -B Y -B Y -C Y -C X -B X -C Z -B Z -B X -B X -C Z -C Y -B X -A Z -C Y -A Y -B X -B Y -C Z -B Y -B Y -B X -B Y -C Z -B Y -A Y -B X -B X -B X -C Y -B X -B Y -B X -B Y -B Y -A X -C Y -A Y -C Y -B X -B Y -B X -B X -B Y -B Y -B Y -B Y -B Y -B Z -B Y -A X -C Z -B X -A Y -C Z -B Y -C X -A Y -C Y -C X -B Y -B X -B X -C Z -C Y -A Z -C Y -A Y -B Z -A Y -B X -C X -A Z -C X -B Y -C X -B Y -A Y -A X -B X -B Y -B X -B X -B X -A Y -B Y -B X -B Y -A X -B Y -C X -B Y -B X -B Y -A Y -B X -B Y -B X -B Y -B X -B Y -B Y -A Z -A X -B Y -C Z -B Y -B Y -B Y -B Y -C Y -B Y -A Y -A Y -C Z -C Y -B Y -A Y -B Y -B X -A Y -C Y -B Y -B Y -A Y -B Y -A X -C X -B Y -B Y -C X -B Y -B X -A X -B Y -B Y -B Y -B X -B X -A Z -B Y -A X -B X -A Z -B X -C Z -B Y -B Y -B Y -B X -B Y -B Y -C Y -B Y -B X -A Y -C Z -B Y -B X -A Y -C Y -B X -B Y -B Y -C Z -A Y -B X -B Y -B X -B X -C X -B Z -C Y -B Y -B Y -B X -B Y -C Y -C Y -C Y -B Y -A Y -C Z -B Y -C X -C Y -B Y -B Y -A Z -B X -A Y -A Y -A Z -B X -A Y -C Z -B Y -B Y -A X -B X -B Y -C Z -B Y -B Y -B X -B Y -B X -B X -A X -C Y -C Y -C Y -B Y -B Y -C Z -B Y -B X -C X -B Y -C Z -B X -B Y -B Y -B Y -B X -B Y -B X -B X -B Y -B Y -B Y -B Y -B X -B Y -B Y -C Z -B X -B Y -C Y -B X -B Z -B Y -C Z -C Y -B Y -A Z -A Y -B X -B Y -C Y -A X -A Y -B X -B Y -C Z -B Y -C X -A Y -C Y -B Y -B X -B Y -B Y -B Y -B X -B Y -C X -A Z -B X -C Y -A Y -B X -B Y -B X -B Y -C X -A Y -A Y -C Z -B Y -C Y -B Y -B Y -B Y -B Y -B Y -C Y -A Y -B Y -B X -C Y -B Y -B Y -A Z -B Y -B Y -B X -B Y -B Y -B X -A Y -A Z -B X -B X -C Y -B Y -B X -C Y -B Y -A X -B X -B Y -A Z -B Y -B Y -B Y -B Y -B X -A X -B X -C Y -B Y -B Y -B X -C Y -B Y -B X -B Y -B X -A X -B Y -A Y -B X -C X -B Y -C Z -B Y -B Y -C Y -B Y -C X -B Y -B X -A Z -B Y -B X -B Y -A Y -B Y -B X -B X -B X -B Y -B Y -B Y -A Y -C X -B X -B X -C Z -B Y -A Y -A Z -A Y -B Y -B Y -B X -C X -C Y -C Z -B Y -B Y -B Y -B Y -B Y -B X -C Y -B Y -B Y -B X -B X -B Y -B Y -A Y -A Y -A Y -B X -B X -C Y -B Y -A Z -B X -C Y -B Y -B X -B Y -B Y -A Y -A Y -B Y -B Y -B X -B X -A Y -A X -A Z -C X -A Z -B X -B Y -C Y -A X -B X -C Z -B Y -C Y -A Y -C X -B Y -C X -A Y -B Y -B X -B Y -A X -B X -B X -B Y -B Y -B Y -B X -B Y -B X -B Y -A X -B Y -B X -B Y -B Y -B Y -B X -B X -A Y -B Y -A Z -B Y -B X -C Z -B X -B Y -B Y -B Y -B X -C Y -B Y -B Y -A Y -B X -B X -B Y -B Y -A Y -B Y -B X -B Y -B X -B Y -C X -C Y -B X -B X -B X -C Z -B Y -B Y -B X -B X -B Y -A Y -B Y -C X -A Y -B Y -B Y -C X -B X -A Y -C X -B Y -B X -C Z -B X -B Y -A Y -B Y -B X -C Y -A Y -B Y -A X -B Y -C Y -C X -B Y -B X -A Z -B Y -B Y -B X -B Y -B Y -B X -B Y -C Y -B X -B Y -B X -B X -C Y -B X -B X -A Y -B X -B Y -B Y -B Y -B Y -B Y -B Y -B Y -C X -B X -B X -A Y -B Y -A Y -B X -B Y -A Y -B Y -A Z -B X -A Y -C Z -A Y -A Z -B X -B Y -A Y -B X -B X -B Y -B Y -A Z -A Y -B X -C Y -B Y -B Z -C X -C X -B X -A Y -B X -B Y -B Y -A X -B Y -A X -B Y -A Y -B X -B X -A Z -A Y -A Y -C Z -B Y -B Y -C Z -B Y -B X -C Y -B Y -B X -A Y -B Y -B X -C X -C X -B Y -A Y -B Y -B Y -B Y -B X -A Y -B Y -B Y -A Y -B Y -B X -B X -C Y -C X -B Y -C X -B Y -C Y -B X -B Y -B X -B Y -B Y -B X -B Y -B Y -C Y -B X -B Y -B X -B Y -A Y -B X -A Y -B X -B Y -B X -C X -C Y -B Y -B X -B Y -B Y -B X -B Y -B Y -A Y -B Y -B X -B Y -B X -C Y -A Y -B Y -B X -B Z -B Y -B X -C Y -B Y -C Y -C Y -B X -C Z -B X -C Y -B Y -A Y -B Y -A X -B Y -B Y -B Y -B Y -A Z -B Y -B Y -A Y -C Y -B Y -B X -B Y -B X -B Y -B Z -B X -B X -B Y -B Y -B Y -B X -B Y -B X -B Y -B Y -A Y -C Z -B Y -B Y -B X -B X -B X -B Y -A Y -A Y -B X -B Y -B X -A X -B Y -B Y -C Y -A Y -C Z -A Z -A Y -B Y -B Y -B Y -B Y -B Y -C X -B Y -A Y -C X -C Y -B X -A Z -C Z -A Z -C Y -B X -B Y -B Y -B X -B Y -A Z -C Z -C X -B X -B Z -A Y -C Y -C Y -C Y -A Y -C X -B X -C Y -C Y -B Y -B Y -A Y -B Y -A Y -A Y -B X -B X -C Y -B Y -C Y -B Y -B Z -B Y -A Y -B X -B Y -A X -B X -B Y -B Y -C Y -B Y -C Z -B Z -A Y -A Y -A Y -B Y -B X -B Y -A Y -C X -B X -B Y -B X -C X -B Y -B X -B Y -B Y -B X -A Y -A Y -B Y -B Y -B Y -A Z -B Y -B Y -B Y -B Y -B Y -B X -B Y -B Y -B Y -B Y -B Y -B X -B X -B X -A X -C Y -C X -C Z -C Y -B X -B Y -A Z -B Y -C Y -B Y -B X -B Y -A Y -B X -B X -B X -C Y -B Y -B Y -B Y -B X -B Y -B Y -B Y -B Y -B Y -B Y -C X -B Y -A X -B X -C Z -B X -B Y -B X -B Y -C Y -B Y -B Y -B X -A Z -B Y -A X -B Y -C Z -C Y -B Y -B Y -B Y -C X -B Y -B Y -B X -A Y -C Z -B Y -B X -B Y -B Y -B Y -B X -B Y -B Y -B Y -C X -B X -B X -C Z -B Y -B Y -B X -A Z -B Y -B Y -C Y -C Y -A Y -C Y -A Y -B Y -B X -B Y -B X -C Y -B Y -B Y -B Y -B Y -B Y -C X -B X -B X -B Y -C X -C Z -B X -A Y -C Z -B X -B X -C Y -C Y -A Y -B Y -B X -B Y -B Y -A Z -A Z -B Y -B Y -B Y -B Y -B Y -B Y -B Y -B X -B Y -C Y -B Y -B X -A X -B Y -A Y -A Y -B Y -B Y -B X -B Y -B Y -C Y -A Y -B X -B X -B X -B Y -B Y -B Y -B Y -B X -B X -A Y -B X -B X -B X -B X -B Y -B X -A X -C Y -B Y -B Y -A Y -B Y -B X -C X -C Y -A Y -B Y -A Z -C Y -B Y -B Y -B Y -B X -B X -B Y -C X -B X -B Y -C X -B X -A Y -B Y -B X -B Y -B Y -B X -B Y -B Y -C Y -B X -B X -B X -A Y -B Y -B X -C Y -C Y -B X -A Y -B Y -C Y -B X -B Y -B X -B X -B Y -C Y -A Y -C Y -B X -C X -B Y -B X -A Y -C Y -B Y -B Y -B Y -C Z -C Y -A Z -A Y -B Y -B Y -B Y -B Y -A Y -B X -B Y -B Y -C Y -C X -B Y -B Y -B Y -B Y -B X -B X -B X -C Z -B Y -B Y -C Y -B X -B Y -B Y -A Z -B Y -C Z -B X -A Y -B X -B Y -A Y -A Z -A Z -B Z -B Y -B Y -A Y -C Z -B Y -C Z -B X -B Y -B Y -B Y -B Y -C Y -B X -B X -B X -B X -B X -B Y -A Z -A Y -B Y -B Y -B Y -C X -B Y -A Y -B Y -B Y -B X -B Y -C Y -A Z -A Y -C Y -C Z -B X -A Z -B X -B X -B Z -B Y -C Y -A Y -B Y -B Y -B X -C Z -B Y -B Y -A Z -A X -B Y -B X -B Y -B X -B X -B X -B X -A Y -B Y -A X -B X -B X -B Y -B X -B Y -B Y -A Y -B Y -C Y -A Z -A Y -B X -B Y -A Y -C X -B Y -C Y -B X -B Y -A Y -B Y -A Z -B Y -B Y -A Y -B X -C Y -B Y -B Y -C Z -B X -B Z -B Y -A Y -B Y -C X -B Y -B Y -B Y -B Y -B Y -C Z -C Z -B Y -C Y -C Z -A X -B Y -A Y -B X -B X -B Z -B X -A Y -B Y -B Y -B Y -A Z -C Y -B Y -B Y -C Y -C Z -C X -B Y -A X -B Y -A Y -C X -B Y -B Y -B Y -B Z -B X -B X -C Y -B X -B X -C Z -B Y -B X -B X -B Y -B Y -B X -C X -B Y -B Y -B X -A Y -B Y -C Y -B Y -A X -B Y -A Y -A Y -B Y -B X -B X -C X -B Y -B X -A Y -C X -A Y -B X -B Y -B Y -C Z -B X -B Y -B X -B Y -B Y -A Z -B Z -B Y -B Y -C Y -C X -C Y -C Y -B Y -B Y -B Y -C Y -A Z -A Z -B Y -B X -A Y -B X -B Y -A Y -B X -B Y -B X -C X -B Y -B Y -B X -B X -A Z -A Y -B Y -A Y -B Y -B X -B X -A Y -B X -B Y -B Y -B X -C X -C X -B Y -B Y -A Y -B X -B Y -B Y -B Y -B Y -C Y -B Y -C Z -B Y -B Y -C X -B X -B Y -B Y -B X -B X -B Y -B Y -B Y -B X -A Z -B Y -B X -C Z -B X -B Y -A Z -C Z -A Z -B X -B Y -B Y -B Y -B X -B Y -C Y -C X -C Y -A X -B Y -B Z -B Y -B Y -B Y -A Y -B X -B Y -C Y -B Y -B X -B X -B Y -B Y -B Y -C Z -B Y -B X -B Z -B X -B Y -B Y -B X -B X -A Y -B X -B X -B X -A Y -B X -B X -B Y -B X -A X -B Y -B Y -C Y -B X -B Y -B X -B X -C Y -B Y -B Y -B X -A X -C Y -C X -A Y -B X -B Y -B Y -B Y -B Y -B X -B Y -B Y -B Y -B Y -C Y -C Z -B Y -C X -B X -B Y -A Z -C X -B X -B Y -B Y -B X -B Y -B Y -B Y -B Y -B Y -B Y -B Y -C Y -B Y -C Y -B X -A Z -B Y -B X -A Y -B Y -B X -A Y -B X -B X -B X -B Y -B Y -B X -B Y -A Z -B Y -B Y -B Y -B Y -B Y -B Y -B Y -B Y -B X -B Y -B Y -A Y -B Y -B X -B X -C Y -C X -B Y -A Y -C Z -B X -B X -B Y -C Y -A Y -B Y -B Y -B X -B Y -B X -C Y -C Y -B Y -B X -B X -B Y -C Y -B Y -C Y -B Y -B Y -C Y -A Y -B Y -A Z -C X -B Y -B Y -B X -B X -C Z -B Y -B Y -B Y -B X -B X -A X -B X -B Z -B Y -B X -B X -B Y -B X -B X -B Y -B Y -B Y -B Y -A Y -B Y -B X -B Z -B Y -A X -A X -A Y -B Y -B Y -C Y -A Y -C Y -B Y -B X -B Y -B Y -B X -B Y -A Y -B Y -B Y -B X -B Y -A Y -B X -B Y diff --git a/inputs/day3.txt b/inputs/day3.txt deleted file mode 100644 index 61d9ae0..0000000 --- a/inputs/day3.txt +++ /dev/null @@ -1,300 +0,0 @@ -lflZfgnSnlmmlgGfjGthQPtLNsQhvbHLLpSS -zrCVDVFMJTCTcCJMwCThWbtbpbWpPbtbHPLQssLsHP -rBFcrwFzFwwVDcDrzTzJfnRGjllBdGZnnZfhqmdn -FjpnFRDmbRtnbJrFJmSTsGShWVhGqGVVsmqs -ZwPvNPdzNZwfzBNLdNNNNcLvhnQhqMTVsTGSWSqGqTdVWhMT -vgLZHfvLffNLPbggnrbFpJnCbC -hzJzGjGfqmGtDQtDSvVV -plpcMBNBcCTlTgCMbvtrsSVsVJDJlrwDQr -McHBMMcTTHgJnWqnRqjzZnnRzR -ppvsGZhDGprrSjSllwfZ -TTFMMFJMgMHmHmdqdSvNqlSSSNJv -mgBPHTRWFRVcpvsVttppbv -ZZDssfMDMtqqppZLLJzmzSTwNJplTSgpgm -BdCRRHFRbccWWBvBHCdcJVngNVSvTgVNzgNNVmnz -QHFFrBdcGtqPmmQh -qLvQFRgLSSNgqQvRrqLTQvLttwDBFWDwjwFttDdlBBwBwM -nbsmZnbmHbZVCGPVmHWtwlStBDtwBMtwWHMj -CnCbhGCPpPCSnZmrgRNRqNRrLNgrzh -vgLWWHRNLnWwLggWzwLFFzMmBMRMhMhTbhsmmsbbmQTm -rScpJJDDpjtSDPPPJDpjqPCHBBtlTdblmmlhBsMMmTsbmtsl -GHZHCPprSSwgvWNVwVZv -dMrCMJMqvtdFwcjczjQzThtm -gGbLblLpZlHvllQhlQwcjT -GHRWvPRbPHPRvNGbvdRBqdqBBfRqBqnrfF -VsHcljlbhmHbHHlcjVcVShJSCdJCfMrMMQDfRNFCfMRGfNrQ -tGtvLtpgBTGvDMMRdMMgdCNM -pnGnGqGtvtzTLjWqmSSjHhWhWs -NJTDntDNDVjNnjBfjjjcCZCZcVqCSCLqcSScCc -zvhgRgQvvdllgQbHghlvHrRHSScBCRqqwCLGqSMCZCGGGqMZ -pvvrHzdgvlgzQphQsDFmnsNTTtjfjJJmPB -ScnSZSZZlmjmHjjWHHWZftJVJpppwtVVnLJtnptnwt -CFFlQBbbPQqrBwJrJJrGJD -PgTqRddFzgdRPFFbFgqQFgsSjfHWfSHmSMWcjZlmZmjTZM -lzBRtctbnBRBRBBWnDnDWjlLVvwGMrvwrHHQHGmDvHQvHGrV -FsTgFCTSgsCNspzhCGMfTHQVwVMfMmMmrH -hSdSFgghhqpRbLqjntqnPz -DCDnNGFFDQdQmVDNdFVNFccpJLHWSvPLrvvvPtGGhSttLv -sBgTzzZqrBlfljslWBhvHSvPBhSBJSSL -lRlTgMzlzrwRrnmbCMCFnNVMnc -MJQJMJHBrsdrHwts -dbbSVGgbjVqGTVfqddCTpmWWcprgNgWmcWwWswpN -LPdGGdVGPCVdLBlBMlDRRRMD -vdcwZLTdTFFRDHVgmpppMmqZ -jGPzCnQPjlsDVqDpqDHbgP -BjWJrlGQQzrCzBzlzBCGBznzwNRNcwLJdwTJFTHRSTvtLcNN -ngrgqTjJJZnjFJpnqnnVTLzBbbHbLQdLHLHbrdHdHG -lNcltCCtvftfWssPbMQdMBzhbbcBDLdh -PRtWsQCmWsmSsCNCSvCSWlspwgqjqmqjTpnJZwnZVpFwgq -PjWjGDCjmrmWPNmvWDWFmgCNfVJRLfJRfLDLJQlfHplpRbfR -MtZMtcSbccZshTtQTVVTpzHlLRRQLV -cZhbwMnwqsqnhnqtMBnvNFrnGPNPPmgPGCgW -WBjWjWjqZwQJnJZCZZbf -StHSDRPHHcTrTrJpLCCMbrqnJn -RvTTvGqcqTFvSvSRDHvRjlhgWBWBdhjwjGgNjhlj -FSbCqcFsbCPtrcrqhCScbshMjHDGGWBLHBnjGLPBHGGBGnHj -flQdlsgQgGnQHBHjDn -vllgRZdmvsvpgdwZgzJdwRmprqccSFcSShJbTSttqMCrCCch -GwwgCtvHgwcHVVDqpWdfnqVv -sllBsSNBjSrLfqhLgjfqhL -ZbQbZQzgQQPSblBggNQRHGZHHCmwmHFGGcwtJm -CmGVGBTVTmmTWTNLLCVgCSFvDQppQQDDnDQDJpMggfnQft -RrtdqtldPbHzRbnjRfQZjJfMDnMj -wcwhccqrdrrlFmLGCwCtSwtL -pzZznZphZnpcNWSwGwVVPzrPrG -lgFllLLltgbDsrBCwrjWGmwmtw -MgJbDLlMQRJccchrhc -wbbjzZhdGDwLzZSBWqqHmZgssCWqFtMZ -VRJccfvPlTTlQlHQCWQhMMhCCHqQ -RlVfVJcPTVTfvvvJfNJVlcBjGjwhSLdBNGGnjLLBwzGb -bvpqHMVTTpZnqnWRQQQw -tfhFFdSFggfhbldhhZcnRscRcQmnRs -DPzgFJzFLfFbFSgPFgdPglMHpvBpHTCMGpjvMMpLvvNG -JggGLQgQpLpSPRJgGPSnGlFTDBjjRFvRjtBFjWvFjqRj -cmHhZcMHcWjrTBjrvm -dbHwdNNHhwTNThZHdlwQJJwngpgnJGnSPw -DbZjVfjVLhZDLpWPHpMZPmmGNp -lFcJJGcFqnBFqwJCHHMmNHPsdCNp -BlwccRQtBwBrwLGbGhGggzLgzR -RBhZPjlWqgbNbgGLBr -MzSmSzpFdHwpswzzHnzjnvLCbgtrtLGLbJLLJNtJtbwJ -MsSHdmMdpFfmFjpfcPWRhRVZfWQThZ -mqmssPCFhhsJccVg -FTttfwdjjHznJgfngpnc -dNFTjQNRtRNQldRNrRdHMRrlPZqCGlGBCqqZmmbPqDmDCmGW -ZJVRRZZJRcvmPhCJrvhm -PPWQDTfWbnnstlCGvjGrWMGMvr -TbbwddndsnsfDpwFqZFVHBVPqc -tFmpJmgJJgmFDWgRgFrrlGSltSQvZChMtCMM -TLcZHsjLVNBwGQCCGlsCShvh -nqNdwwccBwVLwjjDznZzppbgzFZfDF -qsTqCCCszjlqTssBShlQSSZFgZZhgB -LDPmVgDDJdLPrPgLgPZSFZQfhQGGBQJcSFJS -mvmVbVvtggVtvgdLVvtmptCsNTtjRnpRTTjpsqCp -BdNPLnmFvLFNgnmBmnFGnwSZZZWwqWgqjwWssTHWSS -bJhMzhbVMbDCcVpZtjHMqTMwtttSjH -hzclfCppVqQfbzQVbpzPQLNFBdrvdNGGBnmrmP -nLVLzBDJCCHqdLncqVJgSsDlGsbssmvvvbvbff -jMNHFWNTZZNwMPrPWrrPMMrrvSllbgsllfgbgvQsvGmglZbv -RjPjrjRPtNrwHhBtncCJtJtL -jbhhjhNjvqNbmjMjqhtCFdmPFdlzJzfFfJQJfR -GBBZWrZWgpSsnSngrrSgHzFzFFdClzfFQFlRZftQPR -TrGTrGWHpHWGHWVWsngprHpLbLLVvcqMcNbVNLhwVNbtNb -sQDvDmDLQFDRsdchzhBczLhhPhVz -MbGGMjjGZSjvfHvHSbfwBqcPnqqcPVhPNnqnzjcn -ZwMMHrWvSHbfJfTrbJwSMMfMsQDtsFRptlpdCRpWmptQDRmC -TwMHdcTznLqzTrHdzzzHTdgMRQWRhJhNjjvgQvQQWNjl -tbfsVbDCVSSDtSPQJWPvRNhQtghN -FVGBpGCVFCbfCbVbZCSHqmwqcqLcdHJGwHqqTd -lTlGfjLGwHNMggscsDRwsC -MrFtrzZZPZrtVQtnrrFdQhhDPDSphgDRhDcsCCgWpW -ZJmJVzVVJFHfGbqJGMLv -zsFZVjzlHPfTzGfLGt -mdrrmdMMcBcmNqNbPqfRDLPWPlqTWD -BNQhmmrBrQghgSmNBQQSmvwssjZZSJHljJFFHZJvZV -rLZCsZdMJfdNCsfZMrLdFmssnwgTRQgBBwgRwcngTNVRVQjV -StqDHlStDPgRTqcwjT -GlDGDhbpHhvSHWlzbWlhpzhJdrFLrCLmvdmFZsmJJjJfdv -pJHJMJsJjSMFdHhszFvMhlmmGNlSmmBGllWmVlwcTw -ZqZRDrZCZDtPDPDrCngrnnPQGVmGHVBWGWtGmWVwVlmTlGNl -ZQPgRqrrQPqLnrLMvLphHdvdjpJddb -NwbBjljFbcjtTcccqW -RHZrPHPpNgZTzTqc -sfrPdmPdpsmPPPrfQPVGlwGVBwbGVnFlNQCG -hQdNTlzhdTvrhdnTBqcWBLsBHgWQgBPg -zwzRDbDfqZBLHDLB -wFbFmjjRzfmjGGMGMfmJwwGCCnvNhpvSCNnrvJvCprnnSp -zshNNJbwGFJfGJzzzNRnHGnCnRHcRPgTmPmn -LMDVtZLStrrZClBrVDllLSBWRPTPPRRPmgWPVmPTPHTWgR -SDSqLMlrtLlLtrBqBdlMZjvffCNzwvhjvvzhdfNhvf -SLQmGBmhLSLQTBGBGwdwpJjwwQjwcVpJZJ -sNrWrWPNbHghrbgnNNzbWbFWdZpMpzVpdMZMzMMVZcwwJdwd -frrPNNWshWhhHDvDGDRSBSRvttqv -FJqpgvhJJRjFjZTqDsMHrzwjsSsSszMrMm -PPPQWGtnbbfBmPsFswwsMrcc -QfBtbldtWQfbWbnfGlFqZppvpFZZLhFlpq -ZqSMZHHCMpHTZTWmFTFZPZQJBgVGVJQvVVSDBvBtcBBG -RNsndwsNjsbsgGCgjQBttcBg -NRszRRNzLNNNwNfhCCrfdmTqFZllFFHFFpWhlTmWpq -llbbzDmSspGRpHpzsldzRRsVtFBBFJMMVVFLTTTMVtLTDM -cqgjqvNgvqCjQZqgGGnhMTnMJVLBLMtFhhVFWB -PfGGvQrPCjvjZgGCCCZZZbSmmmHlRpprlHrHwssSRr -mRmpFpWpfMMgLnmS -CdCsqzdRzqStLjSqfMnL -wQRHdTzCQbzCwsTrZBlFZGpVlpFGQD -qnMTnTVSTPTHTHcMZMvVpmppmFmVzFLLFLlFpG -gBjDsjRRwhDDghthwwWZwLmpmwWWLWLbGZ -NhZtZtBgPTNJJNTS -jLjjmpHvzvZrfzQjmfHHWrfbqblLsSlTsqsgqPJbPqVglb -FBcCwDwtwgcgnCwcGchtJSsRqVRVJPPqDlbSDRPq -MBhthFNtMGCwhcwnpQfWjNrQprpvzpgQ -RfCnWfnhCbwHgWjzBgzB -PsVqDsSTshsgszpsph -DPDvTVtTShhSZhmqSvLlQJFnQJJZnbCnlCCZ -pRRdJngltnwwvTNSWqWffqgBqD -HQGcsdrjzMDDBfGMGG -FLhsdbzCLLHjhntpVnRPRvZV -gZNwQHHNRlGvhvhGRvRb -dpSSBDrzdCfcSzfrzZrfCfMbthWWWPttDthvMFWvvvPj -ZdpBpZCrssBJZfSJBzBdCTcnmQwmnVVlmqTQTTQlHLwNnN -ssCpTttVVVpzZDVvRpCsRtDgWBWBBFBJvvJHMBghGghrMJ -lwLmNNLwSblbmSQLfhJHZgHrHhhJJhHHmW -QLSdbdPqndlNlLdSLNQncpRtRTcRVTPPZRCjVCcc -wzzJclzcTThvWSSCqRlQSsNN -rDpVjpVVDpsQSRDRfQmm -GLbjrLpFbgLVLLgdbjVpchcFZhvBwJvtvtJcZwRB -wPgZgLVMfWVTgmTZZZftJjtfjtJCcdpjdCqc -zGGbQQnQGvBBhGQvvvBBSBvQdhdqqCpdddDmJlCcDjCtJdmJ -HszzHBzQBSmGSwTWgswZPWTVgZ -GDFvzCFdrszSdNJrFfjjfqZjRfsjpqmcwZ -WbbVtVnBPWMgBLMBnQQnBQHcjfjpZRwqcwMfcNTZRqqNmT -WQQnVVPHtggLghWWhHnPVQbvlJhSlrvJDlFGJDdDCzGNFF -dVhTBjBHtTVqWRJZRqhJZQ -brSDTbDfcCwDzfCSbwMQnlqCRJnMgWWnZngM -DFwNSrwNwbDzbFTTFtjmBpVdGpHs -dPQfdfTzDrFDmFDBgBFj -RlJRclcswJRvnwPcpjbjbbCZjFjbBmsbFZ -pqncGlcRJpHGpllGHhvPhRTHrQrttVVfrdQzfrTdftfV -RCzTzRMTfCfRRDzRfhSmZZlCslBbZZBVtZBZsqBL -nvvJPpdcFnPcWnFnVZvBqVlZMbZBNVlV -FpWPMdjdPhSTmwfSjD -NDJjNHLLNWjcLLWCLJLZjLDtRqqtgtMqgtqnRqnSRgggtZ -BwrlfFwmQwhwfPBFhsBdFmbQggCgqQVtbRSqttqMngnp -llPPwsPlGshBJGWJLcHvCzNv -rBvTmwdTSbnrvVWsWVftGfJQGT -gNRLLjlPRWnFVRFDFW -lpCpPNZqZCdvdppnSnBr -ShRdCrJgHClZJtZDGMMz -LvqVVTTNbVPLQNFTnwwMtzFZGDDwmtnM -VLbNvpPvTNVqVbbNpbVPGNLPrRWrcRCWdSrCjWSHcHSdWpCh -tNmZnLSZPFLDnLTmhJMWczQdhmWhWH -bGqbgrpsCsWhcChNQfJz -vwlNbppsRGRRSSSDvjTjLZjZ -zgMZhgfBtftSZQQmLHpSWH -cdqcqnrJVGjjqPVjrPnfpJmsQHQQpsSsbsSDmm -NNnrNqNlrNcPTlBvBvgggfMv -llPrrLHBHCrRRBjrHCjBdrPmvJZzZgZbmgJlZmZhMhhmvh -pNDstVtNtGFNSDFScQtfwzzFJwmJhgqzbMwqZJmh -fpNsptGtQcTsSTccprddCWPrWdTRBMMCMd -TTtDVqTsTcJFgbCqmbCq -NWZQnllzfBFZPBGWQGzFPFRNNgHbHrrwbNrmCbggJRHR -nBZjGFjMQBMPZnjfWjstpcctttvVtcTttMpL -qphVCCwnHqhnRVznFwvLtBTLDTWZtwLWWS -JmdlsdlsjfJfrtjTcvtctDZSSB -rsmfPGbrPbPJfPmrsgMrdJdlFTHhFCqhNqVHnNHHCFznhphG -JsWFMJJzrhSSdFdldmmdmdQc -qLLgCVTgLbBvqsQPVdQGcRRmQmdc -bBCBgCCDbLDqTvqqjpShHfzrzMfjtHHSHsfz -nvFSBFlvvgQFFBzQnlQglmRRzqwsrrMJJMrsMqrfrwzf -CjZNCNhLDNbPZZLZZhwVjpcfrqRhsdJqdsshRTTdqJrJ -jNNDDppjpjDWNVLCVVDpGVVPBFtlSQFWvvQvSSQHSgwQnvtB -WhrQWBRWwhzgmpnSpH -LqMVsJVvFMJLJMsfNjsTJvCgFbSmzgpSHzmngHbGPCbm -jvMjjtqVjTRnwZQwBWwt -jfTWSGSTTWhgcngQfbtJfNzztBQBzz -pVVwsdppRVPLVmPsVVHsjPLPzQdzBzQFzFBNNrJZZQBzbbFF -VmsqHmjHmpvGDSWDvlclSl -PNZfTFSFfTFGCHqqmbFm -WjzRWrjVgnjzplrWWjJVppgGPGsgstmPCCtcmssQqGQt -pzjzJVvnzJjWvpPlnVRVrvnlTDLNNhwfdNZLfMZLwLhTNvTw -QFrQZMFVrVpVszzcNTdMRCCb -SvljGmlvLfwLhLLLHlHdNzsRthhbbRccRCRNbC -LfwlDmlvGBSjjlLLgpPpFJqgQndQgZBJ -RBjPRHdjPfqQcfhcdv -SngFcJZJlcnctSlhhsQvGsDGDsDnfs -pSmFgSWNJFNtStrmNtpCCjPVcbjjHbcWTBHBHL -vGjqCPqNPGFGNftLwmZwfQNTLp -hrdBCSHcCJJcCBShJswmLQpLbbQZTLLJmmZp -BdHHSzrBWdzchzzCcdzHddcDVWFnjPjllGggVlWljPFFFWPM -hBtZZnpbhbPZJbnhDtPnpBtpfjfNNzrrCzjFzFzFTjfjjWzJ -gHllMqRSmqcqMTdggMqHlcFzRrFQWNfvrRvzQrWjWvWf -gwqlgHmmdsgwlwMHZtpsbBbtDBThbBht -CsDLFFLFCvczsCsJrCrJJLRgbQQgmMmPbDDQbPnMgMmg -VlwNBNVhjNVNWBwWjtbRMRZzPmQnfQMPnlZP -VWWSSwGTwtwWWNVwwpqJJrcJGvzqCJCqJF -wLwSSbzwCvddlvvlSj -THnQnnHttcvpQzrZRllZ -sTntBHTnVbPbgzsbgL -FwHgrHvFQQwpHhNhTBLdpNNNLd -fCGqCVtszfSslCSzSGsfCssjNTqLTdmjNLBLdnTTTMTjTg -DccfslfgRSSVVzlcSVtzDRVHwQZFrwwvwFWbbbRRWwrFJb -CwwWwwFNRpFFpZQHtsmfqbQDTQTTqb -VcjzLjGjzGjGjVjLdzqmDqHrsmsqGRrHqGqH -RjdVlgdnljlBnSgPCpNwwMWwMM -tCCtqtbPGzsSQVzQTq -mzMmHMpRsRQTsFFV -DpzDwgdMzMLppNmNpDpfgrbhLcGtPrbtrbrbhnbBcC -BvsQBBBLvDQGjDvSQLTvrHprHlRpVlVllgRbRbHPqq -MMMMCpfJFZZMmCzwpVPCWRtHgqWgqClgtt -FwzmfzhFFdFcpvSDSBDThs -fQrGQbFFFrHHtlHPclzzPLvc -mTnwpNCCqMqjmCThpTpSvvtBczstlLznvsztsPPP -mCpTNhmmpCqCmjmpTjmLCpSJQZVfFVrDVfffFFgfgJQFdbgG -GmWjRBSfttcGfRcSclVVJqsTMllsgJVMVZwV -pPFNpfNCdNzCVMTTNqVssqJN -dzPfHCLLhdjjLGRnmnmr -GPhPfGWgggfslffPsVPGsqJMzLQJtBprwQJJGQwLpQrw -ZNdmvbDDbNvHbmZCcJQwMmzMwWWQrrwttp -bvdDNdnvNbnHDdnDHHRSbnqhqhWfjWFVTVhRVjfjFTfP -hTThfWNCDRfsVCDhpgzgbpPZZwbnZQns -GSjGGcCBGmdjdSlGBcmZwzJzpPpJzwPwQbzgPd -BGmcrcStcMMMmrSLmSMCvFVRFDhfFhhNDWWTqFqTvf -ZmjDTTbmqQCCQQSwvhsL -FGVJPmPmtRVRsCvvRLwwhC -JgdHJgmfbjzTpTMf -fTbsVCsssgLNrfNrgm -zQvzZlRvddvpNLpZrMNNLZ -HLvWFHHlFQvzHnnlnvQqhzWvstBwbGVtstjGqjjwqGGCcwGq -JNpNdzzdJhNnfNGBZLqZqlhvSZSG -QswtcmmwwmTmwwcwZSLlZLDSvSvlBZQD -FsVFBbFgFsPwtVBTwgTPcsmpzdNngfzfpCzJdzCJzNCndn -qcvrLBppgpWWWgLcpzPfhNDqdzqwDDzwhV -MZFjFnHFMHbMntMtnwStfddPhDffDfzDfS -QmnjMZnlHjmnMGFnFlMmjlZWzLgsGgcrspBBLCBcgvgBRC -sdfWHjZfrZrSPMCQ -zqtWRDDDRMbrQJPQ -zwhwzmqwzmFpWzvFqBmFvjNHlHfgVLBgdfVfNVjLsl -lRlBTlvlZfhtbGBWtFBz -cqCNjjqjrNrcNjwDqNPCVrSQStSWshFhtQhbQzGzmFCG -HjPPzMcdNqjcNHMqPjdpgpZflfdgnTfdlvlJ -VpwQJVRtHplnnwtppHhqWBCfVdNNPqPBPWsBDq -jzLZCrvvrZjZvqNffvDNDcWDWd -LTrZZLFZbgTzgjZZjFClJhTHTplQpmnQlpmpQR -JGJnSWLGSpWHVHwGGJHpZdwPdTTPMdTMDdlzccPMPv -gqrrmtbrbgggqgBtqmRSrFgNCzvMDvlMPDdddvzBcPMMMDBd -gjrmRgmtRggFtqjbhgbjrtnJJHWLHQWZZLhZsLLGHhSL -BtTDNggLRPdWQHqggg -wrVpVVlCJVGMMJVdHWSdPSqqRwSQSP -vCVrpvvGjlphBRmZBhmBhBND -lqDcZGcSSqSqbDnccSLJgHgLRfnvvJRLmvWJ -FVCFPChQzVhmsFBgddRgJBfdNfJdfv -FzCpmTQzjQCThppTSttqDccMTDGcDG -QCSGBGCrCsMBTCQwMGSfvvLNNnnVLDlNVNDdVdlr -ZHtPffjWbqgtmnNdvljFnFhdVv -JRWbmgmRJtmJMGGwSBBRRRfQ -LqNrCfCQQhtgnPnc -JWBrWrVlbWgbbtcb -VwvTBprdrVJVNLNMNNqfqpjN -bjVqdHrdqVHPsPNbqHbqNdjFGRwRGlttRtMtRtFFGMLHJw -cfSpZnBZWQBZJlGRJJcwGMGL -WWBhTMgDTZghVjgjssbrbddd diff --git a/inputs/day4.txt b/inputs/day4.txt deleted file mode 100644 index 3b72ab6..0000000 --- a/inputs/day4.txt +++ /dev/null @@ -1,1000 +0,0 @@ -22-65,22-66 -91-94,63-91 -6-88,5-31 -85-86,64-86 -40-65,40-65 -25-82,24-94 -68-69,68-92 -60-91,89-92 -3-72,3-73 -44-85,84-85 -15-72,14-72 -84-92,84-92 -10-84,3-10 -32-62,31-61 -14-98,98-99 -24-78,24-61 -2-5,5-89 -58-95,58-59 -39-93,92-93 -11-82,81-82 -12-37,13-58 -53-92,52-91 -1-19,3-18 -90-91,91-98 -20-72,19-71 -91-91,1-92 -71-90,71-93 -77-94,77-94 -48-76,48-76 -48-58,48-53 -3-42,2-14 -3-4,3-94 -4-9,7-8 -14-97,77-97 -66-66,17-65 -12-99,13-98 -29-74,30-74 -30-93,29-92 -43-44,42-46 -7-9,8-81 -21-77,1-89 -85-92,86-91 -56-72,73-73 -16-75,17-42 -2-85,1-85 -97-97,13-98 -3-94,3-33 -55-91,1-99 -14-21,14-15 -1-3,2-98 -43-57,43-56 -9-95,8-10 -18-80,81-92 -19-72,19-71 -17-94,62-86 -45-59,46-60 -73-88,46-87 -63-82,82-86 -63-88,87-98 -20-28,20-56 -76-76,70-75 -36-73,35-73 -85-91,85-90 -4-82,4-85 -2-2,1-98 -27-71,27-81 -13-79,13-14 -32-43,33-42 -53-97,98-99 -41-62,42-66 -23-78,23-77 -6-92,6-91 -1-86,1-85 -3-89,84-90 -5-79,78-80 -51-73,50-72 -48-81,49-82 -32-33,33-88 -4-97,4-97 -13-88,14-65 -33-74,32-75 -26-48,48-78 -1-46,16-33 -2-6,6-67 -5-93,5-93 -5-6,4-22 -68-83,38-84 -10-70,18-69 -10-77,70-76 -4-94,3-93 -22-95,21-99 -32-72,31-92 -30-75,29-74 -3-96,95-95 -96-96,61-81 -52-77,53-77 -1-2,1-94 -4-96,3-98 -29-58,30-56 -31-49,30-60 -33-79,27-80 -10-51,8-11 -8-36,8-36 -36-93,36-92 -9-60,10-15 -48-80,79-87 -39-41,40-49 -48-87,64-87 -30-34,2-57 -81-82,13-81 -3-15,15-99 -37-72,38-72 -10-85,5-84 -6-79,78-93 -75-80,76-84 -55-72,55-55 -8-66,9-9 -54-64,63-99 -6-77,7-48 -2-64,1-32 -31-91,90-90 -19-66,18-94 -58-75,26-76 -58-60,1-59 -90-90,87-91 -5-91,5-91 -67-67,3-66 -13-81,31-36 -31-61,23-60 -18-92,17-91 -85-86,15-86 -10-68,9-11 -52-85,12-84 -7-27,26-26 -43-50,21-50 -25-75,74-75 -7-7,6-24 -1-63,42-62 -11-12,11-66 -25-94,93-93 -13-48,31-47 -3-58,59-59 -1-54,1-1 -5-5,5-96 -59-70,7-71 -18-19,18-81 -9-96,10-84 -33-41,33-38 -1-99,1-98 -69-83,68-78 -19-82,8-81 -2-23,3-24 -57-90,57-98 -75-83,74-76 -68-68,16-69 -2-86,1-33 -5-92,6-14 -51-76,52-75 -25-72,24-46 -9-76,10-50 -5-51,23-52 -19-83,20-93 -33-69,44-70 -22-69,23-69 -55-61,40-62 -2-16,16-81 -66-98,66-96 -27-85,28-86 -43-93,88-94 -19-83,32-82 -2-92,26-52 -87-87,45-93 -40-81,97-99 -4-97,98-98 -19-95,6-20 -52-96,53-53 -2-34,2-97 -62-83,63-66 -9-74,8-81 -53-83,53-83 -35-73,11-72 -9-97,10-95 -9-51,10-50 -25-27,26-35 -45-60,45-46 -12-65,28-65 -40-92,40-91 -5-5,4-98 -72-91,90-91 -16-87,17-91 -97-97,18-96 -77-78,75-79 -22-48,32-47 -70-70,35-69 -45-98,99-99 -65-83,83-92 -2-95,4-88 -5-10,10-46 -4-84,50-85 -58-58,15-59 -11-80,3-22 -46-48,3-47 -29-80,30-30 -34-96,5-95 -65-97,32-96 -26-31,30-46 -12-12,12-77 -26-92,26-92 -29-92,29-90 -26-27,27-30 -4-30,3-29 -29-57,1-28 -99-99,42-97 -92-97,78-98 -3-90,46-91 -44-76,43-75 -24-28,10-25 -1-95,1-52 -3-3,3-61 -39-94,40-93 -41-86,75-94 -28-28,26-27 -21-94,21-97 -12-41,41-54 -4-49,3-5 -75-90,44-75 -4-83,78-82 -5-93,93-94 -33-90,89-90 -12-32,13-98 -41-99,98-99 -4-67,3-38 -95-95,11-95 -7-46,7-46 -11-18,18-24 -7-92,12-57 -60-91,90-91 -86-94,86-95 -11-58,57-57 -7-10,10-97 -1-46,3-46 -1-52,1-2 -16-94,74-93 -7-98,18-97 -8-76,8-74 -37-92,54-91 -63-86,88-96 -4-55,47-58 -70-92,91-95 -73-77,71-77 -3-99,5-99 -56-58,56-57 -53-73,13-74 -88-97,97-97 -52-63,51-60 -13-94,14-91 -2-93,3-99 -42-75,67-75 -38-39,38-88 -8-93,92-97 -13-32,17-31 -3-17,16-53 -1-1,3-95 -5-88,4-87 -76-89,47-77 -5-54,4-55 -45-95,90-96 -81-89,36-88 -31-36,32-60 -87-99,10-88 -17-89,47-88 -26-94,25-99 -43-90,42-43 -59-87,59-80 -34-43,37-41 -1-54,1-53 -2-91,2-3 -40-95,46-95 -8-14,14-55 -38-52,51-69 -16-62,15-63 -30-55,31-74 -46-59,10-74 -35-81,80-88 -10-86,10-98 -18-68,18-68 -5-50,5-92 -48-98,99-99 -6-71,4-72 -6-6,6-43 -27-39,26-36 -15-15,14-82 -91-98,29-92 -46-51,50-52 -5-99,5-98 -4-91,4-92 -82-83,81-85 -68-78,21-68 -32-70,69-93 -25-59,25-60 -40-52,40-40 -28-68,93-94 -13-99,50-98 -10-33,10-11 -11-46,8-11 -20-32,19-31 -9-63,3-62 -24-92,92-97 -57-68,68-69 -39-91,39-91 -57-97,49-83 -2-58,21-92 -14-99,15-98 -42-90,43-51 -51-51,20-51 -29-43,39-43 -8-91,7-99 -11-75,11-76 -33-98,34-97 -99-99,28-97 -35-82,11-35 -80-82,45-81 -52-56,53-55 -29-77,28-93 -6-95,1-94 -12-77,12-13 -28-90,27-29 -71-74,72-77 -4-97,4-97 -40-85,39-60 -36-38,25-38 -25-35,24-28 -20-57,51-54 -80-81,3-81 -18-98,97-98 -82-94,71-83 -5-95,6-87 -16-78,3-79 -3-74,4-75 -14-87,13-42 -93-93,8-94 -7-20,9-21 -6-76,6-7 -4-98,69-99 -67-95,94-94 -66-87,79-86 -45-94,45-46 -9-13,10-46 -71-84,8-83 -3-56,4-82 -35-89,36-61 -54-77,53-55 -46-95,46-94 -9-19,7-19 -18-19,19-42 -37-54,53-54 -14-91,14-90 -9-35,9-36 -20-20,20-45 -96-97,25-83 -11-55,10-10 -10-95,11-89 -30-34,30-86 -30-37,35-38 -70-71,53-71 -6-12,6-10 -4-34,34-95 -48-79,48-72 -5-99,6-6 -60-77,78-94 -64-64,13-63 -13-31,14-30 -7-23,8-24 -87-92,88-93 -34-81,35-74 -7-58,8-77 -3-98,3-99 -7-94,94-95 -3-12,2-88 -21-97,22-72 -13-77,95-97 -15-77,15-16 -67-82,68-83 -28-28,25-56 -51-52,33-52 -12-90,12-90 -24-72,25-99 -1-56,3-55 -40-84,39-84 -8-9,8-86 -31-71,31-72 -76-90,64-75 -19-90,91-91 -42-70,45-69 -51-93,80-92 -21-36,22-37 -96-99,97-97 -83-99,1-98 -40-43,34-61 -1-97,2-96 -1-92,1-91 -11-92,9-73 -57-57,56-66 -13-71,12-75 -70-89,70-71 -12-24,16-24 -10-35,56-63 -18-85,51-76 -20-46,1-45 -4-64,4-64 -48-52,48-50 -84-85,17-85 -48-64,63-64 -19-28,27-29 -4-16,3-17 -29-66,2-28 -8-88,55-70 -60-84,61-85 -8-69,8-69 -15-67,3-68 -42-95,96-99 -21-55,22-54 -64-70,19-71 -17-82,17-81 -4-80,3-81 -7-95,7-73 -12-34,4-33 -3-95,63-96 -1-96,93-94 -45-50,36-49 -63-89,45-64 -8-96,9-87 -93-93,1-92 -10-11,10-11 -2-6,6-99 -40-41,40-68 -4-91,3-90 -4-68,66-68 -37-84,36-85 -15-85,29-86 -77-79,53-78 -50-81,80-81 -51-66,50-72 -53-53,29-54 -42-78,5-77 -35-53,36-76 -17-17,18-18 -4-79,4-79 -23-38,23-38 -46-81,80-80 -26-93,25-37 -59-61,20-60 -82-96,82-94 -16-40,17-21 -5-95,5-98 -26-26,26-64 -32-40,32-75 -3-55,6-54 -28-86,28-86 -4-87,4-96 -4-88,24-99 -4-66,5-5 -9-61,8-89 -48-70,48-70 -36-37,14-37 -21-49,21-50 -57-62,14-35 -8-62,8-66 -14-96,11-97 -13-44,43-44 -12-87,11-86 -2-24,25-97 -3-83,2-98 -10-80,10-80 -4-94,2-4 -1-77,20-77 -28-79,17-79 -8-82,7-7 -6-87,77-82 -4-93,3-65 -94-94,38-95 -74-92,74-93 -13-68,12-69 -41-51,41-42 -22-93,21-23 -7-12,13-64 -58-87,51-88 -18-66,19-91 -1-70,71-71 -9-17,8-37 -3-32,4-97 -54-90,27-91 -1-94,3-93 -3-99,4-70 -16-92,16-91 -22-57,22-57 -4-78,31-53 -28-94,28-29 -19-48,16-18 -48-68,49-67 -23-39,22-24 -12-87,23-95 -36-47,37-46 -66-69,66-68 -35-94,36-93 -13-22,2-20 -41-53,52-54 -4-51,3-96 -52-52,5-53 -20-85,19-84 -4-78,3-79 -86-98,15-97 -68-85,68-87 -2-55,3-54 -27-63,11-64 -75-83,52-83 -18-75,19-74 -7-88,8-87 -1-86,1-92 -6-43,38-44 -71-71,70-71 -6-43,24-83 -15-53,15-63 -69-97,69-69 -9-99,12-13 -31-41,41-42 -11-53,10-57 -46-67,14-70 -24-35,25-36 -13-91,23-90 -62-67,68-70 -62-99,63-68 -10-84,51-85 -5-98,1-98 -16-97,81-98 -51-92,41-52 -15-88,14-93 -3-92,2-93 -44-74,44-74 -4-95,94-96 -51-62,25-63 -28-69,11-68 -3-82,3-78 -5-95,5-98 -25-96,25-99 -9-9,9-66 -17-18,1-18 -2-86,4-85 -4-9,9-92 -2-98,2-98 -61-96,60-98 -1-89,35-50 -89-89,25-90 -1-99,1-33 -53-73,52-74 -30-55,29-90 -97-98,70-91 -66-69,65-66 -31-83,82-83 -2-67,67-95 -77-78,77-96 -30-98,30-98 -94-94,28-95 -37-83,8-82 -14-46,28-30 -75-80,12-81 -19-68,18-19 -65-85,96-99 -62-63,3-63 -19-95,97-97 -54-79,55-78 -12-98,97-99 -83-98,41-84 -68-88,34-69 -25-25,20-25 -2-66,8-99 -84-85,21-85 -52-98,53-87 -32-55,31-54 -4-51,6-90 -46-86,47-47 -75-75,10-76 -30-38,29-49 -5-96,4-5 -49-49,49-93 -8-67,39-65 -6-51,5-70 -38-70,39-69 -2-98,2-3 -51-53,50-59 -56-92,57-91 -11-90,11-52 -19-99,20-98 -54-77,52-55 -6-93,1-6 -62-80,58-62 -27-82,26-97 -10-79,9-78 -18-99,18-99 -7-87,7-84 -44-44,45-86 -89-91,6-90 -15-98,15-95 -56-59,54-60 -61-89,2-82 -30-78,12-96 -10-84,1-10 -61-62,46-62 -5-74,5-6 -29-33,30-32 -81-95,95-99 -51-98,50-85 -6-79,49-78 -47-52,12-61 -4-58,3-89 -75-94,31-76 -43-49,42-44 -3-4,4-47 -44-98,98-98 -67-72,66-72 -2-38,3-38 -3-5,4-47 -5-95,5-95 -34-97,35-78 -66-68,67-98 -28-32,29-35 -44-68,31-44 -28-53,27-55 -16-73,17-67 -12-49,49-97 -34-76,75-75 -38-96,37-43 -15-20,20-79 -15-22,22-35 -3-25,4-55 -6-90,6-89 -17-74,18-75 -15-60,14-61 -6-29,29-81 -23-66,11-24 -37-90,90-90 -1-24,2-57 -42-78,41-79 -94-99,74-95 -95-97,2-30 -13-61,56-60 -23-82,24-83 -56-56,31-57 -58-91,57-99 -13-25,14-24 -46-54,47-77 -47-74,73-74 -23-48,22-82 -79-80,81-81 -16-33,6-76 -54-70,55-70 -44-67,45-66 -2-4,3-97 -24-94,19-94 -33-77,49-93 -13-35,35-73 -28-84,28-83 -6-89,7-90 -40-80,42-80 -39-84,65-83 -83-83,59-84 -20-46,30-46 -31-34,32-46 -12-13,13-67 -35-75,34-74 -20-20,20-89 -13-70,5-60 -25-25,24-24 -84-87,83-86 -26-58,26-58 -6-96,5-7 -4-78,5-79 -15-15,15-27 -7-79,3-80 -62-64,24-63 -68-69,32-71 -27-68,28-41 -43-43,11-44 -27-82,83-83 -54-70,26-69 -16-16,17-70 -27-34,33-35 -33-97,96-97 -4-5,4-39 -43-43,43-92 -27-33,1-28 -23-91,23-58 -9-51,8-10 -4-6,5-76 -5-34,33-95 -97-98,46-98 -20-53,52-65 -7-72,6-96 -32-79,93-95 -21-86,20-85 -47-82,46-84 -9-96,8-86 -10-93,11-75 -11-12,11-77 -7-56,6-55 -3-7,7-43 -54-84,55-55 -3-95,3-97 -18-55,37-56 -40-68,39-91 -56-87,56-85 -12-34,13-35 -7-62,8-63 -95-95,54-95 -7-94,6-94 -14-92,13-99 -18-42,42-53 -75-96,76-95 -5-78,4-6 -93-94,14-94 -25-91,25-92 -96-98,97-99 -82-84,82-85 -37-39,38-42 -11-48,7-49 -64-66,65-90 -10-46,9-45 -35-92,34-52 -6-94,9-93 -12-96,95-96 -16-86,63-67 -5-96,5-96 -54-59,19-60 -3-92,3-52 -26-54,27-53 -28-97,28-93 -98-98,83-97 -64-98,13-99 -79-84,80-86 -5-98,4-97 -2-23,22-35 -7-11,7-87 -31-94,32-59 -25-41,17-42 -28-94,76-95 -6-93,5-94 -73-94,74-93 -6-44,17-44 -2-99,22-46 -1-73,1-72 -25-71,25-72 -35-36,6-36 -6-66,5-66 -92-95,92-95 -53-75,52-75 -5-55,3-97 -12-76,43-75 -5-49,13-48 -32-32,8-37 -18-96,19-19 -17-59,17-60 -1-17,2-95 -37-82,83-83 -39-79,39-39 -25-81,25-86 -11-52,51-51 -91-91,30-91 -43-58,44-57 -1-98,2-98 -31-62,31-62 -6-13,6-13 -65-92,13-91 -3-6,5-95 -21-88,14-21 -48-75,47-74 -70-93,30-92 -37-58,58-89 -14-24,14-23 -31-60,58-83 -4-95,1-56 -47-79,98-98 -36-65,37-38 -6-18,19-75 -14-50,98-99 -44-94,45-93 -37-39,38-56 -39-57,38-40 -7-36,6-90 -81-83,28-82 -15-86,15-77 -70-86,2-44 -8-23,7-23 -28-31,29-78 -5-67,4-66 -31-31,14-32 -45-95,13-96 -11-39,40-40 -6-95,21-94 -35-35,35-66 -4-97,4-98 -2-97,96-97 -14-14,13-50 -3-62,2-54 -3-98,54-98 -24-87,23-86 -29-84,28-78 -42-45,41-55 -8-32,10-33 -35-39,35-77 -10-89,23-59 -10-82,6-98 -52-84,83-84 -65-73,60-72 -7-75,74-91 -50-77,76-93 -1-94,2-95 -98-98,21-97 -19-79,18-24 -3-87,86-88 -47-47,41-48 -28-95,29-96 -71-85,70-72 -60-98,61-75 -3-7,7-96 -22-23,22-50 -90-92,38-91 -83-89,57-88 -6-86,7-87 -3-98,28-99 -52-62,15-62 -23-98,24-24 -38-86,87-94 -10-43,16-42 -17-25,18-76 -60-62,16-63 -66-89,66-88 -42-80,21-79 -6-91,6-93 -8-41,41-41 -80-87,79-99 -88-88,14-89 -35-76,23-75 -8-51,7-88 -2-99,41-71 -6-8,7-99 -18-83,18-19 -69-91,50-68 -28-43,28-29 -57-76,9-58 -56-58,52-57 -13-64,14-81 -6-84,5-83 -95-97,61-77 -9-11,10-12 -46-65,46-66 -18-83,17-83 -86-88,57-87 -15-74,79-99 -5-99,98-99 -13-16,14-69 -23-92,22-98 -70-96,69-98 -9-12,9-13 -10-12,11-52 -21-70,20-87 -44-88,44-84 -84-86,10-85 -30-92,30-91 -10-26,25-79 -42-59,41-42 -39-72,33-99 -19-66,39-66 -21-23,2-80 -23-23,22-23 -73-99,72-97 -4-72,3-5 -22-75,21-76 -24-53,52-52 -40-56,55-64 -17-85,18-84 -15-18,14-85 -8-71,3-8 -1-99,3-95 -41-41,40-96 -60-67,37-68 -9-26,10-91 -30-92,73-92 -44-85,45-86 -13-75,42-75 -11-11,64-83 -7-98,7-99 -53-57,37-54 -71-72,8-71 -86-86,7-86 -14-32,15-54 -13-20,12-12 -68-93,72-94 -3-68,3-4 -4-98,17-97 -15-94,41-83 -23-72,23-72 -26-86,2-27 -36-81,37-55 -10-94,9-93 -32-84,31-83 -44-95,14-45 -3-62,3-62 -46-78,45-66 -96-98,3-97 -91-92,31-92 -50-57,20-58 -1-64,3-64 -48-80,35-48 -69-90,69-91 -62-68,40-67 -74-76,74-76 -42-81,43-82 -16-58,58-59 -88-89,1-89 -68-69,69-90 -57-73,57-68 -58-83,58-94 -2-60,88-94 -14-18,13-20 -68-82,81-83 -77-79,26-78 -20-36,19-99 -12-87,13-89 -54-88,64-87 -12-85,12-86 -1-88,87-89 -43-64,64-81 -38-97,37-48 -12-73,57-74 -25-52,26-53 -22-22,21-37 -75-97,74-76 -13-54,14-32 -16-47,16-48 -9-93,10-92 -50-50,49-88 -10-10,10-76 -94-94,2-95 -33-93,63-92 -46-46,16-47 -90-97,1-91 -24-63,26-63 -38-84,19-62 -28-96,95-98 -56-56,49-58 -6-83,19-82 -31-87,77-88 -4-97,3-99 -13-86,14-85 -90-90,23-90 -8-25,26-26 -17-60,18-89 -10-61,11-62 -13-59,50-59 -52-73,34-73 -94-97,33-95 -20-93,19-97 -6-6,6-94 -7-81,6-89 -4-95,4-95 -9-65,65-66 -37-72,71-75 -57-96,56-72 -23-77,76-76 -7-89,6-88 -1-86,85-86 -42-44,43-93 -18-59,27-58 -19-88,18-95 -1-74,3-73 -22-67,54-66 -23-28,23-27 -6-73,6-73 -4-85,3-5 -46-95,46-96 -5-92,4-86 -22-61,21-61 -70-84,56-95 -8-9,8-85 -18-42,41-41 -12-97,96-97 -67-73,40-74 -13-74,13-81 -3-36,4-98 -8-96,5-6 -9-89,9-84 -67-85,68-84 -68-69,45-69 -34-66,66-71 -50-83,13-82 -31-74,32-83 -1-3,3-83 -4-88,4-4 -12-93,9-94 -70-98,30-98 diff --git a/inputs/day5.txt b/inputs/day5.txt deleted file mode 100644 index cf16741..0000000 --- a/inputs/day5.txt +++ /dev/null @@ -1,513 +0,0 @@ - [M] [V] [L] -[G] [V] [C] [G] [D] -[J] [Q] [W] [Z] [C] [J] -[W] [W] [G] [V] [D] [G] [C] -[R] [G] [N] [B] [D] [C] [M] [W] -[F] [M] [H] [C] [S] [T] [N] [N] [N] -[T] [W] [N] [R] [F] [R] [B] [J] [P] -[Z] [G] [J] [J] [W] [S] [H] [S] [G] - 1 2 3 4 5 6 7 8 9 - -move 1 from 5 to 2 -move 7 from 7 to 1 -move 1 from 1 to 7 -move 1 from 4 to 1 -move 7 from 9 to 1 -move 1 from 3 to 7 -move 4 from 5 to 4 -move 6 from 4 to 9 -move 2 from 7 to 6 -move 6 from 8 to 2 -move 2 from 4 to 5 -move 2 from 3 to 7 -move 11 from 1 to 4 -move 6 from 6 to 1 -move 3 from 5 to 3 -move 5 from 9 to 8 -move 1 from 2 to 3 -move 2 from 7 to 9 -move 7 from 1 to 2 -move 1 from 5 to 3 -move 1 from 5 to 3 -move 5 from 8 to 5 -move 3 from 5 to 4 -move 1 from 1 to 7 -move 1 from 3 to 8 -move 2 from 6 to 3 -move 3 from 3 to 4 -move 1 from 6 to 2 -move 5 from 4 to 2 -move 2 from 5 to 3 -move 2 from 7 to 1 -move 1 from 8 to 1 -move 7 from 1 to 7 -move 4 from 4 to 2 -move 7 from 4 to 1 -move 10 from 1 to 5 -move 10 from 5 to 2 -move 11 from 2 to 3 -move 1 from 1 to 6 -move 1 from 4 to 7 -move 4 from 7 to 1 -move 6 from 2 to 5 -move 2 from 1 to 3 -move 1 from 9 to 5 -move 2 from 9 to 6 -move 1 from 6 to 1 -move 3 from 5 to 4 -move 20 from 3 to 9 -move 3 from 7 to 1 -move 3 from 5 to 2 -move 3 from 4 to 8 -move 3 from 1 to 3 -move 3 from 1 to 2 -move 2 from 6 to 1 -move 10 from 9 to 6 -move 6 from 6 to 7 -move 4 from 6 to 3 -move 11 from 2 to 6 -move 1 from 8 to 9 -move 13 from 2 to 3 -move 1 from 1 to 9 -move 1 from 9 to 4 -move 1 from 8 to 2 -move 1 from 8 to 2 -move 4 from 7 to 8 -move 8 from 6 to 9 -move 3 from 2 to 3 -move 3 from 8 to 4 -move 11 from 9 to 2 -move 7 from 9 to 6 -move 1 from 1 to 5 -move 4 from 4 to 9 -move 21 from 3 to 1 -move 1 from 3 to 9 -move 7 from 6 to 3 -move 6 from 1 to 2 -move 13 from 1 to 5 -move 2 from 1 to 2 -move 3 from 9 to 3 -move 2 from 2 to 3 -move 2 from 6 to 4 -move 3 from 3 to 5 -move 13 from 5 to 2 -move 5 from 3 to 4 -move 2 from 7 to 9 -move 2 from 4 to 2 -move 1 from 3 to 8 -move 1 from 6 to 1 -move 4 from 3 to 7 -move 2 from 5 to 7 -move 1 from 7 to 2 -move 1 from 5 to 9 -move 4 from 7 to 8 -move 1 from 1 to 9 -move 6 from 8 to 1 -move 4 from 4 to 8 -move 25 from 2 to 9 -move 1 from 4 to 3 -move 1 from 3 to 7 -move 4 from 8 to 1 -move 1 from 7 to 4 -move 3 from 1 to 6 -move 5 from 2 to 1 -move 1 from 5 to 1 -move 1 from 4 to 1 -move 24 from 9 to 6 -move 9 from 1 to 6 -move 1 from 5 to 6 -move 1 from 1 to 9 -move 1 from 2 to 8 -move 1 from 8 to 1 -move 3 from 1 to 8 -move 36 from 6 to 3 -move 2 from 7 to 3 -move 1 from 2 to 5 -move 1 from 5 to 2 -move 1 from 6 to 2 -move 10 from 3 to 2 -move 3 from 8 to 2 -move 1 from 1 to 7 -move 2 from 2 to 6 -move 10 from 9 to 1 -move 2 from 6 to 4 -move 13 from 3 to 4 -move 8 from 3 to 7 -move 8 from 1 to 2 -move 5 from 3 to 8 -move 3 from 1 to 9 -move 1 from 7 to 1 -move 7 from 4 to 5 -move 1 from 1 to 2 -move 14 from 2 to 6 -move 2 from 7 to 2 -move 8 from 4 to 8 -move 3 from 7 to 9 -move 2 from 9 to 8 -move 2 from 7 to 1 -move 1 from 7 to 8 -move 1 from 6 to 8 -move 1 from 9 to 3 -move 4 from 2 to 7 -move 6 from 6 to 1 -move 3 from 1 to 9 -move 1 from 1 to 7 -move 6 from 5 to 6 -move 1 from 5 to 2 -move 1 from 6 to 8 -move 5 from 7 to 5 -move 1 from 2 to 9 -move 2 from 3 to 4 -move 9 from 8 to 4 -move 8 from 4 to 8 -move 6 from 6 to 7 -move 5 from 6 to 4 -move 7 from 9 to 7 -move 7 from 8 to 7 -move 5 from 8 to 4 -move 3 from 1 to 6 -move 1 from 2 to 7 -move 1 from 1 to 4 -move 4 from 5 to 2 -move 2 from 6 to 9 -move 1 from 3 to 7 -move 1 from 5 to 1 -move 1 from 8 to 9 -move 1 from 6 to 1 -move 1 from 2 to 7 -move 2 from 8 to 1 -move 2 from 1 to 8 -move 3 from 2 to 4 -move 1 from 6 to 1 -move 17 from 4 to 1 -move 3 from 2 to 7 -move 13 from 7 to 8 -move 1 from 2 to 6 -move 14 from 1 to 4 -move 2 from 8 to 5 -move 1 from 9 to 7 -move 2 from 5 to 4 -move 1 from 9 to 3 -move 5 from 1 to 5 -move 3 from 4 to 1 -move 1 from 3 to 2 -move 7 from 4 to 5 -move 9 from 7 to 8 -move 5 from 4 to 2 -move 1 from 1 to 3 -move 1 from 9 to 2 -move 15 from 8 to 6 -move 1 from 3 to 7 -move 11 from 6 to 5 -move 1 from 4 to 8 -move 3 from 1 to 7 -move 5 from 7 to 5 -move 27 from 5 to 1 -move 8 from 8 to 4 -move 1 from 2 to 6 -move 3 from 6 to 1 -move 9 from 1 to 5 -move 5 from 5 to 7 -move 2 from 2 to 1 -move 2 from 5 to 4 -move 6 from 7 to 6 -move 1 from 5 to 2 -move 1 from 7 to 8 -move 4 from 6 to 8 -move 5 from 6 to 3 -move 1 from 7 to 1 -move 5 from 4 to 3 -move 6 from 8 to 2 -move 1 from 7 to 8 -move 2 from 8 to 9 -move 10 from 3 to 5 -move 9 from 5 to 2 -move 3 from 4 to 8 -move 1 from 5 to 7 -move 2 from 9 to 7 -move 2 from 8 to 3 -move 1 from 3 to 8 -move 19 from 1 to 7 -move 4 from 2 to 7 -move 2 from 4 to 3 -move 3 from 3 to 2 -move 2 from 8 to 3 -move 2 from 5 to 8 -move 1 from 2 to 3 -move 2 from 8 to 3 -move 5 from 2 to 5 -move 9 from 7 to 5 -move 13 from 5 to 9 -move 7 from 2 to 6 -move 2 from 6 to 9 -move 1 from 2 to 1 -move 5 from 6 to 7 -move 1 from 5 to 7 -move 6 from 1 to 2 -move 5 from 3 to 6 -move 6 from 7 to 2 -move 3 from 6 to 4 -move 3 from 7 to 4 -move 12 from 7 to 6 -move 5 from 4 to 1 -move 2 from 7 to 4 -move 3 from 4 to 6 -move 16 from 6 to 3 -move 4 from 1 to 4 -move 1 from 1 to 9 -move 3 from 9 to 2 -move 1 from 4 to 6 -move 9 from 3 to 7 -move 2 from 6 to 3 -move 3 from 3 to 9 -move 15 from 2 to 7 -move 19 from 7 to 4 -move 15 from 9 to 2 -move 16 from 2 to 8 -move 6 from 3 to 5 -move 4 from 7 to 5 -move 15 from 8 to 7 -move 19 from 4 to 2 -move 1 from 8 to 3 -move 16 from 2 to 1 -move 9 from 7 to 6 -move 7 from 2 to 8 -move 2 from 2 to 7 -move 1 from 9 to 5 -move 1 from 3 to 4 -move 6 from 1 to 2 -move 8 from 5 to 1 -move 1 from 5 to 1 -move 18 from 1 to 8 -move 7 from 7 to 5 -move 7 from 5 to 3 -move 4 from 3 to 6 -move 13 from 8 to 5 -move 12 from 8 to 1 -move 5 from 1 to 6 -move 15 from 5 to 4 -move 1 from 1 to 6 -move 12 from 6 to 3 -move 8 from 3 to 4 -move 2 from 7 to 3 -move 9 from 3 to 1 -move 5 from 2 to 9 -move 16 from 4 to 3 -move 10 from 1 to 3 -move 2 from 1 to 5 -move 1 from 3 to 1 -move 5 from 6 to 1 -move 4 from 9 to 3 -move 1 from 2 to 8 -move 1 from 8 to 1 -move 1 from 9 to 8 -move 2 from 5 to 9 -move 9 from 4 to 1 -move 3 from 1 to 3 -move 2 from 6 to 8 -move 3 from 8 to 5 -move 2 from 1 to 5 -move 2 from 9 to 8 -move 1 from 8 to 6 -move 2 from 5 to 3 -move 19 from 3 to 1 -move 2 from 4 to 2 -move 1 from 5 to 6 -move 2 from 2 to 3 -move 1 from 8 to 6 -move 8 from 3 to 9 -move 6 from 3 to 7 -move 2 from 6 to 2 -move 1 from 6 to 1 -move 1 from 1 to 8 -move 1 from 8 to 9 -move 1 from 7 to 3 -move 19 from 1 to 5 -move 21 from 5 to 2 -move 13 from 2 to 6 -move 13 from 1 to 8 -move 7 from 9 to 7 -move 2 from 9 to 2 -move 10 from 8 to 3 -move 1 from 1 to 6 -move 10 from 2 to 4 -move 11 from 3 to 5 -move 8 from 5 to 6 -move 1 from 3 to 7 -move 2 from 8 to 6 -move 2 from 2 to 8 -move 3 from 7 to 6 -move 2 from 8 to 6 -move 1 from 1 to 2 -move 24 from 6 to 5 -move 2 from 3 to 8 -move 1 from 8 to 6 -move 7 from 7 to 9 -move 4 from 6 to 9 -move 1 from 8 to 9 -move 21 from 5 to 9 -move 2 from 7 to 2 -move 1 from 8 to 5 -move 1 from 7 to 3 -move 12 from 9 to 6 -move 6 from 6 to 3 -move 12 from 9 to 4 -move 4 from 5 to 6 -move 13 from 4 to 2 -move 8 from 4 to 8 -move 10 from 6 to 8 -move 11 from 8 to 9 -move 4 from 8 to 4 -move 2 from 4 to 3 -move 8 from 3 to 8 -move 2 from 6 to 8 -move 1 from 3 to 8 -move 6 from 2 to 4 -move 1 from 4 to 8 -move 1 from 9 to 7 -move 13 from 8 to 4 -move 1 from 7 to 1 -move 1 from 1 to 4 -move 8 from 4 to 7 -move 3 from 5 to 7 -move 19 from 9 to 7 -move 3 from 2 to 7 -move 1 from 8 to 2 -move 13 from 7 to 6 -move 1 from 2 to 4 -move 4 from 6 to 2 -move 1 from 8 to 3 -move 7 from 6 to 8 -move 1 from 6 to 2 -move 1 from 2 to 7 -move 9 from 2 to 3 -move 1 from 6 to 2 -move 21 from 7 to 5 -move 9 from 5 to 3 -move 19 from 3 to 9 -move 5 from 8 to 5 -move 2 from 2 to 1 -move 2 from 1 to 8 -move 6 from 4 to 5 -move 3 from 8 to 7 -move 15 from 9 to 2 -move 2 from 2 to 5 -move 3 from 9 to 6 -move 5 from 4 to 5 -move 11 from 2 to 6 -move 1 from 8 to 6 -move 1 from 9 to 5 -move 1 from 7 to 3 -move 6 from 5 to 6 -move 1 from 4 to 6 -move 1 from 3 to 4 -move 13 from 5 to 2 -move 16 from 6 to 9 -move 4 from 4 to 5 -move 2 from 6 to 2 -move 2 from 6 to 4 -move 2 from 4 to 5 -move 2 from 7 to 8 -move 2 from 6 to 3 -move 2 from 5 to 8 -move 14 from 5 to 7 -move 4 from 8 to 1 -move 4 from 1 to 6 -move 1 from 3 to 9 -move 1 from 6 to 1 -move 2 from 7 to 3 -move 2 from 3 to 7 -move 2 from 5 to 2 -move 9 from 9 to 2 -move 13 from 7 to 3 -move 12 from 3 to 9 -move 2 from 6 to 8 -move 14 from 2 to 9 -move 2 from 8 to 9 -move 10 from 2 to 1 -move 1 from 7 to 4 -move 2 from 3 to 8 -move 4 from 2 to 1 -move 1 from 8 to 3 -move 1 from 2 to 6 -move 1 from 8 to 3 -move 4 from 9 to 4 -move 1 from 3 to 5 -move 1 from 5 to 1 -move 1 from 3 to 9 -move 12 from 1 to 8 -move 10 from 8 to 5 -move 7 from 5 to 6 -move 1 from 1 to 9 -move 3 from 5 to 1 -move 1 from 1 to 3 -move 16 from 9 to 7 -move 4 from 4 to 3 -move 1 from 4 to 9 -move 15 from 7 to 8 -move 15 from 9 to 1 -move 8 from 1 to 6 -move 1 from 9 to 3 -move 17 from 6 to 2 -move 1 from 9 to 1 -move 15 from 2 to 7 -move 14 from 8 to 9 -move 12 from 7 to 9 -move 12 from 9 to 3 -move 3 from 7 to 9 -move 1 from 7 to 4 -move 7 from 9 to 6 -move 1 from 4 to 6 -move 11 from 9 to 6 -move 2 from 1 to 2 -move 18 from 6 to 4 -move 4 from 2 to 7 -move 2 from 7 to 3 -move 2 from 7 to 8 -move 4 from 1 to 5 -move 1 from 9 to 2 -move 2 from 5 to 4 -move 5 from 1 to 3 -move 2 from 3 to 7 -move 2 from 3 to 9 -move 1 from 6 to 7 -move 1 from 2 to 9 -move 2 from 8 to 1 -move 3 from 1 to 3 -move 2 from 5 to 8 -move 2 from 3 to 5 -move 1 from 5 to 2 -move 1 from 1 to 3 -move 1 from 9 to 2 -move 1 from 9 to 1 -move 3 from 7 to 6 -move 1 from 1 to 9 -move 2 from 8 to 9 -move 1 from 2 to 3 -move 2 from 8 to 2 -move 2 from 6 to 5 -move 1 from 8 to 5 -move 3 from 2 to 5 -move 3 from 4 to 8 -move 1 from 8 to 2 -move 3 from 9 to 7 -move 3 from 7 to 1 -move 1 from 9 to 6 -move 3 from 1 to 2 -move 2 from 8 to 7 -move 2 from 7 to 9 -move 2 from 6 to 5 -move 3 from 5 to 3 -move 1 from 2 to 5 -move 3 from 2 to 7 -move 2 from 5 to 6 -move 15 from 4 to 9 -move 1 from 3 to 1 -move 25 from 3 to 4 -move 3 from 7 to 3 -move 5 from 9 to 5 -move 10 from 9 to 5 -move 9 from 5 to 1 -move 5 from 5 to 2 -move 1 from 6 to 7 -move 5 from 5 to 8 diff --git a/src/day1.rs b/src/day1.rs index b9caa48..96c4f23 100644 --- a/src/day1.rs +++ b/src/day1.rs @@ -1,4 +1,4 @@ -use itertools::Itertools; +// use itertools::Itertools; use std::fs; pub fn run() { @@ -9,32 +9,69 @@ pub fn run() { println!("\tPart 2: {}", part2(&input)); } -fn part1(food_input: &str) -> usize { - food_input - .split("\n\n") - .into_iter() - .map(|elf| { - elf.split_whitespace() - .map(|food| food.parse::().unwrap()) - .sum() +fn part1(calibration_input: &str) -> usize { + calibration_input + .split("\n") + .map(|line| { + let digits = line.chars().filter(|c| c.is_digit(10)).collect::(); + + if digits.len() == 1 { + digits.parse::().unwrap() * 11 + } else { + let tens = digits.chars().nth(0).unwrap().to_digit(10).unwrap(); + let ones = digits.chars().last().unwrap().to_digit(10).unwrap(); + (tens * 10 + ones) as usize + } }) .into_iter() - .max() - .unwrap() + .sum() } -fn part2(food_input: &str) -> usize { - food_input - .split("\n\n") - .collect::>() - .into_iter() - .map(|elf| { - elf.split_whitespace() - .map(|food| food.parse::().unwrap()) - .sum::() + +fn part2(calibration_input: &str) -> usize { + let word_to_digit_map: [(&str, usize); 9] = [ + ("one", 1), + ("two", 2), + ("three", 3), + ("four", 4), + ("five", 5), + ("six", 6), + ("seven", 7), + ("eight", 8), + ("nine", 9), + ]; + + calibration_input + .split("\n") + .map(|line| { + let mut index_and_digit: Vec<(usize, usize)> = vec![]; + + for (word, digit) in word_to_digit_map { + for (index, _) in line.match_indices(word).collect::>() { + index_and_digit.push((index, digit)); + } + } + + for (index, c) in line.chars().enumerate() { + match c.to_digit(10) { + Some(digit) => index_and_digit.push((index, digit as usize)), + None => continue, + } + } + + if index_and_digit.len() == 1 { + index_and_digit[0].1 * 11 + } else { + index_and_digit.sort_by(|a, b| a.0.cmp(&b.0)); + println!( + "{} {}", + &line, + index_and_digit[0].1 * 10 + index_and_digit.last().unwrap().1 + ); + + index_and_digit[0].1 * 10 + index_and_digit.last().unwrap().1 + } }) - .sorted() - .rev() - .take(3) + .into_iter() .sum() } @@ -44,41 +81,24 @@ mod tests { #[test] fn test_1() { - let input = "1000 -2000 -3000 + let input = "1abc2 + pqr3stu8vwx + a1b2c3d4e5f + treb7uchet"; -4000 - -5000 -6000 - -7000 -8000 -9000 - -10000"; - - assert_eq!(part1(input), 24000); + assert_eq!(part1(input), 142); } #[test] fn test_2() { - let input = "1000 -2000 -3000 + let input = "two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen"; -4000 - -5000 -6000 - -7000 -8000 -9000 - -10000"; - - assert_eq!(part2(input), 45000); + assert_eq!(part2(input), 281); } } diff --git a/src/day2.rs b/src/day2.rs deleted file mode 100644 index c35bbac..0000000 --- a/src/day2.rs +++ /dev/null @@ -1,110 +0,0 @@ -use itertools::Itertools; -use std::fs; - -pub fn run() { - println!("Day 2:"); - let input = fs::read_to_string("./inputs/day2.txt").expect("Could not read file"); - - println!("\tPart 1: {}", part1(&input)); - println!("\tPart 2: {}", part2(&input)); -} - -#[derive(PartialEq, Clone, Copy)] -enum Hand { - Rock = 1, - Paper, - Scissors, -} - -#[derive(Clone, Copy)] -enum Outcome { - Lost = 0, - Draw = 3, - Win = 6, -} - -fn part1(input: &str) -> usize { - input - .trim() - .split('\n') - .map(|round_str| { - let round = round_str.split_once(' ').unwrap(); - let opponent = match round.0 { - "A" => Hand::Rock, - "B" => Hand::Paper, - "C" => Hand::Scissors, - _ => panic!(), - }; - let me = match round.1 { - "X" => Hand::Rock, - "Y" => Hand::Paper, - "Z" => Hand::Scissors, - _ => panic!(), - }; - - let outcome = match (opponent, me) { - (l, r) if l == r => Outcome::Draw, - (Hand::Rock, Hand::Paper) => Outcome::Win, - (Hand::Paper, Hand::Scissors) => Outcome::Win, - (Hand::Scissors, Hand::Rock) => Outcome::Win, - _ => Outcome::Lost, - }; - outcome as usize + me as usize - }) - .sum() -} -fn part2(input: &str) -> usize { - input - .trim() - .split('\n') - .map(|round_str| { - let round = round_str.split_once(' ').unwrap(); - let opponent = match round.0 { - "A" => Hand::Rock, - "B" => Hand::Paper, - "C" => Hand::Scissors, - _ => panic!(), - }; - let outcome = match round.1 { - "X" => Outcome::Lost, - "Y" => Outcome::Draw, - "Z" => Outcome::Win, - _ => panic!(), - }; - - let me = match (outcome, opponent) { - (Outcome::Draw, _) => opponent, - (Outcome::Win, Hand::Rock) => Hand::Paper, - (Outcome::Win, Hand::Paper) => Hand::Scissors, - (Outcome::Win, Hand::Scissors) => Hand::Rock, - (Outcome::Lost, Hand::Rock) => Hand::Scissors, - (Outcome::Lost, Hand::Paper) => Hand::Rock, - (Outcome::Lost, Hand::Scissors) => Hand::Paper, - }; - outcome as usize + me as usize - }) - .sum() -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_1() { - let input = "A Y -B X -C Z"; - - assert_eq!(part1(input), 15); - } - - #[test] - fn test_2() { - let input = "A Y -B X -C Z"; - - assert_eq!(part2(input), 12); - } -} diff --git a/src/day3.rs b/src/day3.rs deleted file mode 100644 index 7e560ef..0000000 --- a/src/day3.rs +++ /dev/null @@ -1,112 +0,0 @@ -use itertools::Itertools; -use std::collections::HashMap; -use std::collections::HashSet; -use std::fs; - -pub fn run() { - println!("Day 3:"); - let input = fs::read_to_string("./inputs/day3.txt").expect("Could not read file"); - - println!("\tPart 1: {}", part1(&input)); - println!("\tPart 2: {}", part2(&input)); -} - -fn part1(input: &str) -> usize { - let mut alphabet_map = HashMap::new(); - let alph = "abcdefghijklmnopqrstuvwxyz"; - for (value, letter) in format!("{}{}", alph, alph.to_uppercase()) - .chars() - .enumerate() - { - alphabet_map.insert(letter, value + 1); - } - - input - .split_whitespace() - .map(|line| { - let (left, right) = line.split_at(line.len() / 2); - assert!(left.len() == right.len()); - - let bag_intersection = left - .chars() - .collect::>() - .intersection(&right.chars().collect::>()) - .collect::>() - .into_iter() - .copied() - .collect::>(); - - assert!(bag_intersection.len() == 1); - - alphabet_map.get(&bag_intersection[0]).unwrap() - }) - .sum() -} - -fn part2(input: &str) -> usize { - let mut alphabet_map = HashMap::new(); - let alph = "abcdefghijklmnopqrstuvwxyz"; - for (value, letter) in format!("{}{}", alph, alph.to_uppercase()) - .chars() - .enumerate() - { - alphabet_map.insert(letter, value + 1); - } - - input - .split_whitespace() - .collect::>() - .into_iter() - .tuples() - .map(|line| { - let (left, mid, right) = line; - - let bag_intersection = left - .chars() - .collect::>() - .intersection(&right.chars().collect::>()) - .collect::>() - .into_iter() - .copied() - .collect::>() - .intersection(&mid.chars().collect::>()) - .collect::>() - .into_iter() - .copied() - .collect::>(); - - assert!(bag_intersection.len() == 1); - - alphabet_map.get(&bag_intersection[0]).unwrap() - }) - .sum() -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_1() { - let input = "vJrwpWtwJgWrhcsFMMfFFhFp -jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL -PmmdzqPrVvPwwTWBwg -wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn -ttgJtRGJQctTZtZT -CrZsJsPPZsGzwwsLwLmpwMDw"; - - assert_eq!(part1(input), 157); - } - - #[test] - fn test_2() { - let input = "vJrwpWtwJgWrhcsFMMfFFhFp -jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL -PmmdzqPrVvPwwTWBwg -wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn -ttgJtRGJQctTZtZT -CrZsJsPPZsGzwwsLwLmpwMDw"; - - assert_eq!(part2(input), 70); - } -} diff --git a/src/day4.rs b/src/day4.rs deleted file mode 100644 index 72070ba..0000000 --- a/src/day4.rs +++ /dev/null @@ -1,84 +0,0 @@ -use std::collections::HashSet; -use std::fs; - -pub fn run() { - println!("Day 4:"); - let input = fs::read_to_string("./inputs/day4.txt").expect("Could not read file"); - - println!("\tPart 1: {}", part1(&input)); - println!("\tPart 2: {}", part2(&input)); -} - -struct SectionAssignment { - left: HashSet, - right: HashSet, -} - -fn deserialize(line: &str) -> SectionAssignment { - let (left, right) = line.split_once(',').unwrap(); - let left = left - .split_once('-') - .map(|(l, r)| l.parse().unwrap()..=r.parse().unwrap()) - .unwrap() - .collect(); - let right = right - .split_once('-') - .map(|(l, r)| l.parse().unwrap()..=r.parse().unwrap()) - .unwrap() - .collect(); - - SectionAssignment { left, right } -} - -fn part1(input: &str) -> usize { - let assignments = input.split_whitespace().map(deserialize); - let mut sum = 0; - for assignment in assignments { - if assignment.left.is_subset(&assignment.right) - || assignment.right.is_subset(&assignment.left) - { - sum += 1; - } - } - sum -} - -fn part2(input: &str) -> usize { - let assignments = input.split_whitespace().map(deserialize); - let mut sum = 0; - for assignment in assignments { - if assignment.left.intersection(&assignment.right).count() >= 1 { - sum += 1; - } - } - sum -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_1() { - let input = "2-4,6-8 -2-3,4-5 -5-7,7-9 -2-8,3-7 -6-6,4-6 -2-6,4-8"; - - assert_eq!(part1(input), 2); - } - - #[test] - fn test_2() { - let input = "2-4,6-8 - 2-3,4-5 - 5-7,7-9 - 2-8,3-7 - 6-6,4-6 - 2-6,4-8"; - - assert_eq!(part2(input), 4); - } -} diff --git a/src/day5.rs b/src/day5.rs deleted file mode 100644 index 373f382..0000000 --- a/src/day5.rs +++ /dev/null @@ -1,163 +0,0 @@ -use std::collections::{HashMap, VecDeque}; -use std::fmt::format; -use std::fs; - -use itertools::Itertools; - -pub fn run() { - println!("Day 5:"); - let input = fs::read_to_string("./inputs/day5.txt").expect("Could not read file"); - - println!("\tPart 1: {}", part1(&input)); - println!("\tPart 2: {}", part2(&input)); -} - -#[derive(Debug)] -struct Command { - amount: usize, - from: usize, - to: usize, -} - -fn part1(input: &str) -> String { - let (stack_input, moves_input) = input.split_once("\n\n").unwrap(); - - let mut containers: HashMap> = HashMap::new(); - for row in stack_input.lines() { - for (column, (lbracket, container, _rbracket, _)) in - format!("{} ", row).chars().tuples().enumerate() - { - if lbracket == '[' && !container.is_whitespace() { - containers - .entry(column + 1) - .or_insert_with(VecDeque::new) - .push_back(container); - } - } - } - - let commands = moves_input.lines().map(|line| { - let (amount, from, to) = - scan_fmt!(line, "move {} from {} to {}", usize, usize, usize).unwrap(); - Command { amount, from, to } - }); - - for command in commands { - for _ in 0..command.amount { - let container = containers - .entry(command.from) - .or_insert_with(VecDeque::new) - .pop_front() - .unwrap_or(' '); - - if container != ' ' { - containers - .entry(command.to) - .or_insert_with(VecDeque::new) - .push_front(container) - } - } - } - - let mut answer = "".to_string(); - for column in 1..=containers.len() { - answer = format!( - "{}{}", - answer, - containers.get(&column).unwrap().front().unwrap() - ); - } - answer -} - -fn part2(input: &str) -> String { - let (stack_input, moves_input) = input.split_once("\n\n").unwrap(); - - let mut containers: HashMap> = HashMap::new(); - for row in stack_input.lines() { - for (column, (lbracket, container, _rbracket, _)) in - format!("{} ", row).chars().tuples().enumerate() - { - if lbracket == '[' && !container.is_whitespace() { - containers - .entry(column + 1) - .or_insert_with(VecDeque::new) - .push_back(container); - } - } - } - - let commands = moves_input.lines().map(|line| { - let (amount, from, to) = - scan_fmt!(line, "move {} from {} to {}", usize, usize, usize).unwrap(); - Command { amount, from, to } - }); - - let mut crane = VecDeque::new(); - - for command in commands { - for _ in 0..command.amount { - let container = containers - .entry(command.from) - .or_insert_with(VecDeque::new) - .pop_front() - .unwrap_or(' '); - - crane.push_back(container); - } - for _ in 0..command.amount { - let container = crane.pop_back().unwrap(); - if container != ' ' { - containers - .entry(command.to) - .or_insert_with(VecDeque::new) - .push_front(container) - } - } - } - - let mut answer = "".to_string(); - for column in 1..=containers.len() { - answer = format!( - "{}{}", - answer, - containers.get(&column).unwrap().front().unwrap() - ); - } - answer -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_1() { - let input = " [D] -[N] [C] -[Z] [M] [P] - 1 2 3 - -move 1 from 2 to 1 -move 3 from 1 to 3 -move 2 from 2 to 1 -move 1 from 1 to 2"; - - assert_eq!(part1(input), "CMZ"); - } - - #[test] - fn test_2() { - let input = " [D] -[N] [C] -[Z] [M] [P] - 1 2 3 - -move 1 from 2 to 1 -move 3 from 1 to 3 -move 2 from 2 to 1 -move 1 from 1 to 2"; - - assert_eq!(part2(input), "MCD"); - } -} diff --git a/src/main.rs b/src/main.rs index 394e11c..759b31f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,16 +1,9 @@ -#[macro_use] +// #[macro_use] extern crate scan_fmt; mod day1; -mod day2; -mod day3; -mod day4; -mod day5; + fn main() { - println!("Running Advent of Code 2022"); + println!("Running Advent of Code 2023"); day1::run(); - day2::run(); - day3::run(); - day4::run(); - day5::run(); }