From e2c78ecc45d63527ee73c1691eaa40392fe8a570 Mon Sep 17 00:00:00 2001 From: Parnic Date: Thu, 1 Dec 2022 07:17:05 -0600 Subject: [PATCH] Day 1 solution --- inputs/01.txt | 4239 ++++++++++++++++++++++++++----------------------- src/01.cs | 61 +- 2 files changed, 2262 insertions(+), 2038 deletions(-) diff --git a/inputs/01.txt b/inputs/01.txt index 620c30e..621c20a 100644 --- a/inputs/01.txt +++ b/inputs/01.txt @@ -1,2000 +1,2253 @@ -141 -152 -164 -163 -164 -179 -210 -209 -208 -236 -227 -228 -227 -223 -226 -225 -228 -234 -218 -215 -206 -215 -218 -215 -209 -226 -233 -236 -234 -232 -230 -225 -226 -224 -216 -213 -221 -224 -225 -228 -227 -198 -196 -190 -167 -177 -191 -186 -189 -184 -174 -163 -152 -164 -155 -158 -172 -170 -174 -181 -180 -189 -190 -185 -182 -183 -201 -209 -216 -217 -218 -219 -220 -213 -212 -215 -211 -216 -234 -233 -215 -208 -215 -210 -209 -215 -217 -213 -236 -237 -238 -237 -261 -263 -257 -259 -262 -277 -278 -275 -279 -271 -272 -282 -277 -241 -233 -225 -230 -235 -226 -225 -229 -231 -225 -223 -226 -217 -219 -223 -226 -217 -194 -203 -205 -209 -192 -184 -182 -189 -190 -189 -188 -186 -185 -212 -214 -211 -213 -234 -235 -234 -235 -223 -201 -207 -227 -222 -221 -239 -240 -229 -242 -245 -242 -261 -260 -253 -236 -230 -243 -263 -261 -257 -267 -261 -235 -244 -219 -220 -229 -239 -218 -229 -228 -235 -236 -237 -242 -225 -222 -230 -239 -240 -258 -259 -299 -328 -330 -331 -339 -338 -339 -340 -339 -340 -323 -320 -321 -322 -323 -342 -369 -388 -379 -363 -362 -369 -383 -395 -392 -365 -380 -411 -407 -408 -406 -405 -403 -405 -403 -399 -400 -385 -388 -390 -399 -401 -404 -408 -406 -389 -388 -391 -399 -410 -411 -412 -415 -408 -416 -417 -441 -442 -440 -442 -446 -443 -439 -440 -443 -479 -490 -495 -509 -486 -487 -519 -504 -510 -514 -504 -505 -507 -513 -511 -521 -522 -529 -534 -531 -533 -512 -522 -523 -540 -542 -562 -564 -567 -592 -599 -605 -625 -635 -639 -642 -643 -637 -631 -629 -628 -629 -628 -629 -621 -619 -618 -617 -618 -613 -612 -609 -603 -602 -592 -591 -590 -602 -600 -599 -602 -604 -602 -617 -615 -594 -578 -582 -585 -584 -595 -615 -614 -617 -614 -631 -660 -664 -653 -657 -667 -668 -667 -669 -659 -662 -659 -654 -648 -636 -637 -635 -647 -635 -644 -642 -639 -636 -641 -638 -637 -647 -646 -644 -643 -642 -639 -645 -649 -650 -656 -661 -644 -645 -646 -632 -640 -645 -646 -647 -648 -651 -645 -630 -635 -636 -640 -641 -643 -640 -636 -641 -648 -650 -659 -682 -675 -693 -686 -682 -677 -678 -679 -678 -682 -657 -641 -632 -652 -645 -659 -638 -634 -633 -635 -636 -622 -626 -625 -624 -646 -639 -640 -641 -638 -637 -638 -635 -636 -637 -638 -637 -640 -659 -651 -653 -647 -652 -643 -645 -652 -675 -668 -663 -666 -650 -651 -652 -661 -645 -640 -631 -632 -634 -637 -641 -642 -647 -660 -662 -664 -669 -668 -666 -683 -685 -701 -702 -683 -681 -676 -677 -683 -668 -647 -659 -661 -665 -666 -665 -659 -639 -644 -624 -622 -620 -617 -620 -636 -620 -621 -646 -644 -643 -650 -646 -639 -640 -647 -636 -633 -634 -633 -642 -643 -652 -648 -629 -642 -649 -633 -632 -633 -631 -626 -627 -641 -647 -646 -643 -644 -648 -656 -654 -672 -673 -666 -670 -676 -699 -704 -705 -672 -671 -670 -684 -685 -689 -688 -695 -700 -702 -733 -734 -706 -702 -713 -709 -714 -718 -716 -693 -699 -720 -701 -694 -700 -707 -708 -702 -703 -705 -719 -717 -719 -738 -726 -721 -719 -706 -712 -729 -730 -715 -717 -730 -733 -730 -749 -756 -759 -760 -758 -759 -768 -769 -777 -778 -780 -784 -803 -804 -820 -813 -816 -815 -820 -818 -804 -795 -794 -791 -792 -791 -802 -793 -794 -789 -793 -778 -776 -752 -756 -741 -745 -747 -748 -758 -762 -777 -779 -784 -785 -789 -790 -787 -791 -789 -772 -813 -816 -818 -811 -818 -823 -824 -815 -816 -819 -818 -819 -820 -821 -825 -827 -837 -821 -823 -812 -814 -816 -840 -855 -857 -855 -871 -881 -889 -893 -892 -897 -901 -902 -896 -898 -912 -913 -904 -905 -906 -902 -859 -863 -862 -865 -868 -896 -906 -907 -896 -897 -902 -903 -900 -901 -895 -897 -903 -907 -914 -916 -919 -920 -929 -932 -931 -932 -915 -920 -922 -909 -908 -907 -906 -908 -910 -908 -877 -878 -876 -873 -872 -883 -868 -872 -868 -862 -875 -881 -883 -885 -879 -877 -880 -882 -881 -882 -881 -866 -869 -867 -879 -865 -856 -855 -861 -871 -876 -864 -865 -849 -848 -842 -807 -805 -810 -836 -816 -815 -857 -859 -857 -864 -865 -868 -871 -875 -874 -868 -857 -840 -841 -840 -838 -845 -833 -844 -884 -883 -884 -880 -884 -876 -870 -890 -889 -882 -887 -890 -883 -881 -880 -882 -888 -884 -900 -889 -887 -890 -891 -892 -897 -908 -909 -906 -907 -884 -882 -883 -869 -883 -872 -870 -867 -870 -857 -858 -854 -853 -848 -857 -856 -857 -864 -860 -857 -873 -835 -836 -835 -837 -839 -840 -844 -846 -838 -839 -824 -827 -829 -820 -821 -820 -822 -794 -817 -845 -846 -848 -849 -847 -850 -828 -820 -821 -826 -835 -841 -842 -846 -855 -837 -839 -848 -864 -867 -869 -874 -894 -876 -877 -876 -873 -874 -868 -866 -870 -842 -844 -819 -811 -818 -813 -811 -812 -813 -820 -823 -818 -815 -819 -816 -817 -807 -806 -811 -813 -819 -825 -811 -829 -832 -825 -826 -831 -830 -831 -833 -825 -827 -815 -823 -812 -814 -815 -812 -834 -839 -845 -844 -849 -856 -855 -862 -866 -873 -859 -851 -843 -819 -804 -790 -824 -827 -823 -833 -832 -833 -849 -882 -892 -920 -911 -910 -909 -913 -905 -908 -909 -913 -914 -915 -932 -941 -942 -976 -977 -984 -983 -984 -989 -982 -986 -985 -992 -1001 -1022 -1024 -1010 -1007 -996 -978 -979 -969 -957 -951 -948 -946 -943 -930 -929 -922 -924 -923 -924 -953 -949 -950 -922 -890 -889 -882 -902 -901 -896 -871 -903 -909 -931 -937 -945 -953 -958 -963 -964 -994 -971 -970 -959 -968 -974 -973 -974 -973 -972 -973 -972 -973 -977 -1012 -1033 -1032 -1029 -1027 -1028 -1055 -1056 -1070 -1065 -1091 -1074 -1066 -1074 -1075 -1084 -1083 -1081 -1075 -1074 -1071 -1098 -1087 -1076 -1075 -1079 -1094 -1104 -1105 -1111 -1110 -1108 -1102 -1064 -1060 -1076 -1048 -1059 -1065 -1077 -1054 -1061 -1066 -1087 -1093 -1108 -1107 -1105 -1102 -1101 -1105 -1106 -1100 -1104 -1105 -1107 -1106 -1096 -1077 -1075 -1076 -1083 -1091 -1080 -1058 -1050 -1051 -1064 -1074 -1077 -1049 -1051 -1052 -1063 -1077 -1079 -1085 -1074 -1078 -1073 -1070 -1065 -1080 -1097 -1071 -1072 -1074 -1102 -1104 -1113 -1114 -1123 -1125 -1129 -1131 -1149 -1152 -1147 -1154 -1161 -1162 -1163 -1169 -1157 -1151 -1158 -1159 -1155 -1154 -1121 -1112 -1113 -1080 -1082 -1075 -1076 -1071 -1062 -1074 -1079 -1076 -1097 -1100 -1091 -1084 -1098 -1083 -1103 -1132 -1134 -1125 -1127 -1128 -1129 -1131 -1130 -1131 -1135 -1131 -1129 -1142 -1154 -1142 -1141 -1145 -1152 -1158 -1172 -1162 -1179 -1180 -1179 -1190 -1187 -1191 -1190 -1186 -1198 -1182 -1178 -1174 -1158 -1154 -1159 -1160 -1172 -1164 -1145 -1161 -1170 -1181 -1189 -1192 -1186 -1182 -1173 -1190 -1178 -1177 -1184 -1186 -1193 -1198 -1197 -1194 -1203 -1177 -1195 -1196 -1201 -1208 -1205 -1204 -1205 -1195 -1196 -1219 -1220 -1217 -1219 -1220 -1213 -1214 -1219 -1230 -1237 -1241 -1243 -1242 -1243 -1267 -1268 -1264 -1275 -1278 -1273 -1274 -1281 -1286 -1284 -1288 -1284 -1294 -1259 -1280 -1285 -1284 -1300 -1303 -1313 -1303 -1317 -1316 -1315 -1307 -1320 -1333 -1342 -1356 -1359 -1364 -1376 -1382 -1385 -1389 -1390 -1391 -1387 -1388 -1389 -1387 -1388 -1409 -1402 -1400 -1394 -1390 -1356 -1355 -1356 -1359 -1371 -1375 -1376 -1358 -1361 -1344 -1371 -1379 -1373 -1367 -1364 -1365 -1364 -1363 -1362 -1361 -1364 -1361 -1360 -1362 -1367 -1366 -1383 -1384 -1389 -1390 -1416 -1415 -1416 -1440 -1431 -1440 -1441 -1444 -1448 -1453 -1446 -1447 -1428 -1426 -1452 -1453 -1431 -1423 -1421 -1420 -1410 -1417 -1418 -1417 -1412 -1402 -1401 -1406 -1402 -1416 -1419 -1405 -1408 -1413 -1415 -1406 -1407 -1408 -1394 -1405 -1397 -1378 -1382 -1381 -1380 -1384 -1385 -1384 -1392 -1399 -1405 -1409 -1407 -1409 -1410 -1413 -1406 -1422 -1421 -1419 -1420 -1421 -1429 -1433 -1417 -1419 -1416 -1411 -1410 -1415 -1427 -1443 -1439 -1438 -1435 -1436 -1438 -1442 -1458 -1463 -1455 -1481 -1480 -1481 -1491 -1498 -1496 -1504 -1502 -1499 -1494 -1493 -1494 -1496 -1500 -1503 -1494 -1492 -1485 -1487 -1488 -1508 -1510 -1534 -1530 -1540 -1502 -1501 -1494 -1495 -1492 -1490 -1505 -1500 -1501 -1499 -1501 -1495 -1493 -1498 -1504 -1510 -1519 -1535 -1531 -1537 -1546 -1557 -1559 -1558 -1576 -1585 -1590 -1588 +13399 +13677 +11945 +9861 +6484 +4257 + +6616 +7349 +7758 1591 -1603 -1620 -1619 -1620 -1651 -1650 -1628 -1630 -1631 -1630 -1636 -1635 -1636 -1625 -1624 -1622 -1611 -1610 -1608 -1613 -1612 -1609 -1616 -1615 -1637 -1638 -1643 -1645 -1648 -1649 -1650 -1649 -1647 -1648 -1653 -1651 -1654 -1660 -1656 -1654 -1653 -1657 -1646 -1652 -1653 -1670 -1695 -1689 -1690 -1670 -1679 -1664 -1660 -1641 -1625 -1629 -1643 -1647 -1655 -1664 -1667 -1668 -1672 -1671 -1690 -1689 -1691 -1690 -1704 -1701 -1704 -1715 -1710 -1728 -1719 -1742 -1737 -1738 -1727 -1732 -1718 -1720 -1727 -1737 -1741 -1744 -1745 -1747 -1758 -1753 -1745 -1752 -1770 -1778 -1782 -1812 -1813 -1809 -1806 -1804 -1799 -1821 -1845 -1841 -1845 -1850 -1857 -1873 -1879 -1909 -1907 -1906 -1897 -1900 -1897 -1898 -1896 -1900 -1909 -1939 -1940 -1929 -1948 -1959 -1929 -1939 -1963 -1961 -1983 -1984 -1985 -1980 -1981 -1982 -1972 -1973 -1974 -1988 -1996 -1999 -1995 -1982 -1985 -1995 -2008 -2007 -2023 -2025 -2024 -2026 -2025 -2020 -2013 -2014 -2025 -2048 -2055 -2060 -2063 -2066 -2067 -2070 -2071 -2072 -2062 -2057 -2025 -2028 -2029 -2028 -2020 -2015 -2016 -2014 -2012 -2016 -2015 -2014 -2005 -2008 -2009 -2005 -1999 -2003 -1995 -1994 -1990 -1992 -1996 -1995 -1990 -1991 -1999 -2000 -1989 -1991 -1992 -1994 -2024 -2030 -2029 -2024 -2023 -2044 -2045 -2044 -2042 -2040 -2049 -2050 -2046 -2044 -2049 -2064 -2059 -2063 -2064 -2061 -2059 -2062 -2064 -2075 -2074 -2085 -2088 -2075 -2102 -2101 -2082 -2083 -2085 -2084 -2097 -2091 -2088 -2084 -2074 -2082 -2083 -2084 -2089 -2088 -2091 -2095 -2105 -2124 -2118 -2121 -2116 -2117 -2118 -2119 -2127 -2131 -2120 -2154 -2152 -2160 -2170 -2166 -2169 -2173 -2174 -2156 -2149 -2147 -2138 -2140 -2141 -2136 -2137 -2138 -2139 -2129 -2130 -2128 -2120 -2112 -2119 -2126 -2129 -2128 -2137 -2142 -2161 -2147 -2139 -2142 -2148 -2152 -2154 -2136 -2119 -2121 -2098 -2115 -2099 -2100 -2104 -2099 -2098 -2097 -2112 -2108 -2147 -2146 -2148 -2147 -2125 -2099 -2103 -2107 -2111 -2123 -2126 -2128 -2130 -2129 -2131 -2126 -2127 -2130 -2112 -2103 -2100 -2113 -2121 -2118 -2119 -2129 -2123 -2112 -2102 -2069 -2071 -2075 -2094 -2102 -2106 -2096 -2097 -2100 -2109 -2104 -2103 -2108 -2100 -2103 -2104 -2108 -2115 -2117 -2112 -2120 -2127 -2128 -2126 -2106 -2104 -2106 -2100 -2105 -2102 -2112 -2119 -2127 -2129 -2136 -2150 -2166 -2153 -2181 -2159 -2160 -2159 -2183 -2184 -2186 -2174 -2173 -2183 -2178 -2163 -2156 -2161 -2162 -2163 -2156 -2145 -2149 -2145 -2147 -2151 -2147 -2150 -2138 -2150 -2151 -2149 -2150 -2151 -2154 -2136 -2173 -2184 -2183 -2185 -2186 -2187 -2185 -2184 -2188 -2186 -2190 -2197 -2166 -2167 -2166 -2167 -2170 -2178 -2196 -2181 -2182 -2184 -2196 -2207 -2206 -2211 -2218 -2217 -2216 -2212 -2216 -2232 -2235 -2241 -2242 -2238 -2239 -2236 +6068 +9217 +6924 +6766 + +10040 +9088 +11305 +5867 +10766 +9996 +11092 + +1320 +4921 +2338 +1351 +3462 +5916 +3124 +1416 +3655 +4886 +1135 +5171 +5020 +5099 +4785 + +1702 +5083 +3852 +3361 +2505 +3767 +1069 +3564 +3189 +5950 2250 -2272 -2281 -2277 -2278 -2298 -2294 -2296 -2292 -2285 -2303 -2296 -2290 -2292 -2272 -2285 -2287 -2311 -2315 -2336 -2344 -2345 -2326 -2331 -2333 -2344 -2359 -2366 -2364 -2366 -2370 -2368 -2360 -2373 -2397 -2394 -2398 -2397 -2399 -2407 -2412 -2426 -2424 -2461 -2469 -2467 +2053 +1639 +1430 +4586 + +4135 +7033 +4649 +3126 +1136 +1435 +3825 +2205 +1259 +5473 +1803 +6406 + 2466 -2465 -2464 -2473 -2475 -2474 -2471 -2473 -2469 -2470 -2460 -2461 -2478 -2465 -2471 -2475 -2482 -2485 -2494 -2492 -2482 -2493 -2509 -2501 -2513 -2486 -2489 -2492 -2505 +30094 + +3122 +2983 +5988 +4214 +5278 +1974 +7109 +2419 +3777 +8299 + +10191 +6122 +7298 +7855 +8666 +4777 +6833 +8862 + +6100 +5332 +1908 +2796 +1818 +4657 +1650 +5560 +8447 +8619 + +9547 +1354 +1561 +2943 +2547 +9313 +9649 + +1323 +1200 +2514 +1412 +1381 +2310 +6201 +3257 +1747 +1295 2507 -2505 -2506 -2505 -2507 -2509 -2510 -2511 -2518 -2523 -2529 -2540 -2526 +5594 +6010 +3422 + +1995 +3514 +8434 +1625 +2257 +3551 +6881 + +12256 +1829 +11123 +18829 + +11790 +1786 +13935 +10088 +3486 +2981 + +5046 +1306 +4328 +7100 +6000 +6287 +3624 +6521 +3952 +3107 +3846 +2762 + +21245 +8245 + +14395 +8107 +4730 +15633 + +1648 +2062 +4574 +2446 +5471 +3973 +5319 +1370 +4113 +1784 +5596 +3336 +4557 +5690 +4259 + +9587 +3062 +5611 +10487 +2759 + +69383 + +4683 +4950 +1709 +6063 +2338 +4583 +4749 +6431 +4269 +1193 +6012 +5525 +2704 +2462 + +1627 +7447 +8071 +6915 +7021 +7778 +6861 +4647 +4006 +3953 + +1866 +9649 + +10777 +2179 +5406 +1772 +3472 +8632 + +5609 +7270 +9122 +4723 +8155 +3113 +6348 +6468 + +5029 +3416 +7531 +8764 +9506 +2104 +7992 +9329 2530 -2535 -2550 -2552 -2565 -2558 -2569 -2563 -2573 -2577 -2579 -2575 -2573 -2577 -2575 -2591 -2607 -2609 -2614 -2619 -2648 -2649 -2650 -2646 -2648 -2651 -2660 -2653 -2645 -2651 -2652 -2658 -2657 -2627 + +36312 +11422 + +5790 +3655 +2172 +6254 +11150 +1624 +1014 + +6789 +2406 +6639 +4712 +4219 +2880 +5426 +6339 +1460 +1188 +5297 +4006 +2118 + +3351 +1304 +5559 +3742 +4749 +3648 +5671 +4213 +4047 +1243 +1674 +1943 +4974 +3576 +2816 + +4949 +6136 +6448 +1652 +2764 +6968 +5423 +3887 +6863 +3628 +4183 + +2857 +5671 +3486 +4910 +2913 +6441 +5863 +3306 +6473 +2428 +2509 +1188 +3289 +4418 + +2509 +8521 +2190 +8998 +7303 +5667 + +3486 +8687 +2976 +5155 +1013 +9599 +8559 + +9018 +10121 +9235 +5724 +10350 + +2389 +9061 +8031 +6711 +6046 +3058 +1890 +6047 +7664 + +1286 +1915 +6597 + +6012 +6146 +9585 +12335 +3708 +7652 + +4501 +3470 +3260 +6125 +3718 +3379 +5225 +4673 +5943 +1010 +2057 +3389 +2009 + +4640 +2437 +4673 2628 -2642 -2631 -2632 -2634 -2639 -2648 -2647 -2648 +5333 +7027 +8001 +7678 +4903 +7670 +1898 + +47670 + +3884 +23968 +11759 + +4154 +5214 +2482 +4226 +3115 +2272 +1209 +2525 +2985 +3399 +3140 +4385 +1291 +3911 + +15947 +12913 +12250 + +7196 +3574 +6499 +2127 +4295 +6611 +3292 +6542 +1280 +4757 +6430 +7364 + +36842 +21414 + +15106 +26273 + +2751 +1089 +2380 +3818 +1737 +1247 +3897 +1466 +3772 +3890 +4032 +6280 +5202 +3879 + +4406 +7919 +7174 +7182 +2076 +4281 +9077 +1814 +5768 + +4183 +5280 +5978 +3859 +1915 +2297 +1478 +3486 +2438 +4829 +2279 +5057 +2625 +5242 +2532 + +1699 +2463 +5703 +5850 +6899 +2344 +7855 +6715 +6421 +5289 +3702 + +11196 +4585 +9888 +10474 +10927 +9486 +1240 + +9145 +35500 + +9017 +8861 +1486 +5209 +9027 +7222 +8914 +8981 + +10200 +6668 +9301 +4127 +9401 +5308 +7425 +4684 + +7333 +10840 +14603 +10690 + +15280 +12623 + +2628 +4448 +6702 +5674 +4786 +1955 +5817 +7391 + +2930 +5391 +1057 +5093 +9249 +5111 +8526 + +11978 +1172 +12728 +10126 +14320 + +9024 +10561 +11219 +10949 +9775 +1630 +5280 + +2785 +6174 +1854 +1905 +6071 +2125 +5350 +1186 +3905 +6166 +2533 +4059 +6731 + +9855 +3487 +3393 +1922 +3413 +10109 +5879 +1927 + +24634 +17427 + +6916 +5891 +4324 +4270 +1627 +3428 +3616 +7358 + +1720 +7552 +2489 +7386 +2502 +5020 +8134 +6329 +1752 +3651 + +2666 +4269 +5480 +3812 +1161 +4880 +2090 +1374 +4834 +4310 + +7381 +7578 +10690 +9863 + +4168 +6628 +8779 +4512 +9607 +13236 + +8983 +7035 + +5321 +6790 +7229 +4435 +4513 +1969 +4220 +6666 +1310 +5702 +2815 +3337 + +8165 +8740 +12582 +7713 + +6807 +7574 +2110 +8248 +3745 +8562 +4020 +4169 +1765 +4891 + +17008 +3541 +13728 +10051 + +9546 +3634 +11918 +10456 +6942 +8063 + +8529 +13227 +7794 +1031 +4572 +11405 + +4153 +6659 +22281 + +11515 +2370 + +5548 +1377 +1211 +6916 +1775 +6326 +4643 +5420 +2426 +1870 +6828 +4954 +4020 + +17677 +4591 +11515 + +27640 + +1151 +2701 +3155 +4768 +5921 +1581 +2137 +4733 +5815 +4884 +2760 +2365 +5740 +5709 +4972 + +8728 +6887 +3823 +2605 +5475 +3860 +6041 +6430 +7326 +1646 + +4335 +2773 +5938 +2121 +4260 +6369 +6997 +3884 +4772 +1516 +2081 + +6213 +8805 +7238 +5345 +1192 +4939 +2806 +7313 + +4753 +6108 +7647 +3770 +1151 +3026 +7908 +4970 +7434 +7037 +2897 + +5302 +9296 +11044 +7970 +13693 + +7211 +1990 +3859 +6882 +3344 +4598 +2233 +2877 +2708 +3417 +6936 +2253 + +6373 +6764 +3884 +7391 +5533 +1137 +2496 +7434 +5125 +3866 +1692 +1925 + +4935 +6462 +6626 +2070 +1478 +6686 +4058 +2785 +1455 +3868 + +9644 +4807 +8557 +9675 +3245 +8615 +2544 + +4673 +6408 +7255 +2955 +8642 +8242 +6319 +4034 +1881 + +4863 +3401 +1929 +7349 +2101 +3531 +6030 +1829 +2810 +6337 +2740 +3333 + +2544 +3546 +4223 +3984 +5038 +3259 +3726 +6850 +6201 +2285 +2743 +2805 + +2831 +5952 +4857 +5209 +3788 +7752 +1897 +5149 +1566 +5627 +1744 + +13339 +25673 + +6041 +5270 +3150 +5930 +3880 +7634 +4617 +3736 +1598 +3545 + +12877 +3897 +16515 + +8603 +11316 +15009 +14921 +11366 + +29818 + +6943 +6084 +3655 +2357 +6786 +4932 +4144 +1856 +6735 +5396 +1969 +3564 +6248 + +21889 +22636 +7127 + +5436 +2129 +3427 +4028 +1375 +5428 +3513 +2017 +2241 +2350 +4854 +4469 +6433 +4620 + +8399 +5055 +7440 +1229 +5012 +8573 +8127 + +6239 +5302 +1102 +3281 +5757 +5335 +4485 +4455 +4786 +3304 +2231 +1380 +3369 +1580 + +7307 +4830 +3948 +3827 +1887 +4315 +7452 +4969 +5245 +4550 +7218 +2174 + +7447 +1081 +4264 +7055 +3586 +5229 +7455 +6934 +6149 +3960 + +15053 +15764 +7760 +4107 + +3289 +4370 +9653 +10131 +7939 +7051 +9606 +8231 + +9300 +8135 +7629 +9080 +3896 +1975 +8696 +1182 + +3985 +4089 +4921 +5219 +6964 +6433 +6509 +4185 +1005 +1026 +7124 +2661 + +6051 +14787 +7797 +15612 +10055 + +4012 +4017 +2304 +2605 +5743 +1403 +1125 +8710 +7720 +8718 + +6678 +4366 +4875 +6185 +3490 +1883 +3966 +1955 +6868 +2049 +3847 +2604 +5276 + +3260 +5099 +1168 +4772 +6425 +2118 +4669 +2970 +2545 +2870 +2477 +3117 +5656 +1638 + +3476 +16997 +3993 + +1125 +1370 +4944 +8135 +3965 +4389 +9460 +3168 +1910 + +2953 +1838 +3452 +7390 +5918 +6095 +6666 +7163 +6031 +3723 + +7718 +1141 +1675 +8446 +5294 + +5377 +6680 +7310 +6375 +5910 2649 -2654 -2655 -2660 -2671 -2682 \ No newline at end of file +9240 + +7748 +6530 +10511 +12346 +9936 +1147 + +5383 +2504 +2837 +4482 +2089 +5223 +5901 +2419 +2722 +1275 +5022 +4864 +1186 +3471 + +1424 +4107 +5138 +6033 +1772 +4181 +3155 +1846 +6531 +6357 +3427 +6064 + +6840 +12459 +10532 +13685 +7208 + +10299 +9237 +1345 +5427 +7106 +2016 +1041 +7238 + +3221 +8456 +3885 +7423 +6113 +4968 +9018 +5032 +6529 + +33934 +7098 + +7112 +24553 + +11885 +11364 +7529 +7103 +8676 +6579 +3688 + +25617 +10321 + +4047 +3253 +1844 +2799 +1668 +2965 +4873 +6097 +6295 +6440 +5524 +2244 +5140 +1709 + +2615 +2931 +3283 +6939 +4277 +2219 +6990 +6804 +6249 +5762 +1461 +1084 + +32423 +27423 + +14517 +13142 +10941 +19562 + +5455 +1050 +5920 +5358 +1310 +4716 +3229 +1832 +4729 +1023 +3679 +2541 +3880 +1570 +3417 + +16181 +14620 +16387 +14881 +13553 + +5812 +2876 +4562 +3768 +3935 +5042 +7771 +6679 +7969 +4621 +7996 + +21785 + +2879 +3483 +14624 +15533 + +3101 +1823 +3319 +1134 +5269 +2554 +1437 +6490 +1859 +5525 +1183 +7439 + +5209 +6916 +5888 +1564 +5739 +6298 +4936 +5691 +3928 +4678 +4320 +1645 + +2079 +4168 +3031 +2456 +5446 +2338 +1479 +2522 +2715 +1725 +1596 +5845 +5028 +1472 +4262 + +26049 +35356 + +7064 +5479 +7564 +6219 +1482 +3370 +2480 +6777 +2460 +4600 +1526 + +58980 + +6251 +4189 +4778 +4814 +5817 +1498 +1721 +2071 +1297 +3638 +4299 +6097 +1840 +5523 + +6232 +2066 +5782 +6549 +2873 +3707 +1461 +3857 +7477 + +10217 +4464 +7487 +5948 +2641 +6622 +5401 +3488 + +39956 + +4731 +4717 +3048 +1349 +1819 +2364 +3993 +4572 +4118 +3673 +2932 +3557 +1818 +4040 +1809 + +7128 +2747 +10012 +9847 +11104 + +5461 +8787 +11013 +2435 +7903 +6058 +9698 + +6006 +2230 +1588 +3453 +1979 +4157 +4378 +2516 +3326 +4336 +5900 +4330 +3758 +1876 + +6303 +1498 +5453 +3870 +6501 +7204 +7517 +4713 +6341 +2922 + +7334 +4897 +4402 +10953 +11054 +10268 +9793 + +4308 +2009 +2882 +6288 +2014 +6973 +5200 +5629 +1899 +5681 +4634 +2955 + +64804 + +2857 +3134 +5935 +4192 +3976 +3585 +2199 +4054 +4975 +3372 +1872 +4617 +1449 +2854 +1817 + +25804 +30702 + +3722 +15874 +21786 + +3532 +2397 +6481 +6355 +3696 +6585 +6740 +6653 +1094 +3088 +3531 + +5927 +6252 +1132 +5256 +2514 +6460 +3890 +5604 +5112 +2472 +2584 +6801 +6849 + +10325 +4424 +2601 +3731 +1337 +2744 +9597 +7075 + +8526 +2577 +13053 +18958 + +4560 +2559 +1153 +4408 +4988 +5067 +5099 +2303 +5451 +5604 +2316 +3957 +4706 +1424 + +9698 +14099 +2964 +11611 +6559 + +33997 +17918 + +3078 +10535 +5480 +8484 + +9256 +15323 +22521 + +6174 +1290 + +2650 +3963 +5043 +2957 +2425 +1608 +5621 +3002 +4820 +7220 +5857 +2229 + +1787 +9599 +6118 +5536 +10061 +4869 +7507 +10471 + +6642 +9476 +8827 +1134 +8236 +3198 +9233 +1183 +2111 + +2519 +13308 +4466 +7787 +11427 +10148 + +2051 +8362 +3560 +8921 +11983 +10986 + +17512 +16150 +16427 +4874 + +1907 +4166 +3506 +3711 +6450 +1079 +6463 +1540 +3003 +1552 +2365 +2677 +6334 + +5683 +5447 +7822 +1999 +5990 +3230 +6628 +8877 + +4759 +3993 +1209 +6762 +3003 +6471 +4859 +4760 +1740 +4548 +2611 +4958 +2878 + +3511 +5142 +2343 +6232 +1655 +7021 +1258 +6838 +6246 +3258 +2833 +5692 + +14573 +6206 +7184 + +12569 +12014 +8487 + +5170 +3993 +2230 +8236 +1047 +2335 +7772 +10473 + +6108 +6449 +1413 +6964 +3161 +6252 +2130 +2719 +5420 +7277 + +1583 +8946 +17657 +13041 + +4422 +2025 +6174 +5449 +3686 +2354 +1209 +4111 +4326 +5606 +2071 +4023 +2194 +1317 + +4962 +7063 +5352 +4226 +2665 +3288 +6487 +4746 +1582 +3126 +5662 +6864 + +19194 +18115 +9773 +13571 + +3436 +3246 +1528 +2100 +5781 +2942 +1985 +3354 +5996 +6033 +4556 +4816 +3445 +5674 + +7953 +1275 +11734 +3295 +8462 +12028 +10019 + +1766 +2223 +3111 +3804 +3618 +4227 +2342 +2235 +3909 +2615 +4193 +2296 + +2843 +1898 +4501 +3483 +6084 +5807 +2422 +5786 +4145 +2572 +5803 +2697 +3218 +2038 + +11871 +1625 +13110 +12275 +12224 +3092 + +8174 +8230 +16977 + +4156 +3989 +4409 +2022 +4922 +5252 +3871 +5072 +4632 +5995 +1056 +4716 +3767 +5414 +1228 + +1282 +6053 +3736 +2202 +10695 +6392 +1384 +7369 + +28681 +29246 + +15208 +21904 +5766 + +46708 + +1735 +2394 +6503 +2545 +5642 +1806 +1340 +4804 +5163 +2480 +1842 +5795 +6230 + +5446 +4579 +4336 +1438 +3998 +2294 +3765 +5777 +4731 +1789 +3080 +5658 +6020 +2542 +3306 + +11770 +7451 +8351 +7333 + +25818 + +23933 +30654 + +8503 +3608 +18443 + +1571 +2813 +4847 +5863 +3118 +5888 +5529 +2732 +3260 +6378 +2254 +5451 +3926 +1217 + +5575 +12012 +8351 +6175 +4427 +5625 +9866 + +5468 +12325 +21005 + +5021 +3035 +3699 +1104 +6148 +6925 +6800 +4144 +4039 +5334 +3422 +3349 +2141 + +18504 +6184 +17915 +17015 + +2611 +3005 +2768 +2554 +5186 +5515 +4370 +4778 +2033 +4594 +4747 +5050 +6011 +1241 +3687 + +3572 +2053 +3035 +1019 +4649 +6236 +3675 +1697 +1756 +1384 +6392 +5508 +4879 +2579 + +17516 +1817 +4564 + +13428 +11868 + +2268 +3943 +1945 +4773 +1588 +3347 +2407 +5519 +4959 +2050 +1151 +5578 +3798 +3568 + +13729 + +2625 +13582 +7466 +6119 +6529 +8200 + +5149 +1177 +5792 +7468 +5574 +6245 +5567 +2265 +4336 +7321 +1343 +5623 + +3722 +8530 +2506 +5780 +5469 +6498 +7749 +2505 + +22983 +5225 +23416 + +12172 + +7005 +2913 +5003 +4441 +8602 +4818 +4073 +7066 + +2419 +3295 +4377 +5033 +4805 +3757 +1084 +4820 +2652 +4324 +3036 +4980 +1027 + +4367 +1801 +6250 +7051 +3410 +5676 +3559 +3589 +5903 +4154 +1524 +5197 + +6557 +4333 +4119 +5285 +4462 +6582 +6615 +5425 +6027 + +2623 +3519 +4234 +2637 +3220 +2879 +3305 +4309 +2591 +4333 +1030 +2778 +2065 +6071 +2426 + +8003 +2935 + +16146 +2907 +25872 + +2523 +4191 +3738 +5966 +3177 +4487 +4176 +4140 +3472 +1368 +3634 +4151 +3101 +3554 +1097 + +8706 +7566 +2050 +5536 +1457 +3515 +4303 +9118 + +2406 +1427 +5485 +14192 + +6581 +5469 +6933 +5186 +4634 +2457 +8450 + +6198 +10223 +9913 +1278 +10083 +10253 +8975 +8519 + +54888 + +1972 +4402 +4773 +5630 +5896 +6420 +1553 +4579 +1803 +1853 +4043 +5563 +2463 + +5240 +4200 +2061 +3277 +1346 +2627 +2714 +4837 +4338 +2206 +2051 +5209 +1106 +4793 +3229 + +6183 +4027 +4577 +4944 +1637 +4339 +2064 +4443 +1125 +2905 +2998 +5512 +6309 +4497 + +6302 +5477 +3874 +7152 +4289 +1502 +6993 +1968 +8201 +3361 + +3169 +5005 +1366 +1187 +2960 +4402 +7829 +4494 +4550 +4155 + +1670 +31707 + +2778 +6497 +2950 +7022 +3037 +5025 +3920 +1107 +5544 +4234 +1330 +6182 + +6093 +7193 +1472 +7313 +12034 + +11527 +11667 + +8122 +4849 +11876 +6439 +13482 +4171 + +2510 +5344 +6308 +5470 +3694 +3904 +3060 +1957 +3652 +2225 +1192 +3659 +3671 +2842 + +5014 +1665 +2556 +1066 +2900 +1324 +2125 +3245 +2785 +3922 +3338 +2431 +2794 + +6335 +1225 +2642 +6364 +4160 +3309 + +6834 +12081 +3435 + +7505 +8207 +3934 +8305 +10764 +11568 +3353 + +7731 +7976 +3563 +1029 +5288 +1333 +6704 +6018 +1413 + +1780 +11061 +12941 +5784 +6913 +8216 + +12014 +5836 +11487 +8744 +10846 +2219 +5146 + +5868 +3033 +6833 +5479 +5133 +4490 +6107 +5144 +4442 +5649 +2533 +5321 +1877 \ No newline at end of file diff --git a/src/01.cs b/src/01.cs index 43bce61..71efa47 100644 --- a/src/01.cs +++ b/src/01.cs @@ -2,61 +2,32 @@ internal class Day01 : Day { - IEnumerable? lines; + List> lines = new(); internal override void Parse() { - lines = Util.ReadAllLines("01"); + List calories = new(); + foreach (var line in Util.ReadAllLines("01")) + { + if (string.IsNullOrEmpty(line)) + { + lines.Add(new(calories)); + calories.Clear(); + continue; + } + + calories.Add(int.Parse(line)); + } + lines.Add(new(calories)); } internal override string Part1() { - int lastDepth = 0; - int numIncreased = -1; - - foreach (var line in lines!) - { - var depth = Convert.ToInt32(line); - if (depth > lastDepth) - { - numIncreased++; - } - - lastDepth = depth; - } - - return $"<+white>{numIncreased}"; + return $"Most calories: <+white>{lines.Max(x => x.Sum())}"; } internal override string Part2() { - int lastTotal = 0; - int numIncreased = -1; - int num1 = -1; - int num2 = -1; - int num3 = -1; - - foreach (var line in lines!) - { - var depth = Convert.ToInt32(line); - num1 = num2; - num2 = num3; - num3 = depth; - - if (num1 < 0 || num2 < 0 || num3 < 0) - { - continue; - } - - var total = num1 + num2 + num3; - if (total > lastTotal) - { - numIncreased++; - } - - lastTotal = total; - } - - return $"<+white>{numIncreased}"; + return $"Sum of top 3: <+white>{lines.OrderByDescending(x => x.Sum()).Take(3).Sum(x => x.Sum())}"; } }