commit 201f5d28f6c7c608c7229ada089efce5a4353233 Author: Griff Date: Sun Dec 11 19:57:51 2022 -0500 Inital commit | up to day 3 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..597a00c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,93 @@ +{ + "files.associations": { + "string": "cpp", + "any": "cpp", + "array": "cpp", + "atomic": "cpp", + "barrier": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "bitset": "cpp", + "cctype": "cpp", + "cfenv": "cpp", + "charconv": "cpp", + "chrono": "cpp", + "cinttypes": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "codecvt": "cpp", + "compare": "cpp", + "complex": "cpp", + "concepts": "cpp", + "condition_variable": "cpp", + "coroutine": "cpp", + "csetjmp": "cpp", + "csignal": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cuchar": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "forward_list": "cpp", + "list": "cpp", + "map": "cpp", + "set": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "vector": "cpp", + "exception": "cpp", + "expected": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "regex": "cpp", + "source_location": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "future": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "latch": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "numbers": "cpp", + "ostream": "cpp", + "ranges": "cpp", + "scoped_allocator": "cpp", + "semaphore": "cpp", + "shared_mutex": "cpp", + "span": "cpp", + "spanstream": "cpp", + "sstream": "cpp", + "stacktrace": "cpp", + "stdexcept": "cpp", + "stop_token": "cpp", + "streambuf": "cpp", + "syncstream": "cpp", + "thread": "cpp", + "typeindex": "cpp", + "typeinfo": "cpp", + "valarray": "cpp", + "variant": "cpp" + } +} \ No newline at end of file diff --git a/01/answer b/01/answer new file mode 100755 index 0000000..d28e98f Binary files /dev/null and b/01/answer differ diff --git a/01/input.txt b/01/input.txt new file mode 100644 index 0000000..ef94d26 --- /dev/null +++ b/01/input.txt @@ -0,0 +1,2232 @@ +8417 +8501 +5429 +2112 +6482 +7971 +9636 +4003 + +4697 +2941 +3275 +6060 +4879 +7158 +5066 +3196 +5780 +3143 +2510 +7073 + +3820 +6710 +4781 +6241 +3975 +6308 +5289 +6575 +2662 +4804 +5352 +4610 + +18980 +3731 +16643 + +6500 +2810 +13252 +5288 +2110 +12393 + +5354 +5521 +6015 +2501 +6067 +2465 +2201 +3864 +2661 +4078 +2399 +3212 +2831 +3268 +2726 + +4701 +4530 +1699 +3015 +3682 +2537 +4554 +2826 +1895 +2652 +4074 + +3650 +2113 +4750 +6639 +5177 +3823 +1529 +5671 +3679 +7061 + +1984 +3240 +7139 +1931 +6740 +5695 +6572 +3264 +2904 +7199 + +4982 +3483 +3358 +2762 +3983 +1341 +7420 +5830 +5709 +6140 +5363 +2636 + +8943 +9452 +14560 +11685 +9792 + +51549 + +4032 +3303 +6291 +2010 +1099 +4304 +3308 +3226 +7038 +5911 + +3627 +4414 +3217 +3388 +5294 +1914 +4938 +1120 +3825 +4163 +5549 +1712 +2589 +1550 + +3683 +5829 +3937 +6935 +8588 +2765 +9142 +6662 + +2440 +1029 +5550 +4674 +3176 +1791 +3867 +2779 +5259 +4676 +5868 +2371 +4557 +1058 + +5431 +7001 +1789 +7292 +2550 +6087 +6538 +3913 +6977 +2262 +5710 +2555 + +10586 +1560 +9521 +6677 +7222 +7567 +9516 + +2974 +4438 +5184 +1797 +3472 +3685 +4252 +3512 +6003 +3274 +6482 +5545 +6207 +3442 + +2542 +2128 +3556 +3399 +2355 +2355 +2887 +5069 +6026 +2508 +1716 +1556 +2295 +3955 + +25725 +15128 +7375 + +14056 +1829 +18860 + +55324 + +6072 +6692 +4264 +6261 +1588 +1143 +7373 +6603 +5488 +3320 +2545 +5954 + +18062 +29180 + +3677 +6522 +4883 +7097 +5284 +2549 + +48546 + +3552 +4460 +1059 +2662 +4123 +4032 +4430 +3578 +3441 +3895 +3487 +1717 +5564 +2195 +5687 + +3760 +3157 +2112 +5937 +5018 +4986 +1568 +7508 +2288 +4252 +4226 + +8943 +35829 + +3615 +4087 +16628 +9725 + +18133 +3552 +19658 +8840 + +5401 +2506 +2988 +4760 +5149 +2556 +1375 +2458 +1349 +6012 +3101 +1719 +4705 + +1915 +4351 +4834 +6064 +1864 +6366 +1081 +4066 +4200 +6982 +1148 +6685 + +6497 +19940 +5418 +19755 + +6763 +4697 +4844 +6105 +7080 +7110 +3403 +1635 +2373 +4737 +1538 +4517 + +55242 + +5390 +4892 +9004 +6322 +2309 + +14406 +2408 +3189 +13705 +15881 + +8001 +4336 +7789 +3403 +7771 +5339 +3603 +2882 +2789 +5457 + +5291 +1004 +4796 +5162 +3295 +5628 +6048 +8055 +2805 +2979 +6347 + +4342 +2131 +3900 +9516 +9941 +10085 +9855 +4946 + +3766 +12591 +6027 +7521 +2532 +2965 + +6640 +8130 +2235 +3616 +1513 +4982 +5757 +6450 +7833 +2535 + +11114 +9350 +5189 +7416 +2510 +12480 + +2161 +1329 +6055 +5304 +1213 +5987 +1021 +1484 +2736 +1594 +3897 +1298 +3701 +3500 +5264 + +1393 +8359 +7732 +1479 +1367 +9665 +4956 +8989 +2423 + +14947 +26722 + +4382 +1257 +4970 +3681 +4299 +2421 +3996 +4978 +3178 +5039 +3989 +5297 +1322 +1941 + +2901 +5088 +5876 +5770 +4000 +5408 +5932 +3787 +4428 +3649 +3000 +4528 +3172 +5852 +4803 + +3841 +6352 +7104 +3285 +8693 +7082 +8890 +10598 + +32634 + +5064 +4469 +2675 +5662 +1483 +5918 +3117 +4976 +3964 +2474 +5210 +1632 +4618 +2106 +3214 + +1940 +5559 +2138 +6436 +1860 +5369 +5147 +2794 +1714 +3409 +1892 +5806 +3899 +2305 + +4500 +2147 +4251 +4609 +3619 +2567 +5201 +3390 +1319 +4424 +3005 +1397 +1693 +4714 + +2415 +4424 +3809 +3615 +3269 +1986 +2018 +4848 +5122 +1968 +3075 +2470 +5922 +1937 +4125 + +6317 +6637 +4533 +5743 +4806 +3129 +1306 +3957 +4663 +7623 + +14487 + +34032 +11976 + +5839 +5692 +6716 +1473 +1572 +6622 +7735 +2335 +5670 +6461 +2705 + +5643 +1721 +3150 +6460 +5134 +1124 +3925 +1463 +1951 +6910 +6680 +3038 +2685 + +3205 +2335 +4418 +2358 +5683 +2334 +1910 +4780 +1315 +1613 +1523 +2882 + +3266 +12924 +8477 +7172 +13876 +9290 + +18737 +7661 +5950 + +61407 + +24968 +23181 + +4341 +5288 +9306 +10062 +9350 +4045 + +4607 +2565 +2507 +4183 +3101 +5356 +3384 +4707 +2040 +5622 +2513 +2429 +2496 +1069 + +3590 +5290 +5371 +6878 +6657 +8246 +4479 +4906 +3830 + +7894 +7018 +5222 +7556 +7754 +3433 +4862 +9010 +6891 + +6337 +21986 +2791 + +1075 +5278 +3373 +3820 +1277 +3217 +1349 +1758 +2934 +1298 +5885 +1544 +4560 +4384 +4804 + +6345 +1952 +1082 +5949 +3946 +5991 +6474 +6288 +4526 +5059 +6081 +1155 +1388 +5735 + +1166 +6023 +6465 +2215 +7056 +7369 +6983 +1051 +6578 +6131 +6334 +6491 + +4486 +5666 +5937 +5460 +2587 +1803 +3938 +1771 +4157 +5144 +2624 +4098 +5403 +2063 +2746 + +6953 +11646 +2940 +6280 +4667 +1413 + +5913 +2811 +1258 +5507 +6685 +1464 +3137 +6716 +4217 +3656 +6306 +4198 +4557 + +5846 +2427 +3635 +6365 +5987 +5964 +4458 +4119 +4522 +3972 +6216 +5551 +1705 + +2125 +5680 +1450 +1701 +5256 +4673 +5045 +5515 +1432 +3565 +3246 +6050 +5755 +3390 +5847 + +1655 +5405 +6132 +3714 +1627 +7477 +10344 +6058 + +4914 +4975 +4158 +2466 +5685 +2484 +3594 +1037 +3369 +1022 +3917 +3185 +5233 +5571 +5222 + +6996 +4804 +1923 +3688 +4808 +1448 +2836 +5346 +5266 +4603 +2173 +1082 + +5730 +9574 +5903 +6668 +5482 +5088 +8905 +5333 +7135 + +5377 +2192 +6250 +1581 +5354 +3088 +1125 +2676 +3780 +3977 +4634 +3810 +4168 + +3173 +4961 +1384 +5868 +4666 +2902 +7158 +8275 +5856 +6056 + +7098 +12466 +4255 +10181 +13726 +4866 + +1681 +1910 +5175 +4773 +7702 +5183 +5759 +2788 +2596 +5676 +5361 + +6560 +5352 +5182 +13627 +7612 +10355 + +4780 +1702 +5111 +1101 +6959 +4120 +5441 +4818 +8091 +6480 + +8332 +5999 +6744 +9027 +7948 +3470 +9144 +6675 +2996 + +6961 +19157 +1485 +19127 + +22926 + +17211 +14166 +1463 + +5074 +9836 +4387 +10138 +10072 +5791 +3683 +9806 + +5623 +3668 +4324 +9990 +4865 +1793 +10752 + +9739 +18699 +14526 +4157 + +2785 +1804 +4527 +4430 +3373 +10323 +6855 + +2075 +4828 +2026 +3909 +6410 +4035 +3709 +5177 +3259 +6033 +5534 +6097 +2578 + +2246 +6146 +5899 +1864 +2881 +4628 +3176 +5663 +3088 +3834 +2935 + +16262 +11795 +14098 +15140 +13228 + +4323 +8674 +5497 +8305 +6261 +7846 +2593 +10156 + +5309 +3112 +4563 +1434 +1107 +7130 +5727 +4950 +7466 +6218 +3641 + +6379 +1200 +2050 +6235 +4257 +2532 +3132 +6179 +4883 +6282 +6576 + +11097 +12482 +7593 +3300 +3342 +2184 + +1950 +2753 +4277 +8130 +5451 +7991 +4993 +7978 +8004 + +20042 +19430 +5442 + +7059 +6666 +5832 +6485 +2405 +2744 +4710 +1726 +1121 + +2277 +1842 +1575 +1955 +1906 +4176 +4114 +5040 +5552 +4857 +2775 +5033 +3488 +3971 +3550 + +11844 +9703 +6549 +7779 +9117 +1536 + +8861 +25738 + +3649 +10095 +4132 +1888 +6453 +7269 +5898 +9769 + +5465 +8855 +12706 +6698 +3456 +4949 + +3093 +8425 +8580 +8693 +1401 +6281 +8069 +7607 +6368 +7467 + +6885 +1469 +1315 +2335 +6669 +3226 +5261 +2477 +1931 +6691 +2575 +1377 +5029 + +5220 +4639 +5985 +1669 +1162 +4269 +6532 +4630 +4169 +3164 +6896 +6432 + +12705 +4248 +5011 +7544 +2040 +7767 + +60119 + +58181 + +69195 + +10643 +5605 +3433 +3275 +4741 +2858 +8151 +10582 + +4299 +10093 +12455 +2583 +2604 +11520 + +4609 +8245 +1989 +17043 + +4998 +8893 +3978 +4961 +2847 +8109 +9266 +1034 +4808 + +6593 +3208 +3966 +1649 +5952 +1961 +4517 +3911 +4239 +3255 +4144 + +3721 +2249 +3195 +1827 +3942 +2713 +4481 +2475 +3566 +2701 +2832 +2372 +5281 +3315 +6029 + +5817 +6495 +8621 +7101 +3936 +1675 +3309 +1873 +8737 +4558 + +6533 +4655 +4205 +6051 +2902 +2566 +2173 +1535 +5827 +2807 +6391 +7194 + +5844 +2233 +4210 +2293 +2529 +3081 +1524 +5844 +5931 +6456 +6427 +4873 +3195 + +3101 +3627 +9503 +1451 +9148 +1990 +2748 +5949 + +1357 + +4305 +4183 +8665 +9225 +5169 +8711 +7360 +4352 +8762 + +19297 +6700 +3922 +13161 + +7177 +5207 +12649 +10712 +3766 + +3197 +11717 +4128 +14139 + +5844 +4035 +9789 +5874 +6510 +6863 +9172 +3398 + +3289 +3003 +7463 +5109 +6382 +5082 +2587 +5094 +7545 +2487 +2585 + +15763 +18524 +4143 +8602 + +4828 +2314 +3592 +3742 +4802 +3369 +3590 +5778 +5439 +4261 +4063 +3117 +3004 +2803 +4503 + +3356 +1306 +6227 +5953 +1962 +1596 +1031 +6259 +1314 +5303 +4053 +6606 +6141 + +23367 +13468 + +7561 +3664 +10113 +11060 +7173 +6770 + +14496 +3114 +2958 +10451 +12975 + +2779 +8809 +7880 +9646 +5169 +11946 +10951 + +1808 +8038 +4003 +2639 +4307 +2437 +3374 +6114 +3179 +2414 +6346 + +3683 +4271 +5347 +4651 +4209 +3216 +4860 +5151 +3676 +3964 +5855 +5537 +2334 +2847 + +3036 +4491 +2992 +5222 +1007 +3398 +4412 +5978 +4514 +5111 +2173 +4115 +3297 +3917 +4087 + +1120 +9199 +13194 +8285 +12725 +2925 + +4647 +8917 +5082 +2858 +7782 +3193 +7282 +2432 +6432 + +8143 +1337 +7526 +4612 +3111 +2914 +2283 +7143 + +13219 +11724 +11762 +13753 +11229 +9784 + +2649 +8191 +6390 +2745 +7430 +6038 +7916 +7448 +2535 + +16115 +13575 +13440 +12313 +7022 + +3839 +5604 +3500 +1413 +4189 +2483 +4394 +4244 +5173 +4677 +2620 +3916 +2756 +3345 +5480 + +3136 +4946 +2793 +3039 +4646 +6070 +4631 +1187 +1349 +5338 +3411 +2576 +3330 + +1836 +11177 +12819 +12092 +11081 +5211 + +3380 +3522 +6853 +4943 +3560 +6687 +2925 +1849 +7189 +2430 +4195 +4027 + +17162 +17251 + +12148 +6285 +8465 +9842 +2740 +9321 + +5968 +1099 +5670 +12712 +4090 +10669 + +5599 +11408 +2321 +8643 +7657 +3127 + +5527 +5415 +3154 +7523 +7113 +7944 +1210 +4328 +2435 +7446 + +9572 +2600 +4927 +7038 +2863 +8806 +6209 +5458 +6332 + +14202 +11728 +4854 + +2445 +4571 +5676 +4766 +6356 +3013 +7160 +4432 +4641 +5337 +2949 +7099 + +5446 +5189 +2921 +4698 +4187 +2921 +3446 +4539 +3540 +5492 +2071 +1449 +1923 +4901 +5579 + +13333 +5770 +5180 +9001 +7376 +8291 + +3865 +4909 +3073 +1720 +1261 +5913 +1136 +2052 +5530 +5411 +1702 +1550 +2913 +5178 +2584 + +10717 +2353 +1830 +5310 +8508 +10132 +10255 + +9848 +11390 +1490 +8553 +4819 +2115 + +2023 +1214 +1606 +9515 +5918 +1391 + +32192 +31035 + +6595 +5614 +7624 +8271 +4408 +5528 +1851 +1879 +7449 +6260 + +6197 +7995 +9114 + +1713 +5615 +1103 +6443 +4641 +4952 +6313 +1337 +6825 +3202 +5031 +4031 +4673 + +17667 +14248 +18603 +7973 + +4832 +5010 +1017 +2983 +1808 +6429 +5847 +5974 +2629 +2190 +5018 +5594 +3316 +2445 + +8857 +1902 +6649 +5100 +2108 +2331 +7523 +9370 +2149 + +4877 +2080 +3225 +1529 +6630 +3562 +2262 +2460 +3366 +5855 +1527 +2721 +5946 + +32414 +14299 + +6015 +2017 +6133 +9382 +3482 +7670 +1090 +4911 +4220 + +4475 +5519 +2909 +1638 +5199 +3699 +3179 +1962 +4396 +1750 +2375 +5751 +3907 +2693 +3037 + +2510 +6869 +3477 +4511 +1178 +4193 +6442 +5839 +3640 +4681 +4547 +4390 +4146 + +4965 +3818 +1807 +1184 +2238 +5347 +3971 +5439 +5111 +6372 +2632 +2137 +1616 + +5784 +6903 +3123 +5558 +6147 +3532 +4366 +2303 +6913 +1180 +6775 +2658 +5388 + +3315 +4958 +3185 +2507 +4022 +3424 +1123 +3518 +5329 +5409 +5895 +4483 +5391 +3281 +1485 + +5753 +2212 +6587 +4668 +1712 +6688 +1846 +3009 +3829 +5361 +6819 +1247 + +3500 +23879 + +3471 +4339 +3831 +4004 +5783 +5540 +5242 +5588 +4065 +5878 +1615 +1441 +4345 +3932 +3752 + +4206 +5411 +8355 +5696 +1314 +1549 +8447 +10241 + +4882 +4973 +3042 +7802 +5574 +4666 +2738 +7655 +7766 + +2498 +2714 +2695 +4724 +4075 +5588 +6234 +5988 +5455 +4229 +4890 +3590 +1722 +5413 + +1034 +2896 +4742 +4024 +5667 +6076 +5041 +8378 +3271 +8737 + +1411 +23272 +6602 + +3363 +12044 +11777 +7395 +4856 +2881 +12001 + +2064 +4239 +2992 +6806 +6814 +3037 +3173 +3336 +5565 + +2053 +2518 +5120 +4318 +1240 +3674 +7302 +1160 +3537 +4288 +2983 + +5826 +5926 +7843 +2996 +6079 +7832 +2716 +8027 +1470 +8005 + +10435 +24340 +11044 + +7277 +4053 +1588 +2648 +5715 +3133 +5720 +6702 +7375 +2244 +7196 +2918 + +20699 +12028 + +11053 +11400 +3604 +7989 +7666 +7379 +10696 + +5916 +13989 + +6510 +4784 +2679 +11144 + +5017 +3999 +6453 +1013 +3002 +4568 +6255 +6327 +5108 +2654 +1390 +3828 +5913 +2765 + +1242 +8316 +3256 +1006 +6026 +10319 +3552 +6538 + +2266 +2011 +7466 +2302 +5729 +1468 +1527 +6297 +7443 +3490 +6348 + +2767 +5816 +5452 +2946 +3461 +1647 +5520 +5237 +3193 +6009 +5393 +5583 +2746 +4326 +3446 + +2147 +1913 +3254 +5992 +7458 +4791 +7670 +3815 +2950 +6429 +1796 + +17982 +7519 + +33743 + +2744 +8866 +15440 +10433 +15680 + +1710 +3609 +1849 +4343 +5780 +4180 +3584 +2376 +4885 +4627 +1885 +3348 +2099 +1006 +2550 + +22016 +29227 + +22422 +12606 +11998 + +5357 +2121 +2744 +4713 +6531 +5164 +5774 +3553 +4974 +2279 +3932 +2702 + +4518 +3189 +3337 +1722 +2096 +5583 +2532 +1486 +2548 +2643 +5666 +6102 +4889 +5184 + +4730 +6382 +3208 +6277 +2724 +5944 +2098 +5082 +1984 +5999 + +6747 +7644 +8933 +2013 +7112 +3608 +7377 +5398 +1166 + +9919 +6479 +7831 +6544 +5801 +10986 +10245 + +9314 +10790 +5728 +3835 +9597 +7245 + +12744 +1502 +11126 +8626 +13645 +8998 + +5883 +2823 +2589 +5695 +6506 +2769 +4070 +4731 +5193 +2890 +2243 + +5437 +6241 +1398 +3651 +7865 +1854 +4169 +2921 +5701 +2839 +2277 + +4279 +4987 +5933 +1476 +2572 +1320 +2304 +1148 +4617 +4571 +1202 +3799 +3033 +2079 +5217 + +4247 +3918 +7174 +7333 +2215 +8351 +1339 +7229 +5266 + +1357 +3298 +3348 +6580 +1364 +6996 +6527 +3579 +4631 +1355 +7165 +4424 + +19948 +18739 +15360 + +2666 +3271 +1581 +6748 +3957 +6221 +1543 +2058 +5185 +1264 +2211 +1826 + +9309 +5622 +9303 +2516 +12117 +4126 +2700 + +9949 +16352 +18404 + +3351 +10708 +10017 +2594 +4711 +1749 +9432 + +8877 +7738 +10940 +6554 +6358 + +4961 +7610 +1594 +5133 +5937 +2581 +5131 +4044 +9096 + +2157 +6653 +5601 +1394 +5724 +6487 +4100 +3519 +2273 +5199 +6924 +6953 +4903 + +26443 +31228 + +2953 +10062 +5321 +4145 +2668 +2525 +4886 +2965 + diff --git a/01/solution.cpp b/01/solution.cpp new file mode 100644 index 0000000..7a449ac --- /dev/null +++ b/01/solution.cpp @@ -0,0 +1,32 @@ +#include +#include +#include +#include +using namespace std; + +int main() +{ + string foodStr; + ifstream inputFile("input.txt"); + vector foodList; + int elfFood {0}; + while ( getline(inputFile, foodStr)) + { + if (foodStr == "") + { + foodList.push_back(elfFood); + elfFood = 0; + continue; + } + elfFood += stoi(foodStr); + } + sort(foodList.begin(), foodList.end()); + int total {0}; + for(int i {0}; i < 3; i++) + { + cout << foodList.back() << endl; + total += foodList.back(); + foodList.pop_back(); + } + cout << '\n' << total << endl; +} \ No newline at end of file diff --git a/02/answer b/02/answer new file mode 100755 index 0000000..09767b5 Binary files /dev/null and b/02/answer differ diff --git a/02/input.txt b/02/input.txt new file mode 100644 index 0000000..16845b0 --- /dev/null +++ b/02/input.txt @@ -0,0 +1,2500 @@ +A Z +C Z +C Z +A Z +C Y +C Z +A Z +B Z +A Z +A Z +C Z +A X +C Y +C Z +C Y +C Z +A Z +C Z +A Z +A Z +C Z +C Z +C Z +A Y +C Z +C Z +C Y +A Z +C X +A Z +A Z +C Z +B Y +C Z +C Y +C X +C Z +C Z +B Y +A Z +C Z +C Y +B Y +C Z +A Y +B Y +C Z +C Z +A Z +A Z +A X +A Z +B Z +A Z +A X +A Y +C Z +C Z +A Z +C Y +A Z +C Z +B Y +C Z +C Y +B Z +A Z +C Z +A Z +B Z +A X +C Z +A Z +C Y +C Y +C Z +A Z +C Z +C Y +C Z +C Z +C Z +C Z +C Y +A Z +C Z +C Y +A Z +A Z +A Z +C Z +A X +A Z +A Z +A Z +C Z +C Y +C Y +A Z +A Z +C Y +A Z +C Z +A Z +C Y +B Y +C Z +A Z +A Z +C Z +A Z +C Y +A Z +A Z +C Y +A Z +C Z +A Z +A Z +A Z +C Y +A Z +B Z +C Y +C Z +B Y +A Z +A Z +C Z +C Z +B X +B Y +A Z +A Z +A Z +C Z +C Y +B Z +C Z +C Z +C Z +A Y +A Z +A Z +C Y +C Z +A Z +C Z +A Z +A Z +C Z +C Z +C Z +C Y +C Y +C Y +C Z +A Z +C Z +A Z +A Z +C Z +A Z +C Z +A Z +A Z +B Z +A Z +A Z +C Z +C Z +C Z +C Z +C Z +C Y +B X +A X +A Y +A X +C Z +A X +B X +A X +B Z +A Z +C Z +C Z +C Z +C Z +B Z +C Z +A Z +A Z +A Z +A Z +C Z +A Z +A Z +C Z +A Z +C Y +C Z +C Z +B Y +C Z +A X +A Z +A Z +C Y +C Z +C Z +A Z +C Z +A Z +C Z +A Z +C Y +A Z +B Y +C Z +C Z +A Z +C Z +C Y +C Z +A Z +A Z +C Z +C Z +A Z +A Z +C Z +C Y +C Z +C Z +C Z +C Y +C Z +A Z +C Z +A Z +A Z +A Z +B Z +A Z +C Y +A Y +A Z +C Z +A Z +A Z +C Z +A Z +C Z +C Z +C Z +A Z +B Z +C Y +C Z +C Z +B X +C Z +C Y +A Z +A Y +C Z +C Y +B Y +A Z +C Z +A Z +B Y +C Z +C Z +C Z +B Z +B Z +C Z +C Z +C Z +C Z +A Z +A X +B Y +C Z +C Z +A Z +C Y +A Z +C Z +A Z +C Y +C Z +A Z +C Y +C Y +C Z +A Z +C Z +C Z +C Z +A X +A Z +C Z +C Z +C Z +A Z +C Z +C Z +C Y +C Y +C Y +C Z +C Y +C Z +A Z +A Z +C Z +C Z +C Y +A Y +C Z +C Z +B Z +A Z +A Z +A Y +A Z +B Y +A Z +C Y +A Z +C Y +A Z +A Z +A X +B Z +C Y +A Z +C Z +A Y +C Z +C Y +B Y +A Z +B Z +B Z +C Z +A X +B Y +C Z +A Y +C Z +A Z +C Z +B Z +C Y +C Z +A Z +C Z +C Y +A Z +A X +A Z +A Y +C Z +A Z +C Y +A Z +C Z +C Y +C Z +B X +C Z +C Z +C Z +C Z +C Z +C Z +C Y +C Y +C Z +B Z +B Z +C Z +B Z +A Z +C Z +C Y +C Z +C Z +A Z +C Z +B Y +C Z +A Z +C Z +A Z +C Z +A Z +C Y +A Z +C Z +C Z +C Z +C Z +C Z +C Y +C Y +A Z +A Z +C Z +A Z +A Z +B Y +A Z +A Z +C Z +C Y +A Z +C Z +A Z +A Z +C Z +C Z +C Z +A Z +C Y +C Z +C Z +C Y +C Y +C Y +A Z +C Z +A Z +C Z +B Y +A X +C Z +C Z +C Z +C Z +B Z +A Z +C Z +A Z +B Z +B X +C Z +B X +C Z +C Z +A Z +B X +C Z +A Z +A Z +B Y +C Z +C Z +B X +C Y +A Z +A Z +B Z +A Z +C Z +A Z +B Y +A Z +C Z +B Y +C Y +C Z +C X +C Z +C Z +A X +C Z +A Y +C Z +A X +A Z +C Z +C Z +C Z +B Y +C Y +A Z +C Z +A Z +C Z +C Z +C Z +C Y +C Z +C Z +B Y +A Z +C Z +C Z +C Z +A Z +C Z +A Z +B Z +C Z +A Z +C Z +A Z +C Y +C Z +C Z +C Z +C Z +A Z +A Z +B Z +A Z +B Z +C Z +C Z +C Y +C Z +A Z +A Z +C Z +A Z +B Y +A Z +C Z +C Z +A Z +A Z +A Y +A Z +C Z +A Z +C Y +C Z +C Z +C Z +A Z +C Z +C Z +B X +A Z +A Z +C Y +B Z +C Z +A Z +A Z +A Y +C Z +C Z +C Z +A Z +C Z +C Z +C Z +B Y +A Z +B Z +C Y +B Y +A Z +A Z +A Z +C Z +C Y +A Z +A Z +C Z +C Z +A Z +B Z +C Z +A Z +A Z +C Z +A Z +A Z +A X +B Z +C Z +C Z +C Z +C Z +C Y +A Z +C Z +C Y +C Z +B Y +A Z +A Z +C Z +C Z +A Z +C Y +C Z +A Z +A Z +C Z +C Z +C Y +B Y +C Z +A Z +A Z +C Z +C Z +C Y +C Z +A Z +C Z +A Z +C Z +A Z +C Y +C Z +C Z +C Y +A Z +B Y +C Z +A Z +C Z +C Z +B Z +B Z +A Z +C Z +C Y +C Z +C Z +A Z +B Y +B Z +C Z +A Z +C Z +C Y +C Z +C Z +C Y +C Z +A Y +A Z +A Z +A Z +B Y +C Z +C Z +C Z +C Y +C Z +A Z +C Y +B Y +C Z +A Z +A Z +C Z +C Z +A Z +A X +B Z +A Z +C Z +A Z +C Z +C Y +A Z +A Z +C Z +C Z +B Z +B Y +A X +A Z +A Z +A Z +A Z +C Z +C Z +C Z +C Z +C Y +A Z +A Z +C Y +C X +A Z +A Z +A Z +A Z +C Z +C Z +C Z +C Z +C Z +A X +C Z +A Z +B Y +B Y +A Z +A Z +C Z +C Y +C Z +A Z +A Z +A X +A Z +C Z +A Z +A Y +A Z +C Z +B Y +B Y +C Z +B Y +A Z +B Y +C Z +B Z +B Y +C Y +C Z +C Y +C Z +A Z +C Y +C Z +C Z +C Z +A Z +C Z +C Y +C Z +B Z +C Z +A Z +B Y +B Z +C Z +B Y +C Z +A Z +C Z +C Z +A Z +C Y +C Z +B Y +A Z +B X +C Y +C X +C Y +A Z +B Z +A Z +A Y +B Y +C Z +A Z +C Z +C Y +C Z +A Z +B Y +A Z +A Z +B Y +C Y +A Y +C Y +C Z +C Z +A Z +C Z +C Z +A Y +C Z +A Z +C Z +C Z +B Y +B Y +C Z +B Z +A Z +A Z +A Z +C Z +C Y +C Z +B Y +C Y +A Z +A Z +C Z +B Y +C Y +B Y +C Z +A Z +B Y +A Z +A Z +A X +C Z +C Z +C Y +A Z +C Y +C Y +C Z +A Z +A X +C Z +A Z +A Z +A Z +C Z +C Y +A Z +A X +C Z +C Z +C Y +C Y +A Z +C Z +B Z +B X +A Z +C Z +B Y +C Y +A Z +A Z +C Y +C Z +C Y +C Y +B Y +C Z +C Z +A Z +B Y +C Z +C Z +A Z +A Z +B Y +C Z +C Y +A X +A Z +C Y +A Z +C Z +C Z +A Z +C Y +A Z +C Z +C Z +C Z +C Z +A Z +C Z +C Y +B Z +C Z +A Z +C Z +C Z +B Y +C Z +A Z +A Z +A Z +C Y +C Z +A Z +A Z +C Z +A Z +A Z +C Z +A Z +C X +A Z +A Z +C Z +A Y +B Z +A Z +C Y +A Z +C Y +B Z +C Z +B X +C Z +A Z +A Z +C Z +B Y +C Z +C Z +B Z +A Z +B Y +C Z +C Z +C Z +A Z +C Z +B Z +A Z +C Z +A Z +B Z +A X +C Y +A X +C Z +C Y +C Z +C Z +B Y +B Y +C Z +B X +C Z +A Z +A Z +B X +A Z +C Z +C Z +C Z +B Y +C Z +C Y +A Z +B Z +C Y +C Z +C Z +A Z +C Z +A Y +C Z +C Z +C Z +A Z +C Z +C Z +C Y +C Z +B Y +B X +A Z +A Z +C Z +C Y +C Y +C Y +B Y +A X +C Z +B Y +A Z +A Z +C Z +B Y +B Y +C Z +A Z +C Z +C Z +C Z +C Z +B Y +C Z +B Y +B Y +A Z +C Z +B Y +A Z +A X +C Z +C Z +C Z +C Z +C Z +C Z +C Z +B Y +A Z +B Z +A Z +C Z +A Z +C Z +A Z +C Z +A Z +A Z +C Y +A Z +A Z +C Z +C Z +C Z +C Z +B Z +C Z +A X +A Y +B Y +B Z +A Z +C Y +A Z +B X +A Z +C Z +B Z +B Y +C Z +C Z +C Y +C Z +A Z +A Z +A Z +A Z +A Z +A Z +A Z +A X +A Z +A Z +C Z +C Z +C Z +A Z +B Z +C Z +C Z +A X +C Y +A Z +C Z +C Y +A Z +A Z +C Z +C Z +A Z +C Z +C X +C Y +A Z +A Z +C Z +B Y +C Z +A Z +A Z +A Z +B Z +A Y +B Y +C Z +C Z +C Y +C Y +B Y +A Z +A Z +B Y +C Z +C Z +A Z +A Y +A X +A X +C Z +A Z +A X +A Y +A Z +C Y +A Z +C Y +A Z +C Y +B Z +B Y +A Z +C Z +A Z +C Z +C Y +A Z +C Z +A Z +B Y +A Z +C Z +C Z +C Z +A Y +C Z +C Z +C Z +A Z +C Y +A Y +C X +C Z +A Z +A Z +A Z +A Z +A Z +B Y +B Y +C Z +C Z +C Y +A Z +C Z +C Y +C Z +C Y +A Z +A Z +C Z +A Z +C Z +C Y +A Z +C Y +A Z +C Z +C Y +B Y +C Y +C Y +A Z +A Z +C Y +C Z +C Y +B Z +A Z +C Z +C Z +B Y +C Y +A Z +A Z +C Z +A Z +B Z +C Z +A Z +C Z +C Z +A Z +A Y +B Y +C Y +C Z +A Z +C Z +A Z +C Z +A Z +C Y +C Y +C Z +A Z +A Z +B Y +C Z +A Z +C Z +A Z +A Z +C Z +C Z +C Z +C Y +B Y +C Z +A Z +B Z +A Z +A X +C Z +A Z +A Z +C Z +B Y +A Z +A X +C Y +C Z +C Z +C Z +C Z +B Y +C Z +B Z +A Z +A Z +A Z +A Z +B Z +B X +C Z +A Z +C Y +A X +C Z +C Y +C Z +C Z +B X +C Z +C Y +A Z +C Z +A Z +C Z +B Z +A Z +C Z +B Y +C Z +C Z +C Z +C Z +C Z +C Z +A Z +C Z +A Z +A Z +B Y +A Z +C Y +B Y +B X +C Z +C Y +C Z +C Z +C Y +C Y +B Y +C Y +C Z +A Z +A Z +A X +C Z +C Z +B Y +C Z +C Z +A Z +C Z +B X +C Z +C Z +C Y +C Z +C Z +C Z +A X +C Z +A Z +A Z +C Y +B Z +A Y +C Z +C Y +B Y +C Z +C Z +C Z +C Z +A Z +C Z +C Z +A Z +C Z +C Y +C Z +C Z +A Y +C Z +C Y +A Z +C Z +C Y +C Z +C Y +C Y +B X +A Z +C Z +C Y +C Y +A Z +A X +C Z +A Z +C X +B Y +A X +B Z +C Z +B Y +A Z +C Z +A Z +C Z +A X +C Z +C Z +C Z +C Y +A Z +C Y +C Z +C Z +A Z +A Z +A Z +C Z +A Z +C Y +C Z +A Z +A Z +C Z +A Z +C Z +C Z +C Z +C Z +B Y +A Z +C Z +A Z +C Y +C Z +A Z +C Y +C Z +A Z +C Y +C Y +A Z +A Z +A Z +C Z +C Z +B Y +A X +A X +A Z +C Z +C Y +C Y +C Y +C Z +A Z +B Y +A Z +A Z +C Z +C Y +C Z +C Y +C Z +A Z +C Z +C Z +C Z +C Y +A Z +C Z +B X +C Z +C Z +C Z +C Z +A Z +C Z +C Z +C Z +C Y +C Z +A Z +C Z +B Y +A Z +C Y +A Y +C Z +C Z +B Z +C Z +C Z +B Y +C Z +A Z +C Y +C Z +B Y +C Z +A Z +C Z +C Z +C Z +A Z +B Y +C Y +A Z +C X +C Z +C Y +C Z +A Z +A Z +C Y +C Z +A Z +B Y +A X +C Y +B Y +A Z +B Y +A X +B Z +A Z +A Z +A Z +A Z +C Z +C Z +A Z +A Z +A X +C Z +A Z +A Z +A X +B Y +C Z +C Z +C Z +B Z +C Z +A Z +C Z +C Z +A Z +A Z +C Y +C Z +C Z +A Z +A Z +C Y +C Y +C Z +A Z +B X +A Z +A Z +C Z +C Z +C Z +B Y +A Z +C Z +A X +B Z +B Z +C Z +C Z +C Y +A X +A Z +B Y +C Z +B Y +C Z +B Y +C Z +C Y +C Z +A Z +C Y +C Y +A Z +C X +B Z +C Z +C Z +A Z +C Y +A Z +A Z +B Z +A Z +C Z +C Z +C Z +C Z +A Y +C Y +A Z +C Z +C Z +C Y +A Z +B Y +A Z +B Z +A Z +A Z +B X +B Z +A Z +C Z +C Z +C Z +C Z +C Z +A Z +C X +C Z +C X +C Z +B Z +C Y +A X +A Z +A Z +C Z +C Y +C Z +C Z +A Z +C Z +A Z +A Z +A X +C Z +A Z +A Z +A Z +A Z +A Z +A Z +B Y +A Z +C Z +B X +B Z +C Z +A Z +A Z +B Z +C Y +A X +C Z +B Y +B Y +C Y +A Z +A Z +A X +C Z +C Z +A Z +C Y +B Y +A Z +B X +A Z +A X +A X +A X +A Z +A Z +C Z +A Z +A Z +A X +B X +B Z +B X +A Z +B Y +A Z +C Z +A Z +A Z +C Z +A Y +C Z +B Z +C Y +C Y +A Z +C Z +C Z +A Z +B Y +C Z +A Z +A X +B Z +A Y +B Z +C Y +C Y +C Z +A Z +C Z +C Z +A Y +C Z +A Z +B Y +C Z +B X +A Z +C Z +C Y +B Y +A Z +B Y +B Z +A Z +A Z +B Y +C Z +A Z +C X +C Z +C Z +B Z +B Z +C Z +A Z +A Z +C Z +A Z +C Z +C Z +A Y +C Z +A X +A Z +A Z +A Z +A Z +A Y +A X +C Z +C Z +C Z +C Z +A Z +B Z +C Z +B Z +B Y +C Z +C Z +C Z +A Z +C Z +B Y +C Y +A X +A Z +A X +C Z +B X +C Z +A Z +B Y +C X +A Z +C Z +C Z +A Z +C Z +A Z +A Z +A Z +A Z +A Y +A Y +A Z +A Z +A Z +A Z +C Z +C Z +C Z +A Z +A Z +C Z +A Y +C Z +B Z +C X +C Z +C Y +A Y +B Y +C Z +C Z +A Z +C Z +A X +B Y +C Y +C Z +C Z +A Z +A Y +A Z +A Z +C Z +A Z +C Z +C Z +C X +A Z +C Z +A Z +A Z +C Y +B Y +C Z +A X +A Z +C Z +A Z +C X +A Z +C Z +C Y +A Z +A Z +C Z +C Z +C Z +A Z +A Z +C Z +A Z +A X +C X +C Z +C Z +A Z +A Z +A Y +C Z +C Z +B X +C Z +C Y +C Z +C Z +A Z +C Z +A Z +C Y +C Y +C Z +A Z +C Z +B Y +C Y +A Z +B Z +A Z +B Z +A Z +A Z +C Z +C Z +C Z +A Z +C Z +A Z +B Z +C Z +C Z +C Z +A Z +C Z +C Z +C Z +C Z +C Z +C Z +C Z +B Y +A Z +B Y +C Y +C X +C Z +C Z +C Z +C Z +C Y +A Z +C Y +A Z +C Y +C Z +C Y +C Z +C Y +A Z +A Z +C Z +C Z +B Z +C Y +C Z +C Z +C Z +B Z +B Z +B Z +A Z +A Z +A Z +C Z +B Z +A Z +A Z +C Y +A Y +C Y +C Z +C Y +C Z +C Z +C Y +A Z +C Z +B Y +C Y +B Y +A Z +C Z +A Z +A X +A Z +C Z +A Z +A Z +A Z +C X +C Z +A Z +C Z +C Z +C Z +C Z +C Z +C Z +A Z +C Z +C Y +A Y +B Y +B X +B Z +C Z +C Z +A Z +B Y +C Z +A Z +B Z +C Z +A Z +C Y +C Y +B Y +C Z +C Y +C Z +C Y +A Z +C Z +C Z +A Z +A Z +A Z +C Z +A Z +A X +A Z +A Z +C Z +C Y +C Z +C Z +C Z +A Y +B Y +A Z +A Z +A Z +A X +B Z +A Z +C Y +B Y +A Z +A Y +B Z +A Z +B Y +C Z +B Y +A Z +B Y +C Z +C Z +A Z +A Z +A Z +C Y +B Y +B X +A Z +C Z +A X +B Z +A X +A Y +C Z +B X +B Y +A Z +A Z +B X +C Z +C Y +C Y +C Y +C X +C Z +C Z +C Z +A Z +B Y +C Z +A Z +A Z +A Z +A Z +C Y +C Z +C Z +A Z +C Z +B Z +B Y +A Z +A Z +C Z +A X +A Y +B Y +A Z +A Z +B Z +A Z +C Z +A Y +A Z +C Z +C Z +A Z +A Z +C Z +B Y +A Z +A X +C Y +A Z +C Z +C Z +C Z +C Z +A Z +C Y +C Z +A Z +A Z +C Y +A X +C Z +B Y +A Z +B Z +C Z +B Z +A Z +C Y +C Z +B Y +C Y +C Z +A Z +C Z +C Z +A Y +A Z +B Z +A X +C Y +A Z +A Z +C Z +B Y +C Z +A Z +C Z +A Z +B Y +A Z +C Z +A Z +B Y +A Z +C Z +C Z +C Z +A Z +A Z +C Z +A Z +A Z +C Y +A Y +B Y +B Z +C Z +C Y +A Z +C Y +C Z +B Y +C Y +C Z +B Z +C Z +C Y +C Z +C Y +C Z +C Y +B X +C Z +C Y +A Z +A X +A Z +C Z +A Z +B Y +C Z +A Z +A Z +B Y +C Y +A Z +A Z +C Z +C Z +C Y +A Z +C Y +B Y +A Y +C Z +A Z +A Z +C Z +C Z +C Z +C Z +A Z +A Z +C Y +A Z +C Z +C Z +C Z +C Z +A Z +A Y +C Y +A Z +C Y +A Z +A Z +A Z +C Z +A Z +C Z +A Z +C Z +C Z +A Z +C Z +C Z +C Y +B Z +C Z +C Y +A Z +B X +C Y +C Y +C Z +A Z +B Y +A Z +A X +B Y +A Z +A Z +B Y +B Z +A Z +A Z +C Z +A X +C Z +C Z +B Z +C Z +C Y +B Y +A Z +B Z +C Z +C Z +C Z +A Y +A X +C Y +A Z +B Z +A Z +B Z +C Z +A Y +C Z +C Y +A Z +C Y +C Z +C Y +B Y +B Y +C Z +A X +C Z +A Z +A Z +C Y +C Y +C Z +A Z +B Z +C Z +C Z +C Z +A Y +A Z +C Z +C Z +C Z +C Z +C Z +B Y +C Z +C Z +A Z +B Y +A Z +C Z +C Z +C Z +B Z +A Z +C Y +A Z +C Z +B Z +C Z +B Y +C Y +A X +C Z +A Z +C Y +C Z +C Z +C Y +A Z +C Z +B Z +A Z +C Z +A Z +A X +C Z +A Z +C Z +B X +C Z +C Z +C Z +C Z +A Z +A X +C Z +C Z +A Z +C Z +A Z +C Z +B Y +A Z +C Z +A Z +C Y +C Z +C Z +A Z +C Z +A Z +A Z +A Z +B Z +C Y +B X +C Y +C Z +C Z +A X +A Z +C Z +B Y +C Z +C Y +C Z +A Z +C Z +B Y +C Z +C Y +B Z +A Z +C Z +B Z +A Z +B Z +A Z +C Z +C Z +B Y +C Y +C Y +A Z +C Z +A Z +A Y +B Y +C X +A X +C Z +C Y +B Y +C Z +A Z +A Z +C Y +C Z +C Z +A Z +B Y +B Z +A Z +A Z +A Z +B Z +C Z +C Z +C Y +A X +C Z +A Z +C Z +B Z +B Y +C X +C Z +A X +A X +C Y +B Y +C Z +C Z +A Z +A Z +A Z +A Z +C Y +C Z +A Z +A Z +C Z +C Z +C Z +C Z +C Z +A Y +A Z +C Y +C Z +B Y +A Z +C Y +A Z +A Z +B Z +C X +B Y +C Z +A Z +C Y +C Z +B Y +A Z +C Y +C Z +B Y +C Y +C Z +A Z +A X +C Z +C Y +B Z +A Z +A Z +B Y +C Z +A Z +C Z +C Z +B Y +A Z +C Z +C Z +B Y +B Y +A Z +C Z +C Z +C Z +C Z +A Z +C Z +B Z +B Y +C Z +B Y +A Z +A Z +C Y +A Z +A X +B Z +C Y +C Z +C Z +C Z +C Y +C Z +C Z +C Y +A X +B X +B X +C Z +C Y +A Z +B Y +C Y +C Z +C Z +A Z +C Y +A Z +B Z +C Z +C Y +C Y +C Z +A Z +C Z +A Z +B Z +B Z +C Y +A Z +C Z +A Z +A Z +C Z +C Z +C Z +C Z +C Z +C Z +A Z +A Z +A Z +B Y +B Z +B Y +C Y +A Z +C Z +C Y +A Z +C Z +A Z +A X +B Z +A Z +C Z +C Z +C Z +A Z +C Y +B Y +C Y +A Z +C Y +B Z +B Y +B Y +C Z +C Z +A Z diff --git a/02/solution.cpp b/02/solution.cpp new file mode 100644 index 0000000..87e1b07 --- /dev/null +++ b/02/solution.cpp @@ -0,0 +1,99 @@ +#include +#include +using namespace std; + +// A:X Rock | 1 +// B:Y Paper | 2 +// C:Z Scissors | 3 +// Loss: 0 | Draw: 3 | Win: 6 + +// X: Loose | Y: Draw | Z: Win + +class Play +{ +public: + int value; + int beats; + char looses; + + Play(){}; + Play(char playType) + { + if (playType == 'A' || playType == 'X') + { + value = 1; + beats = 3; + looses = 'B'; + } + else if (playType == 'B' || playType == 'Y') + { + value = 2; + beats = 1; + looses = 'C'; + } + else + { + value = 3; + beats = 2; + looses = 'A'; + } + } + + int compete(Play* other) + { + int score {this->value}; + if (this->beats == other->value) + return score + 6; + else if (score == other->value) + return score + 3; + else + return score; + } + +}; + +char toPlayType(int value) +{ + switch (value) + { + case 1: + return 'A'; + case 2: + return 'B'; + case 3: + return 'C'; + } +} + +int main() +{ + ifstream inputFile("input.txt"); + string game; + int totalScore {0}; + + while (getline(inputFile, game)) + { + // Split this text of the game + cout << '\n' << game[2] << " " << game[0] << endl; + Play them {Play(game[0])}; + Play me; + switch (game[2]) + { + case 'X': + me = Play(toPlayType(them.beats)); + break; + case 'Y': + me = Play(toPlayType(them.value)); + break; + case 'Z': + me = Play(them.looses); + break; + } + + int score = me.compete(&them); + cout << me.value << " vs " << them.value << "\t| " << score << endl; + totalScore += score; + } + + cout << '\n' << totalScore << endl; +} \ No newline at end of file diff --git a/02/test_input.txt b/02/test_input.txt new file mode 100644 index 0000000..25097e8 --- /dev/null +++ b/02/test_input.txt @@ -0,0 +1,3 @@ +A Y +B X +C Z \ No newline at end of file diff --git a/03/answer b/03/answer new file mode 100755 index 0000000..86fc302 Binary files /dev/null and b/03/answer differ diff --git a/03/input.txt b/03/input.txt new file mode 100644 index 0000000..09ed9e4 --- /dev/null +++ b/03/input.txt @@ -0,0 +1,300 @@ +gvNbShZZgQfWdQhdPQmggLTFLwmwjFqjVVgM +CsJnHllcsnnnnJrGRnRwPPLVmFLHLBjFFVHmPT +JlnCtctJnJDcJlDCRpPrSSQWfphzWZfbZSvfNfbS +WjvRSdSQjvpjWzNlnZlNZqCCMzZZ +nJtJsbctPBPwLNcDZNNGLClC +tsFJHBgJwgJbnvSHHWVWHhVhpQ +zRzPhCCSHVZzfGHZ +qBsWBpqBwBcvqqWgdfZrprdggPHHVZ +WWmvwvBbnWmnwvWcbmWWnqNCRSDRRSSjjSDbPJbRjClLhC +rQrznfHHhrHzllzlzTGcJgtJ +jhhjjSZVPWVZvSFtTttLTglgFtvm +dqSCqVWdbDSSVqbVVSqhNdrnpnCnfsnnwfnsRpMpBMrf +rTnvrSSHvHtnDQVDtfmW +ZjCglhcCJschpZbZgbtGmRtbGmwtQtbmtN +FFZCghFJhlslFpjcdFTPLHHmrqTMTdzBLHLH +WzDfrDwwDCCDMnfDHHJjTHTtNdngdHtQ +FmScGPPPPmpspchbGHtRsjdJJJWJWNttgH +bvhFlVhPchPvqWLwqLWqvq +RcchVlCCvmhDRjNJJJjbjllZlJ +wPwFGFMPfpdtqbpwFFfGPQZTWTZjtzQWTBBQJzZjZZ +fbwPqqMPwdgvmDVDhmRCgR +SSQggtQVQQgQGmGVthVnWDGjCBLLzdDNCCjDGWCW +RcHcHbFqbPMZRFTvHFFFlcZZBNBtNjjLLjDdjLjDqWCpNLpj +sPPclZcsZtMPfVsnnwwVJhmQ +jlrwpVPjMwfzZfhfwddH +DbQBGgBJPPBBHfPZ +ggGSQTnTgQGbSRQRPrNlsjVjMrpmMLnrrW +MzNNbMSrZNSSvGWWznwGQlTG +ZCFCJHqJFjqTTqngPwPG +LCJLJCCFtfjsJCMbZSMSbbcDdBfd +LCdjljfJJBfLDCCdJqGqsGGtmBsWtbGmSS +gpgchRcPgRRQNZcpNhgNPzzmGrmrGwtSSswqrSGbbTzt +QgQvNppRPQcggZNccchvNZgCjlnsDLDflDdfjLfMDVsMLv +jfSfTWfwTJffQQNwTCHnGGGgHbgqGFvF +LmspctdsLDlBLPmFFgqbqFFbqlnSRS +PSZZsctsDDtdBmzBLBSmpJjMzWwjVfwJVMrNfwrfzf +zFZqbRNRHNHhqHFqzNnzzqDQVFMggMgDpmJMTgpVTQFJ +SwLVsSWBfStDGMfDTDGGGT +vlCBVsSvCRrHRjCqrn +ndGVddlVdrcGlGcljdVGjCgfffPCCLfCMvqWvPnqgn +FNtRZBDDSNSNStDhFRNQtLgCMTCBqvLMMTfJqBLPLP +bwQwZhSDFhZbFSNccwzwHmHHjHMwsd +BrSDgqrgWzWDwJBzMDWBLjpmVLFfFPLVJjVVPLFV +cNnRlvNRvQTcnZwmfQGPmfVFPP +dsCNllvTdnntTlTsHcdCRtNRBDWBDWDrWBhDBqMBDqbzWwCr +stLcchcTwRcsVTtftVVthchqmmCCFvWmmgSgQFCwGvWSFCrr +PljDbZbzjllHdQNWHMFGrMMHMFrmmM +njjjzbPdqRcRQQns +BTBLwzmqWNbpzqNzLppLBnhZJcJSHThhnnJZHHSQnr +RfQgDjgsjVfRFDdvddtvhhhJCnrSnMZCcMSCSJ +QRtjtRQQlzlqqzzzBW +FnzllplJMntnzptLFzsjTVSQcSjSjQFFmdQQ +wgwrBrwGHPGBqHrDcpmjddSQTmTGVmmG +DBhhNBrCrMvNvzptpN +LgSbLLRJQSzLCgJRJhWCCzRBdZdcMfcHsMdFFjfPjsCHBc +nrVTnmrrrlnGGmrlVwVZPFHmdsZHBmjMcdjfcZ +wrnTlNpvVVrqFrtnwGqwwrTpSgSQQLbQRzQSQRJbQpDbQz +pgvmcpVcpwJppwgwvMWfHbRGRHDBJbWGfGGb +hQqFqQNhqdCPNhTQCCFbbjmBHBbBRjGHBDBGFj +TtdCCNlPCmssnqgvzzvvtVrgzzrc +JltddTSgtLLvgvdldgvWPZPPSjWMjCfWNjNWPG +FrwpbwhbmfjGRpGPNM +cmBrBcBnmFBQqcFbscBhQfttznJgzlLLDlnglzLLlg +mDhRsDzWZzGhhhWpZwzwGdfbFsfFTQTLcNFfFrNvvcbT +ngMHjjgVgqHnPlnqtnClMHbfCJFbcLFFJFLbrQNbFQcQ +SlqHqVVqPnBHSHHljlMndBdZQphRhdGpzWmWWwBh +hVNhcfbSSNMfjjMlqRCqpdzpRJdnhl +sBHPPwQwttBBssLCHzDBlDDmRmpJdqJJJd +sHHwtsHTWwtZPHtZbbVSgMbGCNjNvN +SgMtSMVChFBHBFdCwhdqPcPsbRVQqsblDbRmlc +jlrLWfvWvzWWzmcQcqcNbmNDjR +JpLznrnfGrrfnWWzTpfvzvdHHCgSBwdlTMhCTMFhBBwg +fptnFPLsttddDdRhQShQzC +BqGHGlqmmGmlJmNmqlbbCzSCQHDzSjHhfSShjfVh +fbrrMqGGBlNMGNqrqglmrLZwFcwgFwsPcscctpWLgn +TCMMTtWBqCMMMWWMSWhNFhlNBNlNHwNDsvhw +frfdrbZJrVLdZLbnJcrmvhlhHshlgsZsHwwghZ +fLRVvcvRVpfbcfVVJTqpWCCSqCCTTtjjPj +vRCGzdTtvdBCTzCdmVsQjnVttngthgnQHs +rLNZlrwrjrFLMsggsQpsQngqMq +NfjZWcbffDrLZfNLbDczvmcTvvGCmCBBmSdP +DSqdzrHgJtSHMgvmnNGdcmCnvssN +ZwQLlVlRVVWZFZhbJZVjRJscvBGcpssLpBcnGpBsmpBs +TwwjjQJTjlhwMfTDgMrfgtqg +HhvVhgddvdvqTqVqHQgjgmCPWGrcWsGWPcvlsWrWmC +lbJBBFbMlJFRCmsRmRPtCtwm +FMLLpDLnFpFJbDfLnZZSzhqHVdVQjgSdlQTZ +mvBrszzsrrrGsBDvBvszDRQDhjCwWdLhJdCjjWZdqqdZdW +gMlfFVccTGMGPMSCdcLLdqhjLJWWdZ +VfggggPVltVSlSlHfgFtTpfRGmRrrrvQpQsrGmnvnQbzmz +HjtMgWbHBtbtcggVcHwMwcdzpZFGzGZFpvFFZZWnnpFG +RNNrfmSrSSzdGBzFfJFq +mNsSrrTPPRshmsBClRClPmSccVgQVHjHwtHwTMbTVwMHgg +pZmmLpQLDJBCPCssJTsCTc +SwlLwWvSwNSSSMSMfWLvvVdPFzjfTscdjcCsjzCPddFc +vbVMqGbLSVMhDQnRRQnBqH +lNmNwlmlbhhfFNgpJLnHfTHfTdnTML +BGvCwVGVPSDWDMMJTHZMpndH +rVcBrPSPCwWqPwGCBCSrqlNNQFhsQhtlhhhgNQtb +HqZCQRQgWjpmZHRHqQjttGGJQNQtwQGGGbGrJz +SlddfFVMLncbJJMzMzzMwD +ndSznsdVHsqgpZvH +sNStMtNtDztrvrRGPRRRRrNzqcchgJJLqnBScBcJThJggJBT +QCWWZbCbCVjVbFVFbVwbnhqLqhghBLwwTqJJcpgTBL +ZlHjfHHFWFjCdbHlQFnfdnZFMzPzrrlMrtrrGRMsDPrGvGPz +NnDHhNNldhNTdHllpptCRtftzmGBGmVRVGRH +wgZgZJLBwqgLSWrBvZVVzmffWzRmGsGmmssm +bgqPBBLbPbrrZBjjlpjccjDdDchFTNlc +WRWNNRWNfLZtsmtSWrtLmWgTcMcPrpMTcVMMPPBBqjcg +QJJDFbpnpJdlcwcgBTqlgPwc +GJFHJGhHnpWWShpsRS +DHDZvDQWdHJMHlJf +RhhnGLnBtGrnLjwwJTTMTdQccllSMQ +rmFrrBGQLQFLjbFnBhQLhrRGCPVDWzgmpsWvWWDzppWpzCvC +bsrJrWgWJvQRqbbRDNGGZDlwNfNfwS +ttCHThhhcBVpTBcdhdpfNGDSQLwDLfDGfQllCG +jFjzcFhzQTTjHFvJsrPPnnFgPb +SZggDgNLGCQzSgRsljscPvPPbHsBNc +TtFfTpMthzhFFTpdMMJPfjPPWjBbHbjPlPPBjj +dpdttMMTJttzMFhqFwGLgGRSrrQGSZrwRrDQ +JsJntWmghjgJTpfgFCczlztzrDZDtDzC +QddBBdBSPPPHBSVHVHvNdPVRClvlcclCDLCLFRFrrDLcZc +NVwBVSNlSBNHngnngsJWhwWh +hQVWJGWJlJQDGJHQWHpVWJVHmfPGPcjfdLdLSrcCmfjPjCPm +wgwnRwMvNvBvFZMngNvFZCjdSSfcbPLjCbcdCbSf +wgnRvMMvjMsTwngTgnnDVDWJDplHWhlhQWlWDT +WGswWFGsBFwHvjnbnnJjbG +gLDrSrPpLfmmDqqbbJZsjvmvRv +DTldTpTsDLgSsLpfPTslVdVVdNWVzcNwtWdWhzVt +sttWrhWZsLVtJVZrWhgbCPQQbDNVCHglnnlN +vvRRRMqpmTjwFqmfjFjmBMwNbCwQNgHgDnbNnHQHQCDg +THpvmBGfzWGzSzzS +nmZwwfPmNggwgPgNmdvPPhTRHTHBJTsvSP +WDccMzVQzGWcrllLdsGTvTsJJBLTdL +pWtzQrzDlrCpcQztlzCCCpCVFFFwtgmfbjmbqwZjZfmFwfdw +bmMNNMVSRWBWCSmVRdMRmMnvZZscvvszGcnZClpcGsvZ +gfLfDDtDgjgDtWTjFQjHsvvpZqqplfvvcllcnnvG +TFPjDtWPNPwBBBNB +QcTCHcTwdpQgcWzWwvMPRzSGwW +sDNjfhVmnlVffmLNfLbMPPDbqGtMSRWtDMtP +fZjJJshhhLNnrCJScHSccTQQ +qfhBhLLjvMqWWBWjsQGrdrGzpszpGrqd +JTSDHFtlTDbHTcFcDbTHzmrNRdRRbNzrmRRnRpnQ +PHcltTgJDlplgptScCfCgWMVfvfZvhMMBV +rttDPglHZZDDDPHgZtgWBswdsTfpfdplLqfsFfFdfd +cRVvpcmpmRSCGGCcMQmQFqNNqdVdqTbLwNbdFfFs +zhGjRhSvcMtnrpZjHZBg +STNrrzVdTJwsBggwFgBN +WbtMWJJpwpDsLBfP +cbvncCCmWtCGMcZHVVSlJVQrzvzVqQ +MtPVBHVbBBTwbvWgRgvF +LhZjZpnnMRwWfhSh +LQcQCLCCCcnmnqZpcrpnrjQlsBMHddtMGGzrJHPPsHsNPPJz +NbZtmZDmNNDBHBhDNtNGcvpmgLmmFrvprgrFGv +djMjffMdqnVVTdMfTPnQSFScFFVSLLFrvccvcllL +PPdPwMQwTMWDwBDZLHZN +DqpJFdhtmdSwpqSncljHsnfjqlbzlc +rQVZLGMWPCNrCGMwNVMcbzsVgfHHgfncfscssH +NBCrPLwMTrrMBLQLwCFhpFBDFdFFtdvDFvpD +QRwGBdGwqRTBMWRMMzBqQHHhngspPFFbHbzgbhZLLP +rCNmDjvrCFpvLZsgPb +lDrmpcfCtVDtCjlfNfQQqVdJBQWRVVRMMMJQ +zcgjlRcJCFtlnTvppn +BLSHDMVPVPHVHwFwMhTvgnFZMh +DsLSDdmPVNVdGgrzCCdbjc +tjjRbNQtvJVVsvqsvdTsGqBp +wlFLPZPzzzrzwZPmZfZPlrmpLDCpWDWCSTCpppDDBssdWG +rwwcFFghFmgTcNRJNnnNJtHV +RLhbzMhccqLzdjghdFddNWPN +DmsTZfvrfJLPPWwrdFgw +LsmDtQDfLLGbGQbSzcpM +qwhmmHlHmlwChcCWlpPCBzjPVdBzLsdLBVsT +DnJDMqRDsPsjRVQR +tSGSnNNSbrJJGfDSSfbchpvptFwmpcvlHqZlcF +rdQdBRPrQBBnfdBbzLLgLgmbzSLCPW +TcRTcFDTcjvswMWzzgLSzwwSLJbL +MNTRMNGTsFMMqqqcMDTTnfpBhQhNpHZBZHBfrptQ +ZZFwcQGwRGLTGLTl +rJtMrqBVvhBCnlCn +WWWMttbqqzfPWqWJVzmDQwFQlwZwjQfjgFcZ +RhgmdBbLLmRvhGZwhZZJDwGq +ldPpTtTPtVPpfTGzJQFGFqJsFG +MPpCnrlCVfPtrPVtntllnbdHSbnBvvgdgHgnWvSv +nbnfjQbQZBqBvjQdVFGHhsQhsFsFzGpD +RSJSTTcCVTTMlSNcSTRRwTccpwDFDDzFhHhtwppssFGGpsDp +clcTNJlLMgrcgRvBjfWVfWfBrrZn +LHQdpQLQDRcDBQccVQpnNRhllzMtRqzRztTNnt +mrvZPZvZvZbPSFJrSrggFvrJzbhlzttTlNtqtsMtTntntdqq +GPfJPJwfZFrmFvrPmgHHQLQWdHQBwWWCHVVC +TvTTLfflhZmwZLvtJmhdFhMpnWrpnbJcWMnpHzMrzbcn +VqRRNGCBjRmqPGqDzbHMcMccWnzngHnP +jNqNBjsDsDRCNVsmBRNQNRSSSddhZvLhddZhvhwvLTZwhSfT +vjpJvpgpNwjDWvvJLhFLLhNRTmPTRPRF +HHbHVrMHMmqzHlGmtGqMtdLCLQthQQPCSPTSFLLPRT +bZZzbHszMrqzGmrHMBzbHbqJjffcDgwWjDJpnjjcscwgnw +fBHDMNhhHMrBDBrfQqfwwvvLvfjLZZ +lmppmGJgPPpddJVdnwsQjLttqtjZTpcsvT +RndRmlGWJgdRnWQJQgWdQPlFFbhhbFbHbHMhhBbRDRFrrS +tVhwlMdMWlhlZMZMlzWrtRpBNpLPpmnmCPQBLppPPPBz +GvGTsgjcTLRQHmTQ +gGRGbfbgbcSbbcRggvfcwlZVhVMfltddVtrlZdhW +PwjPHwWssqrHqCqprpCPjwrrQnnDbdnQnGQHnbZbGQZbBQdD +WvNtLhfLndnBNbJJ +fvhvvWfTmtzTmjpsVVqsPzMjjq +GjHMMTMfZbnqHnJNCN +rlpQpthdlQbnlJqRzqVL +spphwcpBvcvdvFTqPDFfwwPZTG +mQfqmtpfBHJCHdlMDB +cbbPPsZqjqcSvVsCrDllsrdzrzzD +TSbVTvShqnVjPTPbggSPbNFQWGtfNLtFfWgGmGgGWR +HJtwgJJwJrcjRRjRnwhVdrVbmGhPmNNrGhdV +fWFvTDssTDMCBCWsvszWWMCQhZhLLNvNNbhVGGZdRZRdmhmd +zCTBzWzDDCDCfFCRqCJHcJJctjJSgHpqHqJg +dgnwgbcwVGbgDWnQbjdgDnBRBBNNqRLBNMLFRMRlqNsc +fTZHmTmzJMmSSCZChZvZTHRlBNBFqtqftlqssqNqftts +JTHJvhzCHpmPCSSTzPpPzJHgQVdQQjQdQwjgdpgdDMGgQM +qPGmWLJWBRRdvqvvNq +TnZHsTZsZsZZbDtbrNrdnDft +SShhQQZCHQCSTVlllVVQCjQWNJGFWpWgFpmmVmNgLgFpGw +TsSmttWMVstNfbMfBcpnFchFwFwZNrrwFp +DWWCGlHWdhddwpcrjh +gQvPqglRCHCHCPCPCJbbtSVVWtTVVJvTbs +ddHSZQHDStZStLtsdDpbCbBPcjGGCqCMBGdNPb +hWhvmglVznzglgzvzfznwfnfscswPjbMBMjNGBMPGMcjcPwP +sJWsJfVflWsnhrltrZLFDDRRFTSSLT +qqCqLNjnPPLZPjqnDjLNgnNrcGwtgddGrhprBJhhJtBGJG +lTMDsDHmlRRbQQbVfMHFmMBJhwcTddrcpBBGdGGJcJdB +lHFfQFssFFFMQRVWQVlssLnDSLLPvZZPqWCLWSqjvS +pJPZRpQtpPQpGPqWbqlWTdLVLJbT +nnnjCwgrgcCFBfnggBCsMTVbVsWVWdCTTdbb +cfhcnwnrcggrncrwcjBDcGHmNPRRGRZZQRRdDZzmzH +NqTrrzLpTNdLLJBBcBGGZGpFHB +sWbgfHSfSgVgZcmGtStZwBFG +VjQjjPjhbbfsCbbDQCgsDrRhzMdlNzHTRdRhqdNTrq +GlqfPdvdBqPgfqDgFMsMVDppbsNJNpMs +WnmmWCTCjZnmzRjTZRRnFBMNpbZZpFJMSFSNFSbS +TRRrnLBmzjttRRCmTRjjwLlvdhQvdrhqqlGdPqGggPlQ +McjMPgPgGPHJWjhPNgPqQbpQSfqffnWVnnnpnZ +BwwDmBTLRBBLzBTBTvtVqlfpqfbQqpqZbnQFlt +rDsDBsmvRTBRzCTZsTmCsCrLPgNcPHNhPccNHHrjMNrgdNdP +GqmLFDrcglvQGZwwzj +nlHbSNBhhslJfsBfvdZHdCvRzdCzppzR +JWShMfWMMthSJBBthJsgtcTTcFqcTrmTLrrTlr +CsBsShBWsBWhvFJWCSsJpbTZdTbdBRgHffRlHHHBgH +tqmnwwwDmVwfzZblzTRqzQ +DGtDjGMcntMGnnGhhjJJJsCpFRRSJJ +GQVVcGgFGcSFvfcFfJVnQmdbTwMLwTTnbnQMws +ZqZrDWDtNPPHRNPzGCdndLLMLwMWhwbmLddn +DRqRHCHlCtDrqtNqDplfpvGFjVjvBSFFcj +zfSfdGPdMVHHdcMThhpwqqrwrqJhcF +vlDNTWDDWWnngNQZtgwLrJZqLFZLFJpFJjJJ +NCtWmnvBmDnWQVTmTGSRmmRTPz +LLvppVLDsppGMGCLCCwNmJMNrNHrNmNNmHFjrh +lZZfvfgRPZQWNNmlWlFNHl +nnRtndRbcPttvTpswLTs +trtzWfszNPlhPlgrWglhZjSLDBvTfSDTmSvmLvfS +QMdVVGBQMTJDvSjdHJ +nBppGVVnQQgzgPsPzzhp +fVQzVrQVtVzHwjtMTjcTCjFgcDCGCd +JslDPWLbLbZlJBMgBTBPdcFTFd +JNJmZsDLnLDWmsVqSrHqnHqQwQSq +mLMZRMRmZLmHLLjNshrrJjRsNNsj +PnqnBVBPcpWrWfWzDhDsHW +qpBQgcQncqpBcVgtclHqcSMTLZZQvLLZdLdwCmLMSd +PZgMwZMjPgBCWgZFgmBGSTtwcccztTzbnGDcNT +vJLlvvlfdsVVslVHrrpLfRlDcSScmbSnnRGDnbDTSbSSDt +fvVHdLfLQljmmqqMQPhQ +DZRstNGrDWGRMlzLHLMpNSpp +bPgCrCvgnrCPgwplbMSjfHzHfj +CgnFnBVrFFVmdVggmPPVTTcZBGhRqGtcZqqJhGRGssWs +WrrCGrDlWhBBZtHB +ggdcnQpcPRSpzfvJBTfPJvtP +gSNnSBFnSMBNjpMssDmCrrGmCLqq +szZGZGGwNdVtpwvbzptzVBQQLFclTJQFlHJNcFBRRJ +CTrqSfWThWDjJCcLQRRRFLlQ +rggqfMqPWnDqnVbZvTtPZpssVw +GJHqPPcJnhthNHnL +rzzlVDVTQDzSSdsSlzpBspssLhmZNjhZWjjffWBLZhgBmnjt +TSTQTsnTbDsMvCGwcFvbJR +PPjtzdnCnSjSthPjWJgJWjgMNBsNrT +bZHfLLhvhpbfvLhHfQbqpNJTWWNsqNTrTNrgWN +ZFbZZFvlRvZwhQwLDSdGnmCGmnlmdznD +RFRRhzzsRsszRlhbrhgBcbTfHgBT +pJtNmSgwZNtSJLgSqHcbBDDTHPfrSqTc +ZNWdpNCJtLZpQJLLpmLtZNFGjVgFnsngRGllVsjjCnvs +sJVRJmmmwwlmzcszMzjRjJVzspCZBsZTTFpTTZvSZTFBFbtZ +GhNDgNWnGGqDvFSCZvbtFpvg +fWrCNNffGnhWdrPhWjwjzRlJmcjRcPzlmV +FdncmqmgcZztLWFvFFvjWLlT +RsMMJVpfhJVsDVMfJpvlTWTvhjQSQvCbLCSC +jDBjRrsVfNJgzdZrZwtmZt +THDDQLZTGQQLQDSSTBCZSZHfFrvvlVRRlPVFfVrvqnvnnH +VbWWcgbNpjgPrRvrNfqnzv +swggwpJWwsWscJsDSLTJTmSVZJTBDZ +wGsznPGGBHdzHhtHDD +WMVSWqVmrSBMpvWVMFtdClhDtqDDHhdtQt +RgWVRcmgnPPnjJBg +BmfPBHBFswLLjQQnLCnzzW +SRdvvRSGrdlRSvTgRrMVCjVWCZzMnVZhWzTj +vlSRJrRJvbGGrSSJgWvlScptFmwbmfHHBfsNFmBbfsFm diff --git a/03/solution.cpp b/03/solution.cpp new file mode 100644 index 0000000..530de75 --- /dev/null +++ b/03/solution.cpp @@ -0,0 +1,119 @@ +#include +#include +#include +#include +using namespace std; + +int intoPriority(char ch) +{ + int initalP = ch; + if (initalP < 97) + { + initalP -= 38; + } else {initalP -= 96;} + return initalP; +} + +class CharCount +{ + char key; + int count; +}; + + +class CharCounter +{ + vector cc; + +public: + int insert(char ch) + { + // This is terrible, DO NOT COMMIT + for (int i {0}; i < 26; i++) + { + CharCount charCount = this.cc[i]; + } + } +}; + + + +class RuckSack +{ +public: + vector aCompartment; + vector bCompartment; + int priority; + + RuckSack(string fullSack) + { + set seen; + int half = fullSack.size()/2; + for (int i {0}; iaCompartment.begin(), this->aCompartment.end()); + return s; + } + string bString() + { + string s(this->bCompartment.begin(), this->bCompartment.end()); + return s; + } +}; + +int main() +{ + string inputStr; + ifstream inputFile("input.txt"); + vector bags; + int totalPrioritySum {0}; + int groupPrioritySum {0}; + + + + set groupBTree; + int i {0}; + while (getline(inputFile, inputStr)) + { + i++; + if (i % 3 == 0) + set groupBTree; + + for (char c : inputStr) + { + + } + RuckSack curRuckSack {RuckSack(inputStr)}; + cout << curRuckSack.aString() << "\t\t\t" << curRuckSack.bString() << endl; + + totalPrioritySum += curRuckSack.priority; + bags.push_back(curRuckSack); + } + + for (RuckSack rs: bags) + { + cout << rs.priority << endl; + } + cout << totalPrioritySum << endl; + + +} \ No newline at end of file diff --git a/03/test b/03/test new file mode 100755 index 0000000..6b87e59 Binary files /dev/null and b/03/test differ diff --git a/03/test.cpp b/03/test.cpp new file mode 100644 index 0000000..f26c986 --- /dev/null +++ b/03/test.cpp @@ -0,0 +1,29 @@ +#include +using namespace std; + +int intoPriority(char ch) +{ + int initalP = ch; + if (initalP < 97) + { + initalP -= 38; + } else {initalP -= 96;} + return initalP; +} + + + + +int main() +{ + string lo {"abcdefghijkmnopqrtsuvwxyx"}; + string up {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"}; + + for (string letters: {lo, up}) + { + for (char ch: letters) + { + cout << ch << '\t' << int(ch) << '\t' << intoPriority(ch) << endl; + } + } +} \ No newline at end of file diff --git a/03/test_input.txt b/03/test_input.txt new file mode 100644 index 0000000..9919ffa --- /dev/null +++ b/03/test_input.txt @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw \ No newline at end of file