From f3664d1174c6da5fe0a19ac41d0d3ce9b9df41c9 Mon Sep 17 00:00:00 2001 From: Arun Date: Wed, 21 Aug 2024 18:26:00 -0700 Subject: [PATCH 1/7] fix: Update .gitignore to ignore Python artifacts feat: Add requirements.txt file feat: Add input.txt file for day 01 of 2022 chore: Add empty main.py and test_main.py files for day 01 of 2022 feat: Add input.txt file for day 02 of 2022 chore: Add empty main.py and test_main.py files for day 02 of 2022 feat: Add input.txt file for day 03 of 2022 chore: Add empty main.py and test_main.py files for day 03 of 2022 feat: Add input.txt file for day 04 of 2022 chore: Add empty main.py and test_main.py files for day 04 of 2022 feat: Add input.txt file for day 01 of 2023 chore: Add empty main.py and test_main.py files for day 01 of 2023 feat: Add input.txt file for day 02 of 2023 chore: Add empty main.py and test_main.py files for day 02 of 2023 --- .gitignore | 5 + requirements.txt | 0 src/python/2022/day01/input.txt | 2251 +++++++++++++++++++++++++ src/python/2022/day01/main.py | 0 src/python/2022/day01/test.txt | 14 + src/python/2022/day01/test_main.py | 0 src/python/2022/day02/input.txt | 2500 ++++++++++++++++++++++++++++ src/python/2022/day02/main.py | 0 src/python/2022/day02/test.txt | 3 + src/python/2022/day02/test_main.py | 0 src/python/2022/day03/input.txt | 300 ++++ src/python/2022/day03/main.py | 0 src/python/2022/day03/test.txt | 6 + src/python/2022/day03/test_main.py | 0 src/python/2022/day04/input.txt | 1000 +++++++++++ src/python/2022/day04/main.py | 0 src/python/2022/day04/test.txt | 6 + src/python/2022/day04/test_main.py | 0 src/python/2023/day01/input.txt | 1000 +++++++++++ src/python/2023/day01/main.py | 0 src/python/2023/day01/test_main.py | 0 src/python/2023/day02/input.txt | 100 ++ src/python/2023/day02/main.py | 0 src/python/2023/day02/test_main.py | 0 24 files changed, 7185 insertions(+) create mode 100644 requirements.txt create mode 100644 src/python/2022/day01/input.txt create mode 100644 src/python/2022/day01/main.py create mode 100644 src/python/2022/day01/test.txt create mode 100644 src/python/2022/day01/test_main.py create mode 100644 src/python/2022/day02/input.txt create mode 100644 src/python/2022/day02/main.py create mode 100644 src/python/2022/day02/test.txt create mode 100644 src/python/2022/day02/test_main.py create mode 100644 src/python/2022/day03/input.txt create mode 100644 src/python/2022/day03/main.py create mode 100644 src/python/2022/day03/test.txt create mode 100644 src/python/2022/day03/test_main.py create mode 100644 src/python/2022/day04/input.txt create mode 100644 src/python/2022/day04/main.py create mode 100644 src/python/2022/day04/test.txt create mode 100644 src/python/2022/day04/test_main.py create mode 100644 src/python/2023/day01/input.txt create mode 100644 src/python/2023/day01/main.py create mode 100644 src/python/2023/day01/test_main.py create mode 100644 src/python/2023/day02/input.txt create mode 100644 src/python/2023/day02/main.py create mode 100644 src/python/2023/day02/test_main.py diff --git a/.gitignore b/.gitignore index dd02f66..a8006c8 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,8 @@ go.work # Misc .DS_Store .aider* + +# Python +*.pyc +__pycache__/ +.pytest_cache/ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2022/day01/input.txt b/src/python/2022/day01/input.txt new file mode 100644 index 0000000..2e6702f --- /dev/null +++ b/src/python/2022/day01/input.txt @@ -0,0 +1,2251 @@ +18313 +2404 +10479 + +7011 +10279 +1496 +10342 +8918 +3162 +4525 +4368 + +17242 + +10920 +14072 +9754 +4435 +9396 + +5915 +2602 +4032 +3303 +2685 +1856 +1334 +4865 +6385 +1733 +5328 + +8899 +5482 +3195 +7837 +8986 +13794 + +25121 +22211 +21257 + +6360 +4007 +5124 +2266 +6943 +6966 +3887 +3427 +1255 +5266 +6119 +2841 + +6167 +3883 +2776 +5894 +2013 +6930 +6613 +4637 +5259 +2347 +3550 +5639 +5117 + +4530 +5961 +5956 +2503 +5060 +4770 +5240 +4123 +4089 +6794 +3333 +5244 +4415 + +1733 +1209 +4458 +1223 +3859 +7728 +9793 +8350 + +2278 +3241 +4668 +1836 +3669 +2996 +1772 +5016 +6294 +6367 +1080 +5964 +5547 + +4793 +13744 +9478 +7979 +1490 +12490 + +6770 +7282 +2059 +5242 +13237 +9365 + +2230 +6498 +1352 +3846 +3863 +6205 +5803 +2646 +4188 +4431 +6380 +1526 +2620 +4438 + +24331 +23578 + +4199 +5126 +5725 +1123 +2415 +5427 +5789 +4856 +2610 +4833 +3398 +4239 +1432 +5122 + +5013 +4939 +11760 +8419 +5706 +3765 +10182 + +11795 +9688 +1712 +2091 +9651 +13022 + +10393 +11862 +1672 +5431 +6812 +1866 +5599 + +2036 +6561 +4097 +3467 +4739 +7656 +3252 +4322 +5068 +2345 +4155 + +3090 +1228 +1270 +8407 +8118 +4996 +7157 +3944 +6230 +2728 + +5669 +2113 +3076 +1290 +7673 +1022 +5805 +5128 +7912 +7862 +4955 + +20640 + +4131 +4874 +5220 +9947 +9739 +1662 +9418 +9684 + +4875 +3073 +1151 +11911 +10310 +10793 +10307 + +6979 +4265 +8322 +3518 +1855 +4912 +5481 +7124 +4664 + +19975 +16112 +19450 +7231 + +3909 +4743 +3794 +4448 +3200 +3447 +3331 +7011 +3345 +3935 +6750 + +3900 +14850 +4890 +9625 +4832 + +23682 +1375 + +7463 +8112 +10624 +1105 +6625 +5157 +5839 +1019 + +19089 +36719 + +5372 +7085 +8536 +8717 +6255 +5961 +3198 +7729 +3055 + +4406 +2263 +6686 +1458 +2377 +2740 +1284 +3045 +7121 +3070 + +19161 +10515 +1027 + +7782 +1703 +1864 +3611 +1039 +2394 +3472 +6964 +5824 +8011 +3341 + +56690 + +5107 +1876 +4973 +5485 +4325 +6079 +3187 +3565 +2875 +7137 +3887 +6763 + +2633 +2151 +1105 +2400 +5338 +3382 +1330 +3945 +6556 +1670 +5526 +4281 +2168 + +5382 +2347 +4225 +1905 +4672 +6706 +5747 +5808 +1159 +4878 +5923 + +11148 +8722 +3896 +15697 +3499 + +46749 + +13315 +20966 + +1625 +6338 +7882 +1505 +4226 +9948 +6438 +6012 + +1003 +10033 +5066 +7756 +10151 +10719 +5299 +5629 + +4466 +6290 +7220 +3657 +8261 +7348 +8525 +4531 +4892 +7833 + +24723 +7817 + +4234 +4428 +5810 +2091 +4301 +1378 +2342 +3872 +1167 +2073 +6867 +7026 + +7005 +10018 +3954 +4497 +4951 +1283 +5383 + +4152 +4390 +8731 +8521 +5415 +1029 +8200 +3769 + +7224 +12281 +8337 +8969 +13938 +9651 + +10923 +14358 +8896 +8401 +7073 + +3934 +4424 +4538 +4371 +2335 +6363 +1264 +4331 +5107 +2270 +3109 +2547 +2304 +5911 + +4600 +5674 +2620 +1846 +3804 +2387 +4094 +3648 +4241 +5593 +2974 +2101 +1621 +3939 + +7429 +9425 +9653 +5835 + +13414 +4517 +15783 +3867 + +2287 +1019 +11604 +11910 +2591 +2468 +10543 + +13050 +1396 +13959 +6883 + +6303 +2889 +4047 +3954 +2245 +6672 +4574 +5731 +5879 +2837 +5859 +4812 +6785 + +10290 +10131 +5605 +3321 +2122 +6331 +9107 +7937 + +1786 +1362 +7409 +2093 +3901 +1306 +2089 +1558 +4163 +6118 +6270 +1929 + +4224 +3864 +3922 +3609 +2496 +2246 +5397 +1535 +5499 +4932 +3684 +1348 +3437 +3665 + +2973 +4506 +3971 +2511 +4563 +3168 +2687 +6249 +2593 +6470 +4100 +6309 +1316 +4362 + +14966 +2940 +11485 + +6675 +16873 +5695 +14706 + +3953 + +5620 +1678 +3630 +5015 +3277 +4957 +5288 +5555 +2860 +1750 +2795 +6170 +6308 + +3671 +1354 +4018 +4730 +4070 +1685 +4478 +1918 +5532 +3970 +3751 +4890 +4277 +2737 +5535 + +14799 +8129 + +5254 +2065 +1282 +2407 +5174 +4549 +4326 +1201 +3372 +3906 +6234 +4937 +4234 +2149 + +5194 +2519 +3555 +6929 +4367 +4547 + +1024 +37240 + +3693 +6526 +2679 +5434 +7924 +2974 +1754 +4287 +4744 +4187 +1348 + +6598 +5963 +6035 +5404 +3270 +1250 +5947 +3037 +3927 +3702 +5255 +1640 +6476 + +4499 +5207 +1991 +4613 +3088 +5024 +4737 +5160 +2450 +3582 +2605 +2573 +1100 +3732 + +1633 +5663 +2415 +4039 +4957 +2697 +5428 +5050 +3979 +3428 +4563 +3770 +3635 +4012 +4773 + +7377 +6189 +10812 +6905 +11196 +5394 +10135 + +10008 +2868 +2630 +8542 +8897 +2718 +5831 +4460 + +1303 +4771 +1574 +2960 +5070 +1596 +5530 +4177 +4210 +6465 +4179 +1000 +4460 +6173 + +6654 +1378 +2148 +8704 +6875 +4511 +7540 +6078 +5585 +4030 + +4333 +5953 +5095 +4782 +3651 +4673 +3267 +6389 +2358 +2120 +3684 +3034 +3420 +1322 + +8922 +9535 +16357 +16552 + +1378 +1039 +1262 +2067 +6491 +2776 +1352 +4914 +5832 +1369 +6105 +1384 +2474 +1704 + +6256 +2538 +4701 +4090 +4077 +5333 +2777 +4082 +4640 +2542 +6356 +3065 +4855 +2535 + +6510 +3709 +4197 +4344 +5906 +6852 +7398 +3578 +3308 +1239 +3817 +5676 + +5441 +3368 +1752 +2629 +1923 +4711 +1667 +3701 +1350 +4764 +6439 +2341 +4052 + +6407 +5327 +1229 +4834 +6008 +1302 +5595 +5260 +3680 +3220 +3154 +3353 +1942 +1740 + +2356 +1908 +3058 +4668 +3641 +1663 +4199 +2190 +6067 +3923 +3288 +1978 +6110 +5330 + +7020 +2487 +6521 +1084 +6582 +1784 +7861 +2759 +8077 +2961 + +68314 + +2160 +15170 +2267 +3867 +6851 + +8543 +4118 +22260 + +5313 +3525 +1483 +3613 +5798 +1472 +4020 +5607 +4391 +2502 +5512 +5535 +3755 +5590 +3668 + +25502 +7623 +15508 + +2138 +1227 +11355 +1288 +7062 +5391 +3994 + +7738 +3667 +5000 +1691 +7322 +8054 +4540 +2353 +6870 +8475 + +4289 +6415 +1251 +4933 +7224 +2608 +2320 +4432 +4637 +1395 +6575 +5581 + +6841 +1161 +5617 +12505 +6274 +9171 + +13548 +20154 +20682 + +2843 +7363 +5967 +15256 +16032 + +7940 +6992 +3940 +3100 +1334 +1389 +5182 +6666 +4030 +6116 +3036 + +35234 +19273 + +7268 +10689 + +1846 +4211 +1504 +3780 +3789 +2017 +6279 +5001 +2341 +6350 +5169 +1966 +2640 +5574 + +2125 +8432 +8339 +8130 +3506 +6115 +4684 +9548 +3300 + +6848 +1274 +6463 +12007 +10719 +10590 +5616 + +4471 +1304 +1635 +5960 +3702 +1747 +3658 +2446 +4724 +5675 +1739 +3170 +3556 + +9134 +12963 +6987 + +5728 +7877 +6499 +5909 +1119 +3090 +5033 +4884 +3151 + +10675 +8053 +9237 +14206 +11710 + +49154 + +5999 +3861 +1836 +3451 +3673 +5193 +2680 +6068 +1743 +5600 +4793 +6211 +2967 +1021 + +24720 + +8749 +11674 +4039 +5341 +14256 + +4553 +3893 +1528 +5490 +2417 +2392 +4023 +2430 +4649 +3163 +3673 +1378 +1957 +1055 + +10777 +4742 +16291 +16430 +12295 + +6502 +6052 +2944 +8166 +7567 +3580 +5957 +4691 +1623 +3269 + +1013 +5809 +16958 +4994 + +36633 + +8535 +13662 +24448 + +6651 +7911 + +19793 +2436 + +4671 +4420 +5322 +1215 +4952 +1193 +2387 +2799 +2748 +1343 +4123 +1715 +2978 +2148 +6050 + +2036 +4670 +5444 +4584 +4220 +6061 +2834 +2319 +1370 +4572 +4249 +4144 +3236 +3812 +3487 + +55521 + +3845 +1473 +6794 +4597 +5566 +2735 +2660 +6402 +2515 +3439 + +3772 +12809 +5790 +10817 +9729 + +1788 +2476 +4333 +2940 +7232 +3582 +8604 +3742 +7644 +4823 + +6128 +6737 +5712 +4168 +4465 +2183 +1217 +2257 +6326 +5966 +5699 +2985 +2290 + +5190 +4155 +10754 +9830 +4507 +2165 +7208 +4409 + +4256 +4158 +1941 +3124 +5852 +3376 +6411 +5508 +5072 +2374 +4189 +4032 +4957 +2050 + +2737 +6772 +4468 +2072 +1214 +6231 +7077 +6100 +6990 +5676 + +7474 +4524 +8778 +7129 +8151 +7975 +7277 +8672 +8097 +3847 + +29172 +7125 + +50466 + +14169 +22037 + +4483 +1801 +4863 +1920 +2776 +1407 +3998 +1142 +2664 +3920 +5708 +5481 +5701 +5159 +3654 + +1960 +4419 +5933 +4941 +4511 +1120 +5179 +3447 +5285 +3675 +1333 +1418 +4595 +4140 +2353 + +1995 +5588 +1443 +5681 +3439 +6178 +5795 +5144 +2788 +6232 +2620 +4665 +5624 + +37076 +7362 + +3885 +8268 +10947 +9084 +3016 +10383 +9594 + +16223 +16281 +5352 +11764 +10192 + +5248 +3151 +7341 +8125 +10671 +13510 + +1759 +7635 +7021 +3620 +7640 +4967 +3662 +3840 +7613 +3948 +1820 + +4010 +3936 +7375 +8060 +12396 +8236 + +5033 +2739 +4296 +5564 +6502 +3501 +5637 +5826 +5862 +5579 +6416 +2277 +2471 + +4325 +2621 +1600 +4290 +15494 + +6834 +15459 +10418 +12560 +6382 + +8598 +1089 +11386 +9538 +6933 +3943 + +14268 +7172 +7680 +15936 + +5695 + +69893 + +7293 +4968 +7862 +3210 +1924 +4742 +3519 +1095 +5922 +6335 +2405 + +4233 +3819 +7282 +10018 +3820 +5380 +9377 +8889 + +13183 +9964 +4473 +12469 +9862 +6567 + +4903 +1198 +5238 +1582 +1820 +6080 +10178 + +4554 +6315 +2818 +5956 +2491 +5291 +5056 +3699 +2843 +1243 +5430 +2175 + +31126 + +5392 +1590 +3738 +2507 +2817 +6963 +6140 +4606 +2814 +7044 +1282 + +12230 +1430 +4283 +11385 +2557 +6868 + +3871 +2558 +1957 +4058 +1935 +5738 +1513 +5744 +4130 +3321 +3760 +4155 +1063 +3694 + +67474 + +2215 +8962 +5442 +7390 +6223 +3648 +2390 +5464 + +5125 +3842 +2131 +3414 +6085 +3353 +3660 +1593 +4395 +2664 +4987 +2352 +5693 +1391 +1661 + +6017 +5013 +5243 +3734 +3116 +1541 +6456 +2806 +6143 +1344 +5977 +5422 +2326 +2164 + +33377 + +5950 +5168 +1348 +3144 +5760 +6974 +8537 +6664 +1248 + +9040 +4510 +5642 +8547 +9407 +5058 +6158 +7726 +6731 + +4182 +5246 +2686 +4196 +3809 +3253 +3260 +3162 +2703 +6373 +6136 +2904 +6356 +5038 + +3368 +11040 +5793 +13747 +10478 +5166 + +11697 +10072 +8434 +5732 + +5244 +6374 +1877 +2902 +4263 +4835 +2283 +2086 +6044 +6343 +6232 +2849 +3694 +6392 + +13062 +12405 +12869 +16366 +1652 + +8036 +1720 +7759 +13661 +1370 +3505 + +5885 +1708 +10440 +7438 +11480 +4904 +8387 + +4788 +10326 +6143 +11063 +9649 +9384 + +5849 +1935 +7411 +4694 +4435 +1321 +5301 +2096 +2422 +5484 +6560 +3070 + +5008 +5405 +9444 +6355 +13150 +12686 + +1618 +5831 +1957 +1288 +1382 +2946 +1926 +1828 +1646 +4823 +3637 +1309 +5727 +4450 + +66234 + +4016 +4075 +4551 +5869 +2866 +2461 +1055 +4712 +7220 +1973 +4650 + +2387 +1102 +4558 +2290 +1969 +3624 +2383 +4059 +4877 +3439 +6891 +3819 +5824 + +3440 +11447 +5522 +16700 + +8373 +1356 +7249 +8484 +6767 +7990 +8778 +2235 +5995 +8511 + +5466 +6088 +2583 +5235 +6093 +3089 +1570 +6112 +3668 +2187 +5582 +1380 +4800 +5529 +2987 + +12323 +4775 +11105 +3805 +7671 +6737 + +3197 +1256 +4539 +6383 +1476 +2134 +6785 +7337 +1229 +4965 +5055 + +13128 +8149 +4426 +8087 +2873 + +1695 +8214 +7147 +7216 +1070 +2801 +5033 +8103 +7750 +5749 + +4082 +1630 +1958 +6113 +4486 +2111 +1486 +6451 +5630 +5682 +4558 + +10475 +30751 + +5397 +5067 +1178 +2106 +5557 +4847 +1661 +3469 +4908 +2590 +4686 +2118 +4495 +2994 + +12590 +12902 +8742 +15433 +2777 + +7451 +8722 +7302 +2269 +9592 +6162 + +1907 +6741 +4442 +6526 +8289 +7479 +9481 +1642 +4982 + +2001 +12803 +7255 +13545 +10713 + +14621 +25826 +20771 + +1055 +8331 +7422 +8400 +2208 +6688 +8425 +6883 +4192 +4725 + +9970 +10127 +2777 +3933 +9274 +3791 +9906 + +2779 +1118 +2823 +1563 +9917 +6065 +1863 +1885 + +5053 +1922 +5356 +8266 +7335 +4260 +8730 +7307 +3140 + +4340 +1080 +2120 +5498 +6769 +6170 +2944 +4677 +1155 +4676 +2420 +4945 +5941 + +14838 +3844 +19712 +16283 + +1906 +3672 +4274 +6550 +6072 +5299 +4493 +3348 +2804 +3747 +3208 +5359 + +59156 + +6128 +5959 +12262 +12166 +4945 +9635 + +8095 +1757 +13656 +7215 +2545 +6298 + +7873 +6515 +6407 +4182 +4911 +3966 +1942 +7281 +5082 +7446 +5545 + +3876 +5618 +4226 +4445 +3915 +1250 +5469 +3872 +5157 +5539 +2894 +1357 +1419 +4214 +3009 + +3364 +6618 +1432 +7583 +6192 +2529 +2076 +6231 +7333 + +5028 +2989 +3801 +1895 +2367 +5747 +2724 +1304 +3085 +2524 +1295 +1022 +2613 +4239 +4413 + +3418 +23885 + +3895 +3302 +1097 +3150 +1379 +1815 +1484 +2074 +2616 +3395 +6100 +5488 +1006 +3046 + +1951 +8238 +6010 +3652 +6640 +7990 +3900 +8191 + +6978 +3025 +1966 +7152 +5963 +7326 +1866 +2507 +4764 +1434 +3194 +3326 + +3081 +6828 +6495 +3257 +4236 +4938 +7090 +2826 +6614 +1341 +7098 +6771 + +18885 +3826 +13103 +1193 + +16653 +13676 +19294 +13878 + +7460 +4327 +7335 +4898 +6259 +7941 +5940 +5603 +3095 +5674 +2886 + +8680 +4662 +8044 +8210 +5886 +9057 +7917 +3258 +5995 + +2800 + +31568 + +5423 +33845 + +8988 +13780 +9059 +14650 +9824 + +10327 +13747 +10937 +4594 +6882 + +2696 +2860 +1070 +1662 +6098 +2369 +2821 +3603 +3593 +5347 +4871 +4967 +2211 +3330 +5226 + +8520 +1896 +1906 +5172 +6845 +1565 +6366 +5509 +5068 + +4047 +4661 +2384 +1904 +4705 +5402 +6650 +6120 +4834 +5897 +6492 +6200 +5868 + +4130 +1530 +9654 +9306 +8529 +2508 +8918 +4040 +3717 + +3245 +4195 +11698 +10053 +6635 +4749 + +12283 +11894 +8168 + +6418 +7151 +4827 +2391 +8643 +2315 +8664 +3547 +6900 +4418 + +65083 + +5164 +1748 +8739 +4945 +2604 +5493 +5310 +3763 +6011 +4091 + +4342 +2566 +6021 +4067 +1385 +2486 +4444 +1713 +3380 +4253 +4720 +1602 +4814 +3234 +1739 + +13603 +22634 + +7845 + +4139 +8832 +7441 +1967 +6707 +7981 +3416 +10633 + +4808 +9206 +6975 +4257 +6024 +5176 + +10639 +9329 +5010 +7215 +4522 +8168 +9936 +9792 + +4326 +4601 +6508 +2501 +3866 +3060 +2188 +6429 +1014 +1383 +6937 +5313 +4392 + +8977 +2420 +1013 +4267 +9689 +2955 +5583 +2947 +5570 + +5067 +1139 +4531 +3001 +7698 +2028 +8025 +1424 +6837 +1357 +2186 + +5433 +19739 +5321 + +5019 +4714 +2688 +5290 +1593 +1320 +1703 +2978 +1476 +3034 +3538 +2825 +5819 +5547 + +6441 +1104 +3128 +7940 +5977 +8434 +4493 +2139 +1617 +4933 + +3219 +3273 +12383 +6076 +11222 +5523 + +8875 +1005 +4958 +3234 +3196 +5527 +9875 +7306 + +1591 +6031 +2124 +1224 +7008 +2559 +4540 +7670 + +5927 +4323 +5630 +1067 +5482 +1939 +5428 +3416 +3494 +2469 +4287 +5538 +1190 +4234 +1734 + +10808 +15234 +14069 +10497 +7697 \ No newline at end of file diff --git a/src/python/2022/day01/main.py b/src/python/2022/day01/main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2022/day01/test.txt b/src/python/2022/day01/test.txt new file mode 100644 index 0000000..444e241 --- /dev/null +++ b/src/python/2022/day01/test.txt @@ -0,0 +1,14 @@ +1000 +2000 +3000 + +4000 + +5000 +6000 + +7000 +8000 +9000 + +10000 \ No newline at end of file diff --git a/src/python/2022/day01/test_main.py b/src/python/2022/day01/test_main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2022/day02/input.txt b/src/python/2022/day02/input.txt new file mode 100644 index 0000000..0261bf1 --- /dev/null +++ b/src/python/2022/day02/input.txt @@ -0,0 +1,2500 @@ +A X +B Y +B Y +C X +B X +C Z +C Z +A Z +A Z +B Y +C Z +A Z +C Z +C X +B Z +C Z +C Z +C Z +B Y +C Z +C Z +C Z +A Z +A Y +B Z +B Z +A Y +B X +C Z +C Z +A Z +A Z +C Z +A Y +A X +A Z +A Z +B X +B Z +B X +A Z +B X +B Z +B Z +C Z +A Z +A Z +A Z +C Z +B Z +A Z +A Y +A Y +B Y +B Y +B Z +A Z +B Z +A Z +B Z +C Z +B Y +A Z +B Y +A Z +A Z +A Z +C Z +A Y +A Z +C Z +C Z +A Z +A X +B Y +C Z +A Z +A Z +C X +C Z +B X +C X +B X +A Z +C Z +C Z +A Y +A Z +B X +C X +A Z +A Z +C Z +C Z +B Y +C Z +A Z +A Z +A Y +B X +B Y +A Z +C Z +A Z +A Z +A Z +C X +C Y +C Z +B X +B X +B X +A Z +A X +C Z +A Z +B Y +B X +A Y +B X +A Z +C Z +C Z +A X +A Z +C Z +B Z +B X +A Z +C Z +C Z +C X +C Z +C Z +C Z +A Y +B X +A Y +A Z +B Z +B Z +C Z +B Z +B Z +B X +A Z +C Z +A Z +A Y +C Z +A Z +C X +A Z +A Z +A Y +A Y +A Z +C Z +B Y +A X +A Z +A Y +C Z +A Z +B X +A Z +B Y +A X +C X +B X +A Y +A Z +B Z +A Z +A Z +B X +A X +C Z +B X +B Y +A Z +B X +C Z +A Z +C Z +B X +A Z +A Y +A Z +A Z +B X +B X +B Z +A Z +B Y +C Z +B Z +C Z +C Z +B X +B X +A Z +C Z +C Z +A X +B X +B X +A Y +C Z +A Z +A Y +B X +A Z +A Z +B X +A Z +C Z +B X +B Z +B Y +B X +A Y +C Z +C Z +C Z +A X +C Z +A Z +C Z +C Y +C Z +C Z +C Z +B X +A Z +B X +B Z +A Z +C Z +B Y +B Y +B Z +C Z +C Z +C Z +B Z +B Y +A Z +B X +B Z +C Z +A Z +B Y +B Y +A X +C Z +B Y +A Y +B Y +B X +B Y +B Y +A Y +B Y +C X +A Y +A Y +C Z +A Z +A Y +C Z +A Z +A Z +C Z +C Z +C Z +B X +B Y +A Y +A Y +B Z +A Z +B Y +B X +B Y +A Y +A Y +A Z +B Z +C Z +C Z +C Z +A Z +C Z +A Z +A Z +A Z +A Z +C Z +B Y +C Z +B X +C Z +A X +A Z +B X +C Y +C X +A X +A X +A Z +A Z +B X +A Y +B Z +A Z +B Z +A Z +C Z +C X +C Z +C Z +C X +C Z +C Z +C X +C Z +B Z +A Z +B Y +A Z +C Z +B X +C Z +B Z +B Y +A Z +B Y +A Y +B X +B Z +B Z +A Z +B Z +C Z +C Z +A Y +A Z +A X +A Y +C Z +B X +A Z +C X +A Z +A Z +A Z +A Z +C Y +B Y +B Y +A X +C Z +A X +A Z +A Y +C X +A Y +A Y +A Z +C X +C Z +B Z +B X +A Z +C Z +C Z +B Z +B X +C Z +C Z +A Y +B Z +A X +B Y +A Z +C X +B X +C Z +B Y +A X +A Z +B Y +A Y +A Z +B Z +A Y +B Y +A Z +B Y +B X +B Z +A Z +B Y +B Z +A Y +A Z +C Z +B X +C Z +B X +C Z +B Z +C Z +C Z +B Z +A Y +A Y +C Z +B Z +A Z +A X +C Z +A Z +C Z +A Z +A X +A Z +A Z +A Y +B Z +B X +C X +B Y +C Z +B X +B Z +B X +A Z +A Z +A Z +B Z +B Y +A Z +B Y +C Z +B Z +A Z +A Y +C Z +A Z +B Y +B X +B Y +B X +C Z +C Y +A Z +C Z +C Z +A Z +C X +B Z +A Y +B Y +B Y +B Y +C Z +B Z +A Z +B Y +A Z +A Z +C Z +B Y +B Y +A X +A Z +A Z +C Z +A Z +C Z +C Z +A X +B Z +A Z +A Z +C Z +C Z +B Y +B Y +A Z +A Y +A Z +B Y +B Z +A Y +B Z +A Z +A Z +A Y +C Z +A Y +C Z +B X +A Z +A Z +C Z +A Y +C Z +A Z +A Y +A Y +C Z +A Z +A Y +B X +A Y +B X +A Z +A Z +A Y +B Y +B Y +B X +C Z +C Z +B Y +B X +C Z +B Y +C Z +B Y +B X +C Z +A Y +B Z +C X +A Y +C Z +C Z +C X +A Y +A Z +B X +C Z +A Z +B Y +C Z +B X +B Z +C Z +C Z +C Z +A Z +B X +C Z +A Z +A Y +B Y +C Z +A X +C Z +A Y +C X +A Y +B Y +C Z +B X +A Z +C Z +C Z +B Z +B Y +A Z +A Z +A Y +C Z +A Y +A X +A Y +B Z +C Z +C Z +A Z +A Z +C Z +A Y +C Z +C Z +B Z +C Z +C Z +A Z +C Z +B Z +C Z +B X +A Y +A Y +A Z +C X +C Z +C Y +C Z +C Z +C Z +B Z +A Z +C Z +C Z +A Y +B Y +B X +B X +C Z +A Z +B Y +C Z +C Z +B X +C Z +C Z +A Y +A Y +A Z +A Y +B Y +C Z +A X +A Y +C Z +A Z +C Z +C Z +A X +A Z +C Z +B Z +A Z +A Z +B Y +B X +A Z +A Z +B Z +C Z +C Z +A Y +A Z +B Z +B Z +C Z +B Z +A Y +B X +A Z +B X +C Z +A Z +A Y +C Z +C Z +A Z +A Z +A Z +A Z +A Z +B X +C Z +C Z +C Z +A Z +A Z +A Z +A Z +B X +C Z +B X +C Z +A Z +C Z +A X +A Y +A Z +C Z +B Y +C Z +C Z +B Z +C Z +B X +C Z +B X +A Z +A Z +B Y +B X +C Z +C Z +C Z +C Y +C X +B Y +B Y +C Z +A Z +A Z +C Y +C Z +B Y +C X +A Z +B X +A Z +C Z +C Z +A Z +C X +A Z +B Z +B Y +A X +C Z +A Z +B X +A Z +B Y +C Z +B X +C Z +B Y +C Z +A X +C Z +A Z +C Z +A Y +A Y +C Z +C Z +B X +B Z +A Z +C Z +A Z +C Z +A Y +B X +C Z +A Z +B X +C Z +C Z +B Y +C Z +C Z +C Y +B Y +B X +C Z +B Y +A Z +A Z +B X +B Y +B Y +B Y +B Y +B Z +C Z +C Z +A Z +C Z +C X +C Z +B Z +C X +C X +A Z +A Z +B Y +B Z +B Y +C Z +A Y +A Z +B Y +B Y +B X +A Z +A Z +A Z +C Z +C Z +C Z +B Z +A X +A Z +A Y +C Z +A Z +A Z +B Z +B Y +B Y +A X +C Z +C Z +B X +A Z +B Y +A Z +B Z +A Z +C Z +C X +A Y +A Z +C Z +C Z +C Z +A Z +C Z +C Z +B Y +A Z +A Z +A Z +A Y +C Z +A Z +C Z +B Z +A Z +C Z +C X +B Z +C X +B X +C Z +B Z +A Y +C Z +C Z +B X +B Y +B Y +A Z +B X +A Y +A Y +A Z +B Z +C Z +C Z +B Z +A Z +C Z +B Y +C X +B Z +C Z +B Z +C Y +C Z +A Y +A Z +C Z +A Z +A Z +C Z +C Z +C Z +B Z +A Z +C Z +C X +A Z +A Z +B X +B Y +C Z +A Y +A Z +C Z +B Z +C Z +A Y +A Y +C Z +A Z +A Z +B X +A Y +B Y +C Z +C Z +B Y +A Z +A Y +C X +C Z +C Z +A Z +C Z +A Y +C Z +A Z +A Z +C Z +A Z +A X +C Z +C Z +A Z +B Z +B Z +B X +A Z +B X +A Y +A Z +C Z +C Z +A Y +B Z +C Z +A Z +A Z +C X +B Z +B Y +B Y +A Y +B X +B X +C Z +B X +A Z +B X +A Z +C Z +C Z +A Z +B Y +C Z +C X +C Z +C Z +A Z +B X +C Z +C Z +A Y +C Z +C Z +B X +B X +B X +A Z +B Y +C Z +A Z +C Z +C Z +B Y +C Z +A Z +C Z +B Y +B Z +C Z +C Z +C X +C Z +B Z +C Z +B Y +B X +A Z +A Y +B X +A Y +B Y +A Z +C Z +C Z +C Z +B X +C Z +B X +A Z +B X +B Y +A Z +C Z +C Z +C Z +A Y +B Y +A Y +C Z +A Z +C Z +C Z +A Z +A Y +C Z +B X +A Y +A Z +C Z +B Y +C Z +A Z +C Z +B Y +C Z +C Z +B Y +C Z +C Z +B X +C Z +B Y +C Z +B Y +A Z +C Z +B Y +A Z +C Z +C Z +B Y +B X +B Z +A Z +A Y +A Z +A Y +C Z +C Z +B X +C Z +B Y +C Z +C X +C Z +A Y +A Z +C Z +C Z +C Z +A Z +B Y +C Z +C Z +A Z +B Y +C Z +A Y +B Z +B X +A Y +B Y +C Z +A Y +C Z +B Y +B Y +C Z +C Z +B Y +B X +C Z +B X +B Z +B Y +C Z +C Z +C Z +A Z +A X +A Z +B Z +A Z +C Z +A Z +C Z +C Z +A Z +A Z +B Z +C Z +C Z +C Z +A Z +B Y +A Z +A Y +C Z +B X +B X +A Y +C Z +C Z +B X +B Z +C X +B X +B Y +A Z +A Y +A Z +C Z +B X +C Z +B Z +C Z +A Y +C Z +A Y +C Z +B Y +B Z +C Z +C Z +C Z +C Z +C Z +A Z +B Y +C Z +C X +B Y +C X +B Y +B Z +B Y +A Z +A Z +B X +C Y +A Z +C Z +B X +B X +A Z +A Z +B Y +C Z +B Y +B Z +A Y +A Z +C Z +C Z +B X +A Z +A Z +A Z +C Z +C X +C Z +C Z +C Z +C Z +A Z +B Y +C Z +C Z +C Z +B Z +C Z +B X +C Z +A Z +A Z +C Z +C Y +B Y +A Z +A Y +B Z +A Y +B Y +C Z +A Y +C Z +A Z +C Z +B X +C Z +A Z +A Z +B Z +A Z +B Z +A Z +B Y +C Z +B Z +B Y +C Z +A Z +A Z +B X +B X +A Y +A Z +B Y +A Y +A Z +C Z +A X +C Z +A Z +A Z +C Z +A Z +B X +A Z +A Y +A Y +B Y +A Z +A Z +A Z +B Y +B Y +A Z +A Z +C Z +C Z +A Y +B X +B X +C Z +A Y +C Z +C Z +C Z +A Y +C Z +C X +C Z +B Y +A Z +B Y +A Z +C Z +A Y +C Z +A Y +B Z +B X +B Y +B X +B Y +B X +A Y +C Z +C Z +B Z +C Z +C X +B X +A X +A Z +A Z +B Y +C Z +C Z +B Y +C Z +C Z +B Y +A Z +B Z +C X +C Z +C Z +B Y +C X +C Z +B Z +A Z +C Z +B X +A Z +C Z +A Z +C Z +B X +B Z +C Z +C Z +C Z +A Z +B Y +A Y +A Z +C Z +C Z +C Z +B Y +A Z +C Z +C Z +A Z +B Z +B Y +C Z +A Y +A Z +A Z +C Z +C Z +C Z +C Z +A Z +C Z +C Z +A Y +A Y +A Z +C Z +A Z +A Z +B X +A Y +A Z +A Y +C Z +B Z +A Y +A Z +B X +C Z +A Z +A Z +A Y +B Y +C Z +C Z +A Z +B X +A Y +A Z +C Z +C Z +B Y +C Z +A Z +B Y +C Z +C Z +B Y +C X +A Z +C Z +C Z +C Z +C Z +A Z +B Y +A Y +B Y +B Z +C Z +A Z +B Z +C Z +A X +C Z +C X +A Z +A Z +A X +A Z +A Z +A Z +A Z +B X +A Z +A Z +A Z +C Z +C Z +C Z +C Z +A Z +A Y +B X +C Z +B Y +A Y +A Z +C Z +C Z +C Z +B Y +A Z +B Z +C Z +B X +B Z +B Z +B Y +C Z +C X +B Y +A Y +C X +C Z +C Z +B Y +A Z +C Z +A Z +A Z +C Z +C Z +C Z +C Z +B Z +C Z +B X +C Z +B X +B Z +A Z +B Y +C Z +A Z +C Z +A Z +A Y +A Z +C Z +B X +C Z +C Z +A Z +A Z +C Z +C Z +A Z +C Z +A Y +C Z +C Z +A Z +A X +A Z +C Z +A Z +C Z +C Z +A Z +B X +C Z +C Z +C X +A Z +A Z +A X +B X +C Z +C Z +A Z +B X +C X +A Z +C Z +B Y +C Z +A Z +C Z +A Y +A Z +C Z +C Z +B X +A Z +B Y +A Z +C Z +C X +B Z +C Z +A X +A Y +C Z +C Z +C X +B Z +A Z +A Z +B Z +A Y +C X +A Z +C Z +A Z +C Z +A Z +A Z +A Z +C Z +A Z +C Z +B X +A Y +A Z +C Z +B Y +C Z +A Y +C Z +C Z +C Z +C Z +A Z +A Z +B Z +C Z +A Y +C X +C Z +C Y +B Y +C X +A Y +C Z +C Z +B Z +B Y +B Z +A Z +B Y +C Z +C Z +B X +B Y +B Z +A Z +A Z +C Z +B X +A Z +B Y +C Z +C Z +B X +C Z +A X +C Z +B X +A Y +A Z +B Y +C Z +C Z +A Y +A Z +C Z +C Z +A Z +C Z +C Z +C Z +B X +C Z +B Y +B Y +C Z +B Z +C Z +C X +C Z +B X +A Z +B Z +B Z +B Z +C Z +A X +C Z +B X +A Z +A Z +A Z +A Y +C Z +C Z +C Z +C X +A Y +A Z +A Z +C Z +C Z +A Z +B X +C Z +B Y +A X +C X +B Y +B Y +A Y +C X +C Z +B X +A Z +A Z +B Z +A Y +C Z +C Z +A Z +C Z +C Z +A Y +C Z +C Z +B Y +C Z +C Z +A Z +A Z +B Z +A Z +C Z +C Z +C Z +C X +C Z +A Z +C Z +C Z +C Z +C X +C Z +C Z +A Z +B Y +C Z +B X +A Z +C Z +C Y +A Z +A Y +A Z +C X +C X +A Y +B X +A Y +B Y +B Z +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B X +B Z +A Y +A Y +A Y +B Y +A Y +B X +C X +A Z +C Z +A Z +A X +C Z +C Z +B Z +C Z +B Z +B Z +A Z +A Y +A Z +B X +B Z +C Y +A Z +A Z +A Z +C Z +C Z +C Z +C Z +A Z +C Y +A Y +C X +C Z +B Y +C Z +A Z +A X +A Z +B Z +C Z +B X +B X +A Z +C Z +B X +C Z +C Z +A X +C Z +A Z +C Z +C Z +B Z +B Y +B X +B Z +A X +A Y +C Z +A X +A Y +B Y +A Y +C Z +C Z +B X +C Z +B Z +C Z +B Y +C Z +A Z +A Y +B Z +B Z +A Z +A Z +A Z +A Y +C Z +C X +A Z +A X +B Y +B X +A Z +C Z +A Z +A Z +C Z +B Z +B Z +B Y +B Y +A Y +C Z +A Z +A Z +C Z +A Z +C Z +C Z +B X +B Y +C Z +C Z +B X +C X +C Z +A Y +C X +B X +A Z +A Z +A Y +B Y +A Z +B Z +C Z +C Z +A Z +B X +A X +B Y +A Z +B Z +A Z +B Y +C Z +A Z +A Y +C Z +A Y +C Z +C Z +A Z +C Z +C Z +A Z +A Y +C Z +A Z +B Z +A Y +A Z +C Z +C Z +A Y +C Z +A Y +A Z +C X +B X +B Z +B Z +B Z +B Z +B Y +B X +A Z +C Z +B Z +C Z +C Z +C X +A Z +A Z +B X +C Z +A Y +C Z +B Z +A Z +C X +C Z +C Z +B Y +C Z +B Z +A Z +A X +C Z +B X +A Z +B Y +C Y +C X +C Z +A Z +B Z +A Z +B Y +C Z +C Z +A Z +C Z +C Z +C Z +C Z +B Z +C Z +B X +B Y +A Z +B Y +B Y +A Z +C Z +C Z +B Y +B Y +B Y +B Y +B Z +B X +A Z +B Y +B X +A Z +A Y +B X +B X +C Z +C X +B Y +C Z +C Z +A Z +C X +C Z +A Z +B Y +A Z +A Z +A X +C Z +B Y +A Z +C Z +C Z +A Z +B Y +B Y +B Z +B Z +B X +A X +A Z +A Z +C X +B Y +A Y +B Z +A Z +B Y +C Z +C Z +B X +C Z +C Z +A Z +C Z +A Z +A Z +C Z +C Z +C Z +B X +B Z +A Y +B X +C Z +A Z +C Z +A Y +B Y +A X +C Z +A Y +A Z +A Z +A Z +B Z +C Z +C Z +C Z +C Z +C Z +B Z +B X +C Z +A Z +C Z +A X +B Z +C Z +C Z +A Z +A Z +B Y +C Z +A Z +C Z +B Y +A Z +A Y +A Y +C X +C Z +A Z +B Y +C Z +C X +C Z +A Y +A Z +A Z +B X +C Z +B X +B Y +A Y +A Y +B Z +A Y +A Z +B Z +A Z +A X +B Z +C Z +C X +C Z +C Z +C Z +C Z +C X +C Z +A Z +A Z +B X +A Z +A Z +A Z +C Z +A Z +C Y +B Y +B Y +C Z +A Y +B Z +C Z +C Z +C Z +A Z +C Z +A Z +B Z +B Y +A Y +C Z +A Z +A Y +C Z +C Z +A Y +B Y +C Z +A Z +A Y +A Z +B X +C X +C Z +C Z +A Y +A Z +B X +C Z +A Z +C Z +C Z +A Z +C Z +B X +A Z +A Z +B Y +C Z +B X +C Z +C X +A Z +B X +C X +C Z +C Z +A Z +B Y +A Y +C Z +B Z +B Y +C X +B X +C Z +C Y +A Z +A Z +C Z +B X +A Z +C Z +B Y +B X +B Z +B X +A Y +C Z +C Z +C Y +A Z +A Y +C Z +B X +A Z +A Z +B Z +B Z +B X +A Y +A Z +C Z +A Z +A X +A Y +C Z +C Z +B Y +A Z +C Z +B Z +A Z +B Y +C Z +B Y +A Z +B Z +A Z +B Y +B Z +C Z +C Z +A Y +C Z +A Z +B X +C Z +B X +B X +A Z +C Z +B Z +A Z +C Z +C Z +C Z +C Z +A Z +C Z +B Z +C Z +A Z +B X +C Z +A Z +C Z +C Z +A Y +A Y +C Z +A Y +A X +C Z +A Z +A Z +B Z +A Z +A X +C Z +B Y +A Y +B Y +A Y +C Z +C Z +B X +A Z +B X +B Z +B Z +A Y +C X +A Y +C Z +B Y +A Z +A Z +C Z +A Z +A Z +B Y +C X +B X +A Z +A X +C Z +A Z +B Y +A Z +C Z +C Z +A Z +B X +B Z +A X +A Y +A Y +B Y +B Z +B X +B Z +C X +B Z +C Z +C Z +B X +B Y +B X +B Z +B Z +C Z +A Z +A X +B X +C Z +A Z +B Y +B Y +C X +A Z +B X +A X +C Z +B Y +A Y +B Y +A Y +B Z +C Z +C Z +C Z +B Y +B Y +A Y +C Z +C Y +B Z +A Z +C Z +C Y +B X +B X +A Z +B Y +A Z +B X +A Z +B Y +B Y +C Z +C Z +A Z +B Y +C Z +C Y +C Z +C Z +A Y +B X +C Y +A Y +B X +C Z +C Z +C Z +B Z +B Y +A Z +A Y +A Z +C Z +C Z +B Y +C Z +C Z +A Z +B Z +C Z +A Z +A Z +A Z +A Y +C X +B Y +B Y +A Y +C Z +B Y +B X +B Z +C Z +C Z +A Y +A Z +A Z +B Z +C Z +C Z +B Y +C Z +A Z +C Z +C Z +C X +B X +B Y +C Z +A Z +A Y +C Z +C Z +C Z +A Z +A Y +C Z +A Z +A Y +A Y +C Z +B X +C Z +C X +B Y +A Z +B Y +C Z +B X +A Z +A Y +C Z +A Z +C Z +A Z +C Z +C Z +A Y +A Z +A Z +B Z +A Z +A Z +C Z +A X +A Y +C X +A Z +A Z +B Z +B Y +A Z +C Z +B Z +C Z +A Z +C Z +B X +C Z +B Z +B Z +C Z +B Z +A Z +A Z +C Z +A Z +C X +C Z +A Y +A Z +A X +A Z +B Z +B Z +C Z +C X +A Y +C Z +A Z +A Z +A X +C Z +C Z +C X +B Z +B X +B Z +B Y +C Z +A Z +A Y +A Y +B X +A Y +A Y +C Z +C Z +B Z +A Z +B Z +C Z +A Z +B Y +B Y +C Z +A Z +C Z +A Z +B Y +A Z +C Z +B X +C Z +A Z +C Z +A Y +B Y +A Y +B Z +A Y +C Z +A Z +C Z +B X +B X +B Y +B X +C Z +A X +B Y +B Z +C Z +A Y +C Z +B Z +C Z +A Z +C X +C Z +A Z +A Y +C Z +C Z +B Y +C Z +B Y +C Z +C Z +B Z +A Z +C Z +B Y +B X +A Z +C Z +C Z +A Z +C Z +C Z +B Y +A Z +B X +C Z +B Y +B X +A Z +C Z +A Z +C Z +A Z +C Z +B Y +C Z +A Z +B X +C Z +A Y +A Y +A Z +A Y +A Z +A X +C Z +B X +B Z +C Z +A Z +C X +A Z +A Z +A Z +C Z +A Z +C Z \ No newline at end of file diff --git a/src/python/2022/day02/main.py b/src/python/2022/day02/main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2022/day02/test.txt b/src/python/2022/day02/test.txt new file mode 100644 index 0000000..25097e8 --- /dev/null +++ b/src/python/2022/day02/test.txt @@ -0,0 +1,3 @@ +A Y +B X +C Z \ No newline at end of file diff --git a/src/python/2022/day02/test_main.py b/src/python/2022/day02/test_main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2022/day03/input.txt b/src/python/2022/day03/input.txt new file mode 100644 index 0000000..2d758fe --- /dev/null +++ b/src/python/2022/day03/input.txt @@ -0,0 +1,300 @@ +CjhshBJCSrTTsLwqwqwb +GtmnFHlDfcpHbLZjtTTRLWwb +fDfNHHjVFNvvrvVBJJdS +PPWvWQjPhrPQwlMWJJdMDGbJTdCJ +rsqsStgNNggBNBZHSrJGdJdCFRRZCFbGbTdJ +qgBqqHzzggBpzSnBNqNSSSgcfhrVlVmwPljQVLVwVvQmmzVl +bBBGBfmGvBTnGtGJBtGpcJbZrrddjqrZhDldwdcqrjrjDr +HWPSQMsPHFsMWPVVMVSHCwDCDwwZZvwjwQZZwjdd +vVHPgHHFRLfpfJTLLtJL +LWLZhDBHhWWHjBwHwBjCTrBnnrQTQCJTJpTQBQ +vvdcqbRmvwSFmRqPFSqwdvtQnrpCQJpNNVnrptVCtCCP +wRSffqlFgvvdgdlzhLWWDzLljZhhGL +LNbTbPdTNgnShgSjmHcqtQGCtrctCPcQqc +vzWZDZZBlDwlzvDRZfFBRzVBtMMGHCcpjrqBGMtQQppqHtCq +DfRvFZjZRsRjlVWsjFlWVWvdSdbhsSmnSngTdTSTsJdSLm +nnZRbfZRTZfRsbZTFPRfpbRJdqqQNPwNqvvwvvvSwdQqdS +WjDzjMWMHpQwcSQWcJSS +hrHhHDgpphmjtMrGLDmGgmnbsflbfZCsnsClltsVsfRR +QFngsFnGdLGFGVRgLLqWPQPWvBrMDppCPrDB +NfcHZZzbHthSZtNtNfhHWhClDvCqlrqBvrCpWMWB +fSMSHjbTMVgVVngVgT +llnMffwbvCnffHvJJPJpPBNVVZDJDmmS +QssGGHhRgcqjRRTWGWRGDZcVFZBpNBmPFBDSmZNP +hzsRHWQshzgRjjsgQRTsbwzCtnrrlnrwzMCtvMff +HdddHHmtDMDTqHHSftmqdmfdssGzrsjVGtrllWlGZGsnlnnp +BQNPNPgPhBBhCJQhbCgCnrrnbZnlWznzpGssllVW +LFNZRvCPCFZmHmTLcwdwcq +zQRDChCnVhqRllpzQlzqCVVzPvNHTTFFHlNPsPNvTBPBHBFT +wcfdfDmfPHjdsHPs +cwGMwMMbwbmwJZfDSMmfwcpRVWzQqnnnzGVVnhqRVCph +CScCSPcPszFJWSMjGZHMpGMjvG +TTQfQvBTVBfrDVRDVqGMmjZqnpnGmMpnnpZZ +NDdbrQdVQDNNfvTVNdBfrDBJFcsLWcCJzWFCcFLbFcFJsc +WWdzhpHcHHrtzGBJMwmjJGmBtP +CqsgqNrVnlCBCvPjCBmPJm +LDDDLnVsqsgTQsgFcQzbQdprbWHzdb +nFpNPGLGrntlrFLpflfBTcJwSgwQvGwbgSvbvJvT +DHZWmMDZZDHPMHsDJQbbgSJcvbQgjwJM +CRdzzdDDVRHWWNlPfPzllnFLlL +ZJVqGSVCJCSgdSvtjtvcjcjbNl +pmDWFnDFMnDdFLDHffjcbjjtBNctBjBMbMcl +dLnfmdLLmrWsgZqCThgssgsq +CLsvLLQvrlrrpLpw +tmTHnNtgmzgWmpjlpjnwrrlRjw +WHgTdmNJmJTDDrtFWsVGQqBQqcCCbhdvCB +jwCHwmWRTWRWJwfcgVgflvPqPBPH +MpphdbZZpZMNZpsdpZLMgjBlBqDvLPjfLVPBgPfv +ZdrZsjQbnMCGwrRwzmTr +CMDsWppsfhjNNzzzcBrbPgnrrnVBQHBNrV +ZmGdTdvtStFDtTvtBHgPHnPHgnrnHVmH +ZtLZdwdGqtZqLTLtwvfjDWcRscqMCDsCfWjf +QQPPfPjLNLfSShfNRSRrrGHzvHrvlvnHRDJJ +WCMJJVBwbGCbnbCl +gBJmTBBMchsSjgfS +NvCQGNRQQrWRpWhhvQrNLgrJqTVzzLFZsJqJZFcJTqFMJJ +ttdBllbCSdcsJVVVzVMb +CnwfwwdlnPGQgpnPvv +WQmnmBBmWRCgDpndbD +SvjsqGGqTSTdbggS +lZbFJqLjvHZrcZNHcc +gcgQhclQlntnnvBMZlwffTBLwv +JqzNpqbmpJCbbzCfNFFqfWpZvDVTqBMTrTLvrTMTrvrZTT +NbJWCpRWSFWNWJCzmRNRdchcdHcchnfncnhntcdjng +JvDwhPWPzvzPDggWlvCQgPtHgtGnHtNqLqTnHTHHnnVg +jBsfcbpdQsRcsSpRcjZjHNGtnnVncVtqTVVNVNNT +prBbsjQdSbZdSFwMzrhPMWwzwlvC +SStQfWQmJQjjhphQ +sMVTwvLTswLwwqMPnnhglbHgglPh +RDrRVrVCsrssBFWffFCZthfNFN +ZnpgzcqgmhHtfwSDwplwVV +QCrBNLdLrrnSVSrl +LQQLLLjTBjGWnNBBGLFZbGgMcsMsZzbgbZZgsZ +ZnbzbhqPbMrnDGjtQGSRVVMGpf +gFdTlNJFGVGChJCt +HgswWLNdhwTTwWsNNvzPmbvbcZbrsbrmzP +SHpDqcJvBmJgJJHgDphHmvhTddWlLsZTTdFWMMsWtthZ +GPrRCPfRfjjwffjrrnPVPsTLZFwLWMzLdTsTFzzFWT +QPfZVNfbfQnRVjCRrPJBvSJgpDSDBHNgBJpB +mjpcZcHcrqjrNmNpNmptHNHWwvCwgwCgMmQgRQsRMgwMvnCg +DfSfFSVtDSTJVfdGJMwPnMRwnRCPQgMR +DDfzDVdbTbzVDDtrtqlHptqbjbql +lsBgqLqhqqgBBvGLBwQJJHRpJCJDHMwhwz +NCVfntPnVnfrZtfdbTntnnWDDMDwwRRJmJDWRWJmHRzpJD +ZrZbtbSZfdNVfbtCrbPTndsFvFLFSqcGLBFgvgjsgcqj +gwRCCDmlZtPDdtBBPM +VLrjccJVcJTfTtLjscVBHjHPjPQQSPpBHMjBhP +rfcJrzvvctrscvzRqGRCZvmqbmwqZw +nffqBWfRfRnpBfznpWTpTlWNNbcrDcbGbPhrGVwGlllPGN +MsJQsmQLjMMFsmjbPZNcNbrbmGVhZZ +LCJsFSsJFMFpfrTBWSvqpB +vSspfvprpTNTZNTj +LlFQCtnwMqqSmCMPmMSwClCJhBDJZZJZZjBTjQNjJbdjTT +PHtwMLPqCHsfVRGvSR +HjLDQMjtRvTmfTfmtf +BddChcvvhwhqgmqTfnSmdg +NBVVZJhZVhZsJJzhJZNHrRMPbQvHrjPvPDRvRN +GgwtwntLQmNjvRGJGv +wwzWzrzrqWjRlhJrNlrj +wBWSCMPMcdnHsTHPsn +MggMDDJzdbvsjCJvWJnJ +THBGGScfHwHqHGTGTBqfSWCsnWBCbvsbshjRnZWZCn +HwltftNGtmHHGqNlGmfPrVDDgzpVplpzDpVPbP +shMdsCMpQMCZMQsZQVDJnvvPpPLSvLSLLV +RmgzGTGRmClLNCvzVn +rCrRftmftWjbTttjcdFZBcjdsFqZQFjZ +qLwvNLtLvPGqSltLLqvNSpflMfQfMpMnBBggslMpfB +VDcVzzDRRVTDgMPBBgdfQD +VVWrcHbVzrzVjHPNqSmtqJJwjLGN +nBswlBBhntTttbFVnt +JNjTHZvLHDLVVLtCCFFPLz +THvNddgZWQNDNZgjZSfGwfsBrhmfGBhcWs +cCSbPmJqwqJjgJtTzJZT +BpBTFFTQZzQgNgZv +sFRVpsfrfrLfslwTcTccwcnCcTRC +DLjLwDPjVPnWWvVWVjcqzSCJTzSzMTtSrqRqJn +bdNGgmbGHdZdHbSRqrTJzrMtTR +dhGmFffGQsWjshcVpt +TrGzZpzWhCHcPPpF +sqsJqtlqDVDJVJttgNSbsQPfcjQcBQjhFFRSPQHFRc +VgqbtllbdvNtDdLZrHWGmwdrLM +DNrqBvvZZNDDHBFJmMNbLMRctztznRsbds +hlSlPPWfQCChPtWWfjTwLzbdRcbMsbMjnRLsgzsz +PCfWwlQpTTVmmtqmVGrvmt +lLrlLRbgrjRbRjFlRrnRRdgPdWdCwdWqmWPwqScdPc +tDZLNGHsNQZDNBGHTCVSddVCPwVqVtcdWV +BhGLBNvhHDTZDjfRvbfjljbbJf +McRctHfDctZGlZZWgpcW +TTQLQqLSLqTqhdLqPzLqLwrpsGpWVGFZGrlgWZGhFllV +QNdzbQgzSvqPzqNqvnnbtfbRfDntCfMRjn +bHQvFvffjpVvPSTvVm +RDLRRDLBnVbsDsqDSb +MtGGtJJnwnLltblMFCHfQcthjNfjHCQN +FQfFldFCSRRFQSQmLVfRGwGDDGZDhDGwmmhZtthZ +cTpscpCcNzNNvCBgbPPwvZGZggbghb +TNzznnccTjTspHWNzCTpNlRRQnlfdVFVfLLJFrFJQQ +LsMMLCQQQMTJnJMnsJlGlZJNvbNVGNNSDJ +fhcBqmfvmtRftcmfVVNNVbZSSDVGZmgG +BztFRjFjBchWzhvWTHWTMCdwTdTQnH +cpddMRdHTSNRtRztbG +mWvrQnQFhFNtsSNV +vrBnlLvWvlPCCnrrmBrnQQLmTMHwHHccMgggTNjdcDwjNgCw +hlRhqRnQQHcbBHGVVgRLVmrRgrLR +sCFMTMwtzFMzTwCsswWjCsdQJmJLGfrrgLfgPmPVVVmtLP +TMDjCFMTHShBQSDB +fcpssfGWpRDnvDRWvD +LMvQlPLtLQZbQjBqZBFnCRFZRFzR +jlQrvjlbjbLffpdpdrmGwr +hbRTjRRZthvSDvDn +LGrwPfrGfLjqvBsHzBrvstBv +mpCLCqqqLcwcwCLmLmwwdWgWgVVMTbbWbRdQVNjC +QLCqzhzQDqhHsCJjTcVdScccSVgs +NMPBBfwbmwmmGnfpTJJJcTrRjRJJddpr +mflmdfBBlnPBvBNGnwlGzhDqzHZzZtCLZqqltHtL +GGsFmSmFHHGZsqhSTQjlNQNzpptD +JfVJvvJfWMPPnVVJvhlNlltDldzpjpTzQn +LgLcwJffMMLcwPVvPMvsmRqTmbGGssgGssRRqG +ScnbPhwPHPTbwCGJBDtNZZPZDsttNB +FjfQlVVWrQgfQrrWfddnWfQlqJqJMNJBZJqsZtsJjJsvDjJq +lrVngVQpmmmrlnLGLLmTzchcwhHh +QZtDJqWZtWGmhJJjvVBP +crNMSpcdNNFcrdzlrsVGVnvhmnvHbjVjjrhV +NTszNMSpwTNFzcsTlsLRQLtWwZDDfQgZhggQ +mfmdLLLqsvZzjfPgPT +hppLhBNpHGrhHnQQhGMDhPbPbWzvZzbMzZFPbvbvgz +BNGGNLGcQpCcSstSRmct +mnjsJBjBRsmFsSRqqrGfrqqtrfrN +LZDHZZzdcdQzLbcgLwGtNVrlGrMVNfrllHrH +DPcZZzdQpZPzQQDpDdcpbcPgmBBBsnWfTBmnJmCsjjsPSTjJ +jwwHjCPvLVmhmRdJvr +gTBnbFGTTQMgnTbdbhHhrplhJdlV +DTScZTgSSnGTBFzjDwtLtDDHqwwL +RZWhWWRSgBRrdMRdCmtcdtLncHndqF +bssspTjbVDQGTVGTQsJpbvLtVmFLqqHgnLmCcFnmHC +DpfQJJQpDsGzzfDNhPBlPlMBNhghPZlW +VzJrJMBntJpMnBBJMDDGDQLLQwwDpQLGLG +WSFCWNWWWhQRzvNqLTRD +CbSlSlWHghChhWlcclgcWdHgfrmbmznnffMZMztrMbrJBBBJ +gtjBNTvDQNBPlBFlPFZPdP +mCmpfJCVmMzmfsHpCWdGPWCCWZGtSFtF +zJnhJnJzbbMMpnspmmfsJpLNgqtrjQvrTbTgLgtqgqLj +CLJnZZCJLJZJgZZZJMLSTgnRdFWpFdfFWBffpqDBfjFWQdRD +slNzNzzwwPQrfWmDmqBFWlDm +zwHhsVHwQcHJCgnngMZn +wLRLLddJLdZZZjHdRwgJsjqDVsDVSVGSscsVVmDq +tvMWfnhMvnvztzzVSVqqmcSSVsDGmW +TmhhpnnFlfMzMMRZRPTJRHwdPJZB +sLsQSLvcSrbQbFGlWlCD +BhgPBqBhPwmmpPlGhZMVCFFlbZGF +nCBBTPBHdHwmfCvTLStLJSctrJtt +vwNjwvBSSNndtdBJMJsLvZsJhZpPLM +TmCQDHGTVTLhPQhpZprq +CbCmmTzfVGfFGGCNbctwNPtcSnbjww +NWQQdHdTddhGrnJjqCRggvRmhzmm +wLLVHcFFFfwtFfJzqRvmRqzRVgVz +MlwFfflbLFfbwctDplwcwFMMNNWdWNTNSWDQQnsQNWWHsrQH +QlfbQrBjBQvfDBjhlpwpqbMzwWppGWqGwG +VJNcVCJgcntgRcsZWpPDPDqzPTqqnTpL +ZCRNRNmcJZCcNNVRmVdmHfjdrlfhSrvBDSfH +MzzPjGpjpGPPjdtHBfBNBQBrbtlclV +FqCnZcgcnFsWqmVHVHlgfBrbQVVb +STmCLFZWnTsWvdvSSdvPpGcP +lNjczlDNCSRMSmlR +VbhwhgwGQgwpvQpVDpSCbmfnCPfnMnmPmmBn +VhvGTdhwQwVVVsQQshjcDZdHdqzcDdJrjjzH +DhPffCSLCPCwfPPqqwqVjHFjzljppl +TBWBRWTMRBTTBTBdbQqztzQtWqzQFqbV +sgGTBGTGmNvrGfrz +hJgqGzqQmGQMQzgGmJGhJQSvZPfppjjPnZNTTTTpjWJvWp +lbwbRsRdbdmLdrllbbDcrHwwnjvjNfPWWZwWPjPjjZnTZZpf +dDDrdlDBHbDtVFSqmBShMMVF +ddvtMZJdJTtDvgtfZJfvtWZlHpGljLRcBcjplLwGRnnLGlGc +SNbFbrCNhQbrVQCQSCVzbLjBGRGRGwTBVwpnRGcHcw +bbhrTzrbrPrSQFrTTCmFQPCJmJqvJfZZWftZmZJqDvgfJv +vWLsTNNscttvNTLTLHRgcdqBnVSZVZVWVZqdSdJwwd +jDrFMhGPbGGFFPChDGpGBdngZMzVSSwZgJSqgMSV +bjjPQjphCPprhFrCCjFPDCTmcLgLtsTlmsNsQTtscQHt +PdhqLdNccGsrNLpScBnDznjnBnzppQwpHz +ftFtMbtfRMMWTvfRgRWbWMTjjzngzCzjzmDPjjwQDCDQmm +MRWVVfWfbFWWTbFWlvvRWPJGSLSLNJcPVsqJPcLSGr +fdRbPbHmnqvrvHDz +psTdcMgjjNpllVVgjJslMdpMhrttthznDttBWttBvWcnzBvh +gJjgVNFppjgCCVNsTTCsZbFwmmmmQGZSZLfwSZZd +csDFpcpJFbccqpFqpfggJJsljhvlTvQQtjwPTmjPPjRTtNvh +ZBGLddVCSVwNThhCQjPj +ZHLLLrSHGSBzWWzHWpgwcFbJsfcgJbsrgg +QJljRQLGJSNjMjQBLLJllFznzVCFpBnnzgwngpDCnD +mHWrTmWrdZHWvdrdWrdZttsFspFVcpzcwcggzpwzwVwDVp +vfzWvqTWWtPffWHqrWTZvTNSjRjQGGPPRbJbllQbMlJS +DFnFprBLpHcSlJHRBl +dbdMMCdsVWmMPlHSSVPVJfcf +sllvhgsdLThDnhQF +BSFTWCJWFJmBJdbcgDHgfDzHbncC +MjMPNjhlslPPLjPqPqVcDttzLBHcgDggDggDbB +MZhjMsBNNMhPrNjBrMhMPZWRmFmQFRRFFFQmWFQGFQ +NFgqSSrtlNbNffffffmFFZCf +WPvTBPPnBWmdJjCsPmVd +zBwhwwTRWwhvvzTvnhCTnCnSbbqlNStNbLltDRDHRHqtDR +NgggqJTHTJscdjggNVDVRcNHGLQWqpffZQGQGqpQWpWwQZfW +vvBPBhBFrzvnzSSrrSzPMtWZZcWGwmLnWQWpQlwGwpnl +rzbSCtrSttMctvvFMvrvPvgNJDRNHDsHNJsjTjsJJsVb +HbGVfpJbmbpHLBfHbdChRDDwDRhFlMlFVDFr +QzNQqcNgtqcNMjgqtntsgswRDDRQlFDSFQPDFRDwhCFR +ngscZtsqsznnnszqTnnqHfLWLWLWZmJpWMJGLBZb +cTNmqSbTBFhBQZjq +vswHWHWzHMMttvGGwgppttRfZFZjfBnQnfQZBhwQfhRB +lglsvMHHWHsWjHMtsvHvjWvTmJbCmcCcbCTcJlTmSmPSPT +JjSBbBLppbrvZGhhhvGwZNRtNMPCqCPqRgCFRNMgjP +lWlmDsdDnszRRwdCcNcdwd +TsDwwVTWsHTmTWVzQflQJbSGhZrZZQBhvBSrJZSr +JcrncrnrcZcGtJzfrrrzqbTWTlvW +SCRSDRPSLgRDCHdjjgmdDSHqQTzlmTNNVWbqfbvQzQlbfb +gpvpHHPPLdLRCSgjpLPtpZZMtnBMZJZBZBtMZs +lQSvJllvHBPPHPHWSPQQJtDtnhbwDDwwtwfhrrVw +MgLLdsMsgpRpTLLMgFrbFnfhNbbrhtwDwDDr +MqpTpqGRLpMgBzGPSvlhSBhW +NqpNNNPzhwzzshPwRPHWRmRFQWHDQPHD +VcbcnbjbbrrbbcnbZQDHmlRSVlvZWRFm +MttmjTtMrhqwhLhtdN +dMggwDwvMdqgqqtqwHnzVnmGmGtGRrFmsJrN +SlBClclffBPfZlssrGnJnZZzzznF +ljfTPplCpLcpBBPfTBfcCTbvbDMMFhqdvqWpMWHMDMpd +llTNZlhSvqMGlZMGhGgGlttrbVVwNjDbNFJbtjjDtN +fQWCBWQBBpBCsmzPmnmddQccwJtjdVbJDtDcrrjwjbFr +QzpQCRspPPPmzfppmmBBWLhgTZZTMRwSTgLlqvMqGG +HSfnNllsHThcchcJBjJhRL +FQQdzFCrFMbdFbrJBcqprcBrcBDqcB +mtmMFJJmnTfnsHvm +nddbfrBHdvbdBBhhhnWmtLsBGQCCtpmmMGPMQP +cwVVqVNggDgjZDFspptttQrsPgpttp +wDjczVZqSFDZVlSvrfhHlJHThh +CttLqSPLqLHhhCdGGTgdlZfclNlsfglbTg +nzFJpQJWVQjFmnmpjFWzVvBbMBTBNNTfTgZlTgFMNNZb +njDDWpVWQjQnzZzjJjnRRwCqPtLLrSqhSwCPCHqG +BFmNvfFNJRrdpMLLLVldWm +jPjGGwqsndHZqJqM +GtTSbjbtJjGQsQSSbPSGbzNgCRcCTCFhvfFgFFTBhfRc +rwBvGlDrBMSzMvGVSBwMSZgnJmmJqmcTTTmVCFJRcTgF +bbjpzLhHnFTLngLJ +zdHQdQQftWfNfNtsSvrsGBPGlswrlvDw +hdnMhghHZzFnZhDCCVTTTbtVmHmWbT +PQscSNcllJwzwbGmTmWVGm +sjprJpJjJNPpJBlpdFdgMzDDDhhvhd +SMwBWSBMPSfzqzPf +gJDlrFFQlgbFgvjDjTgrQQTGlhNNLdlqLGhNPqwPNPNfGf +jvwHQQjrjrJrppjvJpDFgDgHcsZZnnsVHsmMWCnsBsVVWZ +cblRJczlcBtBRCqNfGgHfpHCVHGp +WZWsLWmSPjMdWFGHTVNgLfvHqGDT +ZdmsFmZPmnZMsWWNsNjdmmmcQlrBQnBtQJtclBrtJwBzJz +wtMNCNwNqwtMMRnVcTlFtlcnFlsl +vrvrjzjZDDDwmwwVFT +jzrHjrrHjjLBPfQPjZBZzvpSMwCNRpRwSdRCNLqSShSR +BDgnhMDCDDpjDhBDJDfMSsLSZzCFTTLzTFLzTFZS +lrqrlmqbvtvWwVRtwlmrrqNvZlZSsLTTFTFZSPzZFzzTBFzz +HRRRbVmmwqhHHHhGJBcD +MvnmMvNjvvvmNnRcvzHgzMGtzhffHwHtwt +ZBBsFPPrTgCpSSBwHrLtwbHbLLtzLf +ZBZZssBdWRJgmgJdNn +TTLChzhDnjQLTDhTQJrzSbbJHsGrGrGFGb +BfvvpflfWVlVsFFvJHcFJFrJrt +ZwMBwwZPWMMpffflqlZMRnRNQLCNhPhDDNssnRQD \ No newline at end of file diff --git a/src/python/2022/day03/main.py b/src/python/2022/day03/main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2022/day03/test.txt b/src/python/2022/day03/test.txt new file mode 100644 index 0000000..9919ffa --- /dev/null +++ b/src/python/2022/day03/test.txt @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw \ No newline at end of file diff --git a/src/python/2022/day03/test_main.py b/src/python/2022/day03/test_main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2022/day04/input.txt b/src/python/2022/day04/input.txt new file mode 100644 index 0000000..19033d2 --- /dev/null +++ b/src/python/2022/day04/input.txt @@ -0,0 +1,1000 @@ +8-18,10-19 +12-69,8-15 +62-77,36-50 +26-27,26-91 +16-23,24-63 +17-43,18-44 +29-68,29-70 +15-90,28-91 +8-39,10-40 +47-64,27-63 +8-77,78-95 +3-65,66-71 +20-22,21-98 +52-53,53-98 +29-30,29-44 +86-90,38-87 +33-99,31-31 +62-80,82-90 +45-55,33-54 +57-62,58-63 +8-59,8-98 +7-23,1-22 +12-36,22-37 +1-31,32-80 +94-96,46-95 +5-90,4-40 +5-5,6-52 +74-86,7-87 +1-4,6-38 +49-65,49-64 +21-21,22-99 +48-61,11-88 +46-51,46-50 +13-87,88-88 +5-6,6-99 +9-40,52-96 +4-93,5-92 +78-88,77-86 +39-72,71-73 +31-90,19-91 +52-53,53-94 +2-4,3-62 +92-95,46-91 +41-42,41-94 +96-98,8-97 +9-75,9-74 +75-85,67-76 +27-32,29-32 +69-93,70-94 +17-80,18-80 +68-68,12-69 +36-80,35-60 +41-86,41-42 +18-82,83-83 +48-97,90-92 +1-57,16-58 +39-89,39-88 +17-17,16-53 +98-99,8-97 +24-71,9-48 +37-38,37-52 +9-80,10-80 +1-18,19-57 +55-67,58-73 +82-84,85-85 +23-92,22-87 +9-97,92-96 +11-93,94-98 +16-93,17-17 +81-97,63-80 +67-92,67-92 +63-67,62-64 +15-66,67-81 +13-20,13-13 +83-83,4-82 +10-54,6-6 +13-69,8-11 +18-19,18-94 +9-46,8-19 +31-97,62-96 +35-94,95-95 +21-56,57-57 +3-44,3-39 +24-95,79-89 +33-59,34-34 +23-25,21-26 +71-97,38-98 +37-76,38-77 +77-86,64-87 +2-12,1-70 +34-96,15-97 +16-75,74-76 +4-99,4-99 +12-89,11-12 +6-24,5-7 +10-43,11-88 +11-44,45-83 +24-95,2-96 +10-73,2-11 +3-82,16-31 +20-21,20-30 +22-87,86-89 +44-44,43-47 +56-84,56-57 +8-80,9-86 +1-50,5-51 +9-30,8-9 +50-87,27-70 +37-96,96-96 +9-79,46-81 +3-98,3-97 +65-83,27-38 +51-56,1-56 +7-97,8-97 +33-91,32-90 +38-86,87-87 +8-91,4-92 +8-89,25-88 +88-99,48-98 +70-80,24-69 +28-55,43-50 +46-70,7-47 +66-94,67-93 +18-43,93-99 +29-61,29-49 +19-71,18-71 +21-36,21-36 +61-63,62-81 +4-5,5-95 +90-93,63-89 +1-23,4-22 +66-83,50-82 +63-92,81-98 +29-99,29-99 +4-8,8-99 +30-47,31-36 +3-94,93-99 +52-52,51-87 +76-76,77-80 +2-95,6-96 +8-97,9-48 +12-79,11-78 +25-95,14-94 +76-96,3-33 +1-96,76-99 +3-3,2-90 +76-91,75-76 +12-83,11-11 +3-33,19-48 +12-98,12-13 +15-94,16-98 +1-2,4-90 +25-59,26-50 +27-85,84-85 +22-75,22-22 +30-39,30-38 +4-95,4-95 +24-49,10-48 +33-34,34-79 +3-62,33-61 +4-17,3-5 +27-58,59-59 +72-98,73-98 +28-86,87-95 +27-57,28-56 +49-98,40-92 +30-85,84-92 +76-78,75-75 +33-84,83-83 +56-64,42-63 +69-90,27-90 +67-70,66-67 +52-66,56-79 +3-81,2-82 +9-92,93-96 +42-93,94-94 +20-32,33-96 +41-42,42-94 +7-37,6-17 +17-44,18-28 +79-83,66-78 +2-29,1-86 +25-29,20-29 +38-77,38-38 +59-59,59-99 +71-96,11-96 +48-96,17-85 +71-75,67-75 +75-82,76-81 +8-58,8-58 +45-91,35-46 +10-14,15-80 +87-88,3-99 +1-3,7-57 +24-37,24-38 +10-74,75-81 +5-92,5-5 +73-96,96-97 +22-84,84-85 +91-91,3-90 +18-20,19-20 +4-4,3-91 +29-30,30-65 +57-64,22-50 +25-88,24-68 +30-94,94-96 +15-42,16-90 +17-96,71-87 +36-89,35-37 +18-71,70-70 +13-36,12-94 +47-96,46-48 +2-94,55-95 +82-82,3-82 +3-84,1-48 +34-85,34-85 +9-95,8-95 +1-28,1-29 +98-98,52-85 +55-56,30-55 +20-59,19-89 +55-56,50-57 +96-96,20-95 +44-50,15-67 +73-74,56-75 +54-98,38-55 +54-93,54-86 +6-94,7-95 +23-24,23-34 +52-83,9-80 +2-95,1-13 +52-90,29-91 +66-89,66-66 +10-10,11-94 +65-73,64-97 +8-93,62-92 +71-72,72-85 +2-58,59-59 +46-46,47-61 +8-8,8-84 +6-75,76-76 +47-97,24-48 +19-19,20-71 +13-94,4-87 +47-78,48-78 +20-74,21-35 +11-46,11-46 +11-78,77-79 +13-74,14-73 +2-98,1-97 +30-30,31-35 +1-14,2-99 +11-93,10-11 +3-77,7-78 +41-56,40-55 +26-92,97-97 +96-98,17-83 +95-99,8-94 +62-92,47-61 +4-93,3-61 +3-86,2-16 +80-99,21-96 +6-90,47-91 +6-6,7-91 +13-91,13-13 +53-91,52-94 +1-86,4-86 +53-90,54-90 +7-62,7-62 +11-89,11-90 +17-18,18-92 +14-35,11-34 +6-99,19-98 +35-59,34-59 +65-82,68-83 +2-95,3-38 +2-92,3-92 +51-52,43-52 +9-41,9-49 +8-97,8-31 +20-67,66-97 +4-87,37-86 +20-21,20-89 +16-87,15-88 +59-68,60-68 +46-83,86-90 +15-55,9-16 +3-8,7-79 +96-98,41-92 +16-75,62-82 +79-99,62-78 +1-96,97-97 +46-60,45-45 +68-68,41-67 +22-87,21-86 +80-81,80-84 +1-30,31-50 +49-91,49-90 +8-74,73-78 +32-32,31-40 +3-89,4-89 +50-61,51-61 +36-81,35-37 +4-97,4-98 +39-87,38-87 +8-98,98-99 +4-96,95-97 +1-53,3-87 +19-20,19-90 +13-78,12-79 +1-2,2-75 +2-42,2-90 +3-16,3-23 +32-72,87-98 +57-88,60-88 +15-28,29-29 +3-4,4-99 +48-48,46-50 +91-94,87-95 +16-97,98-99 +38-38,48-94 +30-63,7-62 +7-98,8-8 +4-50,49-50 +17-49,18-18 +7-75,6-6 +70-88,73-87 +3-45,3-44 +87-94,36-48 +66-73,13-65 +34-75,8-73 +2-53,2-82 +1-85,71-86 +2-7,6-88 +2-4,4-93 +20-20,13-19 +38-71,26-71 +14-88,20-88 +57-81,56-82 +13-85,6-56 +34-74,34-34 +64-64,25-63 +34-35,34-35 +18-29,13-29 +39-40,15-41 +44-71,43-70 +39-75,37-37 +18-78,18-90 +49-50,49-94 +17-96,1-16 +45-56,48-55 +48-79,48-80 +6-93,5-93 +12-34,11-99 +19-22,18-19 +3-76,2-65 +8-99,94-97 +37-42,37-42 +20-88,17-92 +15-49,15-45 +11-35,11-34 +7-98,3-8 +61-92,4-58 +6-99,42-95 +5-86,45-87 +67-77,67-77 +80-99,38-98 +58-99,22-89 +26-88,26-88 +29-89,8-28 +47-96,40-96 +57-95,34-83 +9-99,98-99 +19-73,18-73 +5-5,5-82 +46-46,25-45 +17-18,17-50 +56-61,56-62 +1-71,71-71 +25-39,24-25 +9-55,54-54 +6-96,95-95 +22-85,21-80 +6-86,4-6 +15-81,78-81 +4-96,5-95 +56-65,56-56 +43-96,42-43 +18-79,80-95 +54-80,21-79 +32-32,31-92 +75-75,76-95 +30-96,29-69 +55-56,55-97 +14-96,13-95 +25-99,27-99 +40-96,41-96 +20-20,19-71 +10-44,11-44 +53-53,51-58 +9-82,10-10 +48-79,47-79 +28-88,9-60 +94-95,46-95 +66-98,8-97 +34-91,33-91 +36-92,11-88 +20-59,49-86 +3-86,4-76 +25-73,36-72 +19-19,18-93 +7-88,4-5 +77-91,90-90 +45-86,45-45 +8-31,30-40 +35-43,44-61 +44-45,44-74 +40-96,56-59 +56-71,57-80 +42-75,41-77 +18-18,19-22 +25-25,26-26 +19-20,20-68 +72-98,64-73 +24-76,73-77 +39-83,38-39 +87-94,84-88 +3-98,1-2 +43-63,44-62 +52-54,53-57 +16-29,53-76 +4-63,79-86 +30-86,75-96 +42-42,36-41 +6-6,5-67 +3-4,6-80 +20-32,38-74 +28-53,28-29 +24-91,95-99 +78-85,79-79 +30-69,14-69 +15-83,11-84 +2-89,1-3 +93-98,72-80 +3-65,2-65 +26-79,25-78 +57-91,57-58 +19-19,18-19 +18-96,17-19 +41-71,1-72 +13-41,10-21 +18-24,20-24 +83-83,84-95 +57-89,52-94 +1-97,1-97 +28-92,27-27 +6-73,18-71 +5-99,4-23 +39-76,96-99 +29-57,29-58 +85-85,15-86 +90-93,90-96 +41-78,42-78 +23-97,24-96 +27-84,26-84 +4-69,78-84 +59-88,59-89 +8-75,8-90 +56-56,50-56 +32-72,54-71 +64-92,63-89 +40-66,66-66 +4-41,14-40 +98-99,3-99 +2-3,10-65 +65-81,42-64 +15-77,71-75 +33-59,24-32 +50-76,31-49 +31-50,30-51 +36-89,12-88 +38-87,37-88 +64-89,64-88 +13-89,7-13 +44-77,43-78 +67-83,3-53 +7-46,7-8 +1-52,28-53 +7-7,8-75 +54-66,53-53 +73-73,35-74 +80-84,80-82 +1-99,2-99 +22-97,52-96 +75-78,62-87 +45-98,23-82 +61-66,61-69 +6-7,7-99 +69-75,75-76 +1-76,3-77 +2-99,3-11 +77-99,77-83 +5-42,25-76 +60-89,35-88 +7-98,5-97 +77-86,67-85 +85-96,23-47 +16-23,15-20 +26-91,26-90 +12-15,12-29 +45-95,32-48 +38-42,37-42 +6-95,2-7 +3-90,4-90 +78-86,86-86 +7-88,7-79 +2-94,3-94 +34-99,8-97 +2-3,2-53 +33-65,34-34 +9-9,10-10 +27-29,28-65 +8-95,94-96 +44-46,45-74 +17-82,63-82 +17-73,74-74 +2-3,1-3 +24-25,25-72 +95-95,10-95 +13-21,13-18 +96-96,94-97 +64-91,65-92 +11-13,1-12 +19-74,99-99 +97-97,5-96 +49-80,50-80 +20-68,21-87 +14-91,13-13 +8-94,1-5 +64-91,61-63 +1-2,2-89 +39-80,38-73 +31-56,15-75 +90-90,90-97 +11-11,15-43 +28-81,52-81 +29-99,29-99 +31-36,32-92 +1-99,28-99 +6-10,6-21 +64-90,54-89 +88-95,2-93 +87-88,47-88 +92-92,79-91 +11-91,3-96 +18-19,18-65 +12-79,1-78 +39-66,65-65 +53-54,54-62 +23-57,23-78 +16-94,17-93 +17-98,99-99 +32-34,33-96 +68-72,73-73 +1-2,1-95 +8-93,9-92 +56-61,57-61 +3-94,3-94 +2-4,6-74 +2-94,94-94 +5-75,3-5 +88-90,64-92 +70-97,63-97 +5-99,4-99 +91-97,3-96 +5-46,2-2 +2-2,5-91 +23-60,23-60 +9-39,10-39 +9-25,10-54 +4-47,3-47 +43-52,49-69 +27-27,27-27 +6-94,5-94 +8-9,8-68 +53-78,52-53 +16-73,15-73 +65-77,5-76 +60-96,60-92 +49-55,39-56 +33-59,15-60 +6-79,6-94 +3-3,4-99 +17-88,18-59 +98-99,97-97 +5-36,35-97 +97-98,31-35 +23-23,22-76 +8-94,9-93 +38-38,37-86 +1-24,4-47 +7-97,8-98 +22-70,71-71 +2-49,3-3 +70-86,76-98 +91-98,46-97 +37-65,61-69 +39-39,25-38 +1-76,1-2 +71-87,89-98 +46-47,38-42 +12-13,20-95 +4-58,13-59 +48-80,45-99 +91-93,33-90 +6-57,6-6 +16-19,15-18 +70-72,1-73 +3-82,3-83 +76-89,76-89 +57-96,58-95 +35-64,36-65 +2-92,93-93 +95-98,10-83 +3-5,17-63 +37-69,36-63 +5-49,37-49 +75-82,20-74 +2-65,1-3 +4-5,4-31 +72-73,71-74 +4-75,74-95 +30-31,30-99 +36-60,36-59 +4-6,13-95 +8-54,5-6 +57-94,58-97 +5-6,6-99 +88-88,70-87 +16-17,17-56 +3-94,2-94 +24-58,23-25 +22-48,23-91 +18-59,19-92 +9-10,8-88 +33-82,6-66 +42-61,42-85 +2-3,4-58 +13-15,12-20 +31-94,31-31 +63-93,31-93 +4-76,17-76 +45-76,45-60 +13-89,9-88 +75-77,51-76 +26-26,26-92 +1-27,21-69 +4-89,1-94 +32-95,36-94 +38-83,89-89 +15-16,16-80 +73-84,98-98 +28-75,27-28 +25-27,9-26 +16-98,17-99 +10-72,91-92 +40-91,51-92 +29-29,7-30 +30-45,22-46 +13-95,4-4 +43-59,29-59 +12-41,40-55 +4-92,91-98 +25-25,24-35 +8-16,7-13 +9-99,9-98 +28-87,27-28 +14-53,13-54 +67-81,6-42 +29-99,30-95 +5-37,5-6 +95-95,10-94 +12-95,13-96 +16-21,17-17 +17-25,18-48 +81-81,27-80 +78-84,77-91 +24-33,23-32 +1-99,1-98 +16-83,17-83 +85-91,86-86 +59-88,89-99 +40-99,98-98 +42-90,23-42 +20-64,55-65 +9-89,90-90 +99-99,8-97 +92-95,4-88 +32-81,10-82 +4-4,4-63 +1-10,4-93 +58-59,8-59 +51-54,51-69 +10-82,4-9 +82-96,69-76 +63-81,62-82 +72-73,70-74 +69-88,69-88 +31-73,3-98 +39-57,46-54 +29-29,30-57 +94-99,10-95 +4-96,3-4 +11-96,12-96 +59-61,58-58 +58-58,58-68 +2-95,2-38 +9-13,10-31 +7-54,53-91 +16-33,36-75 +53-77,53-76 +33-34,33-90 +6-61,69-94 +5-81,5-82 +2-93,92-93 +1-29,8-97 +5-5,5-89 +42-80,41-80 +2-96,33-99 +17-57,17-56 +11-74,11-75 +39-60,39-40 +33-34,33-56 +36-75,35-37 +68-77,68-77 +22-95,21-96 +61-62,58-61 +33-92,64-98 +5-95,5-96 +10-75,11-40 +5-70,6-70 +10-86,9-10 +5-93,5-6 +70-98,21-95 +76-99,46-75 +20-21,21-54 +24-47,65-98 +32-62,32-44 +46-92,45-73 +52-59,51-57 +2-92,3-3 +46-56,47-57 +90-90,24-89 +23-69,75-89 +6-73,73-77 +16-17,17-80 +89-89,26-88 +36-56,38-83 +55-70,13-54 +14-50,77-89 +22-27,34-81 +69-77,73-76 +4-83,5-5 +13-54,13-55 +61-61,60-98 +98-98,23-97 +21-44,20-44 +62-75,32-71 +51-93,49-80 +53-64,43-65 +52-91,52-67 +5-89,2-88 +4-86,3-98 +32-72,32-64 +52-78,79-86 +28-94,21-50 +43-61,46-59 +75-76,75-83 +12-43,11-12 +72-73,1-58 +8-94,7-8 +5-92,4-93 +54-62,41-62 +43-43,43-75 +34-81,38-82 +9-99,10-98 +15-89,91-91 +12-59,13-60 +21-76,21-76 +25-63,24-62 +17-82,92-95 +22-49,33-49 +8-34,4-9 +21-43,22-40 +4-99,1-3 +7-41,41-68 +3-74,74-75 +6-80,1-5 +35-85,36-70 +7-99,12-17 +8-95,7-94 +12-80,12-80 +3-96,4-97 +22-69,69-70 +24-35,25-51 +22-51,23-51 +36-63,10-37 +1-99,34-98 +23-89,37-88 +73-73,72-76 +35-91,35-36 +6-24,3-12 +6-6,7-91 +28-52,55-77 +51-78,50-77 +2-3,3-96 +30-97,30-98 +32-70,9-70 +95-96,1-94 +20-99,20-21 +68-79,6-68 +17-64,39-51 +21-58,56-57 +14-25,13-14 +16-96,97-99 +98-99,70-97 +1-35,10-66 +12-56,9-13 +47-84,19-63 +73-89,72-90 +52-95,12-95 +3-95,1-3 +78-92,93-93 +99-99,4-97 +46-86,29-45 +79-95,78-96 +87-92,93-95 +22-81,22-80 +32-33,33-71 +53-99,53-83 +21-98,20-97 +93-94,6-93 +78-96,10-77 +1-91,56-69 +60-98,51-60 +20-20,21-32 +95-96,96-96 +4-26,5-27 +85-92,42-84 +86-86,72-85 +20-25,24-30 +11-28,12-70 +23-70,8-8 +7-7,7-74 +48-93,49-92 +4-72,71-72 +15-28,14-32 +25-73,47-74 +67-77,67-68 +10-84,66-84 +7-96,7-96 +2-29,29-38 +52-52,52-97 +72-73,72-95 +20-50,51-51 +1-86,46-87 +13-36,14-20 +60-98,53-98 +6-40,7-41 +62-76,41-75 +8-38,37-51 +14-90,13-91 +1-54,18-53 +19-94,94-96 +77-95,76-85 +3-98,2-3 +24-93,48-92 +10-98,97-99 +1-5,3-4 +15-15,16-86 +26-93,23-79 +8-48,9-9 +38-98,32-55 +30-60,31-48 +15-69,16-70 +9-79,9-10 +53-90,52-72 +9-28,27-97 +3-91,2-3 +10-42,42-50 +2-79,8-79 +4-44,73-94 +4-89,1-88 +51-53,52-92 +22-36,35-81 +72-96,71-96 +69-69,70-89 +20-97,19-20 +33-99,34-34 +31-33,32-94 +7-22,23-80 +2-4,3-41 +73-79,24-80 +95-97,99-99 +6-21,2-7 +3-94,4-95 +7-87,86-86 +9-80,8-80 +4-20,3-7 +54-89,54-88 +22-90,32-90 +91-98,61-91 +18-69,32-52 +7-17,8-66 +35-58,12-57 +4-87,85-86 +2-99,94-99 +33-95,32-33 +42-42,2-41 +28-43,28-29 +23-72,23-71 +6-92,6-91 +32-56,33-97 +83-96,83-86 +32-67,33-33 +26-40,26-39 +11-96,10-11 +7-89,6-90 +12-46,19-47 +39-95,40-99 +89-89,79-88 +19-71,6-18 +47-93,46-94 +39-77,28-32 +7-70,8-69 +72-73,73-94 +51-63,48-61 +7-88,29-87 +67-85,35-86 +1-82,17-83 +68-86,87-87 +42-43,43-44 +46-72,68-73 +35-37,23-78 +1-39,35-40 +12-96,13-33 +21-94,20-93 +36-53,8-99 +35-83,28-36 +99-99,35-89 +16-40,15-25 +28-39,39-40 +56-88,55-75 +5-86,87-94 +67-70,46-69 +25-67,66-68 +73-73,13-72 +30-41,66-81 +32-90,31-91 +9-33,4-7 +25-48,12-59 +21-96,16-22 +5-35,29-41 +50-50,44-76 +19-86,18-87 +9-49,9-47 +7-70,9-95 +23-93,94-97 +24-72,38-71 +7-83,4-8 +72-90,42-73 +7-93,92-92 +91-91,7-92 +72-73,71-72 +4-96,1-1 +7-76,76-90 +29-92,27-30 +1-97,2-99 +29-72,59-73 +6-18,1-4 +74-93,74-74 +12-97,11-66 +23-27,10-25 +64-95,63-64 +34-41,42-47 +24-71,70-72 +23-37,24-38 +22-95,94-99 +40-63,48-64 +35-65,36-66 +14-15,14-41 +1-71,1-47 +5-28,14-29 +92-92,90-91 +34-35,34-42 +58-61,54-60 +60-73,61-94 +11-15,14-49 +3-8,13-98 +3-50,4-49 \ No newline at end of file diff --git a/src/python/2022/day04/main.py b/src/python/2022/day04/main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2022/day04/test.txt b/src/python/2022/day04/test.txt new file mode 100644 index 0000000..99a66c5 --- /dev/null +++ b/src/python/2022/day04/test.txt @@ -0,0 +1,6 @@ +2-4,6-8 +2-3,4-5 +5-7,7-9 +2-8,3-7 +6-6,4-6 +2-6,4-8 \ No newline at end of file diff --git a/src/python/2022/day04/test_main.py b/src/python/2022/day04/test_main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2023/day01/input.txt b/src/python/2023/day01/input.txt new file mode 100644 index 0000000..857ec0b --- /dev/null +++ b/src/python/2023/day01/input.txt @@ -0,0 +1,1000 @@ +76xkqjzqtwonfour +sixthree8sixjxjqsjgjgp +38bgcczgtninefivefive +sixthree4eight +nhp3zdc +279four +vzxf4tqrljgxmthreejcr +bbm4twoeight8oneone3one +nineninesix6nine +fourseven5seveneightsvtkcjdrfour +3mkmnpsix5ggfive7 +twotwoqbv5qrpnfl7seven8 +56snzkgsone2cxtpvvh +threenine3 +9dd3twocnrfljs58 +mqtrqnrgrcxbvpgdsmsqhmxlxx4 +nine9mdxzlrbmrxceight94eight +jtqsrmmbonentvmnxbdsseven4 +ninefive8fjnjj +nine53 +33 +ftjhckeightfourvkbd3eight9 +rhpnppsfour7 +95ht1x +fivezqfcvmgdxb5mfvtnlfkonesix +ninefgxxltpkszdnb89ninefivebdbdhckhb +9vtglcdvkgcgrvm4sevenrhppknqfvhldfgqhpgdqfv +852bfkjmccknlqreight1 +fiveone8threethreezsfpzsrbb9fourfive +1one58eightseventhreeqfpxcpv3 +11fg1 +tbrcgcqj2three9sixeight1five +seven2m6 +eightzhqvdrjknb622btfrs41seven +67nine8 +3one8ncctmbsixeighttwonegb +7fivefive +m5sqxstbxp9xx +1onejjz7gcddeightnkfqgxbbtl1 +3jrjkxvhctzmkmqccrmbrvlcvsjnqjjb +ndjfls337six2three87 +bconekhvtkblfour2n5dq2 +922twonmxfeight4 +7two59xvmzc2two3czdn +ninesrdsq99tskfpfpdqqfive6 +tbzgvh4ninesixjzdtxhbpsjlbkr62 +5fourthreebdpnqzbeightjpchone +8ktdbjtvfvkseven +3zhjbjqbpff +6hh7twofourcvmpfjp +sqfzkmrponechzzzbhz34one +jkdrxxbrn43qbjllcfbptddb7 +jdjbq1lcsz5 +fivehlpltzfrzfznxrpnfourmhpkjsjzz971 +gjc5qbgrhlj2one9 +tdn1676spccqqjc4eight2 +one2966lfourldlnxmzqdplzptp +qlkjthree5eightdztseven +512ninexrqpvktwoner +lkgqvlgdqbjhkxp58one7six3 +4two1one7zxxtvxtdvpgfrjh56 +4qbbmlpmjx5fiveninepkcnqgqgdjsrzkgxjsxnkqnd2 +1jjfive7xjfmdfvnz2 +fourxbfsdqlmmmnh9 +c5 +z4s8gdmkbkhbhd18 +threevsnkmbrcgdsvdkqeightqstlvvdtlvp4seven +7eighttwo64nlgxcbthpbgnbf +1mvbvrx +drhgqkfrln2 +three1sixthreelvjthreeffptnm1 +qzlqvjz8ninefive +eight23n1teight2 +31twoqqbmz88 +68fivesixqzfcfsjjzxfiveeight6 +sqpfonezdtpqrfbhzgjmgv7 +4mcmtqnonexkdpnrcfkfxhq5one +hhrldnffive7six6onefivezllprrncczseven +5dfxsn7hjgztpeightqnnninekjxlzdv +vtwobjxdfrkrzeightfxtlkct4 +seven4fiveksnsix7128 +onenfzxhpc7gxthree +jgtwone321fourkjg3 +dphnmspctdfour3 +four91zmlpbxchmsixpn +9eighteight8pgvrngxszvnlnzlzmbqgs1 +fgznzclmcrjhtbdjoneone9 +fttdr4five8vmxrlnr +1nspvnsrdddfhjjdcvltjl +7fiveone8nshjlrxgkeight +57eighteightsrgvcnbncv83 +5xnine5blgjqdjmtgx3 +6rjzh487eight9nndgvj7 +2seven2bvqlftkcplffivefour +x8 +vdbxxb2six4skntkvfcgdfcp2cnvhr9 +7hmqxgvdfgmxhfzfxfour +eight92jckrxshsrbtwophbfvnb +sevenxzjc6 +drflhlxphzspnnzdbcfbpcbtddvd8three56 +fournjhqnxrkjpvjssl9 +81333 +five1gmccznfseven8xlzvlrjsbffour1 +6dlbklsddnqhtwotwo2 +m27six +5mflrcmbbqnztndxtwoonekcsevenone +m24njqdqxrjmn1cjprdzdcntwoldzsgfkpvxbrnrg +ngjrvdd3onezcklpsfoureighteightwoxg +tkrzphtvthreeeightfsxbbdtone762svzt +khqtnrppp81183one +onetplmtp2zbrmbnrzt9sixknkrblt +662 +fivekhclmzchthree3 +5fhgcfzvss +zhgsq2hfbzjxgxgrxvhdkppbdljk +zqd9stvrrddk +7kthreesix7 +46six8eight +hthpnnghjglhhmg8seventwo86seven +5ffr8 +fbdxn76twofourlfdxxbgvmd98five +eight4mjjn4ninelgpc5qnxgneight +oneszfjdcxzc2five +4nzjqv3six +qtnfiveeightkjhhkckrpcdnine9 +6eightggsddqcjhptp9tmhconelg +eight45eightfour87 +25523 +two54nine2mnxszzxeightqf +2kbqpv2sgcskg +4three5njdpbnine +9rdmninejbbdgtffiveseven6 +tmnoneightdlrtninenines847bhldgkpdm +nine762gkknhhfvrbmck82 +three9xdbnxvnvqsvjmnzzdfoursmrspxxrdkgsv +twofour73zjj +4hvdbthree1four +1threeoneone +2576 +ztgbfpsznntnpl3six +1ctllvsztwo6 +2eightsevenbldhvhctpck69ninefour +nzdrfive4zsbrshcmqm5fkzzfptxntgzffthzhxbffskz +1nineqdmlfourlsfn94 +lqvfhgqkbncvzrnptwofourfivefour42jpg +92dtmcpzskzp1 +2djkdgsrrtcnklpxfmfrbcjmnddqntn5six +2nzxgtd75one4four2 +hbvjjrfd74five1six56 +zcnxmgvmhfsevenxxzkxnine1fxxpmkthreejfppctls +2sevenqsrdvchgpfdjfjpld +6njl7fivemkkxlhkmgm1ndlgjbpjt +jneightwofivetwo9eightgjtnrneight +zfvjfive3gfourfiveeight +five71zgxk8chrfzdzjpxxdkqfour +zbx78sevennsninethree7 +rrs8one2jtznfcgdsfxcmkznpptlglnmf +nldfdgpd5seven6tjg4fourddhfg +65sevennlckct93 +qjhgdqgpcfivevleight63two +4jqrzmthree +5llfourfourlvtvtx8vjksjlnrchrkthree +dcpdbsvsshgklkronefourqnsevenf6eightwohf +6ctlhskqqch +threeseven2mpvsdlx +1hnjrxsrflxjtlzqrzvpjsjjjpz6 +nineninervqqmnsevenjtlkfvzpdztwo8three +3bmthsgsix23sevenzvkszfpfq +6sixeightfour1bnhvpsv +3592nine +ttz117ninesix +bgtmckkpq5sevensix +354nine +7spsevens2 +512htbtgxkzdvqtqg +fhkbrst1 +6cr2xsevenchdvgqqht +cmbcdqkjd1xffkggmthree4chklqone1 +gsevenqnfpjzgbv7 +four2njkqbfszj +9qblmmzbtwonkzr +sixsixeightgnflxglkttxk2 +nine3vcfghmgm +two7lgnmpnz87nqrqgczrt +klvsx15 +rrkltqfttf8two2rzzgjbrffxvcbseven3 +5sixctgqr31 +qkhjklpztmkffql45seven213 +pjstvthree4lrmrznbvdseven +sixvnxfltnqv9fpbfbmninesix +pnvthree4threetfjqnvxbxvxb +two1nine +twosix1ninehkqjtkn2 +8pchlzgsixonevrzmqgbf +fxrccmfourthreesix9nineseven +seven929two3zgz +4four386nine +six8three75onehpgsnpjbczninevvcszkr +onefive6eight5 +foureightfour34 +six6mndfhgcjzjreight7sjbv4 +9dlmsnlgj2 +seventhreelmkn5sixjllfqfourlpznlhv +zfgvmzgv95seven +ppdsbnxxx1four +vvfnvbkvtzfourfour675nine8 +2fourthree1 +eight4pqdpjdzbmn31 +pksvg9bzzdcgktgstwosevenvnvftzblfive4eight +seveneightonethree1three +nine69dkv8oneoneone +72phzthreexqlhvsqfoursixninefive +2ninexqpplhqclpl5 +1nineeight +7nineonefour9two3fournine +8mkzqpnnlqljrfive +9nine5foureightthreegdbcrjhnthree5 +sixt69 +rzfg5 +vqdb8bc7mftdt +ngzlhznbtbone38srxvrfrjxsxkglvrpvqgm +9xgrjgq7eighthnbmkbdsdnine4qt +5dfcrkhzbvfourkkkqjfcb77sevensix +loneightfive8seven3 +7ncqhjdhzqeightnine +bsngnjfcone8bhd49tzfdb +deightggcb27four41lfrdbctl +3sevenoneninentjdsxmsixlpqgb +threernmpfptnmcmmrmlngppmbtwofour7sevens +eightjxxlm86 +twoninefmdtnk6rjkpdqzdzfiveninecrlgjrvctgtrrdkfkm +3threethreeonefive +three8thq +bfccdtfmtvhkhp5fourdcgszjgcseven2 +8xcxscl +sixzvdbpqcheight3twothree5lqtcmjdmpq +nbspfour32lddhpsz9 +jgleightcdm9twosllxnzqhjq +2three3sevenfour +jrnineone8qltfvgskbs2244 +zmbonemblfourkfjmvntjhvkbk69bnsjzdkxc +vxxlcpslfdzbhm91 +fjxhtfnqfive3zpctnfive +smxmdtbtfpthree8lkmvlljdcx1six +5bnine3614 +8cdfktkdd8 +twosix9 +4rxgx895drgvoneqxdvvh +threedljsix9cv5jlkvsmgzgbhnkmmfdpqxgzx +twoone7oneqvqoneonefive6 +2tvvmplskcgbxdkzh +gfvffive9six83mhgxkgdprxtwo +2threeeightmnmrtzmdtfivesevenrsmkkslsm7 +ztv23316three6seven +eightcvjqlfbh6fourvpgdpgz +1fivefive9 +brxmhgnnthreethreeoned2 +dgrcgr5xgpnxjbd6ninejsqmgmrvmqz +mtl6three +97bjvklbkpzktckfivenvcmftnnrp4 +7fivejmf +six54 +jktdhlbjbztpp7gjjc46fmkb +64xdrnfxgccrxkdpfxpnninelbmldlmllknine13 +9jbpcbsgk +6hqszplnjk +sixseven1721two44 +6threenzsjtj5cfqvdpcpfbcnfpnp9 +141moneonepzcvtnjpgnine +7n +8cgglsksnz1sixgkhqseven9 +ninescvxnzslj7lldvskqphrqhlsmthreeseven +8twofive3psmxh +4xclmfour3 +4sevenxz5onen3sixvgdmbtzk +3cclhckninejkmddqjkj +7eighthxsntjskvdonefour9eightfiveseven +three2six2seveneightqrlcvvczzfcgcm +plxthreefivethsmpqhzfour5 +6two3sevenrbscccjhxbd +rdzxlnbxbh7eight67 +65four +23mdqdh2 +bsrmxvmfoursixgdssplvshdjlnvgf7gt +823jvfour +5eighttwosixjmlthreeqgtlzbpfqhc7 +35foursljjvpfour7seven5 +nsfourdtgzffvh763 +9thtmpjtpsfnine +mkqcz9pmkpgnd +one6xmpjfkpsdcnfghs5 +jqzgsf834 +twotqpvxjc88659 +4onetxvccvkclcqhl6two +kbgzsixfive7one1four4 +gbkvfour93fivesixseven66 +97pjzlvmonesix +fivenjmtgkjfz7nine3threexsntbqxg55 +fivefive5threemfour526 +bdpdqklfgxninegsrsixmkqbhq33 +twosix9five +nineninenngsevenonegscxlttn7 +sevenpllnzvqjlksevensevenjtkone32five +7dhjbnjvzxfdrhc5r3gtxgxgzzx24 +kqsct1nzzbxldhfive6 +964eight4jp1two +4cds99 +twotworcqrpvgtcq3twoffqz8 +6sixtwosixvzpzlr +ninebkktjnineone9sixfiveseven +fp6sixrrj3sqncfvzqtkcthree +6foursevenninekdbmqbbccjeight8nxvvnbvcdv +nkzthree9471seven +fivecdtrjone4seven22 +twothree6onemvfourvtkrnnvvvbcs +56ninesixmscnd1seven +lnzntzqdeight2foureightthreexjpcprdncd +56zeightz8jfzthgf +eightthreeonegrnine24hsk +hlm185nrphc1 +9five5 +threegqtxmeight9rfkvqnineqnjxhskndqzf +1eightsix +539tzsgsjhnx7 +cxhd32lksevenseven +2qnbljpnjgssbzbhxtcfcxsqjlh5 +eights2kpfznvgghqtrmlb +2six2nine +cdrxjsxvvseven4bdljtxffdjhfive +399hvclz +1six18 +xlnrghvfmz5qthzss +67rcgjkqckptsthree6twofourztsknx +4qhsh2five67cgkjsnqtfvtwo1 +4lghphnh8 +1vpvslztbphninezbttbskeight8 +9fccbx +2zvsxhlceight +threehlmpkghvpz3cpseventhreetwonsix +lsbttpxhlnqzppm868fourtwo9qz +three17 +69513zfxqjvlpfh6mvrr1 +threenkchdrkqnfive5nine +two2tcmsnfivekfh6rfhthree +dtthree61stgcdkxqtm +4hldzqzxqd1dcddroneone +5jknllhktmhqjngc +qphxzsgtwozmpcdq2fiveonevz +three15three4eightthreeeight +vckqkjtonexnzrdbm6vsxfivefive7 +three6eightsfnslxjnc7fourchtxdvftxpnzm +sixfxrxx2 +9crhcfive8tlkr7qmxbcdcqb +6hvjqxjzzsz24bc +fbgsrsqmfv5hpkvlnxsfkpsccprhnv36 +mbpmgvmjcmpgxmfive1fxmh4smb4ct +fourvpdcjttndp9qbfclcz6rnrhnkqjgv +onemhqsm69 +rrz9 +5qfsxdxktfjbdnzcrfvt15eightjmsvhrnks3 +rgmvhprvkm3seven +twolxvjhc269tsnpjhvone +fiveeightrsrgxfjxn96 +mfourjcxsvss3oneightlxh +sevenqjfg67k49xnqddlvf +hgxhtwo6kbkeight +97fivethree8 +ncv228 +95vjxzdpvxb6vxxtwo +rsfeightmrcccsvqsdsfxgonenine7 +fsvjgqhgxsone64zdkdpghcjbprpzlmjfxsfknfd +xbhbtph8eight +1pdgmtwoslhkrtlfour91 +16crzkxrxpxjfourfourfive8 +slhmvmsixfrbggqdxfjcllbzn535two +twosdjxhpseven5eighth +6qdrmmvc9bvs +onedljtrk2pvgvqpfkqc2lgslhfd1 +ninesevenxfqd4ztxnb7fourseven +fpvbdpjkqfive2tsxb +fglmcrcd9xsnxsxgkzmmgtcjlxlfiveseven +gkgmm5onethree7jn +ztmg3onetwo4 +hhbgmpnrh3 +188btpjkpdsix3oneightkpl +xbqjpdst9762onethree +4tqcdrzgljs19g8oneseven +ninezs46eight +grkgdppchchpzfive31 +298three +2ghmxfjdjcfthreefive +9hrq3sevenonezxrvgxbr +n12kjninelvm +sixfourvgpctkk48seven +sixllxqmndkfcqvcdnssxjthreesixseven46 +nine7six +lkcmctcnbeight8364 +k2zqvznsrjjvtjtwo +zcxjvpgmllnlxxsonekrgsmqlntzsfxx4 +twocgzfcj6nskqj84 +rldlhnine5onefourvrstwo +lqfr92eightnsbgrpncdlheightpvktkd +vthreems422sevenninenine +zcmhzlnonerqtnl1zxdjtqqeightseven +8six3ps +blqhvpgt7 +6gdf +3jrl54xchxvgclqq +8twosixfournine6ckrbnzr1oneightpp +twonine5three9 +kmvmvrznj28eight4tlfourmqtmcgt +prpmhkpg5sixqqkhvjtsmdjlgsxgjnfour +5jfmzsprdmngm2nine +ltzvtgkc5nine1sldgncp +four6fivenine4 +hgsjtwo47qg15 +twoninesevennpmzshts4 +hjkcjjkdqxplmsjxdjphcb77eight6eightf +8six3four2twoeighttwo +tgrh83ninethree3seven +bb6nineseven +trpbxtzfour24skvqhc8 +rm4 +pqrtvrtfivefour52 +pdhtwo1q3 +fivefour4 +ninevvlfgvbzvdk7hkvsdjf8 +two3nlprsnkgfzxbhlfoureight5onepdqgtcjp +one4hdjrvcnlfgpckx +52six6nplcqfvxnf +fzqgdmzdjeight8four +two7zlk +fg16seven8476cvthhjoneightt +ldcmngfninetwo2eight +eightsix8 +twojlm2onetjn +3prnfrbng +276onebpks2 +fournineeight52 +3198hvd64 +sixthreejmrl2 +zsvmnnfsjbfourfour54sfnlghlv +5six4 +6dvrgdfncvd +two4sevenhhvxsljvqtj3 +dcmgr7five13 +cmrgqdlthreemvcc9six +fivekjsx8eight +vhlvninefourtwotwo4five +vffxj9 +pglbr7 +rghtnsixfkbnrthreesix8seven +3fivenine5x17 +3rdonet2ninexbslcnsevenflqxplkxbs +xbdgjfjttfhlrfldsmeightfour1tfjvcljc +sixrjp1 +9sevengnsj +dpmmrqksixeightsmnt58three +2six66ninemnj6qjtvqpzcj +sevenfzgg2six +eightnine9sevenmhvxtbjxnh33 +tscsvpdtjzsjmlfvrzceight8eighttwo6 +seven193ltgmzczzqqmrrgseven +fourtwovjhqfzlrnine1xmkqcs5fjrcxfssh +83nbqmsrbbfhnjsixvgcbbtmphg +3ccdbzjpkx7nrjnmfljgfour842 +threeseven8 +foureightpjlj9 +ctf5eightjnsvcrlfvz351 +4sixfivehqbs16tgqhf +fourninekbvbtrbkl2h8nvflxrlvjdtrhz9 +dgpvtwonbspfvtkqfgxsixonefour4nine +fournine15 +66tpr6frphqtfgcvpsjctqccbl +foursvfjslmkb3rmxseven +jtqsntfvpbthreejsqqgqnxq7766 +bjttrrvl9two +one73three4rffjxsm +fvmmheighttwokmcx7eightlzxcb +3kvkhkrzld7sixtwo +2three3mjqnpjznone2 +gfhvmznd8431two5three9 +62xdgeightqjgsfggzbrjcfsvmfourn +pdznineeightsevenhxb4 +fiveone3sjqvhh +4nineqzrh +lhp5sixseven +2blntmnfourmnn +kcnxhnppzbsstbtvdrzt55three +1gtrkltzfzsixs6 +85nsix3threethree +32three +six9fivefive4nineeightoneone +fivektmbvvlzl5 +pdhfcjfrtprpqtqdnvnchl5356 +one2sevensixsixmhfhsevenzvkrgxsmhd1 +snvhxpxsevenc4twofivefour +dqrvvlxrcrmnjkmjpgr8threeshzgnfbcsb92eight +nkpll5nflrcffourtwoeightthreehzjvvdhm +sntlr3rthreetwonzxzlvxxbbnsbkrl6 +eight26vhjjz4foureightwojk +five24414lbddfpxnqdxptlzl +dgqdninekmrs81n7x +pfgnp5sevenqpnckfkz8 +eighteightgpxhrhprmmfpcp6 +hqgxtkckqxvfcxskrhn9 +4five8 +sevensix5 +rpk88gfxxz384brvgtkcqjnine +ninexjk21onetwo1hzdhsm +41hbthnkbl7gssdksjddone5kqkvxzc +jjhmxrb56fd +4kxxtmqjpfivesixone4nffllnkj +8jlkmhmjjfour +281one +qeightwofkzzzkgcspgxp1threeqmjcksr64four +xnbv3 +4seven3ktgrjvdfive7five +dgroneightjmcrmplthdrncvld8one +4ninegkxpztlbzs3 +1onetwosklsjcmsjh +nine16 +8sixtwonine +3qhtzxzqfmh +twozgbcpzvsffthree4 +48fkbpfpkzhfpnvmctsjq9 +seven2two6zprbpmqdk1 +4hhztrv7sixfournine +3threemxlshrpv59clfrt +sevenmqmnine4eight +xg36mlvzsix3kbqttvhtpd +699fourqhbhsdhrflmbfdk +gzjhseven63251 +two8twonqplqkq +eightrbsgj21three +sdckkgcvmsjbvn5nine +624onesix +pjdnz7nctxzssf +kl5232rqkdrkd8five5 +three53fourthreesixpjm +6sxpnjnqn79nineoneoneeighttwonenf +five398nine +96srrjjvjkpkbmhzdxgpkzszxxbseven +812vjlglflnd +34six9five7threeftcqxtcxxz +4threelpcjptwo +fivefivebldxbxeightjzsixthreefqmgb8 +9cmrblfnd4 +nine53one +seven3one +tsqrmmlvqjqone43 +one5bm1ninefourthree +p882seven +c3eight +3eightsix +4sevenfqdrpdqbjpxdbjdsevenmsfxsmjdtcdhpd +cbeightxkttcgmsmone2nine88 +nb7jtsvpggtcrntrbpzjthrsix35 +5ninevtv3712 +five3two2fivezbvfcvlnkskccj2 +six8seventhree14 +1eightmkzbxone9nv46 +three4one +3njpjstjvzh9xjxnqr +threetwo9sml3 +6rmzg6 +seven91xbpnine8onefxktwo +ppmpn2oneone +qch5 +rjrkk2zqzndfb7chzmtdv +vgkqbtwosix48zrntbhpn +82oneeightmbzvzvjb3four +6hrxnlmsfsngpklbrlrsvcl4 +65sevenfivesixvjm +kkkhbdcnxfbfourfoursevenonesevenfour5 +68qkcfd4four2 +two94twofour +zzmz2jbl46kjnktxnvqrj +982 +ninezrj9six +snxrvhctcrvzvfivehldldnjttonerstc4 +bsftwonezfhnm5vlsjtnpnzj +onefiven57 +seven6vbkrk +5five9 +twoseven9 +hglskzhzs7fpmmjzvmx9six9 +1vsb +4lrhsh +gnln3ccc +four23 +threebxljqlxkssmvndjbltcvfc4 +fournine6eight2fourthree +4sevenqtsfccrrpdhseven +6sdzjdrfcxmdztrhpxbfshmrstq7fiverrcmtdfxmqphnpfxhkt +jsnbngsppbhgsixeight9xmhkvvqcdjzgplvztspone +rtbrqpgdcmmx9nnjjs8seventhree1 +93five21 +tss6eight +cpgvone9four +1eightwom +rgrsvtv48857 +fptwonesixfivenine2 +8xdbvf1zgfiveslb +ninenine3 +p637sevenqbbvbpmlgrk +723onethreedhhvgls +four7five91pjlpnbmlfzvhrfhvs7 +six547eighttwo7rg +vphlckdvqx3three +four12th +2kqzlthree8 +sevenbl22 +two68six4four7 +lmrbqzgrsm2sixnine +fivexspftvthreezvjtgfbknp9mzslnb3two2 +8twofive2 +9vbngfdjmp +1qzphhnlbqz76411km +sevenfivethreetdnpmxllmkgnvhdz7tvjv +threectnine1seven +9fone +9sxbxsix6zmqllpzftsftbdf9nine +xninehhxsbzzspctdbpfdscbjq687glqdsqtvqz +threemjrdnvqrk7bvvsgfjfbone17 +npntthqz4nine9fourbrdsqgnzlf5 +133xqjvmjmpqdkt4 +2dnvzgtnl5d9vvjlknxxqfourfive +mtntzxzvkmqr748 +foursix6sixfour2vmqzxtzdqbzgmbrggmgtnine +hphqmdsgmvtwo35qnmsqnqnhlkb +flsxtqfxhsevensixgtkdseven6qzvscqbztwo +sixgxbmgchcrksixfivedznxzkzpttsvtzqhkdzrhqnhtwo5 +69zpddjrnztqbr +1fourone2four1hfgsrvgtht +1rbr2gpfpdghtwo7ninedzx +4sixfour +9fivebcckvbdnkqhhhskb2 +fghbcczsmhnbm1ninexdcpzjknqvfive6 +5sevenjtmhs1one +8htpbfhgsdh55one2two +mmxsmst1fivefivesevenfivetwo4 +984six6eight96 +bhrrjtgdmj4two +seven8three +three3onefour8v +five9qbf8fzlvtsix +nkcmtl16four +gkdlzkfrnteighttworjjmtbrb451 +txpkjjztlkth221seven +frtrvninesixlftgsxtxvbdnjmxc7 +4mzdfjsxzvs9one6jrjv5 +96threecxhhdjkmjhsrgz +one8sixcrchbgpz +grjvxszd1s6 +qbxvjggkfrcfivempdck4 +7one32jzpxdgstwo3pspjhmg +gsvgpdhthreesixeighttwo5hkncndcmthree +xksmqqsvzthreebjzr1fiveseven8seventwo +mlgjjjhn44 +threefour12sixseven16 +one2ghggthree4 +ninefiveseven8tbldpbcmmvn +jxtxlqcc6twoh2 +1xlsjrcfourqvlx9one +twothreetwo5 +tmsqz1vrrj72 +lcxdvtsl3onesix +fxqbcnpjzeight8seven +scpqzdhss13seven7nlkxmkntk64 +fnlcc74 +five4lkxcvztwo1two +85nmsjmgvcv +sixbqsxnq4 +6fiveeightfiveseven +mbcxhgrjdtdtfpclfxzc1fnvlnz1five +9587sixptttpksnbnzzsrls +1jcqnzffpmrninesevenssxfndgkx +7zffzsjgzbgzzfvv2vnrrfvnclseven +mbghnmthjjfmcxzsixfive44 +hklcflkm7four3 +fddnsshjxf6twospgtkzzkfsix +sevenninesevenlkrhnzdzxfive6six +55bqeight +5nine6mfbeightsixone1 +rjlkpq77 +jqeightwofourtbcqvkvvqzcmrbbmzfiveseven59qmtz +ldb2jfqll +4nineftshkg77jtxggdt9four +nine2seven47seven487 +8lpctcvhvfivezqcrtrxrsevenqhhtxrdplfbqpr1mjfkcfrrfc +zmlhsn6tfiveseven +djfmdf6 +fhcthree5 +9sevenbftsixone +four11tprnmdmvczfourgpjx +eightfourninexdchgfblq7 +4c5sevendgtngqxzghpxpcs2 +xdqcfmhsz3ktf +eightkvhvqgqn88rrftxjzzsrfb +gznfkfbtbnthree1four +273kfrsjbpzbzseven +five9foureightvlpmphnp +1qtgttxninetwosqfffcsfgxdz68psbmvvpmt +nine9fivefcnpbnl6tmbsjkrr9three +szmthreeonesix2bqfqrxkljlseven +jvphjsqzlc2dbzchmronetwo +8sixthree2v9threesixqkqb +fourone3eight6fiveeightrgjmfive +9ppveight +two6vgkdlv73ninesix +44886488 +lsjxprxdz58eight32 +four95skp +2eight3three9jq7nkftgzn +cssgnvhvnnrlklmmxdfxhtvptwo6fmtmchspb +9five7xnx4hxvdlslgpfourfour +onetwo9six3cpsdjprgkjthcfmkkx +1threeeightqgxvvvgvs1lqrfivegfqqslmc +five7eightfivesix9one29 +59eighttwooneone +4s44549fiverhcbmpqgjm +nineffkpxf2 +seven8fqsvjnjzphsevenj +eightmpgfxkspplninekqzlplrmmn224twonezxf +mqqqctworfpjkkhninevgh7eightonezdmfrrvv +one31 +8nbcjdx3 +rdprrrcjjflkxszthreetworvfksix4 +one59three +2rhxjrb6kjdpxqbthree6xlzgvk +threexbsvqsseven7cxmggqrnsthree9 +gmqxghthreeone7fourvfivefoursix +5nine8 +khcnjsfourzxjkvp5zfhpcvv +three3xnbzpmjqsix5 +3ninehvdbz43 +47ssqq5fourfoursixcggslftbttlpb +2threemdtlrprfzc +2threethree +nine84fczsrqzd7six +fourmrbqh79 +gqdhhggdxfive6 +d99fphzhxghqt44seven +lldllhmzrskzzbzsixfour6two91seven +3xzjfsppg +7five6nzfpvcpm5 +one9mpggcblrpstzpvfffivelkrqvkvkkhtzseven +eightbr3ksix +4eighttwothree2bzfivebn +18twoseven +bdjbgtxdjx57seven +eightthree89two3vmsbxbskclh +lgnbbjxtmgvfsix5three +cgrsfsns653five7 +two1sevenkqllxjvqbfvfxnr +jptmclgmdzhndpkbcd9 +twosix62threeone2 +three5chntgfivegkbzfrvvxkb +5djqstgsrbhl8 +9v3 +8four9four89 +five2nineseven +h3cpsxzx3four2 +fivehpzczrl5zxkzkpxcvdkshsfqzxpjqqhdg5 +bdfftptqt8kmpbdgsncceightzmtfjphnxqbslplrqxv8 +two74tworvzjftxvqzpvx +bpjslrgkbonethreelfsxshjtpfour2kjxgzgv +rqktwopdlvjrrxlgvrfnnine3qonesix +fivefivec4sixgdldnine9 +eightz1zzqph +dgmcl5153qtgxlkzgtzseven8three +knkrvlxvjs6svsrj51fourhjbqzq +three96 +szxkfqthreethreenine1 +9gxtwofourzeight +fninel8 +ninevzddbcfhttwo1onesj +mdbg8qxvzfsgmh9eighthpqcrzklheightwofp +78lqjv3fourdthreethreeeightwonlq +fourkkrzcbphdseight8brqjsfsbfktwo +4tnvlcfjqsixql +zd7nbzhclh8 +plkrkone2 +mksjljks4xfslzzlp +nine22462seven2 +gbtwonine93 +vkvb6fiveltone2eight2 +cnxxhvlcj863sixsevenmckrblvvtbzqbc +nfldnvnxx2eightninexnsbseven +1six6 +nine83 +one5djxkzxrttqthree8jzqdfvthmtwooneone +gjdj1eight +3fivetwonzflsvgdmgtbz +threetwosixvbssrqxjfvffour3 +2ninefivernscgdfrgpsnvtchzfxmdhjfsfivefour +threegsmtcn12 +foursmbzsrhnnseven6twodnnjhbthree +62twortpndjsgfgmd +ktxsgdskqtlbnj5one1mxhztxgb2four +threefourfmfxrmnlhninersxz1eight +3jkqdvsevensixhbxfq +slmseven8sndphqlhjgbzhrdrfxzphfvs +6gfvsxprrmg7nzmjkvnm8 +34qgtjsnoneqbqrmkz9 +2sevendvqvdtjrjrhpfzkphpsixtwozkfg +72nineseven +nsgmfsfive8two +71sixhzsl9sixfnrjntxpv +onennncchq73eight3 +vsxbb13cpdpvhnmz2 +681 +mpgd2 +bzh72seven +fiveeight4589jknzbnjlrt57 +one3dm4 +91nine6mbspjn +bzmztdlkqslzbnghlsxtvfk2 +3two12vpl7dkkjjln4 +zdmgeight9kfvtpx7nine +7114nine655xxx +332 +six183fourfivelstnlsvgvx +zsxbg9tbpsnbvzhj6eight +nqqctrzlpggjrrrlzdfkjthree2 +fivecsvzxptmhk8 +d7hssmvk6one +kngdgssixeight1four3 +sevengptvbjtkbxsdgzdeight8twop +fourlmscbhkkfour89kflkf +7bxl6mcgzfxv +klkqmz29 +kmszrdfour2ppkkdlffivendgcfthree8 +kcvpt7 +sdjttwokhtzdksix6 +eight83four31nine4 +4eight4vxctcsgzf31qhjptxhfrjtl +dhhfmbhtst6ninehmb2 +1ninesevenkhfmgjjltgkrgxvm48cxtzzvhn +dczpdbfl45jcpmckczpssnqn2six7 +6tsmftwokdgltlkzqdqttflqhm +1qthkhrrjxvbkngldslmzp2 +2sevenr6zzcvkqgkn93 +1fivec1x2gbdkqvkqpsix7 +3znplrfxnrq +ninetwofiveseven44bsn +onefive9zqknglr8thzhx +sevenfourcts5lttdprpg8three9seven +seven9vfjqdfkg3 +5tjmtkhseven3five +crf14 +5fourxxn +r3fivejbvrzgnl +4nine5 +svhmflmpbkjjponemj2threefslgpxsrprjzvfxcrvp +91threeeightfour6bmqfmr +6krhfmtwothree2sixeight +pdpvrlqb36 +4sixsevenseventhreegjthree +threehgckkksz8eight3 +qqhtjq3lnvqkpjvrp42 +3three8four942 +mggbbhxd4eightvmmdvl +fourtqpgjkszglhthree752 +ninehsnqzkrzpfgdvlg5six +6two8xstlhvhkhdone +fivesix55eightqpjdxkpnine +ftwone4seventhreenine3two +sixfivetwoqplqntzlldbmkgzsix78 +onenlqnxcr4 +seven5spnronedhtxsdgtfgsgjl1jlhf +fivethreednbvgpbr7four5 +qchoneightpbgdzxjbshqf527four4 +51threetwo5sevenhnnpjvx +qdkcbnkjssixtwobkfzcnfkb84 +qsjgzbgpxq9 +7eight3six +8jvmxgnp6cqpsqtqgfive1nine +nineg11sj +3fourfour +pg6djcsdmdlgjtwo1 +bxcbznvnqbfjjbfonedgl3foureightjgsqbqhzhg +twofivetwosixv5fiveonenine +l8eight6gdmd +nine15bcseven2 +l4 +g5ldxkrk4fivevft +fourxmf35 +nine6xdhfmltwofnqkf +phbcjjmnmcvjgzfsixfour6eight5 +2ckvh +rzone3745 +keightwosixfour466 +one3lbkl7tssqxqrbbmxkh +6oneonezllhftdf4bfpxj +6eightpc +ninenine4nbfbqrtnvkl +sixqbbffgdsixtwofivesix8 +zfplftwosixsixnine9 +two4rncnine77nineczlfdrp +43jseven +7mntc +6z146fourtwo +seventhreethreevxmbzhmpktj6twohxzjnhp7 +tz6vrdbzgzhxcfd +seven6eighttgglxnhmknine +8eightseven41crvrxbonetmscnl +xbhtfgg5four86onesixthreejk +3dlblsjq +sevenmsrgcfmxmthreegzgxdqmkcgkjcbnx45pzlcjc +5nine69 +9cpjmdgf +4fourkgzmjnhplrlmeight +ninetwo6sixmdz +dcdbk71twothree56fourtbzkz +tcc3nineeightseven2flrlndb4 +sixcpztsj72zpdhmvfp4two +9hnine5 +two7kktkms +1sevennine +5zczmvxthreethreetwovvnfvvsjnv +9dhjcgnnsvh4five4 +bbv46hvj68eight7 +sdmntqgftc5blnhkktqmg1five +5ninefour +gmg6bzgrxhgtssthreenine1 +78twothree4mtbfthree +hclggrdf9 +jnbmj3seven4 +xdhcgkrkrtrfourcxmlzp1scxkxxzlsdjfccchzg +rpdphff9blkl22csthreex +stwone791seven +cdfkxhfqr4sdlcleightnine72tkftldjnq +tklpckfour7seven1qvxthlfourhtrdn2 +b4three4cninetwonebbv +nfourdzxjxcp7mnzkzdnmpqsixgn +jfcfncxone9kmdrbxfjtpvfp26 +6threeseven21ssblsvrbfsvzmbktkpztcsmpt7 +vgchkqhxrbjnlqnvpml77twonejcv +gxklhvtwo55five +sevenfivetwo1mtdfjgcp2sevenpj +qvrjceightcjlp5 +tbl4zxthxzpsix +rvzlvnhnineeight2cxxcslhpph +shrxnz9rtfrtrtr +1drmztt2zfournrmxfivejzksgzqfour +chtmdlppljlllhg8threendnhkn1qzxkrtnqgrtwo +two15eighttdlrpqjx45 +1kqd5 +3krsbnzthreetxpv +7ninefivesix67sixseven +sevenninesmjkdfssnl3two7 +pmjmkzdrvfour4nineseven +t1xnlcvlfninecbrzxc5 +nine3qnjcktfiveeightkhb +psqrone1nxcsrntkjg9 +6lgdfgxts9two9 +48six4 +threehvxfhzvxhs8three2two +onesrmxjlv43gtsjtdneight +5eight14fournineeightfour4 +3mljsmn7mrnvnc844 +5dmdvxxddhone9fiveone +twogscrq26xfppjzhthreervonefour +6ndcblbmdjpthreetwotwovpcsmffive +5gkqzhgvrcthreeseven +sixkhgqjqnineqhxl4 +z6ltpkcqxmd +fivetwo5rstcq9 +threetwo563 +4fourtvksk8onefive +294tv +7flzfzm22brfgxsqhhckzc5 +twoone9sixsixninethree7 +2glqfourseven1one +nine4five7418 +9xfivezxrr1xpjm896 +foursixtwoninevtzzgntnlg6oneightbxp +2eight1fiveeightfive +mzjxlhjmqp58six +one34 +8fivejdmljr +tsblxssixseven4djq +8drrmf32 +11twok9663 +hsoneight3sevennpsbbkdvsb46 +dtrnnhxcdmzzlssffhgvbxxrgbcz2fiveonesix +kkeightwo6975six +jcftbeight9 +fivefivephbpdtkqfm246 +5eight97nine +4sixfour4nppgsr36one3 +glxlmnvhjxsevensix1fourseven +sevensixjczjhjzbj8fnsnrsevenfive2seven +jjpngnpzglkbltbrv2tjmqrpb +4txvpps9kvjhgsqpcv6eight2jxk +onesix8qfvkckg145ndkfdcvznine +nkthree86b5fgzzfoneqn +eightgndhmrfouronexldvdvqnzxqjczfk1 diff --git a/src/python/2023/day01/main.py b/src/python/2023/day01/main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2023/day01/test_main.py b/src/python/2023/day01/test_main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2023/day02/input.txt b/src/python/2023/day02/input.txt new file mode 100644 index 0000000..f06a648 --- /dev/null +++ b/src/python/2023/day02/input.txt @@ -0,0 +1,100 @@ +Game 1: 7 blue, 6 green, 3 red; 3 red, 5 green, 1 blue; 1 red, 5 green, 8 blue; 3 red, 1 green, 5 blue +Game 2: 9 green, 1 blue, 12 red; 1 blue, 18 green, 8 red; 2 blue, 6 green, 13 red; 3 blue, 13 red, 7 green; 5 blue, 4 red, 4 green; 6 blue, 7 green, 4 red +Game 3: 5 blue, 9 red, 14 green; 10 green, 3 blue; 11 red, 2 blue, 8 green; 5 red, 2 blue; 5 blue, 7 green, 8 red +Game 4: 2 red, 3 blue, 2 green; 17 green, 6 blue, 1 red; 3 blue, 5 green, 1 red; 4 red, 1 blue, 16 green; 5 red, 4 blue, 13 green; 14 green, 5 blue, 6 red +Game 5: 3 red, 17 green, 10 blue; 9 blue, 5 green; 14 green, 9 blue, 11 red +Game 6: 4 green, 18 blue, 3 red; 6 green, 8 blue, 9 red; 4 green, 9 blue, 7 red; 9 red, 1 green, 12 blue +Game 7: 1 blue, 14 green; 1 red, 4 blue, 15 green; 3 blue, 6 green; 3 blue, 2 green, 1 red; 1 red, 3 green, 1 blue +Game 8: 10 red, 3 blue, 3 green; 5 blue, 7 red, 3 green; 3 red, 3 green, 11 blue; 1 red, 7 green, 10 blue; 13 blue, 5 green, 5 red; 1 green, 17 blue, 3 red +Game 9: 1 blue, 6 green; 7 green, 2 red; 3 red, 2 green; 1 blue, 4 red, 3 green; 7 green, 1 blue, 1 red +Game 10: 14 green, 6 blue, 1 red; 8 green, 5 red, 1 blue; 8 green, 5 blue, 5 red; 2 green, 3 blue, 5 red +Game 11: 1 blue, 2 green; 1 blue, 1 green, 7 red; 1 blue, 4 green, 7 red; 2 red, 2 green, 1 blue +Game 12: 5 blue, 12 green, 12 red; 11 green, 3 red; 14 green, 3 blue, 18 red +Game 13: 2 green, 6 red; 6 red, 5 blue; 7 red, 3 blue, 8 green; 7 red, 8 green; 3 blue, 2 green, 3 red; 1 blue, 8 red, 6 green +Game 14: 18 green, 6 blue, 5 red; 5 blue, 15 red, 19 green; 7 green, 11 blue, 20 red; 5 red, 18 green, 7 blue +Game 15: 3 red, 16 green, 1 blue; 11 green, 6 red, 1 blue; 12 green, 2 red; 17 green, 1 blue, 14 red +Game 16: 3 red, 2 green, 5 blue; 1 green, 6 blue, 1 red; 1 green, 2 blue, 3 red; 1 blue, 1 red; 5 blue, 1 green, 2 red +Game 17: 3 blue, 6 red; 1 blue, 2 red; 1 blue, 1 green, 7 red; 1 green, 7 red, 2 blue; 7 red, 1 blue; 1 green, 8 red, 1 blue +Game 18: 6 green, 10 red; 6 red, 7 green; 10 red, 11 green; 10 red, 2 blue, 5 green +Game 19: 2 blue; 1 blue, 4 green, 6 red; 7 green, 6 red, 2 blue; 2 blue, 5 red, 4 green; 1 green, 10 red +Game 20: 6 red, 5 green, 10 blue; 5 blue, 5 green, 9 red; 7 blue, 3 green, 3 red; 9 blue, 12 red, 1 green +Game 21: 4 red, 18 blue, 14 green; 3 green, 14 blue, 5 red; 5 green, 12 blue; 1 blue, 2 red, 1 green; 5 red, 11 green, 7 blue; 17 green, 4 red, 15 blue +Game 22: 1 blue, 14 green, 4 red; 7 green, 10 red; 9 green, 1 blue, 9 red; 1 blue, 8 green, 5 red +Game 23: 4 blue, 5 green, 2 red; 6 blue, 8 red, 4 green; 4 blue, 17 red, 14 green +Game 24: 3 green, 8 blue; 3 blue, 5 green, 13 red; 17 red, 4 green +Game 25: 19 red, 9 blue, 1 green; 3 green, 18 red, 6 blue; 1 green, 7 red, 7 blue; 8 blue, 1 red +Game 26: 10 green, 12 blue, 2 red; 9 red; 10 blue, 12 green, 9 red +Game 27: 2 blue, 8 green, 6 red; 5 green, 9 red; 4 red, 11 green +Game 28: 10 blue, 20 red; 14 blue, 3 green, 2 red; 9 red, 12 blue, 1 green +Game 29: 4 red, 1 blue, 2 green; 1 green, 6 red, 1 blue; 15 red +Game 30: 1 red, 13 blue, 6 green; 3 blue, 4 green; 19 blue, 11 green; 1 red, 11 green, 14 blue +Game 31: 10 red, 12 green; 12 green, 10 red; 2 blue, 15 red, 12 green; 2 green, 2 blue, 15 red; 9 green, 5 red, 2 blue +Game 32: 5 blue, 5 green, 8 red; 5 green, 6 red; 5 blue, 8 red, 4 green; 5 green, 3 blue, 6 red +Game 33: 1 red, 9 green, 5 blue; 17 green, 4 blue; 3 green, 2 blue; 10 green, 2 blue; 1 blue, 4 green; 2 green, 9 blue +Game 34: 11 blue, 11 red, 9 green; 13 red, 3 blue, 5 green; 9 green, 12 blue, 5 red; 13 red, 8 blue, 5 green +Game 35: 1 green, 3 red, 7 blue; 1 red, 3 green, 9 blue; 1 blue, 2 green, 1 red; 11 blue, 5 red, 6 green +Game 36: 4 blue, 12 green, 16 red; 7 blue, 11 green; 8 green, 5 blue, 1 red; 14 green, 3 red +Game 37: 13 red, 5 blue, 9 green; 1 red, 10 blue, 14 green; 1 green, 2 blue, 10 red; 13 red, 10 blue; 1 blue, 8 green +Game 38: 3 red, 4 blue, 8 green; 1 red, 11 blue, 4 green; 13 blue, 8 green; 3 red, 3 green, 10 blue; 1 red, 1 blue, 1 green; 1 green, 2 red, 10 blue +Game 39: 9 red, 7 blue, 1 green; 15 red, 4 green, 1 blue; 2 green, 8 blue, 7 red; 6 blue, 11 red; 12 red, 2 blue, 7 green +Game 40: 13 red, 3 green, 1 blue; 3 green, 10 red; 16 red +Game 41: 1 blue, 3 red; 7 blue, 5 red, 3 green; 4 red, 3 blue, 2 green; 2 blue, 5 red, 1 green; 3 green, 4 red, 3 blue; 5 blue, 2 red +Game 42: 1 red, 4 green; 11 red, 4 green; 13 red; 1 blue, 10 red; 1 blue, 2 red, 4 green +Game 43: 11 green, 13 red, 1 blue; 11 green, 9 red, 2 blue; 7 green; 13 green, 15 red; 1 blue, 14 green +Game 44: 5 green, 14 blue, 15 red; 13 blue, 15 green; 9 green, 15 red, 6 blue +Game 45: 16 red, 8 blue; 1 green, 4 blue, 6 red; 4 blue, 8 red; 12 red, 3 blue, 3 green; 2 green, 4 red, 4 blue; 2 green, 8 blue, 10 red +Game 46: 12 blue, 3 green, 12 red; 9 red, 9 blue; 3 green, 12 red; 10 red, 6 green; 2 red, 7 blue +Game 47: 9 green, 6 red; 1 blue, 7 red, 10 green; 1 green, 2 red; 1 red, 3 green +Game 48: 9 blue, 5 green, 13 red; 14 green, 4 red; 15 red, 9 green, 1 blue; 4 blue, 6 red, 13 green; 9 green, 8 blue, 8 red +Game 49: 5 blue, 3 red; 1 green, 2 red, 5 blue; 1 green, 7 blue; 3 green +Game 50: 8 red, 6 green; 10 blue, 4 green, 6 red; 8 green, 11 blue, 9 red +Game 51: 5 blue; 13 blue; 1 red, 2 blue, 1 green; 1 red, 8 blue +Game 52: 7 blue; 1 red, 2 green, 12 blue; 1 red, 5 blue; 2 red, 7 blue, 4 green; 3 green, 2 red, 2 blue +Game 53: 10 blue, 12 red; 3 green, 5 blue, 3 red; 14 red, 4 green, 7 blue; 1 red, 14 blue +Game 54: 2 blue, 14 red, 3 green; 3 green, 7 red; 2 blue, 3 green, 9 red; 3 green, 7 red; 1 green, 14 red, 1 blue +Game 55: 3 green, 9 red, 12 blue; 5 blue, 5 green, 2 red; 7 green, 14 red, 12 blue +Game 56: 1 blue, 3 red, 4 green; 5 red, 8 green, 1 blue; 3 green, 1 blue, 2 red +Game 57: 8 blue, 13 red, 2 green; 3 blue, 5 red; 7 red, 2 green; 2 red, 5 blue, 3 green; 1 green, 4 blue +Game 58: 4 green, 3 red, 2 blue; 5 green, 2 blue, 10 red; 11 green, 1 red, 2 blue; 4 red, 5 green +Game 59: 5 green; 4 green, 2 blue; 1 red, 9 green; 7 green, 2 blue; 16 green, 1 blue +Game 60: 6 green, 5 blue, 1 red; 5 blue, 3 green, 6 red; 1 green, 5 blue, 14 red; 6 red, 4 blue, 3 green +Game 61: 2 green, 6 red, 6 blue; 6 blue, 3 red; 1 green, 2 red, 2 blue; 1 red, 2 green; 5 red, 1 green, 2 blue; 2 green, 6 red, 6 blue +Game 62: 18 green, 8 blue, 1 red; 8 green, 4 red; 13 blue, 1 red, 3 green; 7 blue, 2 green, 4 red; 4 blue, 12 green, 5 red; 12 green, 11 blue +Game 63: 2 red, 3 blue; 10 green, 13 red, 1 blue; 11 red, 3 green, 4 blue +Game 64: 1 green, 16 red; 17 blue, 9 red, 1 green; 14 red, 7 blue +Game 65: 7 blue, 11 red, 11 green; 7 red, 11 green; 3 blue, 13 red, 11 green; 5 green, 6 blue; 11 blue, 8 red, 3 green +Game 66: 3 blue, 1 green, 3 red; 5 blue, 2 green, 5 red; 1 blue, 2 green, 7 red; 2 blue, 6 red; 7 red, 2 green, 2 blue; 2 red +Game 67: 1 blue, 6 red, 2 green; 1 blue, 10 green, 6 red; 8 red, 2 blue, 4 green; 7 green, 9 red, 1 blue; 8 red, 7 green; 5 green, 1 blue +Game 68: 15 blue, 8 green, 2 red; 6 blue, 2 green; 5 red, 6 green, 8 blue; 6 red, 11 green, 7 blue; 1 red, 3 blue; 5 red, 6 green, 5 blue +Game 69: 5 blue, 4 green; 1 green, 11 red, 9 blue; 4 green, 15 blue, 6 red; 11 blue, 4 green, 5 red; 8 red, 3 green; 5 blue, 8 red +Game 70: 5 blue, 4 red, 8 green; 6 blue, 6 green; 14 blue, 7 red, 1 green; 2 green, 6 blue, 3 red; 7 red, 11 blue, 3 green +Game 71: 13 red, 6 blue, 10 green; 7 red, 12 green; 9 green, 14 red, 2 blue +Game 72: 9 red, 3 green, 3 blue; 8 red, 7 blue, 5 green; 3 blue, 2 green, 1 red; 1 red, 2 blue, 2 green; 10 red, 7 green, 6 blue +Game 73: 4 green, 3 red; 1 red; 2 red, 2 blue, 2 green; 1 blue, 3 red, 1 green; 2 blue, 3 red, 2 green; 1 red, 1 blue +Game 74: 12 green, 4 red, 4 blue; 3 red, 13 green; 1 red, 13 green, 1 blue; 1 red, 3 blue, 6 green; 6 blue, 5 red, 4 green; 7 blue, 5 green, 1 red +Game 75: 11 red, 1 green; 12 blue, 1 red; 2 blue, 1 green, 4 red; 11 red; 12 red, 6 green, 10 blue; 4 green, 5 blue, 7 red +Game 76: 2 blue, 5 red, 6 green; 1 red, 10 green, 11 blue; 7 red, 11 green; 4 red, 10 blue, 10 green; 7 blue, 16 green, 2 red +Game 77: 2 blue, 11 red, 4 green; 6 green, 3 blue, 2 red; 2 blue, 2 red, 7 green; 8 red, 14 blue, 5 green; 5 green, 2 blue, 18 red +Game 78: 9 red, 7 green, 6 blue; 12 blue, 6 red; 1 red, 15 blue, 7 green; 3 blue, 11 green, 1 red +Game 79: 3 blue; 1 blue; 1 red, 1 blue, 1 green; 3 blue; 5 blue, 1 red; 1 blue, 1 green, 1 red +Game 80: 18 blue, 13 green, 7 red; 18 blue, 3 green, 3 red; 2 red, 9 blue, 14 green +Game 81: 11 blue, 6 green, 3 red; 8 green, 12 red, 10 blue; 5 red, 4 blue, 13 green +Game 82: 2 blue, 3 red; 4 blue, 17 red; 9 red; 12 red; 1 green, 6 blue, 7 red; 20 red +Game 83: 1 blue, 1 red; 3 red, 1 blue; 3 red, 5 green; 1 blue, 2 green, 4 red; 5 green, 3 blue, 2 red +Game 84: 4 red, 2 blue, 2 green; 8 red, 10 blue; 1 green, 15 red, 8 blue +Game 85: 15 green; 11 red, 2 blue, 5 green; 8 red, 2 blue, 12 green; 15 red, 10 green; 10 red, 15 green; 17 red, 1 blue, 11 green +Game 86: 6 blue, 1 red; 2 green, 1 red, 8 blue; 2 green, 10 blue; 10 blue, 2 green; 1 red, 5 blue +Game 87: 4 red, 4 blue; 18 red, 8 blue; 16 red; 4 red, 1 green, 3 blue; 14 red, 9 blue +Game 88: 11 green, 7 blue, 4 red; 3 red; 2 blue, 12 red, 19 green; 13 red, 3 blue, 2 green +Game 89: 1 green, 1 red; 1 blue, 1 red, 6 green; 6 green, 3 red; 5 green, 2 red, 6 blue; 7 blue, 2 red, 8 green; 1 red, 2 blue +Game 90: 3 green, 3 red, 3 blue; 5 green, 2 blue, 3 red; 1 blue, 2 red; 11 green, 1 blue, 2 red; 1 green, 3 blue, 4 red +Game 91: 7 blue, 2 red; 2 blue, 1 red, 1 green; 6 blue, 1 red; 1 red, 7 blue +Game 92: 11 green, 16 blue; 17 red, 7 blue, 9 green; 11 green, 3 blue, 12 red; 2 blue, 1 green, 6 red +Game 93: 6 red, 1 blue, 3 green; 1 blue, 8 red, 7 green; 3 red, 5 green; 1 red, 2 green; 3 red, 7 green; 2 green, 15 red, 1 blue +Game 94: 7 blue, 2 red, 2 green; 9 blue, 4 red, 2 green; 9 blue, 5 red, 3 green; 1 blue, 4 red, 3 green; 4 red, 1 green, 7 blue; 9 blue, 3 green, 3 red +Game 95: 1 blue, 2 green, 2 red; 6 green, 6 red, 1 blue; 3 blue, 5 red, 2 green; 1 blue; 5 green, 2 red, 2 blue +Game 96: 3 blue, 6 red, 5 green; 5 blue, 8 green, 9 red; 2 red, 5 green, 1 blue; 6 green, 4 blue, 3 red; 2 green, 2 blue; 6 blue, 4 green +Game 97: 6 green, 8 blue, 5 red; 9 green, 6 blue; 3 green, 3 blue; 2 blue, 10 green, 4 red +Game 98: 11 blue, 1 green, 9 red; 5 green, 1 blue, 6 red; 13 blue, 6 green, 10 red; 6 blue, 4 green, 9 red +Game 99: 4 red, 3 green, 3 blue; 6 blue, 4 green, 11 red; 3 green, 15 red; 1 blue, 6 green, 14 red +Game 100: 14 green, 6 blue, 12 red; 2 green, 1 blue, 2 red; 12 red, 7 blue, 3 green; 1 blue, 12 red, 8 green diff --git a/src/python/2023/day02/main.py b/src/python/2023/day02/main.py new file mode 100644 index 0000000..e69de29 diff --git a/src/python/2023/day02/test_main.py b/src/python/2023/day02/test_main.py new file mode 100644 index 0000000..e69de29 From 2e70ed9d004dd3e673a4a71aefc45a05bb62c96c Mon Sep 17 00:00:00 2001 From: Arun Date: Thu, 22 Aug 2024 13:17:26 -0700 Subject: [PATCH 2/7] feat: Implement solutions for Day 4 of Advent of Code 2022 --- src/python/2022/day04/main.py | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/python/2022/day04/main.py b/src/python/2022/day04/main.py index e69de29..2f9ceaf 100644 --- a/src/python/2022/day04/main.py +++ b/src/python/2022/day04/main.py @@ -0,0 +1,36 @@ +def parse_input(input_file): + with open(input_file, 'r') as file: + return file.read().splitlines() + +def day04_of_2022_part_a(pairs): + fully_contained = 0 + for pair in pairs: + ranges = pair.split(',') + range1 = list(map(int, ranges[0].split('-'))) + range2 = list(map(int, ranges[1].split('-'))) + if (range1[0] <= range2[0] and range1[1] >= range2[1]) or (range2[0] <= range1[0] and range2[1] >= range1[1]): + fully_contained += 1 + return fully_contained + +def day04_of_2022_part_b(pairs): + partially_contained = 0 + for pair in pairs: + ranges = pair.split(',') + range1 = list(map(int, ranges[0].split('-'))) + range2 = list(map(int, ranges[1].split('-'))) + if (range1[0] <= range2[0] <= range1[1]) or (range2[0] <= range1[0] <= range2[1]): + partially_contained += 1 + return partially_contained + +def main(): + try: + pairs = parse_input("input.txt") + fully_contained = day04_of_2022_part_a(pairs) + partially_contained = day04_of_2022_part_b(pairs) + print(fully_contained) + print(partially_contained) + except Exception as e: + print(f"An error occurred: {e}") + +if __name__ == "__main__": + main() From eddf308b0f7b2f17be33440923ad10a7f95cb00a Mon Sep 17 00:00:00 2001 From: Arun Date: Thu, 22 Aug 2024 13:18:54 -0700 Subject: [PATCH 3/7] feat: Add support for dynamic input file path --- src/python/2022/day04/main.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/python/2022/day04/main.py b/src/python/2022/day04/main.py index 2f9ceaf..deaedc7 100644 --- a/src/python/2022/day04/main.py +++ b/src/python/2022/day04/main.py @@ -1,3 +1,5 @@ +import os + def parse_input(input_file): with open(input_file, 'r') as file: return file.read().splitlines() @@ -24,7 +26,9 @@ def day04_of_2022_part_b(pairs): def main(): try: - pairs = parse_input("input.txt") + dir = os.path.dirname(os.path.abspath(__file__)) + input_file = os.path.join(dir, "input.txt") + pairs = parse_input(input_file) fully_contained = day04_of_2022_part_a(pairs) partially_contained = day04_of_2022_part_b(pairs) print(fully_contained) From 024ae828bd0dead6739f06a40f53bdec99713bfd Mon Sep 17 00:00:00 2001 From: Arun Date: Thu, 22 Aug 2024 13:22:44 -0700 Subject: [PATCH 4/7] fix: Add getCurrentDir function to get the current directory --- src/2022/day04/main.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/2022/day04/main.go b/src/2022/day04/main.go index 62163a4..cd96021 100644 --- a/src/2022/day04/main.go +++ b/src/2022/day04/main.go @@ -5,10 +5,18 @@ import ( "fmt" "log" "os" + "path/filepath" + "runtime" "strconv" "strings" ) +func getCurrentDir() string { + _, filename, _, _ := runtime.Caller(0) + dir := filepath.Dir(filename) + return dir +} + func parseInput(input *os.File) ([]string, error) { scanner := bufio.NewScanner(input) masterPairs := make([]string, 0) @@ -56,7 +64,7 @@ func Day04Of2022PartB(pairs []string) (int, error) { } func main() { - input, err := os.Open("input.txt") + input, err := os.Open(filepath.Join(getCurrentDir(), "input.txt")) if err != nil { log.Fatal(err) } From a1d2809d2475aaaac73bbfc2622619a5d58527e8 Mon Sep 17 00:00:00 2001 From: Arun Date: Thu, 22 Aug 2024 13:30:58 -0700 Subject: [PATCH 5/7] ci: Rename 'tests.yml' to 'go-tests.yml' and add 'python-tests.yml' --- .github/workflows/{tests.yml => go-tests.yml} | 22 +++---- .github/workflows/python-tests.yml | 59 +++++++++++++++++++ 2 files changed, 70 insertions(+), 11 deletions(-) rename .github/workflows/{tests.yml => go-tests.yml} (80%) create mode 100644 .github/workflows/python-tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/go-tests.yml similarity index 80% rename from .github/workflows/tests.yml rename to .github/workflows/go-tests.yml index 52a1c39..52a4348 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/go-tests.yml @@ -1,4 +1,4 @@ -name: Go Test +name: Go Tests on: push: @@ -8,7 +8,7 @@ on: workflow_dispatch: jobs: - diff: + go-diff: runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} @@ -23,31 +23,31 @@ jobs: echo "Changed directories: $changed_dirs" echo "matrix=$changed_dirs" >> $GITHUB_OUTPUT - test: - needs: diff + go-test: + needs: go-diff runs-on: ubuntu-latest - if: needs.diff.outputs.matrix != '[]' + if: needs.go-diff.outputs.matrix != '[]' strategy: fail-fast: false matrix: - dir: ${{fromJson(needs.diff.outputs.matrix)}} + dir: ${{fromJson(needs.go-diff.outputs.matrix)}} steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "^1.23.0" - - name: Run tests in changed directories + - name: Run Go tests in changed directories run: | for dir in "${{ matrix.dir }}"; do if [ -d "$dir" ]; then - echo "Running tests in $dir" + echo "Running Go tests in $dir" (cd "$dir" && go test ./...) else echo "No Go files in $dir" fi done - test-main: + go-test-main: if: github.ref == 'refs/heads/main' && github.event_name == 'push' runs-on: ubuntu-latest steps: @@ -55,5 +55,5 @@ jobs: - uses: actions/setup-go@v5 with: go-version: "^1.23.0" - - name: Run tests - run: go test ./... + - name: Run Go tests + run: go test ./... \ No newline at end of file diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml new file mode 100644 index 0000000..43ea6c4 --- /dev/null +++ b/.github/workflows/python-tests.yml @@ -0,0 +1,59 @@ +name: Python Tests + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +jobs: + python-diff: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.head_ref }} + - id: set-matrix + run: | + changed_dirs=$(git diff --name-only origin/${{ github.base_ref }} | grep '.py$' | xargs -I {} dirname {} | uniq | awk '{print "\"" $0 "\""}' | jq -R -s -c 'split("\n")[:-1]') + echo "Changed directories: $changed_dirs" + echo "matrix=$changed_dirs" >> $GITHUB_OUTPUT + + python-test: + needs: python-diff + runs-on: ubuntu-latest + if: needs.python-diff.outputs.matrix != '[]' + strategy: + fail-fast: false + matrix: + dir: ${{fromJson(needs.python-diff.outputs.matrix)}} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + - name: Run Python tests in changed directories + run: | + for dir in "${{ matrix.dir }}"; do + if [ -d "$dir" ]; then + echo "Running Python tests in $dir" + (cd "$dir" && python -m unittest discover) + else + echo "No Python files in $dir" + fi + done + + python-test-main: + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + - name: Run Python tests + run: python -m unittest discover \ No newline at end of file From daaf9e5500df52c20a798bb67dab4de003c4bfe5 Mon Sep 17 00:00:00 2001 From: Arun Date: Thu, 22 Aug 2024 14:20:53 -0700 Subject: [PATCH 6/7] refactor: Reorganize directory structure for 2022 and 2023 solutions --- src/2022/{ => go}/day01/input.txt | 0 src/2022/{ => go}/day01/main.go | 0 src/2022/{ => go}/day01/main_test.go | 0 src/2022/{ => go}/day01/test.txt | 0 src/2022/{ => go}/day02/input.txt | 0 src/2022/{ => go}/day02/main.go | 0 src/2022/{ => go}/day02/main_test.go | 0 src/2022/{ => go}/day02/test.txt | 0 src/2022/{ => go}/day03/input.txt | 0 src/2022/{ => go}/day03/main.go | 0 src/2022/{ => go}/day03/main_test.go | 0 src/2022/{ => go}/day03/test.txt | 0 src/2022/{ => go}/day04/input.txt | 0 src/2022/{ => go}/day04/main.go | 0 src/2022/{ => go}/day04/main_test.go | 0 src/2022/{ => go}/day04/test.txt | 0 src/{python/2022 => 2022/python}/day01/input.txt | 0 src/{python/2022 => 2022/python}/day01/main.py | 0 src/{python/2022 => 2022/python}/day01/test.txt | 0 src/{python/2022 => 2022/python}/day01/test_main.py | 0 src/{python/2022 => 2022/python}/day02/input.txt | 0 src/{python/2022 => 2022/python}/day02/main.py | 0 src/{python/2022 => 2022/python}/day02/test.txt | 0 src/{python/2022 => 2022/python}/day02/test_main.py | 0 src/{python/2022 => 2022/python}/day03/input.txt | 0 src/{python/2022 => 2022/python}/day03/main.py | 0 src/{python/2022 => 2022/python}/day03/test.txt | 0 src/{python/2022 => 2022/python}/day03/test_main.py | 0 src/{python/2022 => 2022/python}/day04/input.txt | 0 src/{python/2022 => 2022/python}/day04/main.py | 0 src/{python/2022 => 2022/python}/day04/test.txt | 0 src/{python/2022 => 2022/python}/day04/test_main.py | 0 src/2023/{ => go}/day01/input.txt | 0 src/2023/{ => go}/day01/main.go | 0 src/2023/{ => go}/day01/main_test.go | 0 src/2023/{ => go}/day02/input.txt | 0 src/2023/{ => go}/day02/main.go | 0 src/2023/{ => go}/day02/main_test.go | 0 src/{python/2023 => 2023/python}/day01/input.txt | 0 src/{python/2023 => 2023/python}/day01/main.py | 0 src/{python/2023 => 2023/python}/day01/test_main.py | 0 src/{python/2023 => 2023/python}/day02/input.txt | 0 src/{python/2023 => 2023/python}/day02/main.py | 0 src/{python/2023 => 2023/python}/day02/test_main.py | 0 44 files changed, 0 insertions(+), 0 deletions(-) rename src/2022/{ => go}/day01/input.txt (100%) rename src/2022/{ => go}/day01/main.go (100%) rename src/2022/{ => go}/day01/main_test.go (100%) rename src/2022/{ => go}/day01/test.txt (100%) rename src/2022/{ => go}/day02/input.txt (100%) rename src/2022/{ => go}/day02/main.go (100%) rename src/2022/{ => go}/day02/main_test.go (100%) rename src/2022/{ => go}/day02/test.txt (100%) rename src/2022/{ => go}/day03/input.txt (100%) rename src/2022/{ => go}/day03/main.go (100%) rename src/2022/{ => go}/day03/main_test.go (100%) rename src/2022/{ => go}/day03/test.txt (100%) rename src/2022/{ => go}/day04/input.txt (100%) rename src/2022/{ => go}/day04/main.go (100%) rename src/2022/{ => go}/day04/main_test.go (100%) rename src/2022/{ => go}/day04/test.txt (100%) rename src/{python/2022 => 2022/python}/day01/input.txt (100%) rename src/{python/2022 => 2022/python}/day01/main.py (100%) rename src/{python/2022 => 2022/python}/day01/test.txt (100%) rename src/{python/2022 => 2022/python}/day01/test_main.py (100%) rename src/{python/2022 => 2022/python}/day02/input.txt (100%) rename src/{python/2022 => 2022/python}/day02/main.py (100%) rename src/{python/2022 => 2022/python}/day02/test.txt (100%) rename src/{python/2022 => 2022/python}/day02/test_main.py (100%) rename src/{python/2022 => 2022/python}/day03/input.txt (100%) rename src/{python/2022 => 2022/python}/day03/main.py (100%) rename src/{python/2022 => 2022/python}/day03/test.txt (100%) rename src/{python/2022 => 2022/python}/day03/test_main.py (100%) rename src/{python/2022 => 2022/python}/day04/input.txt (100%) rename src/{python/2022 => 2022/python}/day04/main.py (100%) rename src/{python/2022 => 2022/python}/day04/test.txt (100%) rename src/{python/2022 => 2022/python}/day04/test_main.py (100%) rename src/2023/{ => go}/day01/input.txt (100%) rename src/2023/{ => go}/day01/main.go (100%) rename src/2023/{ => go}/day01/main_test.go (100%) rename src/2023/{ => go}/day02/input.txt (100%) rename src/2023/{ => go}/day02/main.go (100%) rename src/2023/{ => go}/day02/main_test.go (100%) rename src/{python/2023 => 2023/python}/day01/input.txt (100%) rename src/{python/2023 => 2023/python}/day01/main.py (100%) rename src/{python/2023 => 2023/python}/day01/test_main.py (100%) rename src/{python/2023 => 2023/python}/day02/input.txt (100%) rename src/{python/2023 => 2023/python}/day02/main.py (100%) rename src/{python/2023 => 2023/python}/day02/test_main.py (100%) diff --git a/src/2022/day01/input.txt b/src/2022/go/day01/input.txt similarity index 100% rename from src/2022/day01/input.txt rename to src/2022/go/day01/input.txt diff --git a/src/2022/day01/main.go b/src/2022/go/day01/main.go similarity index 100% rename from src/2022/day01/main.go rename to src/2022/go/day01/main.go diff --git a/src/2022/day01/main_test.go b/src/2022/go/day01/main_test.go similarity index 100% rename from src/2022/day01/main_test.go rename to src/2022/go/day01/main_test.go diff --git a/src/2022/day01/test.txt b/src/2022/go/day01/test.txt similarity index 100% rename from src/2022/day01/test.txt rename to src/2022/go/day01/test.txt diff --git a/src/2022/day02/input.txt b/src/2022/go/day02/input.txt similarity index 100% rename from src/2022/day02/input.txt rename to src/2022/go/day02/input.txt diff --git a/src/2022/day02/main.go b/src/2022/go/day02/main.go similarity index 100% rename from src/2022/day02/main.go rename to src/2022/go/day02/main.go diff --git a/src/2022/day02/main_test.go b/src/2022/go/day02/main_test.go similarity index 100% rename from src/2022/day02/main_test.go rename to src/2022/go/day02/main_test.go diff --git a/src/2022/day02/test.txt b/src/2022/go/day02/test.txt similarity index 100% rename from src/2022/day02/test.txt rename to src/2022/go/day02/test.txt diff --git a/src/2022/day03/input.txt b/src/2022/go/day03/input.txt similarity index 100% rename from src/2022/day03/input.txt rename to src/2022/go/day03/input.txt diff --git a/src/2022/day03/main.go b/src/2022/go/day03/main.go similarity index 100% rename from src/2022/day03/main.go rename to src/2022/go/day03/main.go diff --git a/src/2022/day03/main_test.go b/src/2022/go/day03/main_test.go similarity index 100% rename from src/2022/day03/main_test.go rename to src/2022/go/day03/main_test.go diff --git a/src/2022/day03/test.txt b/src/2022/go/day03/test.txt similarity index 100% rename from src/2022/day03/test.txt rename to src/2022/go/day03/test.txt diff --git a/src/2022/day04/input.txt b/src/2022/go/day04/input.txt similarity index 100% rename from src/2022/day04/input.txt rename to src/2022/go/day04/input.txt diff --git a/src/2022/day04/main.go b/src/2022/go/day04/main.go similarity index 100% rename from src/2022/day04/main.go rename to src/2022/go/day04/main.go diff --git a/src/2022/day04/main_test.go b/src/2022/go/day04/main_test.go similarity index 100% rename from src/2022/day04/main_test.go rename to src/2022/go/day04/main_test.go diff --git a/src/2022/day04/test.txt b/src/2022/go/day04/test.txt similarity index 100% rename from src/2022/day04/test.txt rename to src/2022/go/day04/test.txt diff --git a/src/python/2022/day01/input.txt b/src/2022/python/day01/input.txt similarity index 100% rename from src/python/2022/day01/input.txt rename to src/2022/python/day01/input.txt diff --git a/src/python/2022/day01/main.py b/src/2022/python/day01/main.py similarity index 100% rename from src/python/2022/day01/main.py rename to src/2022/python/day01/main.py diff --git a/src/python/2022/day01/test.txt b/src/2022/python/day01/test.txt similarity index 100% rename from src/python/2022/day01/test.txt rename to src/2022/python/day01/test.txt diff --git a/src/python/2022/day01/test_main.py b/src/2022/python/day01/test_main.py similarity index 100% rename from src/python/2022/day01/test_main.py rename to src/2022/python/day01/test_main.py diff --git a/src/python/2022/day02/input.txt b/src/2022/python/day02/input.txt similarity index 100% rename from src/python/2022/day02/input.txt rename to src/2022/python/day02/input.txt diff --git a/src/python/2022/day02/main.py b/src/2022/python/day02/main.py similarity index 100% rename from src/python/2022/day02/main.py rename to src/2022/python/day02/main.py diff --git a/src/python/2022/day02/test.txt b/src/2022/python/day02/test.txt similarity index 100% rename from src/python/2022/day02/test.txt rename to src/2022/python/day02/test.txt diff --git a/src/python/2022/day02/test_main.py b/src/2022/python/day02/test_main.py similarity index 100% rename from src/python/2022/day02/test_main.py rename to src/2022/python/day02/test_main.py diff --git a/src/python/2022/day03/input.txt b/src/2022/python/day03/input.txt similarity index 100% rename from src/python/2022/day03/input.txt rename to src/2022/python/day03/input.txt diff --git a/src/python/2022/day03/main.py b/src/2022/python/day03/main.py similarity index 100% rename from src/python/2022/day03/main.py rename to src/2022/python/day03/main.py diff --git a/src/python/2022/day03/test.txt b/src/2022/python/day03/test.txt similarity index 100% rename from src/python/2022/day03/test.txt rename to src/2022/python/day03/test.txt diff --git a/src/python/2022/day03/test_main.py b/src/2022/python/day03/test_main.py similarity index 100% rename from src/python/2022/day03/test_main.py rename to src/2022/python/day03/test_main.py diff --git a/src/python/2022/day04/input.txt b/src/2022/python/day04/input.txt similarity index 100% rename from src/python/2022/day04/input.txt rename to src/2022/python/day04/input.txt diff --git a/src/python/2022/day04/main.py b/src/2022/python/day04/main.py similarity index 100% rename from src/python/2022/day04/main.py rename to src/2022/python/day04/main.py diff --git a/src/python/2022/day04/test.txt b/src/2022/python/day04/test.txt similarity index 100% rename from src/python/2022/day04/test.txt rename to src/2022/python/day04/test.txt diff --git a/src/python/2022/day04/test_main.py b/src/2022/python/day04/test_main.py similarity index 100% rename from src/python/2022/day04/test_main.py rename to src/2022/python/day04/test_main.py diff --git a/src/2023/day01/input.txt b/src/2023/go/day01/input.txt similarity index 100% rename from src/2023/day01/input.txt rename to src/2023/go/day01/input.txt diff --git a/src/2023/day01/main.go b/src/2023/go/day01/main.go similarity index 100% rename from src/2023/day01/main.go rename to src/2023/go/day01/main.go diff --git a/src/2023/day01/main_test.go b/src/2023/go/day01/main_test.go similarity index 100% rename from src/2023/day01/main_test.go rename to src/2023/go/day01/main_test.go diff --git a/src/2023/day02/input.txt b/src/2023/go/day02/input.txt similarity index 100% rename from src/2023/day02/input.txt rename to src/2023/go/day02/input.txt diff --git a/src/2023/day02/main.go b/src/2023/go/day02/main.go similarity index 100% rename from src/2023/day02/main.go rename to src/2023/go/day02/main.go diff --git a/src/2023/day02/main_test.go b/src/2023/go/day02/main_test.go similarity index 100% rename from src/2023/day02/main_test.go rename to src/2023/go/day02/main_test.go diff --git a/src/python/2023/day01/input.txt b/src/2023/python/day01/input.txt similarity index 100% rename from src/python/2023/day01/input.txt rename to src/2023/python/day01/input.txt diff --git a/src/python/2023/day01/main.py b/src/2023/python/day01/main.py similarity index 100% rename from src/python/2023/day01/main.py rename to src/2023/python/day01/main.py diff --git a/src/python/2023/day01/test_main.py b/src/2023/python/day01/test_main.py similarity index 100% rename from src/python/2023/day01/test_main.py rename to src/2023/python/day01/test_main.py diff --git a/src/python/2023/day02/input.txt b/src/2023/python/day02/input.txt similarity index 100% rename from src/python/2023/day02/input.txt rename to src/2023/python/day02/input.txt diff --git a/src/python/2023/day02/main.py b/src/2023/python/day02/main.py similarity index 100% rename from src/python/2023/day02/main.py rename to src/2023/python/day02/main.py diff --git a/src/python/2023/day02/test_main.py b/src/2023/python/day02/test_main.py similarity index 100% rename from src/python/2023/day02/test_main.py rename to src/2023/python/day02/test_main.py From 0bbe58152a1d299b36381732b789e33873757f2a Mon Sep 17 00:00:00 2001 From: Arun Date: Thu, 22 Aug 2024 14:26:42 -0700 Subject: [PATCH 7/7] refactor: Reorganize directory structure for 2022 and 2023 solutions --- src/2022/{go/day01 => day01/go}/input.txt | 0 src/2022/{go/day01 => day01/go}/main.go | 0 src/2022/{go/day01 => day01/go}/main_test.go | 0 src/2022/{go/day01 => day01/go}/test.txt | 0 src/2022/{python/day01 => day01/python}/input.txt | 0 src/2022/{python/day01 => day01/python}/main.py | 0 src/2022/{python/day01 => day01/python}/test.txt | 0 src/2022/{python/day01 => day01/python}/test_main.py | 0 src/2022/{go/day02 => day02/go}/input.txt | 0 src/2022/{go/day02 => day02/go}/main.go | 0 src/2022/{go/day02 => day02/go}/main_test.go | 0 src/2022/{go/day02 => day02/go}/test.txt | 0 src/2022/{python/day02 => day02/python}/input.txt | 0 src/2022/{python/day02 => day02/python}/main.py | 0 src/2022/{python/day02 => day02/python}/test.txt | 0 src/2022/{python/day02 => day02/python}/test_main.py | 0 src/2022/{go/day03 => day03/go}/input.txt | 0 src/2022/{go/day03 => day03/go}/main.go | 0 src/2022/{go/day03 => day03/go}/main_test.go | 0 src/2022/{go/day03 => day03/go}/test.txt | 0 src/2022/{python/day03 => day03/python}/input.txt | 0 src/2022/{python/day03 => day03/python}/main.py | 0 src/2022/{python/day03 => day03/python}/test.txt | 0 src/2022/{python/day03 => day03/python}/test_main.py | 0 src/2022/{go/day04 => day04/go}/input.txt | 0 src/2022/{go/day04 => day04/go}/main.go | 0 src/2022/{go/day04 => day04/go}/main_test.go | 0 src/2022/{go/day04 => day04/go}/test.txt | 0 src/2022/{python/day04 => day04/python}/input.txt | 0 src/2022/{python/day04 => day04/python}/main.py | 0 src/2022/{python/day04 => day04/python}/test.txt | 0 src/2022/{python/day04 => day04/python}/test_main.py | 0 src/2023/{go/day01 => day01/go}/input.txt | 0 src/2023/{go/day01 => day01/go}/main.go | 0 src/2023/{go/day01 => day01/go}/main_test.go | 0 src/2023/{python/day01 => day01/python}/input.txt | 0 src/2023/{python/day01 => day01/python}/main.py | 0 src/2023/{python/day01 => day01/python}/test_main.py | 0 src/2023/{go/day02 => day02/go}/input.txt | 0 src/2023/{go/day02 => day02/go}/main.go | 0 src/2023/{go/day02 => day02/go}/main_test.go | 0 src/2023/{python/day02 => day02/python}/input.txt | 0 src/2023/{python/day02 => day02/python}/main.py | 0 src/2023/{python/day02 => day02/python}/test_main.py | 0 44 files changed, 0 insertions(+), 0 deletions(-) rename src/2022/{go/day01 => day01/go}/input.txt (100%) rename src/2022/{go/day01 => day01/go}/main.go (100%) rename src/2022/{go/day01 => day01/go}/main_test.go (100%) rename src/2022/{go/day01 => day01/go}/test.txt (100%) rename src/2022/{python/day01 => day01/python}/input.txt (100%) rename src/2022/{python/day01 => day01/python}/main.py (100%) rename src/2022/{python/day01 => day01/python}/test.txt (100%) rename src/2022/{python/day01 => day01/python}/test_main.py (100%) rename src/2022/{go/day02 => day02/go}/input.txt (100%) rename src/2022/{go/day02 => day02/go}/main.go (100%) rename src/2022/{go/day02 => day02/go}/main_test.go (100%) rename src/2022/{go/day02 => day02/go}/test.txt (100%) rename src/2022/{python/day02 => day02/python}/input.txt (100%) rename src/2022/{python/day02 => day02/python}/main.py (100%) rename src/2022/{python/day02 => day02/python}/test.txt (100%) rename src/2022/{python/day02 => day02/python}/test_main.py (100%) rename src/2022/{go/day03 => day03/go}/input.txt (100%) rename src/2022/{go/day03 => day03/go}/main.go (100%) rename src/2022/{go/day03 => day03/go}/main_test.go (100%) rename src/2022/{go/day03 => day03/go}/test.txt (100%) rename src/2022/{python/day03 => day03/python}/input.txt (100%) rename src/2022/{python/day03 => day03/python}/main.py (100%) rename src/2022/{python/day03 => day03/python}/test.txt (100%) rename src/2022/{python/day03 => day03/python}/test_main.py (100%) rename src/2022/{go/day04 => day04/go}/input.txt (100%) rename src/2022/{go/day04 => day04/go}/main.go (100%) rename src/2022/{go/day04 => day04/go}/main_test.go (100%) rename src/2022/{go/day04 => day04/go}/test.txt (100%) rename src/2022/{python/day04 => day04/python}/input.txt (100%) rename src/2022/{python/day04 => day04/python}/main.py (100%) rename src/2022/{python/day04 => day04/python}/test.txt (100%) rename src/2022/{python/day04 => day04/python}/test_main.py (100%) rename src/2023/{go/day01 => day01/go}/input.txt (100%) rename src/2023/{go/day01 => day01/go}/main.go (100%) rename src/2023/{go/day01 => day01/go}/main_test.go (100%) rename src/2023/{python/day01 => day01/python}/input.txt (100%) rename src/2023/{python/day01 => day01/python}/main.py (100%) rename src/2023/{python/day01 => day01/python}/test_main.py (100%) rename src/2023/{go/day02 => day02/go}/input.txt (100%) rename src/2023/{go/day02 => day02/go}/main.go (100%) rename src/2023/{go/day02 => day02/go}/main_test.go (100%) rename src/2023/{python/day02 => day02/python}/input.txt (100%) rename src/2023/{python/day02 => day02/python}/main.py (100%) rename src/2023/{python/day02 => day02/python}/test_main.py (100%) diff --git a/src/2022/go/day01/input.txt b/src/2022/day01/go/input.txt similarity index 100% rename from src/2022/go/day01/input.txt rename to src/2022/day01/go/input.txt diff --git a/src/2022/go/day01/main.go b/src/2022/day01/go/main.go similarity index 100% rename from src/2022/go/day01/main.go rename to src/2022/day01/go/main.go diff --git a/src/2022/go/day01/main_test.go b/src/2022/day01/go/main_test.go similarity index 100% rename from src/2022/go/day01/main_test.go rename to src/2022/day01/go/main_test.go diff --git a/src/2022/go/day01/test.txt b/src/2022/day01/go/test.txt similarity index 100% rename from src/2022/go/day01/test.txt rename to src/2022/day01/go/test.txt diff --git a/src/2022/python/day01/input.txt b/src/2022/day01/python/input.txt similarity index 100% rename from src/2022/python/day01/input.txt rename to src/2022/day01/python/input.txt diff --git a/src/2022/python/day01/main.py b/src/2022/day01/python/main.py similarity index 100% rename from src/2022/python/day01/main.py rename to src/2022/day01/python/main.py diff --git a/src/2022/python/day01/test.txt b/src/2022/day01/python/test.txt similarity index 100% rename from src/2022/python/day01/test.txt rename to src/2022/day01/python/test.txt diff --git a/src/2022/python/day01/test_main.py b/src/2022/day01/python/test_main.py similarity index 100% rename from src/2022/python/day01/test_main.py rename to src/2022/day01/python/test_main.py diff --git a/src/2022/go/day02/input.txt b/src/2022/day02/go/input.txt similarity index 100% rename from src/2022/go/day02/input.txt rename to src/2022/day02/go/input.txt diff --git a/src/2022/go/day02/main.go b/src/2022/day02/go/main.go similarity index 100% rename from src/2022/go/day02/main.go rename to src/2022/day02/go/main.go diff --git a/src/2022/go/day02/main_test.go b/src/2022/day02/go/main_test.go similarity index 100% rename from src/2022/go/day02/main_test.go rename to src/2022/day02/go/main_test.go diff --git a/src/2022/go/day02/test.txt b/src/2022/day02/go/test.txt similarity index 100% rename from src/2022/go/day02/test.txt rename to src/2022/day02/go/test.txt diff --git a/src/2022/python/day02/input.txt b/src/2022/day02/python/input.txt similarity index 100% rename from src/2022/python/day02/input.txt rename to src/2022/day02/python/input.txt diff --git a/src/2022/python/day02/main.py b/src/2022/day02/python/main.py similarity index 100% rename from src/2022/python/day02/main.py rename to src/2022/day02/python/main.py diff --git a/src/2022/python/day02/test.txt b/src/2022/day02/python/test.txt similarity index 100% rename from src/2022/python/day02/test.txt rename to src/2022/day02/python/test.txt diff --git a/src/2022/python/day02/test_main.py b/src/2022/day02/python/test_main.py similarity index 100% rename from src/2022/python/day02/test_main.py rename to src/2022/day02/python/test_main.py diff --git a/src/2022/go/day03/input.txt b/src/2022/day03/go/input.txt similarity index 100% rename from src/2022/go/day03/input.txt rename to src/2022/day03/go/input.txt diff --git a/src/2022/go/day03/main.go b/src/2022/day03/go/main.go similarity index 100% rename from src/2022/go/day03/main.go rename to src/2022/day03/go/main.go diff --git a/src/2022/go/day03/main_test.go b/src/2022/day03/go/main_test.go similarity index 100% rename from src/2022/go/day03/main_test.go rename to src/2022/day03/go/main_test.go diff --git a/src/2022/go/day03/test.txt b/src/2022/day03/go/test.txt similarity index 100% rename from src/2022/go/day03/test.txt rename to src/2022/day03/go/test.txt diff --git a/src/2022/python/day03/input.txt b/src/2022/day03/python/input.txt similarity index 100% rename from src/2022/python/day03/input.txt rename to src/2022/day03/python/input.txt diff --git a/src/2022/python/day03/main.py b/src/2022/day03/python/main.py similarity index 100% rename from src/2022/python/day03/main.py rename to src/2022/day03/python/main.py diff --git a/src/2022/python/day03/test.txt b/src/2022/day03/python/test.txt similarity index 100% rename from src/2022/python/day03/test.txt rename to src/2022/day03/python/test.txt diff --git a/src/2022/python/day03/test_main.py b/src/2022/day03/python/test_main.py similarity index 100% rename from src/2022/python/day03/test_main.py rename to src/2022/day03/python/test_main.py diff --git a/src/2022/go/day04/input.txt b/src/2022/day04/go/input.txt similarity index 100% rename from src/2022/go/day04/input.txt rename to src/2022/day04/go/input.txt diff --git a/src/2022/go/day04/main.go b/src/2022/day04/go/main.go similarity index 100% rename from src/2022/go/day04/main.go rename to src/2022/day04/go/main.go diff --git a/src/2022/go/day04/main_test.go b/src/2022/day04/go/main_test.go similarity index 100% rename from src/2022/go/day04/main_test.go rename to src/2022/day04/go/main_test.go diff --git a/src/2022/go/day04/test.txt b/src/2022/day04/go/test.txt similarity index 100% rename from src/2022/go/day04/test.txt rename to src/2022/day04/go/test.txt diff --git a/src/2022/python/day04/input.txt b/src/2022/day04/python/input.txt similarity index 100% rename from src/2022/python/day04/input.txt rename to src/2022/day04/python/input.txt diff --git a/src/2022/python/day04/main.py b/src/2022/day04/python/main.py similarity index 100% rename from src/2022/python/day04/main.py rename to src/2022/day04/python/main.py diff --git a/src/2022/python/day04/test.txt b/src/2022/day04/python/test.txt similarity index 100% rename from src/2022/python/day04/test.txt rename to src/2022/day04/python/test.txt diff --git a/src/2022/python/day04/test_main.py b/src/2022/day04/python/test_main.py similarity index 100% rename from src/2022/python/day04/test_main.py rename to src/2022/day04/python/test_main.py diff --git a/src/2023/go/day01/input.txt b/src/2023/day01/go/input.txt similarity index 100% rename from src/2023/go/day01/input.txt rename to src/2023/day01/go/input.txt diff --git a/src/2023/go/day01/main.go b/src/2023/day01/go/main.go similarity index 100% rename from src/2023/go/day01/main.go rename to src/2023/day01/go/main.go diff --git a/src/2023/go/day01/main_test.go b/src/2023/day01/go/main_test.go similarity index 100% rename from src/2023/go/day01/main_test.go rename to src/2023/day01/go/main_test.go diff --git a/src/2023/python/day01/input.txt b/src/2023/day01/python/input.txt similarity index 100% rename from src/2023/python/day01/input.txt rename to src/2023/day01/python/input.txt diff --git a/src/2023/python/day01/main.py b/src/2023/day01/python/main.py similarity index 100% rename from src/2023/python/day01/main.py rename to src/2023/day01/python/main.py diff --git a/src/2023/python/day01/test_main.py b/src/2023/day01/python/test_main.py similarity index 100% rename from src/2023/python/day01/test_main.py rename to src/2023/day01/python/test_main.py diff --git a/src/2023/go/day02/input.txt b/src/2023/day02/go/input.txt similarity index 100% rename from src/2023/go/day02/input.txt rename to src/2023/day02/go/input.txt diff --git a/src/2023/go/day02/main.go b/src/2023/day02/go/main.go similarity index 100% rename from src/2023/go/day02/main.go rename to src/2023/day02/go/main.go diff --git a/src/2023/go/day02/main_test.go b/src/2023/day02/go/main_test.go similarity index 100% rename from src/2023/go/day02/main_test.go rename to src/2023/day02/go/main_test.go diff --git a/src/2023/python/day02/input.txt b/src/2023/day02/python/input.txt similarity index 100% rename from src/2023/python/day02/input.txt rename to src/2023/day02/python/input.txt diff --git a/src/2023/python/day02/main.py b/src/2023/day02/python/main.py similarity index 100% rename from src/2023/python/day02/main.py rename to src/2023/day02/python/main.py diff --git a/src/2023/python/day02/test_main.py b/src/2023/day02/python/test_main.py similarity index 100% rename from src/2023/python/day02/test_main.py rename to src/2023/day02/python/test_main.py