From be7fa3b032b8184fe4f72b4f398f2afb8d186b9f Mon Sep 17 00:00:00 2001 From: Mia Herkt Date: Fri, 2 Dec 2022 03:11:23 +0100 Subject: [PATCH] 01: Solve in C and Python --- 01/input.txt | 2236 ++++++++++++++++++++++++++++++++++++++++++++++++ 01/solution.c | 21 + 01/solution.py | 6 + 3 files changed, 2263 insertions(+) create mode 100644 01/input.txt create mode 100644 01/solution.c create mode 100755 01/solution.py diff --git a/01/input.txt b/01/input.txt new file mode 100644 index 0000000..9c247ac --- /dev/null +++ b/01/input.txt @@ -0,0 +1,2236 @@ +3864 +5112 +3233 +3008 +5052 +3291 +4002 +5402 +2907 +2398 +3014 +3923 +1475 +1997 +2519 + +9130 +9712 +12437 +3457 +11610 +4598 + +1698 +1551 +6798 +7440 +3574 +12107 +3697 + +9019 +12113 +6266 +11838 +7562 +6444 + +10364 +1437 +10513 +2988 +10836 +13749 + +3011 +9552 +11575 +12646 +9861 +6347 + +15883 +15888 +6725 +7353 +4998 + +3165 +7637 +6348 +3250 +13535 +12802 + +6683 +13364 +15858 +5489 +5315 + +12294 +13732 +9734 +6165 + +6023 +2374 +5773 +5578 +6419 +4301 +6861 +4560 +6021 +2960 +1349 + +1847 +2687 +4164 +3599 +4361 +7463 +3010 +4351 +6738 +7941 +3855 + +1848 +6606 +1662 +4276 +2488 +3635 +1954 +2375 +2020 +6327 +4907 +4523 +1756 + +25495 +6242 + +20001 +19849 +1924 + +14631 +12374 +3017 +16388 + +4779 +3772 +5719 +3491 +5698 +4909 +5656 +3250 +3805 +4068 +1689 +5141 +5754 +5097 +1951 + +1824 +1235 +5428 +4808 +5453 +6331 +8706 +2132 +2107 +4675 + +8668 +11626 +8358 +8178 +3039 + +6897 +2675 +5347 +6427 +7065 +1305 +5852 +4200 +4995 +5786 +7447 +6742 + +3863 +5824 +1725 +3534 +5440 +5958 +5225 +1794 +3812 +5589 +3028 +1252 +1746 +1196 +5477 + +3938 +2800 +8859 +7153 +4821 +3198 +2694 +4947 + +6697 +3509 +4723 +3891 +6796 +1662 +1369 +3632 +3649 +6928 +2270 +5340 + +20974 +30984 + +7699 +5994 +4189 +4527 +11298 +3529 +2212 + +2603 +2414 +8646 +3184 +4391 +5234 +7213 +7920 +2147 +1809 + +5039 +7539 +4470 +2247 +9676 +12772 + +1630 +8375 +9097 +9007 +7498 +5776 +8173 +8946 + +1130 +3475 +5415 +4784 +5293 +5724 +1730 +2220 +4327 +4915 +4210 +2089 +2161 + +54387 + +5235 +6486 +6332 +6169 +4904 +3117 +4987 +5488 +3506 +6267 +3229 +2268 +2058 +2575 + +10343 +7175 +7614 +1014 +8145 +7014 +8807 +7703 + +2942 +2045 +9735 +6097 +9103 +3805 +10274 +4901 + +5227 +6127 +6923 +3691 +2423 +4298 +4130 +5149 +6163 +3855 +2709 +4583 +5465 + +6713 +7303 +2326 +1054 +2108 +6795 +1399 +5164 +8389 +1413 + +11210 +2885 +2768 +4565 +7853 +8590 +4953 + +3359 +5464 +6359 +9578 +3986 +3114 +2449 +5502 +8884 + +4380 +6795 +6388 +3666 +6385 +5336 +4891 +2633 +6116 +4340 +6410 +2381 +5618 + +6611 +8713 +3262 +2084 +5305 +6025 +6210 +4838 +6432 +1770 + +7316 +7253 +1999 +2136 +9789 +6351 +9843 +6965 + +13110 +10487 +2738 +11418 +5886 +4257 + +5279 +3005 +5787 +4700 +4579 +5366 +4134 +3856 +4433 +4225 +1119 +3261 +1206 + +7528 +6795 +3581 +7530 +4287 +3004 +4899 +1682 +6540 +8041 +1163 + +5271 +9504 +4466 +5030 +9039 +6302 +9526 +5770 +7822 + +3927 +1053 +7169 +8745 +6919 +8249 +1402 +5462 +2763 +7113 + +4657 +20694 +21592 + +4904 +6515 +9389 +9141 +5209 +1682 +7319 +9383 +4057 + +13752 +9584 +8823 + +2085 +8569 +6909 +6769 +7842 +1740 +8757 +2428 +1151 + +1240 +6410 +5661 +1817 +4367 +6749 +3837 +3287 +2126 + +48984 + +5064 +2260 +7884 +6506 +1312 +2949 + +2501 +3041 +5435 +4134 +4921 +9071 +1539 +8718 +4927 + +13457 +13830 +14262 +16094 +6856 + +4134 +5955 +2100 +3580 +1618 +6258 +2037 +3407 +6043 +5882 +5180 +5852 +1142 + +6315 +3132 +4804 +7315 +1145 +6572 +4295 +1818 +6889 +3224 +2124 +4383 + +49471 + +16847 +14810 +10031 +15268 + +9925 +13290 +11355 +12632 +7822 + +2393 +2849 +1713 +6708 +2818 +7002 +4987 +2814 +1650 +5845 +6962 +3250 + +3022 +4101 +6484 +6655 +5900 +3114 +2479 +7243 +3711 +3322 +3543 +6403 + +3922 +6921 +2825 +3470 +6452 +1334 +7415 +4350 +1250 +6732 +6071 + +13203 +10169 +14375 +9425 +6521 + +14621 +8430 +19479 +10045 + +5082 +1198 +1420 +2902 +2764 +3099 +6677 +5280 +1059 +2165 +6836 + +1275 +7294 +5909 +4850 +3642 +4437 +7639 +2001 +8353 +7923 + +65166 + +8180 +2720 +5919 +1586 +7115 +2500 +1213 +8595 +6904 +1338 + +3154 +6288 +8212 +7799 +4547 +5465 +4819 +4080 +7698 + +4718 +2231 +3672 +4929 +3608 +1125 +1283 +3307 +5198 +6605 +5178 +5314 +1539 + +5772 +5108 +5245 +3701 +2893 +5852 +2399 +4988 +4363 +4949 +5894 +6708 + +7223 +3143 +8012 +1442 +5661 +8021 +6281 +5132 +3742 +3028 +5716 + +1439 +9221 +8094 +7476 +1144 +1889 +4245 +6198 +9020 + +6934 +5060 +2312 +1886 +1988 +4895 +7235 +1647 +2814 +3147 +5432 +7285 + +39249 + +18283 +24247 +1734 + +7175 + +7790 +7393 +12909 +14444 +4285 + +4692 +7363 +6394 +7058 +4988 +5041 +1886 +2515 +1490 +2791 +5734 +2365 + +1468 +8324 +23095 + +4178 +5102 +5153 +3115 +4749 +1387 +5849 +2752 +1318 +5515 +6390 +3345 +5912 +5829 + +4765 +4421 +1225 +3593 +8691 +6986 +7451 +8529 +5251 +4784 + +2862 +3838 +7199 +7330 +2514 +8670 +8281 +3576 +4912 +2260 + +1962 +5598 +4649 +5922 +4135 +4373 +6511 +5068 +3156 +2439 +6200 +1464 +4222 + +5741 +10630 +3768 +3343 +8548 +3202 +2871 + +6916 +17569 +24608 + +7823 +7460 +6920 +3049 +8003 +3858 +3611 +4790 +3392 + +27393 + +4616 +8220 +1239 +7295 +6397 +1372 + +17576 +18361 +10204 +13704 + +15826 +3578 +14185 +2385 +1221 + +5127 +3905 +4206 +1073 +5846 +2267 +1482 +1450 +1451 +2768 +2849 +2850 +3312 +1479 +5513 + +10345 +4158 +12513 +5591 +16153 + +6027 +1377 +1804 +3795 +5796 +2626 +6336 +3746 +6146 +6311 +6113 +4062 +3067 + +2448 +1058 +4229 +3204 +6020 +2882 +5419 +2084 +3590 +5993 +3840 +1156 +2502 +1817 +6055 + +32707 +1241 + +3045 +1309 +3599 +3823 +2307 +1547 +1612 +6550 +3459 +5435 +1056 +4990 +4650 + +4354 +6100 +2169 +2654 +6645 +4525 +2880 +2747 +6052 +6365 +5701 + +1503 +1293 +2530 +9166 +8656 +9926 +9255 +7066 + +9305 +7085 +6824 +9498 +9025 +7904 +3118 +3142 + +10108 +2329 +4742 +8494 +1708 +1343 +3350 +6716 + +6532 +2895 +4189 +1971 +7834 +1107 +1027 +6415 +1211 +3023 +1636 + +4973 +5464 +3843 +6092 +2053 +1745 +6005 +5862 +4142 +1415 +4875 +1617 +5642 +1920 +4706 + +7408 +17800 +11194 +13159 + +5566 +1756 +2450 +5854 +1639 +3928 +2742 +6385 +6120 +5802 +1599 +1249 +3625 + +1670 +4618 +5316 +3653 +5167 +3252 +4995 +1200 +3446 +4433 +6113 +1342 +4176 +5753 + +4597 +9620 +3712 +1774 +5338 +4078 +7296 +3434 +9310 + +8976 +12080 +8938 +6131 +10273 +10621 +4234 + +6447 +13533 +10763 +11732 +5190 +9129 + +5281 +3655 +5424 +5314 +3908 +5582 +3114 +1744 +5385 +3111 +4497 +2897 +4401 +1298 + +12623 +8559 +12761 +1280 +12850 +11620 + +1809 +2403 +2257 +4586 +4585 +5761 +3264 +4621 +1045 +2354 +1954 + +5074 +7245 +5125 +6481 +6424 +5650 +6906 +1789 +5924 +1086 +1690 +2558 + +3471 +1419 +10640 +2304 +11881 +11729 +12014 + +17503 +19515 +15606 +1866 + +4486 +3617 +9287 +4473 +7289 +1852 +9402 +3964 +3602 + +7989 +2612 +1003 +7634 +4889 +1978 +5232 +1146 + +5487 +7770 +8115 +2268 +3609 +3100 + +6205 +6444 +8414 +2959 +7972 +8829 +6256 +1156 + +4737 +1069 +3768 +2510 +3527 +5221 +1666 +4470 +3563 +1654 +5734 +3075 +5575 + +15504 +12559 +8976 +9824 +8990 + +7934 +3476 +6965 +3686 +3923 +2709 +8648 +7699 + +6772 +3077 +2503 +4261 +2890 +3068 +3921 +4858 +4882 +2770 +5354 +6859 +3445 + +52484 + +11901 +15405 +13990 +17226 + +5850 +4678 +5707 +5673 +1485 +3913 +3480 +5013 +2565 +2062 +2406 +6342 +5828 + +4758 +3972 +5428 +7975 +1407 +5563 +4808 +7919 +4359 +5078 +3682 + +18959 +4053 +1937 +6684 + +6150 +2908 +4347 +1341 +6863 +6723 +2992 +4434 +6267 +4876 + +4458 +12449 +10626 +4621 +3687 +9892 + +13207 +1659 +18006 +12201 + +6923 +2813 +2898 +1837 +5875 +4333 +5434 +1703 +1930 +3207 +4145 +6236 +5833 + +8993 +6150 +10505 +2085 +9550 +9271 +11322 + +3046 +2665 +1049 +2145 +1082 +2523 +3809 +3976 +1052 +3415 +3224 +3522 +3740 +4872 +2536 + +23303 +24203 +6904 + +5562 +1246 +3109 +4849 +3079 +4853 +2026 +5356 +4397 +2953 +6317 +6009 +4248 +2557 + +14594 +25779 +16865 + +1229 +5756 +3663 +5951 +7077 +1950 +3508 + +3758 +4208 +8189 +10315 +3057 +2813 +4001 + +7597 +1192 +8466 +10400 +4446 +7610 +6265 +3735 + +7012 +2301 +12432 +4820 +1329 + +12293 +4034 + +4964 +3467 +2701 +5807 +3710 +4313 +3761 +3127 +4525 +2948 +4560 +1989 +3900 +4193 +4177 + +11249 +36854 + +1034 +4105 +2297 +5906 +3525 +2047 +6844 +2436 +6523 +3394 +2502 +4028 +2509 + +4336 +3094 +2833 +4452 +6331 +6115 +2301 +3217 +5287 +7749 +7323 + +4148 +1984 +4102 +6569 +3790 +6576 +3567 +3802 +2742 +6539 +2247 +5713 +6088 + +4975 +1430 +2970 +3669 +1025 +1244 +3788 +1979 +5738 +3292 +3556 +3730 +6105 +3277 +4346 + +15738 +9547 +16697 + +66474 + +4263 +6015 +3324 +3812 +5843 +2654 +1389 +6766 +6319 +1516 +5893 +4485 +2272 + +12631 +3624 +7153 +16205 +13771 + +10426 +12897 +17028 + +9876 +6551 +9756 +1740 +7096 +8600 +7217 +4773 + +7909 +7798 +9063 +8985 +4679 +1808 +7964 +1699 +4306 + +4503 +6328 +7241 +2595 +4247 +7351 +4336 +4402 +4159 + +31634 + +8118 +1323 +4680 +1149 +4085 +10126 +4137 +3525 + +8530 +3662 +3779 +8656 +5607 +8840 +7246 +4802 +2720 + +2839 +5366 +5585 +1265 +6497 +1123 +2588 +3881 +5866 +3361 +5737 +5557 +3432 +3415 + +1155 +6948 +1379 +3529 +2804 +6611 +2950 +1813 +6580 +6723 +5971 +5549 + +2561 +2538 +1721 +2674 +2618 +3598 +1152 +5254 +6073 +3352 +1016 +2452 +5835 +5319 +2337 + +4682 +8460 +8055 +1318 +8906 +7333 +7422 +1762 +3159 + +4290 +4947 +3993 +1717 +7989 +6175 +3558 +1492 +6565 +7338 + +1687 +6502 +5542 +6358 +2954 +5758 +5980 +6825 +5866 +1280 +4830 +3345 + +5162 +3923 +1385 +4797 +3288 +1723 +2312 +5272 +5749 +5538 +4432 +3931 +4573 +2554 + +7658 +4023 +7144 +6541 +3310 +5114 +4847 +8803 +5657 +1784 + +4370 +3305 +6516 +5828 +9182 +4402 +9934 + +6053 + +8494 + +6095 +11294 +8547 +10083 +8434 +11764 +2951 + +2952 +3177 +7103 +4875 +1817 +10323 +1381 + +13123 +9521 +23873 + +5787 +12655 +12756 +20017 + +1849 +4191 +6295 +6289 +2796 +4640 +4409 +1030 +2279 +1813 +1948 +2271 +6518 + +9749 +1518 +3621 +9996 +9173 +1741 + +8417 +2916 +6781 +9461 +7940 +8660 +10204 +8902 + +36117 + +4928 +11184 +6168 +12046 +3466 +6830 + +4507 +1340 +5878 +3276 +3793 +6844 +4796 +1096 +5405 +3905 +1762 +5264 +1384 + +3121 +5572 +5864 +6716 +9604 +1966 +10685 +4693 + +5684 +5699 +2937 +2273 +1618 +4506 +3601 +5460 +6154 +4258 +6404 +4984 +3264 +1155 + +4268 +7380 +7893 +3865 +6244 +5745 +7877 +3322 +3627 + +5996 +4074 +5569 +3507 +6114 +3961 +6042 +5272 +2995 +4667 +2161 +5336 +3922 +5647 +2187 + +4228 +4393 +5050 +1155 +2427 +4201 +1233 +6100 +5369 +4142 +3524 +3058 +6176 +2121 + +7869 +8100 +6906 +2028 +3868 +8614 +5236 +1366 +9400 + +23443 +9993 +8524 + +1473 +4354 +2258 +5343 +2574 +6151 +4949 +4792 +5509 +5791 +6246 +3977 +5126 +4920 + +2080 +3619 +2138 +2745 + +2001 +9394 +7088 +5665 +9985 +8964 +2620 + +3346 +4344 +15757 +4227 +9296 + +4465 +5869 +4651 +2306 +3055 +5572 +4963 +3055 +1328 +4879 +6011 +4266 +5300 +1046 +5571 + +6086 +5882 +21009 + +4163 +9276 +11926 +2012 +11726 +9290 + +23241 +20013 +6592 + +4638 +8473 +2576 +3643 +8712 +5578 +4112 +3300 +4531 +6702 + +1360 +2866 +5521 +4452 +1437 +6475 +4393 +6121 +4211 +3168 +6841 +3096 +2048 + +11379 + +3821 +6927 +1607 +3907 +8928 +4193 +2371 +3760 +7531 + +3976 +1570 +8665 +8603 +2337 +3396 +3583 +5928 +6876 +6429 + +9263 +5094 +11647 +3988 +7631 +3263 + +5716 +8255 +5940 +10735 +7349 +6548 +4650 +5816 + +1229 +2098 +6221 +5073 +4343 +6126 +3950 +1293 +2848 +4351 +6438 +5156 +2619 +3244 + +6788 +5274 +2215 +3979 +2788 +7081 +2119 +6235 +1359 +7141 +1497 +3362 + +6956 +2914 +3014 +5001 +7681 +7144 +2914 +4128 +3004 +6170 +1417 + +13926 +18761 +6405 + +2805 +2134 +5990 +1899 +3919 +3040 +2357 +2352 +2295 +3900 +1039 +4151 + +21789 +17570 +24738 + +3241 +9968 +5793 +8790 +10130 +6838 +2229 +9715 + +7270 +6954 +10077 +10701 +10903 +4370 + +7931 +3629 +14710 +2728 +5862 + +2262 +2517 +3677 +4296 +1177 +5268 +3759 +4892 +2275 +6369 +4674 +4536 +1970 + +8547 +4623 +1624 +7643 +9658 +6489 +1199 +7866 +9443 + +6363 +6567 +2584 +9352 +8291 +10254 +3179 +4177 + +1358 +4057 +5758 +1719 +5758 +5143 +5942 +3502 +1033 +3488 +4825 +2379 +5280 +4139 +2928 + +16444 +23345 + +1933 +3294 +5717 +7357 +2773 +7946 +3876 +7471 +5962 +4976 +6369 + +14677 +9136 +24025 + +14151 +18024 +4880 +10196 + +1152 +5591 +5800 +2475 +5481 +7792 +6041 +1224 +1138 +5768 +3158 + +2689 +3417 +4316 +1811 +1853 +4110 +1860 +2250 +6493 +3285 +6372 +2214 +4907 +5587 + +3713 +4494 +3322 +5279 +2203 +5933 +4894 +1353 +4219 +1011 + +4117 +2122 +4192 +3719 +1855 +1842 +3312 +2056 +3121 +1974 +5752 +3417 +4830 +3341 +3080 + +5172 +5003 +2775 +4138 +5964 +4643 +5584 +5634 +3776 +5664 +3815 +1702 +5195 +6368 + +8665 + +41002 + +4531 +5677 +2926 +2964 +3287 +2916 +2527 +1677 +1535 +3773 +6299 +5507 +3247 + +6025 +8452 +9375 +8793 +4184 +6122 +11183 + +21084 + +2635 +7467 +1635 +2903 +2572 +4592 +7070 +4212 +8780 + +4910 +7018 +6084 +3618 +1922 +2781 +2283 +1541 +1971 +1445 +1528 +6543 + +6867 +5700 +4220 +8066 +3951 +1890 +7064 +2486 +3213 +1323 + +49337 + +2188 +7181 +6604 +5420 +4804 +5447 +2652 +1824 +5731 +3217 +2954 +7297 + +4106 +3442 +6464 +6654 +3723 +1293 +6951 +3407 +3993 +3524 + +2163 +5961 +6245 +1510 +4674 +6248 +2035 +1510 +1105 +4586 +5132 +5687 +5381 +2342 + +15330 +22553 +25696 + +6825 +3520 +3181 +2552 +1875 +2522 +4232 +1897 +6190 +1155 +4446 +2414 +5686 + +6164 +5650 +4649 +6471 +2415 +1229 +6458 +6585 +6982 +2279 +4215 +3518 + +5048 +5614 +2542 +5841 +1986 +10453 +8196 +9669 + +8040 +4567 +7515 +2496 +5786 +1226 +8596 +2383 +7726 +1760 diff --git a/01/solution.c b/01/solution.c new file mode 100644 index 0000000..7cba986 --- /dev/null +++ b/01/solution.c @@ -0,0 +1,21 @@ +#include +#include + +int main(void) { + char l[8]; + int c, i, t, S, G = 0, E[256] = {0}, e = 0; + + while (fgets(l, 8, stdin)) { + E[e] += c = atoi(l); + if (!c) e++; + } + + for (i = 0; i < 3; i++, t = 0) { + for (c = 0; c <= e; c++) if (E[c] > E[t]) t = c; + G += E[t]; + E[t] = 0; + if (!i) S = G; + } + + printf("Silver: %d\nGold: %d\n", S, G); +} diff --git a/01/solution.py b/01/solution.py new file mode 100755 index 0000000..344f6c2 --- /dev/null +++ b/01/solution.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 + +import sys + +res = sorted(sum(map(int, l.split("\n"))) for l in sys.stdin.read().strip().split("\n\n"))[-3:] +print(f"Silver: {res[-1]}\nGold: {sum(res)}")