diff --git a/resources/2024/day13.txt b/resources/2024/day13.txt new file mode 100644 index 0000000..1f4629b --- /dev/null +++ b/resources/2024/day13.txt @@ -0,0 +1,1279 @@ +Button A: X+26, Y+57 +Button B: X+51, Y+13 +Prize: X=15496, Y=17815 + +Button A: X+20, Y+81 +Button B: X+66, Y+14 +Prize: X=13062, Y=10478 + +Button A: X+73, Y+15 +Button B: X+29, Y+42 +Prize: X=7707, Y=4539 + +Button A: X+27, Y+49 +Button B: X+57, Y+29 +Prize: X=19292, Y=19334 + +Button A: X+72, Y+24 +Button B: X+25, Y+73 +Prize: X=17782, Y=9862 + +Button A: X+15, Y+64 +Button B: X+92, Y+93 +Prize: X=3982, Y=4709 + +Button A: X+82, Y+22 +Button B: X+46, Y+99 +Prize: X=6862, Y=5654 + +Button A: X+73, Y+17 +Button B: X+47, Y+50 +Prize: X=3183, Y=1991 + +Button A: X+35, Y+12 +Button B: X+47, Y+67 +Prize: X=17523, Y=7451 + +Button A: X+65, Y+19 +Button B: X+12, Y+43 +Prize: X=15587, Y=17340 + +Button A: X+15, Y+33 +Button B: X+63, Y+20 +Prize: X=18581, Y=7263 + +Button A: X+57, Y+93 +Button B: X+82, Y+28 +Prize: X=4578, Y=7152 + +Button A: X+96, Y+64 +Button B: X+17, Y+69 +Prize: X=3737, Y=6701 + +Button A: X+82, Y+24 +Button B: X+46, Y+99 +Prize: X=7390, Y=5841 + +Button A: X+65, Y+25 +Button B: X+19, Y+58 +Prize: X=12867, Y=11274 + +Button A: X+83, Y+46 +Button B: X+46, Y+88 +Prize: X=6328, Y=7820 + +Button A: X+22, Y+38 +Button B: X+51, Y+17 +Prize: X=15619, Y=1409 + +Button A: X+33, Y+92 +Button B: X+17, Y+14 +Prize: X=4069, Y=9574 + +Button A: X+11, Y+36 +Button B: X+54, Y+37 +Prize: X=13225, Y=1602 + +Button A: X+79, Y+32 +Button B: X+18, Y+59 +Prize: X=8050, Y=15135 + +Button A: X+42, Y+68 +Button B: X+68, Y+31 +Prize: X=3126, Y=2451 + +Button A: X+71, Y+18 +Button B: X+13, Y+59 +Prize: X=5318, Y=7029 + +Button A: X+28, Y+84 +Button B: X+89, Y+23 +Prize: X=3256, Y=3912 + +Button A: X+30, Y+68 +Button B: X+65, Y+27 +Prize: X=16480, Y=16024 + +Button A: X+35, Y+16 +Button B: X+43, Y+63 +Prize: X=2645, Y=1949 + +Button A: X+61, Y+43 +Button B: X+15, Y+45 +Prize: X=6334, Y=5842 + +Button A: X+75, Y+21 +Button B: X+12, Y+59 +Prize: X=5084, Y=18594 + +Button A: X+13, Y+46 +Button B: X+64, Y+35 +Prize: X=10735, Y=12326 + +Button A: X+18, Y+50 +Button B: X+63, Y+20 +Prize: X=818, Y=4410 + +Button A: X+70, Y+18 +Button B: X+19, Y+71 +Prize: X=2111, Y=5647 + +Button A: X+36, Y+62 +Button B: X+49, Y+16 +Prize: X=19024, Y=6036 + +Button A: X+16, Y+34 +Button B: X+56, Y+24 +Prize: X=5160, Y=8740 + +Button A: X+47, Y+90 +Button B: X+87, Y+45 +Prize: X=2445, Y=2250 + +Button A: X+41, Y+53 +Button B: X+83, Y+20 +Prize: X=1949, Y=599 + +Button A: X+84, Y+43 +Button B: X+11, Y+32 +Prize: X=7833, Y=5671 + +Button A: X+79, Y+71 +Button B: X+15, Y+57 +Prize: X=1240, Y=2420 + +Button A: X+48, Y+14 +Button B: X+20, Y+74 +Prize: X=18404, Y=4066 + +Button A: X+16, Y+39 +Button B: X+45, Y+19 +Prize: X=7372, Y=3455 + +Button A: X+75, Y+31 +Button B: X+14, Y+75 +Prize: X=1426, Y=4673 + +Button A: X+41, Y+19 +Button B: X+20, Y+45 +Prize: X=1495, Y=8405 + +Button A: X+33, Y+62 +Button B: X+27, Y+12 +Prize: X=10865, Y=15726 + +Button A: X+90, Y+80 +Button B: X+27, Y+85 +Prize: X=2115, Y=3405 + +Button A: X+56, Y+12 +Button B: X+67, Y+73 +Prize: X=5374, Y=5022 + +Button A: X+23, Y+71 +Button B: X+65, Y+15 +Prize: X=9301, Y=1597 + +Button A: X+13, Y+34 +Button B: X+78, Y+55 +Prize: X=11261, Y=4722 + +Button A: X+25, Y+13 +Button B: X+35, Y+84 +Prize: X=2565, Y=4558 + +Button A: X+70, Y+31 +Button B: X+20, Y+62 +Prize: X=11690, Y=6749 + +Button A: X+71, Y+26 +Button B: X+33, Y+65 +Prize: X=5473, Y=3380 + +Button A: X+29, Y+74 +Button B: X+57, Y+23 +Prize: X=4321, Y=7475 + +Button A: X+32, Y+69 +Button B: X+58, Y+32 +Prize: X=4332, Y=5060 + +Button A: X+99, Y+12 +Button B: X+37, Y+43 +Prize: X=4776, Y=810 + +Button A: X+14, Y+41 +Button B: X+67, Y+19 +Prize: X=4835, Y=3704 + +Button A: X+41, Y+99 +Button B: X+59, Y+40 +Prize: X=2266, Y=4242 + +Button A: X+96, Y+41 +Button B: X+27, Y+93 +Prize: X=8178, Y=7892 + +Button A: X+21, Y+59 +Button B: X+66, Y+19 +Prize: X=6632, Y=13403 + +Button A: X+57, Y+27 +Button B: X+11, Y+31 +Prize: X=2568, Y=8668 + +Button A: X+78, Y+15 +Button B: X+11, Y+76 +Prize: X=1828, Y=13755 + +Button A: X+81, Y+31 +Button B: X+12, Y+46 +Prize: X=15002, Y=3378 + +Button A: X+79, Y+13 +Button B: X+18, Y+76 +Prize: X=5203, Y=11361 + +Button A: X+39, Y+60 +Button B: X+42, Y+12 +Prize: X=9614, Y=1508 + +Button A: X+89, Y+13 +Button B: X+84, Y+87 +Prize: X=10089, Y=4986 + +Button A: X+33, Y+76 +Button B: X+95, Y+51 +Prize: X=10102, Y=6822 + +Button A: X+25, Y+65 +Button B: X+60, Y+18 +Prize: X=10890, Y=8512 + +Button A: X+29, Y+11 +Button B: X+12, Y+19 +Prize: X=7479, Y=9810 + +Button A: X+97, Y+15 +Button B: X+76, Y+62 +Prize: X=9745, Y=5577 + +Button A: X+19, Y+52 +Button B: X+72, Y+31 +Prize: X=7974, Y=612 + +Button A: X+96, Y+60 +Button B: X+28, Y+85 +Prize: X=6896, Y=10520 + +Button A: X+57, Y+29 +Button B: X+14, Y+29 +Prize: X=14115, Y=15866 + +Button A: X+85, Y+13 +Button B: X+48, Y+84 +Prize: X=4201, Y=2329 + +Button A: X+11, Y+48 +Button B: X+27, Y+12 +Prize: X=18447, Y=10292 + +Button A: X+40, Y+15 +Button B: X+24, Y+62 +Prize: X=9368, Y=15709 + +Button A: X+32, Y+11 +Button B: X+46, Y+65 +Prize: X=7678, Y=17148 + +Button A: X+73, Y+72 +Button B: X+78, Y+12 +Prize: X=4009, Y=2136 + +Button A: X+27, Y+53 +Button B: X+58, Y+35 +Prize: X=15696, Y=13514 + +Button A: X+79, Y+34 +Button B: X+31, Y+79 +Prize: X=2648, Y=3569 + +Button A: X+12, Y+60 +Button B: X+74, Y+32 +Prize: X=14124, Y=8520 + +Button A: X+28, Y+66 +Button B: X+92, Y+32 +Prize: X=9444, Y=7842 + +Button A: X+57, Y+27 +Button B: X+29, Y+66 +Prize: X=9346, Y=6842 + +Button A: X+13, Y+76 +Button B: X+51, Y+53 +Prize: X=1091, Y=2946 + +Button A: X+62, Y+23 +Button B: X+27, Y+59 +Prize: X=15707, Y=18535 + +Button A: X+65, Y+12 +Button B: X+87, Y+84 +Prize: X=9096, Y=5280 + +Button A: X+60, Y+73 +Button B: X+81, Y+12 +Prize: X=13554, Y=8355 + +Button A: X+13, Y+90 +Button B: X+94, Y+21 +Prize: X=8504, Y=6603 + +Button A: X+98, Y+39 +Button B: X+53, Y+73 +Prize: X=6044, Y=7077 + +Button A: X+71, Y+11 +Button B: X+24, Y+84 +Prize: X=15342, Y=14922 + +Button A: X+32, Y+14 +Button B: X+38, Y+55 +Prize: X=6166, Y=3033 + +Button A: X+45, Y+17 +Button B: X+24, Y+50 +Prize: X=14639, Y=15983 + +Button A: X+28, Y+85 +Button B: X+70, Y+43 +Prize: X=3192, Y=7656 + +Button A: X+19, Y+87 +Button B: X+42, Y+35 +Prize: X=2071, Y=6494 + +Button A: X+95, Y+71 +Button B: X+32, Y+82 +Prize: X=4128, Y=5060 + +Button A: X+38, Y+16 +Button B: X+33, Y+61 +Prize: X=8304, Y=16358 + +Button A: X+82, Y+41 +Button B: X+15, Y+55 +Prize: X=2817, Y=4876 + +Button A: X+13, Y+52 +Button B: X+84, Y+46 +Prize: X=18258, Y=17082 + +Button A: X+77, Y+56 +Button B: X+27, Y+65 +Prize: X=7985, Y=9391 + +Button A: X+19, Y+63 +Button B: X+95, Y+36 +Prize: X=9101, Y=7578 + +Button A: X+53, Y+26 +Button B: X+11, Y+21 +Prize: X=4919, Y=4544 + +Button A: X+26, Y+72 +Button B: X+39, Y+27 +Prize: X=5070, Y=7560 + +Button A: X+14, Y+26 +Button B: X+61, Y+36 +Prize: X=5189, Y=4304 + +Button A: X+49, Y+13 +Button B: X+42, Y+48 +Prize: X=6678, Y=4536 + +Button A: X+86, Y+39 +Button B: X+12, Y+55 +Prize: X=9306, Y=6676 + +Button A: X+21, Y+99 +Button B: X+53, Y+44 +Prize: X=1975, Y=4576 + +Button A: X+29, Y+47 +Button B: X+46, Y+14 +Prize: X=2373, Y=323 + +Button A: X+33, Y+51 +Button B: X+33, Y+16 +Prize: X=3861, Y=4042 + +Button A: X+16, Y+35 +Button B: X+56, Y+29 +Prize: X=12328, Y=15241 + +Button A: X+79, Y+46 +Button B: X+42, Y+96 +Prize: X=9137, Y=11330 + +Button A: X+33, Y+18 +Button B: X+24, Y+44 +Prize: X=1907, Y=17842 + +Button A: X+36, Y+65 +Button B: X+53, Y+17 +Prize: X=7394, Y=10972 + +Button A: X+13, Y+40 +Button B: X+49, Y+19 +Prize: X=16980, Y=18282 + +Button A: X+12, Y+32 +Button B: X+54, Y+35 +Prize: X=15608, Y=17942 + +Button A: X+19, Y+96 +Button B: X+90, Y+28 +Prize: X=5195, Y=7472 + +Button A: X+79, Y+20 +Button B: X+11, Y+52 +Prize: X=1308, Y=4416 + +Button A: X+70, Y+43 +Button B: X+13, Y+33 +Prize: X=2728, Y=16318 + +Button A: X+27, Y+57 +Button B: X+69, Y+35 +Prize: X=19667, Y=16365 + +Button A: X+61, Y+15 +Button B: X+23, Y+78 +Prize: X=15537, Y=5324 + +Button A: X+15, Y+37 +Button B: X+83, Y+59 +Prize: X=14468, Y=18532 + +Button A: X+42, Y+23 +Button B: X+28, Y+59 +Prize: X=1810, Y=3395 + +Button A: X+82, Y+14 +Button B: X+15, Y+74 +Prize: X=7375, Y=16290 + +Button A: X+64, Y+22 +Button B: X+30, Y+70 +Prize: X=6200, Y=7440 + +Button A: X+99, Y+24 +Button B: X+11, Y+12 +Prize: X=2860, Y=1188 + +Button A: X+17, Y+39 +Button B: X+69, Y+41 +Prize: X=7116, Y=16904 + +Button A: X+99, Y+88 +Button B: X+14, Y+92 +Prize: X=6363, Y=6372 + +Button A: X+57, Y+87 +Button B: X+95, Y+46 +Prize: X=7410, Y=8637 + +Button A: X+46, Y+31 +Button B: X+13, Y+36 +Prize: X=14091, Y=7260 + +Button A: X+26, Y+54 +Button B: X+60, Y+34 +Prize: X=1774, Y=12646 + +Button A: X+49, Y+58 +Button B: X+75, Y+19 +Prize: X=4463, Y=3957 + +Button A: X+11, Y+55 +Button B: X+26, Y+18 +Prize: X=2948, Y=6116 + +Button A: X+19, Y+93 +Button B: X+74, Y+22 +Prize: X=6888, Y=3096 + +Button A: X+38, Y+72 +Button B: X+63, Y+12 +Prize: X=1149, Y=996 + +Button A: X+43, Y+79 +Button B: X+54, Y+25 +Prize: X=4804, Y=2815 + +Button A: X+15, Y+54 +Button B: X+99, Y+69 +Prize: X=2346, Y=2985 + +Button A: X+78, Y+70 +Button B: X+26, Y+80 +Prize: X=9360, Y=13330 + +Button A: X+52, Y+12 +Button B: X+34, Y+67 +Prize: X=13144, Y=11462 + +Button A: X+50, Y+19 +Button B: X+53, Y+98 +Prize: X=1898, Y=1967 + +Button A: X+46, Y+15 +Button B: X+29, Y+59 +Prize: X=15349, Y=1647 + +Button A: X+16, Y+71 +Button B: X+69, Y+12 +Prize: X=14848, Y=3054 + +Button A: X+70, Y+16 +Button B: X+14, Y+47 +Prize: X=15544, Y=7609 + +Button A: X+66, Y+22 +Button B: X+62, Y+76 +Prize: X=7270, Y=6850 + +Button A: X+19, Y+75 +Button B: X+34, Y+26 +Prize: X=2697, Y=3937 + +Button A: X+62, Y+39 +Button B: X+17, Y+47 +Prize: X=6349, Y=8658 + +Button A: X+11, Y+46 +Button B: X+64, Y+13 +Prize: X=17366, Y=18904 + +Button A: X+17, Y+58 +Button B: X+27, Y+13 +Prize: X=593, Y=15287 + +Button A: X+39, Y+60 +Button B: X+86, Y+25 +Prize: X=4635, Y=1980 + +Button A: X+22, Y+57 +Button B: X+93, Y+74 +Prize: X=2326, Y=4023 + +Button A: X+80, Y+39 +Button B: X+15, Y+48 +Prize: X=16720, Y=2783 + +Button A: X+98, Y+94 +Button B: X+79, Y+15 +Prize: X=4327, Y=2631 + +Button A: X+57, Y+73 +Button B: X+68, Y+26 +Prize: X=9634, Y=7268 + +Button A: X+29, Y+19 +Button B: X+13, Y+28 +Prize: X=8784, Y=14474 + +Button A: X+19, Y+32 +Button B: X+48, Y+13 +Prize: X=14507, Y=18875 + +Button A: X+32, Y+86 +Button B: X+62, Y+14 +Prize: X=4008, Y=6498 + +Button A: X+36, Y+95 +Button B: X+64, Y+11 +Prize: X=5176, Y=4975 + +Button A: X+31, Y+58 +Button B: X+42, Y+16 +Prize: X=2690, Y=4720 + +Button A: X+74, Y+82 +Button B: X+91, Y+14 +Prize: X=12547, Y=8780 + +Button A: X+44, Y+12 +Button B: X+35, Y+62 +Prize: X=18163, Y=16198 + +Button A: X+77, Y+31 +Button B: X+14, Y+43 +Prize: X=3612, Y=2874 + +Button A: X+88, Y+98 +Button B: X+85, Y+13 +Prize: X=3940, Y=1448 + +Button A: X+54, Y+96 +Button B: X+55, Y+20 +Prize: X=5777, Y=6148 + +Button A: X+39, Y+11 +Button B: X+15, Y+32 +Prize: X=3450, Y=3389 + +Button A: X+58, Y+23 +Button B: X+36, Y+71 +Prize: X=5670, Y=3780 + +Button A: X+29, Y+11 +Button B: X+39, Y+64 +Prize: X=5057, Y=10830 + +Button A: X+69, Y+74 +Button B: X+98, Y+14 +Prize: X=10935, Y=5988 + +Button A: X+33, Y+82 +Button B: X+91, Y+18 +Prize: X=3018, Y=1880 + +Button A: X+14, Y+66 +Button B: X+68, Y+15 +Prize: X=8874, Y=14402 + +Button A: X+16, Y+70 +Button B: X+39, Y+19 +Prize: X=1802, Y=6974 + +Button A: X+67, Y+43 +Button B: X+12, Y+26 +Prize: X=6577, Y=16569 + +Button A: X+11, Y+26 +Button B: X+70, Y+46 +Prize: X=11514, Y=2076 + +Button A: X+21, Y+45 +Button B: X+35, Y+13 +Prize: X=12583, Y=5637 + +Button A: X+56, Y+14 +Button B: X+27, Y+70 +Prize: X=3749, Y=9804 + +Button A: X+78, Y+15 +Button B: X+15, Y+62 +Prize: X=9104, Y=17334 + +Button A: X+28, Y+48 +Button B: X+56, Y+28 +Prize: X=13080, Y=7784 + +Button A: X+65, Y+32 +Button B: X+12, Y+40 +Prize: X=8025, Y=19496 + +Button A: X+14, Y+57 +Button B: X+57, Y+11 +Prize: X=5524, Y=7392 + +Button A: X+16, Y+87 +Button B: X+33, Y+11 +Prize: X=1574, Y=2158 + +Button A: X+34, Y+15 +Button B: X+12, Y+44 +Prize: X=6952, Y=3878 + +Button A: X+97, Y+37 +Button B: X+31, Y+75 +Prize: X=3699, Y=5391 + +Button A: X+11, Y+65 +Button B: X+75, Y+25 +Prize: X=4631, Y=10565 + +Button A: X+55, Y+17 +Button B: X+59, Y+98 +Prize: X=4568, Y=4762 + +Button A: X+15, Y+48 +Button B: X+76, Y+37 +Prize: X=1708, Y=9547 + +Button A: X+73, Y+25 +Button B: X+19, Y+58 +Prize: X=14528, Y=8489 + +Button A: X+41, Y+79 +Button B: X+53, Y+15 +Prize: X=183, Y=13369 + +Button A: X+20, Y+66 +Button B: X+61, Y+14 +Prize: X=16112, Y=11130 + +Button A: X+48, Y+17 +Button B: X+16, Y+37 +Prize: X=8320, Y=17122 + +Button A: X+88, Y+29 +Button B: X+49, Y+99 +Prize: X=10732, Y=7845 + +Button A: X+39, Y+74 +Button B: X+57, Y+20 +Prize: X=4013, Y=15344 + +Button A: X+91, Y+71 +Button B: X+17, Y+97 +Prize: X=7772, Y=9832 + +Button A: X+34, Y+72 +Button B: X+58, Y+19 +Prize: X=14216, Y=18213 + +Button A: X+86, Y+16 +Button B: X+13, Y+86 +Prize: X=3054, Y=1404 + +Button A: X+26, Y+72 +Button B: X+44, Y+12 +Prize: X=8224, Y=18524 + +Button A: X+28, Y+64 +Button B: X+41, Y+13 +Prize: X=18355, Y=6055 + +Button A: X+16, Y+46 +Button B: X+73, Y+34 +Prize: X=1805, Y=11054 + +Button A: X+14, Y+40 +Button B: X+53, Y+11 +Prize: X=15743, Y=14999 + +Button A: X+80, Y+56 +Button B: X+11, Y+28 +Prize: X=3022, Y=704 + +Button A: X+12, Y+70 +Button B: X+56, Y+15 +Prize: X=3404, Y=13855 + +Button A: X+32, Y+67 +Button B: X+49, Y+22 +Prize: X=12592, Y=14397 + +Button A: X+78, Y+54 +Button B: X+18, Y+41 +Prize: X=13664, Y=18184 + +Button A: X+36, Y+84 +Button B: X+61, Y+15 +Prize: X=9920, Y=13064 + +Button A: X+29, Y+29 +Button B: X+12, Y+92 +Prize: X=1367, Y=6807 + +Button A: X+48, Y+18 +Button B: X+31, Y+54 +Prize: X=1204, Y=19574 + +Button A: X+12, Y+88 +Button B: X+94, Y+71 +Prize: X=1054, Y=3401 + +Button A: X+46, Y+21 +Button B: X+24, Y+62 +Prize: X=19754, Y=3171 + +Button A: X+25, Y+97 +Button B: X+55, Y+49 +Prize: X=3030, Y=6660 + +Button A: X+33, Y+65 +Button B: X+49, Y+12 +Prize: X=10709, Y=952 + +Button A: X+70, Y+34 +Button B: X+17, Y+53 +Prize: X=9785, Y=10541 + +Button A: X+19, Y+75 +Button B: X+87, Y+69 +Prize: X=5252, Y=5364 + +Button A: X+35, Y+58 +Button B: X+32, Y+15 +Prize: X=8591, Y=12501 + +Button A: X+58, Y+72 +Button B: X+85, Y+19 +Prize: X=3912, Y=3472 + +Button A: X+67, Y+11 +Button B: X+35, Y+60 +Prize: X=2581, Y=4113 + +Button A: X+96, Y+11 +Button B: X+14, Y+61 +Prize: X=2434, Y=1645 + +Button A: X+86, Y+17 +Button B: X+36, Y+40 +Prize: X=6750, Y=3965 + +Button A: X+12, Y+35 +Button B: X+50, Y+11 +Prize: X=14072, Y=1276 + +Button A: X+14, Y+65 +Button B: X+97, Y+55 +Prize: X=8508, Y=10245 + +Button A: X+57, Y+16 +Button B: X+24, Y+53 +Prize: X=17963, Y=1031 + +Button A: X+13, Y+37 +Button B: X+43, Y+18 +Prize: X=6253, Y=3317 + +Button A: X+18, Y+78 +Button B: X+68, Y+14 +Prize: X=5802, Y=4092 + +Button A: X+24, Y+56 +Button B: X+74, Y+40 +Prize: X=8946, Y=4664 + +Button A: X+16, Y+52 +Button B: X+62, Y+32 +Prize: X=16852, Y=2200 + +Button A: X+16, Y+50 +Button B: X+53, Y+40 +Prize: X=6069, Y=6780 + +Button A: X+18, Y+90 +Button B: X+53, Y+56 +Prize: X=1398, Y=1974 + +Button A: X+77, Y+82 +Button B: X+15, Y+79 +Prize: X=5495, Y=6293 + +Button A: X+41, Y+14 +Button B: X+18, Y+68 +Prize: X=9063, Y=8562 + +Button A: X+15, Y+85 +Button B: X+90, Y+73 +Prize: X=9675, Y=11999 + +Button A: X+14, Y+74 +Button B: X+51, Y+17 +Prize: X=3190, Y=4738 + +Button A: X+17, Y+30 +Button B: X+83, Y+37 +Prize: X=3248, Y=2995 + +Button A: X+83, Y+42 +Button B: X+19, Y+81 +Prize: X=5106, Y=3369 + +Button A: X+19, Y+41 +Button B: X+44, Y+21 +Prize: X=18698, Y=10787 + +Button A: X+19, Y+58 +Button B: X+61, Y+11 +Prize: X=2384, Y=15930 + +Button A: X+73, Y+52 +Button B: X+12, Y+35 +Prize: X=8171, Y=9895 + +Button A: X+86, Y+97 +Button B: X+11, Y+55 +Prize: X=4085, Y=6439 + +Button A: X+64, Y+24 +Button B: X+14, Y+57 +Prize: X=14120, Y=332 + +Button A: X+89, Y+17 +Button B: X+62, Y+73 +Prize: X=2030, Y=2039 + +Button A: X+97, Y+50 +Button B: X+31, Y+58 +Prize: X=6088, Y=6920 + +Button A: X+94, Y+11 +Button B: X+23, Y+76 +Prize: X=3784, Y=3815 + +Button A: X+74, Y+12 +Button B: X+14, Y+36 +Prize: X=2332, Y=1896 + +Button A: X+35, Y+14 +Button B: X+32, Y+47 +Prize: X=1423, Y=1903 + +Button A: X+22, Y+52 +Button B: X+73, Y+37 +Prize: X=15481, Y=1537 + +Button A: X+11, Y+36 +Button B: X+53, Y+19 +Prize: X=666, Y=944 + +Button A: X+25, Y+54 +Button B: X+58, Y+24 +Prize: X=11466, Y=18980 + +Button A: X+17, Y+27 +Button B: X+36, Y+17 +Prize: X=1897, Y=12407 + +Button A: X+79, Y+40 +Button B: X+27, Y+73 +Prize: X=4741, Y=4833 + +Button A: X+41, Y+69 +Button B: X+37, Y+14 +Prize: X=15015, Y=9450 + +Button A: X+60, Y+33 +Button B: X+35, Y+59 +Prize: X=10025, Y=314 + +Button A: X+17, Y+36 +Button B: X+55, Y+13 +Prize: X=11301, Y=15168 + +Button A: X+96, Y+65 +Button B: X+36, Y+96 +Prize: X=4764, Y=3727 + +Button A: X+11, Y+57 +Button B: X+74, Y+30 +Prize: X=3734, Y=6146 + +Button A: X+55, Y+13 +Button B: X+23, Y+77 +Prize: X=4431, Y=9909 + +Button A: X+48, Y+17 +Button B: X+54, Y+87 +Prize: X=8184, Y=8057 + +Button A: X+67, Y+63 +Button B: X+75, Y+16 +Prize: X=7827, Y=5615 + +Button A: X+13, Y+63 +Button B: X+73, Y+22 +Prize: X=13874, Y=4796 + +Button A: X+61, Y+28 +Button B: X+11, Y+40 +Prize: X=1316, Y=5424 + +Button A: X+46, Y+74 +Button B: X+88, Y+46 +Prize: X=4688, Y=5248 + +Button A: X+31, Y+73 +Button B: X+45, Y+29 +Prize: X=1389, Y=2963 + +Button A: X+75, Y+22 +Button B: X+13, Y+52 +Prize: X=16116, Y=16300 + +Button A: X+54, Y+29 +Button B: X+14, Y+53 +Prize: X=3490, Y=6303 + +Button A: X+92, Y+40 +Button B: X+61, Y+98 +Prize: X=9054, Y=8940 + +Button A: X+40, Y+17 +Button B: X+26, Y+67 +Prize: X=1846, Y=13017 + +Button A: X+65, Y+37 +Button B: X+14, Y+99 +Prize: X=7303, Y=9801 + +Button A: X+55, Y+28 +Button B: X+24, Y+50 +Prize: X=786, Y=10508 + +Button A: X+12, Y+48 +Button B: X+81, Y+26 +Prize: X=3537, Y=4314 + +Button A: X+29, Y+70 +Button B: X+68, Y+32 +Prize: X=4657, Y=4502 + +Button A: X+22, Y+61 +Button B: X+60, Y+24 +Prize: X=7344, Y=7968 + +Button A: X+75, Y+41 +Button B: X+11, Y+51 +Prize: X=11493, Y=5927 + +Button A: X+42, Y+83 +Button B: X+53, Y+11 +Prize: X=8493, Y=9605 + +Button A: X+45, Y+46 +Button B: X+79, Y+20 +Prize: X=5516, Y=4788 + +Button A: X+84, Y+16 +Button B: X+84, Y+75 +Prize: X=13188, Y=5993 + +Button A: X+11, Y+94 +Button B: X+78, Y+45 +Prize: X=2086, Y=6638 + +Button A: X+83, Y+28 +Button B: X+56, Y+91 +Prize: X=3610, Y=2660 + +Button A: X+64, Y+15 +Button B: X+20, Y+68 +Prize: X=11692, Y=17535 + +Button A: X+54, Y+24 +Button B: X+24, Y+61 +Prize: X=3348, Y=4659 + +Button A: X+27, Y+61 +Button B: X+60, Y+30 +Prize: X=11660, Y=1330 + +Button A: X+32, Y+18 +Button B: X+23, Y+53 +Prize: X=4882, Y=6512 + +Button A: X+95, Y+34 +Button B: X+23, Y+30 +Prize: X=11472, Y=6152 + +Button A: X+23, Y+48 +Button B: X+62, Y+33 +Prize: X=510, Y=5855 + +Button A: X+55, Y+42 +Button B: X+12, Y+54 +Prize: X=2205, Y=1908 + +Button A: X+18, Y+11 +Button B: X+12, Y+38 +Prize: X=7958, Y=10693 + +Button A: X+11, Y+61 +Button B: X+59, Y+55 +Prize: X=5913, Y=9927 + +Button A: X+30, Y+64 +Button B: X+82, Y+23 +Prize: X=10452, Y=7712 + +Button A: X+11, Y+60 +Button B: X+70, Y+31 +Prize: X=7395, Y=3976 + +Button A: X+30, Y+80 +Button B: X+61, Y+17 +Prize: X=7588, Y=7416 + +Button A: X+56, Y+22 +Button B: X+26, Y+57 +Prize: X=18250, Y=6355 + +Button A: X+49, Y+12 +Button B: X+16, Y+33 +Prize: X=5752, Y=4026 + +Button A: X+91, Y+84 +Button B: X+82, Y+13 +Prize: X=12139, Y=5751 + +Button A: X+16, Y+35 +Button B: X+72, Y+41 +Prize: X=12752, Y=13927 + +Button A: X+24, Y+76 +Button B: X+87, Y+72 +Prize: X=9660, Y=11868 + +Button A: X+68, Y+23 +Button B: X+63, Y+99 +Prize: X=4948, Y=5092 + +Button A: X+34, Y+98 +Button B: X+86, Y+72 +Prize: X=3820, Y=8900 + +Button A: X+31, Y+62 +Button B: X+42, Y+11 +Prize: X=12674, Y=12271 + +Button A: X+29, Y+38 +Button B: X+57, Y+21 +Prize: X=2526, Y=1914 + +Button A: X+27, Y+65 +Button B: X+33, Y+20 +Prize: X=2022, Y=1955 + +Button A: X+24, Y+44 +Button B: X+29, Y+16 +Prize: X=19334, Y=19344 + +Button A: X+99, Y+60 +Button B: X+37, Y+88 +Prize: X=10117, Y=9148 + +Button A: X+34, Y+14 +Button B: X+14, Y+59 +Prize: X=3768, Y=18903 + +Button A: X+84, Y+20 +Button B: X+63, Y+60 +Prize: X=6258, Y=2480 + +Button A: X+30, Y+64 +Button B: X+68, Y+34 +Prize: X=17778, Y=19104 + +Button A: X+14, Y+85 +Button B: X+39, Y+37 +Prize: X=1598, Y=6106 + +Button A: X+92, Y+42 +Button B: X+13, Y+41 +Prize: X=7615, Y=5405 + +Button A: X+29, Y+88 +Button B: X+28, Y+15 +Prize: X=1819, Y=2931 + +Button A: X+90, Y+52 +Button B: X+11, Y+86 +Prize: X=2564, Y=1800 + +Button A: X+36, Y+16 +Button B: X+23, Y+32 +Prize: X=18203, Y=5056 + +Button A: X+19, Y+42 +Button B: X+75, Y+53 +Prize: X=17642, Y=9310 + +Button A: X+49, Y+19 +Button B: X+59, Y+96 +Prize: X=3116, Y=4645 + +Button A: X+57, Y+25 +Button B: X+18, Y+98 +Prize: X=2361, Y=9145 + +Button A: X+20, Y+60 +Button B: X+22, Y+17 +Prize: X=2380, Y=5670 + +Button A: X+11, Y+57 +Button B: X+66, Y+12 +Prize: X=14092, Y=6494 + +Button A: X+80, Y+41 +Button B: X+11, Y+42 +Prize: X=5376, Y=3337 + +Button A: X+12, Y+38 +Button B: X+41, Y+17 +Prize: X=4306, Y=14086 + +Button A: X+12, Y+31 +Button B: X+67, Y+24 +Prize: X=12982, Y=774 + +Button A: X+64, Y+95 +Button B: X+69, Y+29 +Prize: X=5046, Y=2938 + +Button A: X+18, Y+56 +Button B: X+25, Y+12 +Prize: X=18739, Y=1924 + +Button A: X+93, Y+28 +Button B: X+34, Y+52 +Prize: X=10246, Y=6760 + +Button A: X+38, Y+11 +Button B: X+17, Y+26 +Prize: X=6062, Y=2948 + +Button A: X+33, Y+18 +Button B: X+14, Y+50 +Prize: X=14693, Y=9410 + +Button A: X+80, Y+14 +Button B: X+16, Y+72 +Prize: X=336, Y=15754 + +Button A: X+87, Y+12 +Button B: X+62, Y+84 +Prize: X=6307, Y=4416 + +Button A: X+20, Y+60 +Button B: X+36, Y+15 +Prize: X=4732, Y=6570 + +Button A: X+19, Y+78 +Button B: X+35, Y+18 +Prize: X=4115, Y=8598 + +Button A: X+30, Y+44 +Button B: X+96, Y+35 +Prize: X=9468, Y=6163 + +Button A: X+71, Y+96 +Button B: X+62, Y+23 +Prize: X=4729, Y=5725 + +Button A: X+20, Y+43 +Button B: X+43, Y+14 +Prize: X=10829, Y=16073 + +Button A: X+12, Y+53 +Button B: X+90, Y+47 +Prize: X=6066, Y=6112 + +Button A: X+75, Y+20 +Button B: X+56, Y+74 +Prize: X=5137, Y=5918 + +Button A: X+22, Y+57 +Button B: X+67, Y+26 +Prize: X=9086, Y=311 diff --git a/resources/2024/day14.txt b/resources/2024/day14.txt new file mode 100644 index 0000000..8b5f8d5 --- /dev/null +++ b/resources/2024/day14.txt @@ -0,0 +1,500 @@ +p=24,25 v=-48,-26 +p=7,8 v=-96,-2 +p=7,80 v=-66,22 +p=5,18 v=25,-98 +p=45,67 v=26,90 +p=54,71 v=3,67 +p=62,66 v=-5,81 +p=5,82 v=-7,-45 +p=66,89 v=93,-43 +p=70,51 v=33,-7 +p=75,59 v=-20,-77 +p=66,40 v=93,55 +p=32,79 v=79,45 +p=99,13 v=-18,50 +p=13,68 v=-43,-53 +p=84,85 v=-69,-65 +p=37,84 v=11,-57 +p=28,10 v=19,-93 +p=78,82 v=-56,36 +p=20,69 v=-3,-62 +p=39,78 v=27,-1 +p=51,87 v=-32,-17 +p=90,26 v=20,66 +p=35,89 v=-11,20 +p=71,2 v=-80,92 +p=41,40 v=-64,-30 +p=38,8 v=-71,54 +p=72,58 v=36,-80 +p=62,97 v=52,83 +p=96,74 v=90,-23 +p=76,75 v=-43,-9 +p=35,95 v=74,13 +p=90,17 v=99,6 +p=61,26 v=17,81 +p=43,71 v=-43,-51 +p=6,18 v=-62,-9 +p=37,62 v=-23,-11 +p=60,97 v=36,-64 +p=54,63 v=-23,-95 +p=76,85 v=24,-4 +p=38,54 v=-38,-95 +p=48,18 v=52,-49 +p=45,36 v=-75,-4 +p=31,87 v=64,50 +p=4,87 v=68,9 +p=25,40 v=99,53 +p=74,18 v=-73,-71 +p=5,22 v=76,65 +p=66,12 v=96,-64 +p=20,71 v=68,-3 +p=3,20 v=4,-77 +p=27,43 v=49,55 +p=25,70 v=-52,-84 +p=90,64 v=39,52 +p=32,69 v=82,88 +p=2,97 v=-78,76 +p=56,6 v=-71,-27 +p=91,31 v=84,-41 +p=25,12 v=-91,-51 +p=7,43 v=-11,59 +p=3,55 v=-6,-44 +p=83,102 v=9,-76 +p=54,40 v=-94,5 +p=3,77 v=80,45 +p=32,6 v=3,-35 +p=14,34 v=-74,-41 +p=16,30 v=-21,-86 +p=34,71 v=-75,-62 +p=79,11 v=67,-10 +p=80,11 v=61,9 +p=14,84 v=-59,-83 +p=73,66 v=-56,3 +p=26,61 v=41,-70 +p=45,35 v=-97,40 +p=84,39 v=-99,55 +p=95,50 v=-66,-56 +p=17,35 v=-33,-74 +p=33,51 v=4,-22 +p=6,77 v=-49,-45 +p=9,61 v=28,85 +p=14,91 v=-70,-12 +p=88,73 v=49,-14 +p=73,39 v=-16,73 +p=68,83 v=25,60 +p=3,31 v=83,62 +p=31,102 v=30,-49 +p=29,29 v=45,-23 +p=47,37 v=97,26 +p=35,46 v=87,39 +p=13,36 v=-74,-37 +p=81,33 v=81,-17 +p=6,20 v=-14,43 +p=94,41 v=89,-72 +p=55,44 v=-91,95 +p=92,87 v=-17,64 +p=54,79 v=-57,-58 +p=53,49 v=-19,-84 +p=25,21 v=56,-82 +p=82,53 v=51,-85 +p=75,27 v=69,-4 +p=21,87 v=61,-6 +p=6,63 v=-74,-77 +p=20,4 v=89,-33 +p=21,25 v=-78,62 +p=24,0 v=-74,43 +p=34,86 v=-43,74 +p=72,83 v=-35,85 +p=47,17 v=41,87 +p=3,73 v=-77,-36 +p=98,96 v=-73,75 +p=66,93 v=-26,20 +p=48,79 v=56,-69 +p=91,89 v=-47,9 +p=49,11 v=96,-47 +p=33,4 v=-86,-16 +p=76,45 v=-46,3 +p=12,28 v=-40,36 +p=64,99 v=-79,-83 +p=19,83 v=-10,-3 +p=87,57 v=84,-33 +p=47,69 v=-64,-58 +p=56,9 v=33,-60 +p=98,94 v=-14,-25 +p=60,59 v=-1,-41 +p=18,91 v=-93,-85 +p=24,21 v=98,-85 +p=51,83 v=-23,45 +p=12,41 v=-41,-34 +p=8,86 v=-55,-50 +p=23,48 v=-11,73 +p=46,24 v=-4,-75 +p=12,82 v=-6,-47 +p=78,37 v=-16,-55 +p=13,59 v=68,-66 +p=63,100 v=44,83 +p=99,66 v=31,-65 +p=21,97 v=17,-7 +p=1,101 v=91,-90 +p=16,74 v=90,8 +p=15,102 v=98,-9 +p=31,34 v=12,91 +p=49,65 v=-8,96 +p=48,62 v=-41,-58 +p=57,13 v=-72,61 +p=82,30 v=-69,47 +p=31,21 v=41,-44 +p=25,93 v=-30,-69 +p=33,45 v=4,-96 +p=57,15 v=59,10 +p=6,74 v=61,-43 +p=9,43 v=-64,51 +p=69,67 v=10,-51 +p=44,93 v=60,93 +p=39,77 v=94,-39 +p=38,86 v=86,12 +p=43,98 v=26,75 +p=64,49 v=-87,-84 +p=13,64 v=42,30 +p=69,91 v=-39,-91 +p=83,100 v=-12,61 +p=28,66 v=-62,-27 +p=15,90 v=-3,-46 +p=0,42 v=27,18 +p=56,99 v=-24,-67 +p=70,68 v=-61,74 +p=7,8 v=-70,35 +p=5,100 v=16,-13 +p=83,49 v=-22,73 +p=63,18 v=64,-56 +p=78,84 v=28,-57 +p=89,39 v=36,26 +p=72,31 v=-80,51 +p=72,88 v=8,70 +p=29,8 v=34,65 +p=36,11 v=-86,39 +p=16,27 v=12,-52 +p=63,63 v=59,63 +p=1,4 v=-21,-79 +p=95,86 v=-81,-79 +p=30,27 v=90,21 +p=17,40 v=81,-5 +p=47,24 v=47,93 +p=4,23 v=31,-49 +p=61,34 v=-42,-78 +p=34,61 v=-62,44 +p=48,18 v=-12,-97 +p=32,81 v=-74,-75 +p=61,15 v=96,-98 +p=8,86 v=87,-54 +p=26,95 v=-63,71 +p=94,61 v=13,48 +p=26,101 v=94,-57 +p=24,102 v=4,2 +p=83,56 v=-56,44 +p=96,37 v=91,-8 +p=60,43 v=-18,5 +p=93,68 v=92,1 +p=79,57 v=-9,77 +p=65,68 v=-16,-51 +p=26,28 v=-44,-80 +p=39,22 v=-75,-23 +p=90,0 v=-73,83 +p=66,88 v=10,75 +p=61,55 v=-87,52 +p=43,2 v=45,68 +p=85,25 v=-91,-12 +p=14,79 v=-50,-20 +p=32,98 v=22,21 +p=85,59 v=74,-5 +p=4,50 v=-14,8 +p=99,85 v=35,-28 +p=76,80 v=-2,64 +p=49,36 v=-8,14 +p=60,65 v=-12,67 +p=4,84 v=-98,-82 +p=0,92 v=-74,-50 +p=88,94 v=26,36 +p=20,37 v=-7,-8 +p=81,28 v=21,-59 +p=95,33 v=-39,36 +p=26,45 v=-86,23 +p=82,19 v=2,-12 +p=85,60 v=32,-44 +p=5,60 v=79,10 +p=53,33 v=-12,62 +p=40,79 v=-71,-47 +p=75,31 v=-95,95 +p=43,2 v=41,-86 +p=17,86 v=-81,82 +p=10,15 v=-31,46 +p=7,74 v=-25,89 +p=69,8 v=-61,32 +p=82,65 v=-39,74 +p=73,101 v=-12,-79 +p=51,9 v=93,-16 +p=95,56 v=13,15 +p=96,67 v=34,29 +p=19,91 v=-31,89 +p=2,43 v=-96,-55 +p=68,60 v=17,-91 +p=17,86 v=8,-43 +p=5,95 v=16,71 +p=49,20 v=37,21 +p=6,67 v=-40,96 +p=47,95 v=-32,-76 +p=45,71 v=-81,2 +p=46,31 v=-34,-89 +p=49,17 v=-79,-97 +p=66,82 v=18,-95 +p=69,86 v=81,-21 +p=5,87 v=-10,-21 +p=84,81 v=47,97 +p=89,9 v=13,-60 +p=34,15 v=-67,-38 +p=51,46 v=-28,-91 +p=94,99 v=-21,-35 +p=15,20 v=3,48 +p=26,72 v=-32,13 +p=80,5 v=-43,-20 +p=64,82 v=-49,-75 +p=56,58 v=-94,81 +p=29,86 v=79,16 +p=98,60 v=-36,4 +p=23,47 v=-37,77 +p=48,66 v=63,78 +p=48,92 v=-97,74 +p=58,86 v=85,27 +p=99,85 v=57,97 +p=98,53 v=-28,-25 +p=72,44 v=-48,31 +p=35,67 v=75,30 +p=22,11 v=38,13 +p=95,41 v=-85,36 +p=3,55 v=-85,-66 +p=50,57 v=-94,11 +p=58,2 v=-42,-64 +p=45,3 v=-97,10 +p=1,30 v=97,-31 +p=75,68 v=13,-58 +p=79,101 v=62,-98 +p=20,26 v=83,25 +p=49,4 v=25,-16 +p=46,54 v=89,7 +p=86,42 v=-43,-81 +p=6,3 v=-99,-5 +p=74,50 v=-61,22 +p=40,13 v=-38,-57 +p=5,54 v=-5,-65 +p=55,66 v=10,-25 +p=52,82 v=-55,-28 +p=70,18 v=-68,-49 +p=54,10 v=-38,-16 +p=79,35 v=54,-45 +p=95,64 v=80,6 +p=88,62 v=-56,78 +p=65,28 v=-39,43 +p=69,29 v=-35,-78 +p=68,99 v=-5,79 +p=37,22 v=30,-49 +p=98,55 v=-92,-84 +p=3,1 v=-10,-64 +p=56,60 v=49,26 +p=38,25 v=-56,91 +p=93,22 v=46,87 +p=97,11 v=13,-86 +p=16,15 v=23,76 +p=34,58 v=45,15 +p=20,59 v=-12,72 +p=30,78 v=-25,50 +p=61,59 v=-53,37 +p=33,2 v=75,-24 +p=36,5 v=81,43 +p=90,93 v=-10,50 +p=60,74 v=14,96 +p=56,40 v=-56,96 +p=79,6 v=77,-71 +p=87,64 v=-2,-62 +p=25,66 v=64,-47 +p=4,13 v=-66,54 +p=47,57 v=67,59 +p=39,64 v=90,-88 +p=81,68 v=-73,52 +p=59,36 v=-42,-89 +p=0,4 v=14,83 +p=20,5 v=-67,-9 +p=100,45 v=20,-44 +p=85,27 v=54,-48 +p=58,54 v=-16,-11 +p=71,4 v=-54,42 +p=22,98 v=83,-46 +p=32,7 v=-26,32 +p=33,52 v=37,-62 +p=82,33 v=-28,14 +p=90,11 v=-88,-97 +p=39,79 v=52,45 +p=60,15 v=70,-79 +p=3,38 v=-70,-29 +p=10,80 v=27,-10 +p=22,22 v=-89,7 +p=23,29 v=-74,49 +p=45,34 v=26,51 +p=59,63 v=-3,41 +p=9,28 v=-82,89 +p=18,42 v=-10,-67 +p=2,80 v=-3,-80 +p=94,73 v=13,89 +p=89,73 v=-50,-40 +p=22,85 v=71,-38 +p=20,99 v=52,-10 +p=40,89 v=52,27 +p=47,99 v=-18,59 +p=71,55 v=25,-47 +p=69,102 v=-31,-64 +p=67,43 v=-91,44 +p=79,27 v=69,-72 +p=43,53 v=89,22 +p=59,30 v=26,-46 +p=53,54 v=37,-33 +p=72,11 v=-80,-27 +p=56,63 v=33,-14 +p=53,61 v=24,86 +p=40,77 v=-17,-66 +p=88,88 v=53,33 +p=40,82 v=56,-76 +p=16,2 v=60,-94 +p=17,83 v=-78,-3 +p=16,99 v=-44,13 +p=88,19 v=-73,40 +p=61,16 v=36,-30 +p=1,90 v=-21,-80 +p=65,92 v=-95,-30 +p=100,98 v=24,31 +p=45,54 v=-42,30 +p=87,60 v=56,-57 +p=97,43 v=75,-96 +p=54,64 v=3,69 +p=73,29 v=-5,84 +p=69,5 v=-99,-27 +p=18,8 v=98,94 +p=9,4 v=92,61 +p=69,50 v=38,34 +p=9,52 v=-85,74 +p=33,16 v=34,-86 +p=38,68 v=15,45 +p=93,82 v=25,17 +p=22,34 v=6,-51 +p=40,81 v=79,-6 +p=62,20 v=23,86 +p=2,21 v=43,-60 +p=19,79 v=-74,38 +p=70,3 v=-20,-81 +p=57,66 v=-4,-22 +p=54,36 v=65,-30 +p=48,83 v=-60,-43 +p=71,41 v=92,-56 +p=90,66 v=-77,-62 +p=65,15 v=-24,-79 +p=49,48 v=-53,81 +p=41,15 v=71,-49 +p=59,58 v=83,18 +p=27,84 v=-38,64 +p=94,34 v=2,36 +p=12,34 v=-55,-30 +p=64,40 v=-27,29 +p=74,28 v=-91,-63 +p=81,86 v=-77,-10 +p=83,26 v=32,47 +p=20,44 v=-63,-96 +p=1,48 v=-51,-11 +p=69,18 v=-5,-82 +p=63,18 v=16,-28 +p=88,1 v=-2,46 +p=80,44 v=2,33 +p=10,35 v=72,10 +p=79,35 v=45,-72 +p=6,13 v=-18,3 +p=40,43 v=41,-4 +p=100,18 v=-51,-93 +p=71,54 v=94,37 +p=4,93 v=50,97 +p=9,56 v=76,-77 +p=89,38 v=-50,92 +p=96,31 v=35,58 +p=73,11 v=96,-86 +p=36,67 v=-60,27 +p=44,77 v=-82,71 +p=67,53 v=96,61 +p=14,82 v=72,42 +p=96,14 v=65,98 +p=91,8 v=78,-72 +p=44,80 v=-22,-67 +p=47,59 v=-75,48 +p=90,52 v=-65,-3 +p=10,41 v=-29,-70 +p=57,90 v=-75,13 +p=42,43 v=67,-85 +p=51,72 v=33,79 +p=33,87 v=60,56 +p=93,55 v=-77,-44 +p=31,29 v=64,-19 +p=91,81 v=21,86 +p=100,99 v=-66,-24 +p=68,90 v=29,23 +p=43,25 v=-6,-49 +p=62,37 v=-98,-74 +p=57,11 v=97,-83 +p=89,85 v=74,14 +p=29,18 v=48,-13 +p=84,92 v=-43,-93 +p=33,5 v=19,94 +p=2,85 v=-58,12 +p=18,95 v=-41,42 +p=75,59 v=34,91 +p=0,56 v=-51,-58 +p=85,10 v=-91,-37 +p=64,20 v=-42,-23 +p=28,30 v=-27,7 +p=18,46 v=-96,73 +p=33,93 v=-93,-53 +p=29,64 v=30,-29 +p=65,53 v=-42,15 +p=26,92 v=11,62 +p=69,34 v=-99,-4 +p=44,15 v=-94,-64 +p=24,42 v=-22,88 +p=37,8 v=41,87 +p=22,77 v=-54,-54 +p=9,13 v=-18,85 +p=90,97 v=46,36 +p=37,61 v=64,93 +p=96,78 v=80,-47 +p=92,62 v=6,74 +p=19,20 v=-44,-23 +p=63,43 v=-16,-4 +p=85,0 v=-73,-64 +p=37,53 v=-11,-81 +p=28,55 v=11,-40 +p=77,22 v=-72,-67 +p=88,86 v=47,60 +p=43,50 v=-19,-95 +p=46,28 v=11,3 +p=16,5 v=28,66 +p=85,85 v=-36,-98 +p=95,15 v=9,17 +p=46,70 v=-64,82 +p=24,49 v=38,-84 +p=94,5 v=-24,-83 +p=59,73 v=-98,49 +p=13,75 v=72,12 +p=68,27 v=-57,-5 +p=13,71 v=-55,-84 +p=57,12 v=-68,28 +p=21,90 v=-45,16 +p=38,4 v=-93,21 +p=66,96 v=-72,-13 +p=34,95 v=-41,-90 +p=85,39 v=-18,-30 +p=3,94 v=9,97 +p=89,12 v=5,-67 +p=44,58 v=-4,-62 diff --git a/resources/2024/day14dory.txt b/resources/2024/day14dory.txt new file mode 100644 index 0000000..f12d689 --- /dev/null +++ b/resources/2024/day14dory.txt @@ -0,0 +1,500 @@ +p=70,7 v=75,-38 +p=67,47 v=92,-45 +p=91,51 v=23,10 +p=55,16 v=69,6 +p=76,64 v=-29,65 +p=89,18 v=-45,64 +p=18,90 v=70,61 +p=61,97 v=-53,-82 +p=71,38 v=-20,-55 +p=15,72 v=-10,-64 +p=53,77 v=-99,98 +p=58,99 v=-74,-58 +p=49,54 v=2,-85 +p=33,23 v=-84,-70 +p=10,36 v=5,-70 +p=100,64 v=-79,18 +p=85,52 v=54,-89 +p=88,76 v=-45,-81 +p=37,98 v=76,-55 +p=58,97 v=6,43 +p=24,10 v=30,-87 +p=12,73 v=-94,-87 +p=40,31 v=-60,-48 +p=56,32 v=-69,-18 +p=71,86 v=-47,16 +p=0,45 v=60,-27 +p=79,52 v=14,13 +p=53,97 v=-53,-64 +p=90,100 v=16,-42 +p=23,93 v=-50,57 +p=41,67 v=-23,-36 +p=69,1 v=-76,-42 +p=35,30 v=-44,-81 +p=52,77 v=80,-95 +p=4,85 v=-73,-78 +p=83,15 v=-68,-43 +p=58,55 v=-52,95 +p=23,70 v=24,-37 +p=7,81 v=62,35 +p=6,100 v=-56,-78 +p=87,60 v=-45,-31 +p=28,22 v=91,-79 +p=68,18 v=-47,-29 +p=6,79 v=98,89 +p=56,60 v=-44,19 +p=85,74 v=81,-41 +p=12,65 v=83,-94 +p=70,19 v=29,66 +p=36,64 v=-63,90 +p=79,34 v=12,-93 +p=19,86 v=95,-15 +p=45,21 v=21,96 +p=2,32 v=-13,72 +p=28,52 v=1,-14 +p=26,57 v=13,-85 +p=39,5 v=72,3 +p=17,84 v=-35,-59 +p=87,42 v=-63,38 +p=97,50 v=90,63 +p=23,23 v=-92,46 +p=28,60 v=-69,-99 +p=84,24 v=56,42 +p=28,83 v=-18,69 +p=14,79 v=-81,-83 +p=70,3 v=-13,-76 +p=14,62 v=47,-54 +p=14,11 v=-46,25 +p=21,87 v=68,12 +p=91,93 v=-62,-68 +p=87,61 v=16,31 +p=92,53 v=54,-17 +p=50,54 v=42,76 +p=57,91 v=11,20 +p=65,20 v=24,39 +p=67,32 v=37,-69 +p=20,43 v=9,54 +p=69,32 v=10,-75 +p=20,47 v=-92,-31 +p=53,30 v=-17,-97 +p=1,82 v=-98,53 +p=46,54 v=47,-46 +p=70,4 v=-36,-60 +p=59,18 v=42,-16 +p=62,14 v=-36,11 +p=84,31 v=54,-93 +p=9,70 v=-22,-27 +p=5,26 v=-87,-98 +p=89,46 v=-16,-9 +p=98,6 v=-1,-92 +p=75,8 v=75,-24 +p=90,83 v=71,-24 +p=47,6 v=95,97 +p=20,35 v=-71,59 +p=60,18 v=63,-70 +p=98,35 v=43,-40 +p=97,91 v=39,61 +p=5,79 v=84,-20 +p=90,61 v=16,-63 +p=93,66 v=37,80 +p=41,20 v=-86,60 +p=81,49 v=-87,19 +p=76,79 v=-67,28 +p=84,4 v=-66,47 +p=7,69 v=-43,93 +p=60,46 v=26,-91 +p=12,101 v=66,79 +p=15,15 v=-15,-37 +p=6,80 v=-20,-54 +p=38,87 v=-59,-95 +p=0,5 v=62,83 +p=38,95 v=76,-37 +p=34,7 v=-86,88 +p=45,18 v=-63,69 +p=14,24 v=-27,-97 +p=38,40 v=74,-62 +p=94,48 v=32,24 +p=27,6 v=11,78 +p=52,11 v=-7,-8 +p=67,30 v=-93,-98 +p=49,82 v=-95,-51 +p=67,40 v=-57,-45 +p=61,63 v=48,9 +p=93,34 v=64,-44 +p=10,86 v=-50,62 +p=12,26 v=45,-88 +p=32,29 v=-33,-30 +p=19,83 v=-18,-77 +p=97,73 v=-20,44 +p=40,29 v=99,-75 +p=21,63 v=-31,67 +p=77,81 v=98,77 +p=19,25 v=28,82 +p=10,86 v=67,-12 +p=11,93 v=48,-25 +p=66,20 v=-13,24 +p=15,51 v=-75,-89 +p=82,31 v=-82,-75 +p=100,28 v=1,-30 +p=52,50 v=-42,-71 +p=22,74 v=-37,-19 +p=32,26 v=-23,-52 +p=13,75 v=-81,62 +p=71,92 v=10,-73 +p=18,54 v=-67,32 +p=46,54 v=-20,-21 +p=79,102 v=-21,-78 +p=58,37 v=-81,51 +p=33,93 v=72,3 +p=87,60 v=3,-7 +p=32,6 v=97,10 +p=25,81 v=11,-55 +p=63,28 v=88,73 +p=32,30 v=-63,5 +p=51,95 v=61,7 +p=54,52 v=-78,-67 +p=90,86 v=71,-95 +p=6,50 v=-3,99 +p=89,16 v=7,66 +p=90,91 v=66,-39 +p=44,6 v=78,65 +p=30,54 v=32,67 +p=69,34 v=-11,-75 +p=49,10 v=59,-7 +p=88,23 v=75,-52 +p=51,72 v=-59,80 +p=28,100 v=-29,-25 +p=34,35 v=15,28 +p=57,18 v=-57,10 +p=53,21 v=23,33 +p=70,70 v=-13,-68 +p=74,49 v=-99,-2 +p=2,46 v=47,-57 +p=75,48 v=65,-49 +p=17,95 v=-39,-79 +p=68,68 v=51,52 +p=25,66 v=-32,-85 +p=100,63 v=-41,58 +p=21,30 v=-33,-21 +p=31,65 v=-69,-81 +p=40,12 v=3,75 +p=90,41 v=-30,-13 +p=60,53 v=65,90 +p=80,44 v=35,-26 +p=26,21 v=-12,-52 +p=28,56 v=-48,49 +p=12,43 v=42,-56 +p=71,13 v=-34,38 +p=27,61 v=-50,-58 +p=95,89 v=-24,-83 +p=10,8 v=26,-2 +p=14,6 v=-43,-84 +p=31,44 v=34,95 +p=40,14 v=70,-26 +p=94,54 v=-62,-22 +p=100,97 v=3,-15 +p=8,95 v=61,-62 +p=25,13 v=-50,-44 +p=88,38 v=-62,15 +p=7,15 v=62,20 +p=49,92 v=82,-33 +p=15,58 v=41,-99 +p=26,75 v=17,-28 +p=62,38 v=-38,46 +p=86,59 v=10,-50 +p=11,91 v=-58,75 +p=94,98 v=79,-38 +p=43,54 v=-3,-71 +p=85,32 v=12,90 +p=31,22 v=-48,74 +p=96,70 v=56,49 +p=34,33 v=-15,-35 +p=3,38 v=-18,1 +p=18,18 v=68,-11 +p=58,42 v=42,-21 +p=55,30 v=60,42 +p=36,91 v=72,-28 +p=31,9 v=55,-38 +p=87,92 v=-4,20 +p=88,70 v=56,-36 +p=84,56 v=-97,29 +p=83,29 v=70,-23 +p=74,54 v=-32,-22 +p=50,92 v=-92,22 +p=33,85 v=34,-77 +p=20,92 v=28,-38 +p=32,51 v=68,-26 +p=4,90 v=76,-27 +p=55,93 v=-58,-4 +p=89,44 v=95,2 +p=92,85 v=-65,7 +p=67,44 v=-23,66 +p=55,33 v=93,-5 +p=60,78 v=71,30 +p=82,0 v=73,-38 +p=67,80 v=88,12 +p=98,59 v=87,-33 +p=22,27 v=-37,19 +p=70,70 v=-9,13 +p=13,10 v=-98,88 +p=84,29 v=77,-63 +p=6,10 v=9,-42 +p=25,94 v=-90,3 +p=64,77 v=48,89 +p=58,3 v=6,43 +p=7,30 v=-43,-98 +p=42,42 v=90,-33 +p=8,82 v=-71,3 +p=18,94 v=30,12 +p=92,40 v=-23,49 +p=54,13 v=2,11 +p=47,64 v=-15,4 +p=41,52 v=-23,5 +p=52,40 v=61,32 +p=12,43 v=-35,72 +p=32,23 v=80,38 +p=70,57 v=88,67 +p=56,28 v=-97,55 +p=31,50 v=-94,-18 +p=80,44 v=43,18 +p=69,100 v=27,34 +p=77,38 v=94,-75 +p=54,49 v=-54,62 +p=51,62 v=82,-99 +p=81,4 v=20,98 +p=13,54 v=-37,39 +p=95,28 v=-16,6 +p=54,9 v=-37,-42 +p=5,13 v=-58,-20 +p=17,79 v=70,-10 +p=12,0 v=85,-78 +p=42,0 v=69,35 +p=85,18 v=89,38 +p=59,14 v=50,-78 +p=23,41 v=-10,5 +p=48,1 v=21,83 +p=29,59 v=-65,-40 +p=84,10 v=43,10 +p=89,90 v=22,3 +p=46,31 v=-63,-3 +p=47,63 v=-61,27 +p=90,11 v=75,-38 +p=98,91 v=98,58 +p=85,79 v=-87,-50 +p=0,73 v=-39,93 +p=41,47 v=-4,-40 +p=5,60 v=-33,-80 +p=23,49 v=35,-77 +p=92,95 v=-23,-31 +p=74,83 v=71,-23 +p=70,88 v=31,84 +p=91,64 v=24,-27 +p=34,92 v=-25,-38 +p=88,50 v=76,30 +p=43,29 v=-69,-71 +p=39,76 v=59,-35 +p=96,85 v=-85,8 +p=78,21 v=-68,78 +p=51,15 v=-85,14 +p=68,32 v=8,-39 +p=41,62 v=36,-27 +p=23,37 v=-65,-30 +p=24,23 v=-12,-35 +p=43,5 v=-65,-78 +p=11,37 v=99,-81 +p=97,100 v=16,-7 +p=18,55 v=-56,54 +p=81,35 v=-28,55 +p=11,14 v=5,-43 +p=95,25 v=-24,-12 +p=9,72 v=43,-5 +p=7,60 v=-14,-16 +p=87,75 v=35,-90 +p=18,50 v=91,81 +p=91,98 v=-70,83 +p=70,65 v=-26,-95 +p=35,45 v=1,-72 +p=49,45 v=78,68 +p=87,69 v=-11,-76 +p=23,71 v=-31,26 +p=26,84 v=-31,44 +p=62,68 v=44,14 +p=13,46 v=-18,-52 +p=98,11 v=79,52 +p=12,55 v=47,63 +p=25,59 v=-44,45 +p=30,90 v=-63,83 +p=5,79 v=-96,-24 +p=6,97 v=-6,92 +p=79,39 v=-75,-66 +p=57,30 v=-1,94 +p=29,31 v=91,46 +p=23,83 v=-13,-79 +p=72,6 v=25,97 +p=21,43 v=-48,73 +p=4,35 v=-58,40 +p=67,83 v=-19,-81 +p=9,22 v=76,-71 +p=93,73 v=-28,-15 +p=15,23 v=-73,78 +p=66,12 v=-68,-3 +p=77,80 v=65,-58 +p=45,63 v=17,49 +p=44,31 v=99,1 +p=6,17 v=66,78 +p=17,86 v=-52,-15 +p=77,69 v=12,-32 +p=36,45 v=-9,72 +p=5,93 v=24,-64 +p=10,96 v=60,-74 +p=29,49 v=30,50 +p=7,18 v=64,6 +p=64,69 v=63,-37 +p=14,5 v=81,-38 +p=66,70 v=27,80 +p=98,66 v=-81,31 +p=12,84 v=-29,-19 +p=86,34 v=29,-17 +p=51,62 v=-78,-94 +p=73,84 v=77,-79 +p=41,49 v=-65,-49 +p=24,12 v=-4,-25 +p=88,76 v=-24,80 +p=77,97 v=92,-96 +p=0,9 v=-1,-34 +p=57,101 v=28,-29 +p=38,39 v=95,50 +p=78,71 v=-43,75 +p=51,15 v=47,-52 +p=33,48 v=-2,-75 +p=83,52 v=96,-31 +p=37,48 v=70,45 +p=99,64 v=-41,-9 +p=97,68 v=-45,-18 +p=97,93 v=58,21 +p=21,76 v=-7,-82 +p=100,24 v=-24,-65 +p=14,98 v=-67,-5 +p=18,14 v=22,-25 +p=95,81 v=53,-99 +p=3,12 v=-21,-93 +p=17,21 v=68,86 +p=77,91 v=-68,97 +p=55,99 v=42,65 +p=47,41 v=99,-89 +p=57,13 v=-99,47 +p=57,81 v=-76,66 +p=73,84 v=-13,93 +p=54,96 v=25,12 +p=76,57 v=-68,27 +p=65,2 v=-55,30 +p=13,81 v=32,13 +p=11,9 v=5,-47 +p=40,41 v=55,-35 +p=91,26 v=-5,-70 +p=62,42 v=80,-30 +p=54,26 v=44,20 +p=17,92 v=7,84 +p=97,10 v=-43,-20 +p=61,68 v=-93,-27 +p=5,76 v=-36,59 +p=22,4 v=91,25 +p=52,95 v=82,-11 +p=17,78 v=33,20 +p=63,20 v=82,-82 +p=11,42 v=11,-98 +p=75,5 v=8,-87 +p=8,35 v=-39,-64 +p=34,87 v=-29,-96 +p=72,45 v=89,-60 +p=73,67 v=-93,84 +p=2,22 v=62,56 +p=2,69 v=68,33 +p=77,46 v=25,-90 +p=77,39 v=40,10 +p=82,35 v=-11,-24 +p=10,11 v=87,-30 +p=11,7 v=-48,47 +p=47,37 v=-31,-69 +p=87,21 v=35,-79 +p=73,21 v=-33,86 +p=18,69 v=2,-8 +p=71,25 v=67,-88 +p=64,84 v=-78,13 +p=6,25 v=-43,50 +p=8,36 v=47,64 +p=56,2 v=-95,-42 +p=19,92 v=-18,88 +p=31,89 v=-27,97 +p=35,55 v=-68,78 +p=11,45 v=49,66 +p=34,63 v=-44,94 +p=38,49 v=-86,-31 +p=37,0 v=30,48 +p=88,38 v=50,-30 +p=0,45 v=-41,-98 +p=71,57 v=25,-32 +p=50,51 v=-17,-81 +p=75,62 v=-9,-26 +p=62,3 v=80,-87 +p=48,91 v=3,-71 +p=42,20 v=45,25 +p=2,78 v=98,88 +p=59,28 v=-91,55 +p=48,91 v=-61,43 +p=73,56 v=72,85 +p=6,49 v=22,-98 +p=4,42 v=-98,-71 +p=23,10 v=-27,-20 +p=87,96 v=-36,37 +p=31,102 v=-48,25 +p=67,46 v=50,-68 +p=51,93 v=23,-37 +p=13,45 v=-35,76 +p=75,22 v=99,-92 +p=17,87 v=80,-19 +p=42,94 v=-2,-69 +p=31,78 v=34,66 +p=14,60 v=19,24 +p=34,7 v=55,-25 +p=14,76 v=89,-23 +p=80,46 v=67,95 +p=38,80 v=-52,58 +p=32,88 v=-88,-82 +p=60,82 v=-97,-41 +p=74,41 v=-44,-49 +p=89,11 v=35,-61 +p=40,81 v=57,-10 +p=62,30 v=65,91 +p=74,40 v=4,64 +p=93,32 v=-5,69 +p=8,38 v=-58,10 +p=31,38 v=-66,89 +p=28,42 v=38,-26 +p=97,52 v=-20,-49 +p=83,51 v=-67,-52 +p=45,32 v=-84,-34 +p=61,80 v=-13,-68 +p=6,78 v=62,26 +p=89,102 v=-85,25 +p=24,78 v=54,-75 +p=50,23 v=31,88 +p=2,59 v=56,54 +p=86,21 v=98,-38 +p=98,90 v=-64,-64 +p=22,23 v=-25,86 +p=88,99 v=96,-42 +p=17,40 v=85,26 +p=42,13 v=-23,-74 +p=14,90 v=95,11 +p=47,45 v=-61,95 +p=49,21 v=-59,24 +p=65,86 v=86,-77 +p=75,30 v=90,13 +p=46,83 v=-99,35 +p=90,38 v=-52,-84 +p=8,42 v=-14,34 +p=27,73 v=-23,40 +p=17,3 v=9,-96 +p=87,47 v=1,-80 +p=43,58 v=81,-1 \ No newline at end of file diff --git a/resources/2024/day14lucy.txt b/resources/2024/day14lucy.txt new file mode 100644 index 0000000..2f1206e --- /dev/null +++ b/resources/2024/day14lucy.txt @@ -0,0 +1,500 @@ +p=50,78 v=89,45 +p=65,96 v=88,-21 +p=23,63 v=61,46 +p=61,76 v=25,-67 +p=23,90 v=6,91 +p=1,47 v=-17,-9 +p=84,56 v=-73,-24 +p=78,66 v=-20,-76 +p=49,59 v=-22,17 +p=73,95 v=34,-64 +p=99,76 v=67,-40 +p=59,77 v=-49,-4 +p=15,30 v=24,65 +p=89,2 v=-19,-38 +p=28,70 v=93,66 +p=39,33 v=24,-42 +p=14,42 v=-33,-49 +p=68,85 v=-37,-47 +p=91,0 v=-45,12 +p=88,92 v=78,-24 +p=19,63 v=-70,-10 +p=69,4 v=-40,90 +p=61,91 v=64,-11 +p=47,95 v=-77,46 +p=20,10 v=-23,-63 +p=98,82 v=90,96 +p=90,30 v=4,74 +p=0,28 v=-73,8 +p=88,102 v=51,-51 +p=66,29 v=26,1 +p=19,20 v=-61,-15 +p=13,18 v=6,71 +p=12,39 v=67,24 +p=41,67 v=-24,-23 +p=78,10 v=-59,-68 +p=30,2 v=-35,85 +p=86,47 v=-95,53 +p=44,36 v=-69,-89 +p=19,20 v=-87,-95 +p=65,3 v=73,16 +p=95,29 v=43,61 +p=66,50 v=49,-69 +p=28,92 v=-25,19 +p=74,60 v=-6,-98 +p=15,80 v=92,-27 +p=80,12 v=18,-62 +p=72,34 v=19,-65 +p=46,75 v=33,-74 +p=14,100 v=-79,99 +p=94,97 v=74,49 +p=46,13 v=-45,-61 +p=93,39 v=-9,-64 +p=100,45 v=45,-76 +p=62,19 v=-76,85 +p=18,85 v=30,-71 +p=24,68 v=84,-73 +p=31,20 v=-86,-35 +p=76,46 v=-59,77 +p=27,52 v=-95,77 +p=52,81 v=1,59 +p=43,60 v=-71,-38 +p=59,38 v=-6,24 +p=70,65 v=26,-23 +p=11,40 v=60,-33 +p=26,77 v=62,43 +p=24,93 v=99,-51 +p=46,84 v=24,76 +p=48,30 v=58,-87 +p=46,100 v=21,98 +p=24,39 v=-23,84 +p=25,6 v=47,-78 +p=89,73 v=-73,23 +p=4,49 v=-96,14 +p=69,61 v=52,-10 +p=96,68 v=-96,99 +p=17,12 v=-30,75 +p=91,47 v=-98,-87 +p=50,38 v=71,67 +p=68,58 v=-13,17 +p=39,30 v=84,93 +p=93,19 v=-66,98 +p=31,7 v=-8,75 +p=7,81 v=-95,-4 +p=38,43 v=8,-89 +p=24,21 v=-98,3 +p=72,43 v=25,-13 +p=4,98 v=-71,78 +p=79,65 v=-91,-57 +p=49,47 v=-97,23 +p=37,7 v=-15,45 +p=41,74 v=-15,36 +p=58,30 v=-92,71 +p=72,92 v=68,-7 +p=1,79 v=-4,-75 +p=82,99 v=42,6 +p=62,51 v=57,63 +p=10,43 v=48,-74 +p=74,70 v=65,-40 +p=25,35 v=-1,-39 +p=50,71 v=37,68 +p=51,84 v=67,55 +p=71,25 v=-45,-98 +p=47,14 v=-7,28 +p=70,99 v=69,46 +p=21,44 v=-94,-16 +p=52,40 v=-83,-49 +p=76,99 v=-71,63 +p=21,92 v=-32,-34 +p=78,27 v=-85,-55 +p=42,92 v=-76,-61 +p=50,29 v=95,77 +p=72,10 v=65,58 +p=92,48 v=20,-1 +p=42,80 v=55,-98 +p=69,96 v=41,62 +p=68,35 v=-91,-45 +p=18,56 v=-33,37 +p=52,96 v=1,49 +p=22,87 v=53,99 +p=84,31 v=19,41 +p=87,38 v=58,-13 +p=9,13 v=-18,98 +p=40,0 v=-94,-31 +p=71,16 v=-62,76 +p=41,88 v=-46,99 +p=27,97 v=-15,-4 +p=25,54 v=23,-36 +p=61,0 v=-60,-21 +p=28,75 v=41,-79 +p=64,46 v=-8,34 +p=97,26 v=37,74 +p=32,67 v=-48,-93 +p=18,81 v=53,-2 +p=12,101 v=30,-1 +p=80,40 v=-90,-16 +p=48,16 v=-69,61 +p=7,89 v=52,49 +p=93,0 v=-35,-61 +p=24,52 v=31,53 +p=37,67 v=-98,36 +p=92,77 v=28,46 +p=76,59 v=-74,-21 +p=96,63 v=58,57 +p=62,2 v=-68,-68 +p=39,20 v=-39,-25 +p=5,12 v=60,88 +p=75,35 v=-37,88 +p=77,24 v=-52,-13 +p=42,0 v=92,-72 +p=33,61 v=-91,-6 +p=10,74 v=23,-17 +p=6,73 v=37,-54 +p=76,99 v=2,-71 +p=53,20 v=71,91 +p=82,31 v=71,-82 +p=20,87 v=-40,26 +p=52,47 v=-45,-69 +p=32,38 v=43,-55 +p=8,85 v=-56,-77 +p=11,0 v=68,2 +p=40,30 v=-46,-72 +p=26,53 v=27,-43 +p=5,40 v=98,-90 +p=46,4 v=39,-85 +p=15,36 v=-95,87 +p=0,4 v=-49,42 +p=69,11 v=-86,-87 +p=47,47 v=86,-17 +p=95,88 v=-73,26 +p=2,5 v=53,52 +p=92,84 v=63,79 +p=25,0 v=47,-35 +p=83,55 v=-43,-46 +p=95,43 v=-3,40 +p=30,60 v=-79,-27 +p=89,79 v=-39,-80 +p=10,19 v=6,-95 +p=70,64 v=87,10 +p=51,93 v=79,-31 +p=30,82 v=85,16 +p=66,75 v=-51,40 +p=79,70 v=-20,-20 +p=59,60 v=25,63 +p=86,17 v=75,-62 +p=3,62 v=-18,-47 +p=43,20 v=24,91 +p=23,13 v=56,93 +p=32,13 v=71,76 +p=12,10 v=53,-28 +p=20,86 v=-71,-74 +p=91,90 v=-97,-75 +p=76,66 v=-67,83 +p=54,54 v=-84,64 +p=66,70 v=-12,36 +p=30,73 v=54,43 +p=62,22 v=-21,31 +p=11,92 v=-94,76 +p=47,101 v=93,-25 +p=37,21 v=96,19 +p=93,51 v=20,97 +p=46,31 v=-54,61 +p=26,99 v=-64,-11 +p=6,91 v=-55,-90 +p=95,7 v=95,33 +p=1,89 v=5,19 +p=69,24 v=-83,81 +p=82,37 v=-66,-92 +p=20,66 v=-80,-77 +p=45,87 v=-47,-11 +p=19,77 v=8,1 +p=61,12 v=-70,79 +p=59,48 v=14,44 +p=68,70 v=48,-37 +p=77,94 v=42,-84 +p=47,31 v=1,-32 +p=22,1 v=-40,95 +p=41,98 v=-53,16 +p=38,49 v=48,77 +p=21,98 v=-71,12 +p=67,92 v=-13,69 +p=99,99 v=-80,-84 +p=50,18 v=-77,-45 +p=71,35 v=-36,-22 +p=61,65 v=-68,10 +p=96,25 v=56,-21 +p=77,65 v=-20,-40 +p=56,81 v=56,29 +p=81,19 v=-97,-15 +p=31,12 v=-62,-38 +p=92,83 v=51,-4 +p=70,23 v=-44,45 +p=55,61 v=-27,-33 +p=9,48 v=99,40 +p=20,36 v=-80,-52 +p=83,46 v=-35,-59 +p=52,43 v=58,-88 +p=2,88 v=-49,-34 +p=31,99 v=54,59 +p=76,21 v=11,31 +p=5,51 v=-27,35 +p=57,88 v=2,19 +p=86,41 v=-51,60 +p=82,58 v=-98,-96 +p=100,70 v=-38,-85 +p=81,47 v=-10,-30 +p=96,88 v=82,6 +p=24,28 v=62,98 +p=44,71 v=-69,-50 +p=75,11 v=-99,-52 +p=35,80 v=16,-37 +p=2,21 v=-27,84 +p=80,14 v=-43,98 +p=49,76 v=80,21 +p=84,96 v=-82,67 +p=32,79 v=-95,74 +p=35,81 v=-90,-68 +p=47,45 v=-22,-6 +p=69,45 v=41,-83 +p=63,21 v=1,-92 +p=57,1 v=-98,4 +p=34,4 v=-93,-81 +p=46,63 v=-99,47 +p=8,99 v=5,29 +p=32,27 v=54,-42 +p=27,98 v=17,-98 +p=63,22 v=81,98 +p=75,36 v=-86,66 +p=58,5 v=-67,-58 +p=82,20 v=81,-57 +p=82,67 v=81,83 +p=58,58 v=17,-13 +p=18,89 v=14,-21 +p=76,63 v=24,65 +p=38,48 v=-85,-99 +p=17,34 v=45,21 +p=77,70 v=3,-50 +p=56,82 v=17,76 +p=64,97 v=94,-71 +p=16,40 v=37,84 +p=29,96 v=-61,-7 +p=12,79 v=-95,-34 +p=1,72 v=63,38 +p=0,20 v=60,68 +p=43,60 v=-6,40 +p=20,22 v=-17,58 +p=47,49 v=-70,94 +p=12,29 v=-25,-32 +p=22,69 v=-44,-22 +p=44,78 v=31,33 +p=86,50 v=76,-19 +p=0,92 v=35,16 +p=42,8 v=-39,87 +p=30,1 v=14,61 +p=41,57 v=18,-84 +p=83,82 v=-97,36 +p=72,7 v=-78,62 +p=17,4 v=-95,12 +p=15,15 v=60,73 +p=80,79 v=-59,56 +p=49,76 v=-22,-47 +p=58,82 v=26,62 +p=59,101 v=-82,96 +p=78,56 v=-97,-56 +p=19,62 v=85,-44 +p=21,4 v=61,-91 +p=80,66 v=-12,-27 +p=66,17 v=96,28 +p=57,6 v=-45,-38 +p=24,70 v=61,-90 +p=4,12 v=68,-58 +p=27,37 v=15,-59 +p=10,66 v=-33,-50 +p=22,64 v=95,-38 +p=47,44 v=24,-39 +p=96,28 v=75,71 +p=95,20 v=32,30 +p=38,52 v=-89,10 +p=88,94 v=96,-6 +p=93,31 v=-38,18 +p=61,79 v=46,-3 +p=22,27 v=-33,5 +p=77,62 v=81,-60 +p=63,13 v=-94,81 +p=39,49 v=93,89 +p=7,37 v=-2,-89 +p=59,2 v=24,-58 +p=82,32 v=-4,-45 +p=28,55 v=-70,-13 +p=36,49 v=-93,90 +p=16,74 v=53,-20 +p=56,69 v=-84,93 +p=40,25 v=-93,-89 +p=73,60 v=-75,90 +p=28,82 v=-47,-27 +p=35,67 v=-8,-73 +p=76,17 v=68,63 +p=33,43 v=1,37 +p=5,7 v=-52,-34 +p=79,49 v=89,60 +p=78,59 v=20,57 +p=96,31 v=-93,-50 +p=24,88 v=78,-24 +p=12,39 v=37,-16 +p=60,15 v=-21,45 +p=25,17 v=-40,-45 +p=9,63 v=-42,13 +p=46,48 v=8,1 +p=16,85 v=18,48 +p=36,45 v=-41,95 +p=62,88 v=54,6 +p=46,57 v=-99,23 +p=57,67 v=79,-40 +p=88,96 v=4,-51 +p=82,19 v=66,-2 +p=9,73 v=68,-54 +p=66,38 v=9,74 +p=40,68 v=-15,83 +p=97,24 v=-64,-55 +p=52,56 v=-61,7 +p=55,15 v=-53,91 +p=98,66 v=78,-47 +p=27,46 v=-47,4 +p=100,19 v=36,-78 +p=5,9 v=6,82 +p=63,35 v=49,21 +p=40,101 v=8,-14 +p=98,19 v=-74,-28 +p=74,15 v=96,-65 +p=53,47 v=-84,34 +p=48,14 v=94,-98 +p=69,2 v=3,-71 +p=38,10 v=78,35 +p=74,76 v=-90,-60 +p=37,68 v=55,-70 +p=52,78 v=-31,48 +p=6,24 v=-73,24 +p=77,51 v=38,94 +p=73,45 v=-42,-72 +p=52,57 v=67,-51 +p=12,14 v=46,39 +p=6,11 v=65,21 +p=29,37 v=-54,-95 +p=41,24 v=-85,68 +p=78,102 v=96,-24 +p=13,25 v=-16,66 +p=8,53 v=6,90 +p=77,6 v=26,-71 +p=98,45 v=-95,84 +p=56,15 v=-27,-83 +p=82,98 v=-35,52 +p=24,42 v=-8,-29 +p=16,46 v=-78,-53 +p=25,15 v=-34,-54 +p=27,42 v=-11,-13 +p=12,69 v=46,3 +p=74,20 v=43,-9 +p=25,85 v=9,-93 +p=65,99 v=26,-1 +p=90,78 v=74,36 +p=41,6 v=77,-88 +p=85,62 v=-43,93 +p=34,61 v=33,2 +p=0,65 v=75,53 +p=40,30 v=48,-36 +p=31,1 v=47,48 +p=24,100 v=85,99 +p=97,24 v=-76,-67 +p=69,59 v=21,28 +p=82,72 v=7,96 +p=9,10 v=68,25 +p=26,91 v=85,49 +p=35,86 v=39,-24 +p=38,35 v=48,-99 +p=99,61 v=35,-61 +p=79,86 v=-98,99 +p=94,40 v=50,-22 +p=47,101 v=16,72 +p=53,61 v=41,-3 +p=27,101 v=-48,89 +p=28,82 v=15,29 +p=83,58 v=58,-10 +p=40,38 v=-14,-82 +p=52,78 v=79,16 +p=45,15 v=-47,78 +p=72,0 v=81,64 +p=72,51 v=-95,-32 +p=88,67 v=34,70 +p=89,72 v=12,-90 +p=61,31 v=25,-92 +p=68,53 v=48,70 +p=47,53 v=94,10 +p=15,53 v=-72,27 +p=80,8 v=20,-37 +p=28,66 v=-16,-17 +p=77,17 v=99,-11 +p=46,10 v=-9,-66 +p=76,71 v=78,-78 +p=26,62 v=-85,56 +p=87,9 v=-80,-71 +p=67,36 v=-67,18 +p=99,32 v=-80,61 +p=69,87 v=73,89 +p=6,100 v=-72,-48 +p=40,38 v=-93,-92 +p=89,12 v=81,-92 +p=85,97 v=-19,-88 +p=22,100 v=37,-4 +p=11,45 v=-33,34 +p=43,32 v=6,79 +p=47,102 v=-84,52 +p=89,94 v=-84,65 +p=75,14 v=-3,-11 +p=11,65 v=2,46 +p=76,59 v=65,35 +p=65,60 v=-75,40 +p=92,36 v=-32,-9 +p=69,16 v=11,15 +p=62,63 v=32,80 +p=47,50 v=-30,60 +p=13,98 v=-80,-98 +p=32,82 v=23,-74 +p=28,6 v=-92,35 +p=72,89 v=4,3 +p=72,57 v=-3,80 +p=6,44 v=89,-1 +p=33,19 v=31,-78 +p=43,101 v=-39,78 +p=46,51 v=-30,-63 +p=24,37 v=-79,-82 +p=51,46 v=64,44 +p=0,36 v=13,-99 +p=71,6 v=72,9 +p=40,98 v=78,-81 +p=36,33 v=96,-14 +p=63,100 v=95,12 +p=12,42 v=-41,87 +p=66,48 v=-52,77 +p=5,77 v=36,23 +p=94,54 v=80,24 +p=77,71 v=-50,1 +p=81,20 v=89,-85 +p=9,13 v=-95,42 +p=13,78 v=71,20 +p=36,43 v=-21,88 +p=56,94 v=87,69 +p=91,53 v=21,57 +p=80,84 v=-74,-44 +p=19,90 v=-87,96 +p=13,83 v=-63,-51 +p=14,91 v=5,56 +p=23,1 v=-72,-15 +p=50,44 v=71,-73 +p=6,49 v=45,67 +p=4,0 v=-9,-91 +p=70,8 v=-98,45 +p=30,42 v=-78,61 +p=87,74 v=-97,26 +p=35,89 v=92,-32 +p=23,61 v=94,41 +p=87,21 v=-82,28 diff --git a/resources/2024/day15.txt b/resources/2024/day15.txt new file mode 100644 index 0000000..0943a1a --- /dev/null +++ b/resources/2024/day15.txt @@ -0,0 +1,71 @@ +################################################## +#O.O.O.O.......O.#O...O.OO.O.#..O..O.....OO.O....# +#O.O.O..O.OOO.O......O..OO..#O.O....O.O#..O..OO..# +#.O.O....OO.OO.....OOO.......O............OO.O...# +#.......O.#.OO..#O.O....O..OO.O..........O#..O..## +#....O...O.....O#....O.O...#.O.O..O..#....#.....## +#.O.#.O..O.OO.O.O.OO..O#..#O...O##....#.O.O..O..O# +#..OO.##O..O....#.OOO.O#O..O...#.O..O.O.OO..OO...# +#.#......O##....O.O..O....O..OOOO......O.#O#...#.# +#.......#O.#....OO....O....OO....OO#.#......OOO..# +#.#..#.O....OO.#.......OO........O.O...#..OOO...## +#..O..O...OO#.......O..#O...#..OO..O..#.#..#..O..# +#O#...O.#O.OOO.O..OOO.......#......O#O.OO...#...O# +#.#O.#...##O.OO..###.O..O#..O...OO..O.....OOO#.#.# +##........O.#.O......O......##......O..OO...O.O..# +#......O.OO..O.......O...O.O#O.......O...OO.O..O.# +#.O....#.O.........O.....O......OO....OO.OOO..O#.# +#..O#..O....OOOO.O.O......OO....O.....O#OO..#O...# +###OO.O.....OOO.....OO#.....O....OOOO.#..O#..##O.# +#.O.....O.#.#OO.#.O........O......#O...#...#.OO..# +#..O..........O...O.#.#.OO#............OO#.#..O..# +#......O.....O.O..O..OO..O...O....OO.O##..O.....O# +#O#.#..#..O...O#.##O#.O#..#..O.OO.........OO..##.# +#..O..O##OO.#.#....O.#O.......OO.O....O.O.O..#...# +#OO..#......#.##OOOO....@..OO.O...O.O...OOOO....O# +#..OOO..#...OO..##O.O...#.....O...O#...O.O..O.#.O# +##...OO........O.#..#......O.O......O..#.O.....O## +#...#....O.#..OO.O....#.O##.O...#..#O........O..O# +#O.OO..O..O.#.O...O..#O...O.O..O....O.O.O..O.#.O.# +#...O...O...O....O...O.O....#...O.O..OO....O.O..O# +#OO#.#O..OOO.#O.O..O...O.OO..OO.......O.........O# +#...OOOO.OO#........O.#.....#.OO.O...O...O....OO.# +#O.O..O..OOO.O...OO.....O..#O..OO......O.......O.# +#.O.O..OO#..#....O..............O.#..O.....O.O#..# +#.O..OO.......O......O.....O.O#O.#..O.O#.OO.....O# +#........OO.O#..O....O.......#O......#O#O....O.OO# +#O.#.#O.....#..#..#.#..O.#..#.O.#O.#.O.O....O#O..# +#O#....O.....O.#.#OO..O..#OO....O....#O.O.....O..# +#OO#..#.OOOOO.......#....#.O#..OO......OO...O.#.O# +#.O#...O.........O.O.....O.O..O..O..OO......OO...# +#..O..O#O.O.OO.....OOOO.O...OO.OO#O......O#..#.O.# +#OO.#OOO......O..#OOOOO#....#...O.#.O#...OO.O.O.O# +#.O.O#....#O........O..#O.O....O......O.OO...#..O# +#.........OO..O......O.......O.##.............O..# +#....#.O.OO.O.....#.OO.O..O#OOO.....#.O.O.#...O..# +#.OO.............#....OO.#OO....OO#....O....OOOO.# +#O.O.O.........O#..OO.......OO.O..#..O..O...O.O.O# +#...OO...#O.##OOO....O.....#..O....#O...OOO#O.O..# +#.O..##.OO....##.....#.....O.....OO.O..#.#OO#OO.O# +################################################## + +^^<><<^<^^>>^v>v<<><<^vvv<^<<^>^v<v<>v^^^^^>><^vv<><<<>^v>^>^>>><^^<^>^>^>>^>vvv<<^v^vvv^v>>^^^vv<<<^^v>vvv>v^<>>vv^<<<>>>><>vv<<^<<^>^<^>>vvv><^^>v^^<<>v>vv>v^^<^v><^v^^^v<^v>>vvv^v^vv^^v^^^v>^>v<^^<>^v<^v<>v>^v<<^^>^><><>vv^<<>v^^^>^^v^v>^^<^v^vv^^vvv^^<^>>^><^<^><<>^^><>>^v<<^<><><^^^v^><<^v^><><>^v^^>>^v^v^>^><^>v^v^>v<>>^vv^v>^<>>^v<>^v^<<^^^vv<^v^>v><^>v><^<>^>^<^><^vvv^vv><><<^<<><>>^<^v<>v^<>v>^^v^^>>>v^>>v>vv<^^^<^<<^<^vv^^>^v<<^v>v^v>v<><^<>>vv^<>^<>v^vvv<<^v<>vvvv^^<<>^>>>>^>vv>v>><>vv>>v>^v^v^v^v^^v>v>>v>v<^>vv>^>^^<^^><>^^>vv><<^<^>>>^v<^>v<<<<^>>>><^>>^<^<>^^v<<^<<^^><<^vv>^vv^<^^^^^v^>><>^^<^<>>>v><<>v^v>^>><^^^^v>>>>v^>v>v><>^>>v<<><vvv>^<>>v<<><<^<><>^<<>>v<>>v>v>><<<<^v^<>^<>^v<^><>>vv>><<^<^v>^^>v^^^^v>v^v^v^<><^<>^^>v<<><^^v^<^^v^v<>v>^>^vv^v>v><^>^^<^>^^>v^^v^><>>>v>vv^v>v><>v>vvv>^>>^vv^^>>^vvvv>>v><>^^^<>^v>>^v><<^<^>v<^v<<^^v<^v<<^>^^<^v>^<^v^v<><>^v<>v>vvvvv>>>v>vv>><^<<>v^>>^v<>>><>vv^<^vv<<^^vv>vv>^<>>v^^<^^><^v^>v^v><^v^<^>^>vv^vv^<^>v^vv<^>><^<<<>^v^^<^^^>>vv^><^v^v>vv^>v<^vv>v<>>^>^v><>^<>^vv^v<^>v^>>^>v>>^>><>>>v<>^v^<^<>^>>v><>v^v><v>><<>v<^vv<>^v<><^><^v>^^>v<>v^<>>v>v^>^^>v>^^^^v^^>>^<>vvv>>>^^<<^vv>>v><^^vvv^<<^<^>^^^<<<^>^vv^^>^v><>^^^^<>>^>>^>^><<>^>^>^^v>^vvv^^v^^>^>^vvv^^vv<>>>^vv<>^vv>v><>vv<>^vv>^<<<>^<^v^vv>vv<<>^v<^^^^<^^<^v>^<>^>v<>><<<>><><^><v>v^<<^v>^^<>^v><v<<^^<>v><<>>^^^>v^vv^^^^^v><>^^>v<^>>^v<v<>vvvvv^v<vvv>v<>^^>v>^>vvv^<^>>v^vv>vvv>v^>^>>vv>^>><><>>^vv<>>v<^>><^v^^^v>>>><<<><>^<<>>^^^ +>^v>vvvv<<><^<^><<>^^>^>v>>><<>>^^^v^^<<>^<>^^vv><>><^v^><^v<>^<>><<^v>^^v>^^>vvvv<><^<^v>^<<>>v^v>>^^^<^<^><<<^v^v>v^^^>^v>>v^^v>v<^>>^v^v^<>^><<^vv^<><<><>>>^^^<>vv<^>^<>^><^>v^^v>^<>><^^>^>^>^<^>><><<^<v^v^><<<>^^v><<<<^>>^^>><>vvvv^<<>v>v^^v<>>v><^<>>^v<^^vv^^vv^^>^<><<>^<<^>^>v<><>^^^^<^^><<<^^>^<>vvv<<^>^v<<><<>>>^<^^<>vv>><^<<>vvv<>^<<>^v^>^^<^>>^^>^<vvv<>^^>v^^v>^v><>^^^^v^<>^><^<>v^>^vv<<<>vv>v>^^v>v<^>^vv>>>>^^vvv>>>>^<<>^^v<<^v^^<^vv<<<vv^^^^^<<<><>^v^vv^^<<<>>v^<>><<^><><<<>v>>v^^v^v^<><^v<>^^<^>vv<><^<v^<>v>v^^><^<^>>v>^^<^><^<<^^^<^^v^vv<>^><^<^^^^^vv>v^<^^>><^v<^<><<^<>^vv^^<^^vv^v<^^>^<^>^^>><><v<v<^<^>><<^>>^>^<<>v>^>^<^^v<^<>^>>v><<>v><<^v>>v>>^vv<^v^<><><^v>^>^^>v^v<>>v>><>^>^<>v^>^^v>< +vv^^^<^<><^^>^><<^<^<>vvvv^<<^>>>vvvv><<^<^>v^vvv^>^><>>vv>v^<^^<>><<><^v><<^>>>>>^>>>v^^>^><><^<^<^v<^>^^<>^<<^^v^><^v>>^^^><^v<>>v<>v^^>^^^v^v<>vv^<^>>vvv<>v>><>v<>^<^^<>>v^>v<><^<<>^v<>^>v<<>><^^<<>v^>^>^^v<<^vv<>^v>v^vv<<^^^v^vv<<>v><>>><<><>>v>>v<>v^<^vv<>^^>>vv<<<<><<><^^<>vvv^^v<>^vv>^>^>^><>>vv>^v<<^>vv^>^v<<^^><<<^^^^><^>>>>><<^<>><^^vvv^>^><^>^><>>>^<>>^>>^^>vv^><>>>>>^<>>v<><>>>^<^v>>v>>^>>^<<<<<<><^^^^^>>>^^>><^vvv^v>^>^><><<>><>>v>vvvv^v<^vv>v<v^<>v<^^>^>>>^vv>v^><^^^>^>^>^v<>v<><^^vv<<^vv>vvv>><>^^^^v>^^v<>><^^vvv^<^vvv^<<^v^>>^<^^>v^v>>^v^>^v>v><vv<^^v^v<<^^<><<<>^<^<<^<^v^<>>^<>^^<<^>v^<>>>v>^^^^<>^^v<>>^<^vvvv^v><<^>vvv<><>>v<<<^^v>>vv<>^^<<>><>>>>^v>>>><<>^v<^^><^<^v<>^<<<>v^<>^^<^v>^^^<^^>^^v><<<<>>vvv^vv +>>^v^>>>>vvv<^v^^><>>>vv<>>^^^><>><<^vv^>>>^><^^>><^>>^<^<<^^v^^^v^v^^^><^>>v^>v<>>v<>v<>^><<^v<>><^^v<<^^<><>^^>^^>^>>vv><^>vv<>>^><><>^v<^^vv<^v^<^^>^vv<<^>^<^^v<^^>>^<v^vv^<^<^>^^v>v<^<^>v><^^<>^^<><^^>^v>v>vv^<<>^vv>v><>vv<>>^^>^<<<^<>><^v<^>v>>>>^v<>^>^^v><<>^>^v^>><><>v^<><<^>>v<>^><<^^v<><^v>vv^<>vv>^>><>v>><^v^>>^v><>^<>><<>>v^>v<<^v^vv><>^v>^><^vv>>v<^>><^v^>><>>^^^v^><>>v^v<<><><><><^><^>^^v^^<^^>>v<><^>>>v^^v^vvvv><<>^<^^^v<^v<<>v<<^>v^<^>>v<^^v>>v<v>><^^<^v<>>^<<<<^vvvv^^v^^v<>^>^^>^>>v^vv<<<vv><<<>^v^>vv^vv^vv^v<><<v^^>^vv>vv<>^>^<<><^><>>^<<><>^vv>^v>>^^v^^vv>^^^^<^^^<^vv<>><^>^<<<^<^vvvv>><<^^>vv^v<^vv<^>^><^>v<<^v>^<><^<^>^vv<<^>>^^>v>>vvvvv^><>>^>><>>v<>vv<<>><<^^vv^> +vv^<^v^>v^>v^v>>>>^>>>><<^v<v<^>^^<^^><<>vv>^v><>vv<^<^v>v>^^vv^^><^>^^>^^^^><>^vvvv^><>^v>>^v<>>^<<v^v<>^>>^^><><<>>>>v>^>><<<^^>^<><^<v<<<^>v><^<>v^^<>>><><^v^<^>v>^v>>v<^vv^>^>v<>>>^^^>^v<^><><^v>vv<<vv<<>>>vv^<><^^^>v^vv^<<<<<><<^v<^>v<^<<>^>>^^v>v>^>>^v>>^>>><^vv^v<>v>v>^<<^<^<^>^^>>>><>vvv^>^<<><^>^><^<>v^>^>vv<<<^vv>^v<>v>v><>>v>v><>>v^>^<<^>v>>v>v<^>><>>^><^v>>>^^>^<>^<^vv>^>>>>^<^>>vv>>^^>>>vv^^v>>v>v^^<^<>vv>^^>^<^<<<^vv><<>vv<>>>^^<v>>>><^>^v^>vvv>>v>^^><<<<<^<^>>vv<^^v>^vv>^v^v^>^v>v>>^<^>>^vv^>vvvvvv<^>^>vvv^v>^^>>vv^>v><^v^>v>v^v<^>v>^v<<<>^>v<<>vv<^>vv<^>v>^^v>><<>><>v^^^>>>^<<>vvvv>^<^v>><>v^<^v>><^v<vvv>>v^vv<<v^<^vv>v<>>><<^><<>^^v^^><><^^>>v<<<<><>^>v^^v<>>>v^v^v><>^v^<v^<><<><v>>vv>v>v<^v^^^>>vv<<^^>v^vv^^<^v^<^>^v><>^^<>>^v>^vv^<^v^^<^v>^>vvvvvvv^^>^>^^<>><>>>>v<^^v>v>>v<^<>v>>><v>vvv^>^^vv<^><<>v>^>^>^^^><>^v^>v^^>>v^<>>>>^^>^><^<<>^v<^^<<>^^><<^v>><^v<^^vv^^^<<^><<<^<^<><<>><^><^>v>^^vv>^<^v>><>>^^v^^v<v><>>v<<>^v>v^<^^^<>^>v<>^>>>^>vv><>v><>vv>v^^v^>^>^<^^>>^^<<>^>^v^v>^^^>>vvv^><>><^^<^>>>vv>^v<>^><<^^^^^v^v<><^<>vvv<><><^v<><^><><^vv^^<^<^vvvv<><><^>v<<>>^^^<^v^v^<>^<>^>>><^^v^^<^<<>v>^^^^vv>^><^^>>^>vv^>v>v<>^^^^v^^>v>vv^<>v>><^vvv>>>v^>^v^<<^<^^vv>v<^v>>^<>v^>><>v><^>><>>v>><^v<^^vv>v^<<>^^<><<<>>v^<>v>^v>>v^v^>^>>^^><^>v>^v^^<^><^vv<>^vv<^^vvv^>^v<>^^>^<^>v>^^vv>>>>^v><^>>>>v^<>^v<>><^v<>v>^^v^v<^v><>>>v>^>^vvv^<><^>^vv<<>v<>^>vv^>v^<<>^v^>^<<^v^^<^>v>>^><^><^v>v<>v^v<<< +>^v^^<<>v^v^v>^v>>^^^vv<<>^<^v>^^v>v<^<^vv<><<>>>v<<^<>>^><<<<<^^<>vvv^>v><>>>vvv^>>v<>>^<>^><^><<<^<<v^^^^<>>^<>v^<>^>>>vvv^^<^v>><<>v><^v^^vv>v>v^<<>v^^^^vv<>>v>^<<>>v<^^^^v<>^><>>^<>v^<<v^<>v^v><<^^v^vv<<<>^^>v^vv>><>v>^<^>v^><^>>>>^>^v><>^<^<<>v>^v>>^v><<^^vv^><>^<^>v<>^^v^<>vv^v><^v>><>^<><^>>^^^>><><<<>v^vv^>^vv<<>v>v>>v^v^>vv<>v^^v<^v<>^^>v<^v>>^^<^v><^v^>^^^v^<>v^^^^<><>>v<>><<><><<>>>^>><>>v^<<>^v^^v<>v>^^^^v^v<>vv<>^v>^v><^^^^>v^>v<>^vv>>v>^>>vv>^<<>v^>^>v^<^^^>>^^^>>v^v<<^v>>vv<>vv>^><<<^v><>^^>>^>^>>^vvv^v<<>><^<^>v^^vvv>^^<>^v>v<v<^<>v<>>^>v<^^^v>>vv>v^^v<^^v>vv<>>v><>v^>vv>^^<<><<^<^<^^<><>v>^^vv^v<<^<^<>v<><^>^><>v>^v^v<^^v^<<<>v^^<<^><^>>>^<>>^v><><^vvv>^^^<>vv<^^v>^^^vvv<<<^^>>^v^^><<<>>^<^>^<^v>>>>v^^>>><^>^^v^^ +v<>>>vvv<<><>vvvv<<<<^^<<^>>>v<>^<>>vvv><^>>^^<<^>>^>v^><<><<>v>>vv<>^>>^v<^<^^^<<<^>vv>vvv>^>v^^v>^>v>vvv<^>v^v<<^v>>^>v^>v^<^v>>>vvv<^v^^<<^^v>>^vvv^vv<<>vv>v<^><<<<>>v^^vvv^^>><^v><<>^v<^><<>^>><<<>><<^^^vv>^<><>^>>vv^>^v>^>><<>>v^^<>>v>^^><<>>>^^^vvvv<<^^>^<>v<^><>^<<>><<>v>^v^vv><>^v^vv^><^v><^<^vv^><^v^vv<>v>>v^><>v<^<<<<<<<>>^^v>v>>^^v^>>v>^v<><^v^<<^v^vv<^v>><><<<>><^vvv^vv>vv<^><^>vv<>v^<><^<^>v>^^v<><<>>>^v<>>^><^v^^^>^<<^<^v>^^><<^^v^^^^v<<>>^v^<<<><><^^>><>^>>^^>^>v<^^>>^>>v<<>>v^^<^v^^vvv^><^<<^^>^^^^^v>vv>>v^>^><><<><^^<v<^^>><><^v<>><^<<^<^<^<<><>>v>^>vv>v^^^<^^v>>^>v><^<<>>vvv^<<^^<^>>>>^v^<>^>>>v>v>v>>v^^><><>^>>><<>^>>>> +<^>^^>>>^>^>>vv>^<>^<^vv>v<>v>^>><^v^^^>>^^><>v><>^v<^^>>^vv^v>^v<<<^^^>v^^v^<^^^>vv<<^^v>v^^<<>^<^^>^<>v^^>^v>v<>v<^vv^v^^>>^^<>v>>>^^^>v^>^<>vv><<<><^^v^<^<<^^>vv>v>>>v^v<>^>v<>v><^><><^vvvvv>><<<^>^<^v>vv>^^<<<>^v>^>v>vv<>^v^<^^>>>^>vv><>>^><^><><>vv^v>^>v<^v^v>>><>^^^^<<<<>^vvvv>>^v^>v>^<^>v>>v>v^<<<^>>>^v^vvv^>v>>v^>>>><^^^^^^^<>vvvv^^<<<<>^^v<>^v^<>>^v<^v^^^>v^>^<^^<>^^v^v>^vv>>v^><^^>>>>>v><<^><^>v>^^v>v^<<^>^>>>v^^<>><<<^<^<<<vv^<<><<>>^v>^<^>>v^>>>>>v^^>>^<^>><^<^<<>vv>v>v<<>>>v><^v<^<^v^><^>^^><^^v^<>>^><^^^>><^<^<^^v<>v>><>v>><^>>>>><<>v^^<^>v^<>^>>>><^^^>vv^<^v>^>^^>^v^>^^^<<>><^<><^^v<<<<<>^>>>^<<>>^vvv<>v><^v^>^<<^<<><>>^<<^v<<^>>>>^>v>v +v<><<^v<>><<<^>vv^<^^^v^^^v^^^v^^^^>v<><>vv>^>^v^>vv^v^v>^<>v<<^<>>>^>><><^>^^><^vv^^^>^v^<>^^<>^><>^>>^>v<><^vv><<^>v^<<^^<>^^v<><^^^>^<<^vv><>>^v>v^vv^<>>>^v^<<<^^>v^v<<>>>^^^v^<>v^v>>^^>>v<^^vv^>>>^>>v<>^^v>>>^<<^^<^>^<^v<^>^v^^><<<<>>^v>>^^>^vvv>><<^^>^>>v>vvvv^^>^<^>^<<<>^v<<>v^^v^v^v<<^<>^>^<>v><^>^<>>v>v>^^vv><^>^v^<><^<v<>>>v<>^v<<>^<<><>>^vvv>^<<^>v>^vv^<<<vv^>^vv^vvvvv^>>^^>vv>vv>^<^>^^<^>^>v>><><>vv>^<^vv^v^^vvv^>>>vv><^^><>^v<<^v^vvvv>>v>>v>^^<>v>v>^<<>^v>v<^<>vv>>^>v<><>><^^^>^v<><>><>^<^<^<<^>>v<^v<v>^v<^v>^><<^>^<<<>>>>vv^^>v>vv^v^<>v^v^<^v<^^<<>>><>v>^>^^>^<>>>^^<>^>^<<>^^>v>v<>^<<>>>^v<<^vv>v><>^<^>^>>v^<<>><<>>><<<>^<<^^>vv>>^<>^>>>^<>>^^^<<>>^^>v^v>v>^vv^v^><>>vv<<^v>^^v^>>>^>^v^v^>vv^v^^<^^vvv^<<>>^>>^v^^<<>^>^^><^vv^^v^v^<<<^>^>>v>v>^>^<^vv^^>v><<^^<><^<<^<>v^><^^><^v><><>^v>^^>v^^>^>v^>^^v<v<>v^vvv>>vv<>vv><<^><v>vvv><>^>>>>>>>vv^v^^<^>v>>>^v^^<^v^^v^^^vv<>^^^<>v^>vvvvv><^><^vv>^>vv^><^<^^v><^v^v<^>>^vv<><>^v<>v^v^vvvv<>>v^v^>^>^v<^v<^<>^>v<>>v^^>>^^^vv^<<^<>v<<^><^^vv><^vv>>^<vvv<^<>^^^^^>>><^v>>^><<^<<^>v>^<<>>^^^^^v<<^>^^>^>>vv>vv>>^vv<><<^<^^^vv^vv>v^>^><>>v^^<<^v^^v<^>>>>^^vv><>^^v^^<<>^<><^>^^<>^v^v^><^<>>v^^vvv^>^^vv>>vv>^^^><<>>v^<<^^<>>>^^<>v><^<><>^>>><^^>><<<^^^^<<>^v^><v<^^<^<>v^>>>^<<^><><^>^<>>v<^^^v^^^<<^v^>^v>^v<^<<^v< +>>>v>>v>vvv<^^>^>^^>>^<>^<<^>^<>v^<^>><>^<^^v^v>v<<>v<^^^><>v>>^^v>>^<<>^v>^><^<<>>>^^^^>v>v<>>>^>^>v>>>^<^^v<>vvv<>>>><^>v^>^<>vv>>vv^^>>^v>^<<^v>^vv><><>>^>^^vv<vv<>^v>^>>vv><^>^v<>v^v^>vv>^^><>v<><<>v>>v>>v^<^>v>>>>^^v^v>^<>v>vv^<><^<>v>^<>^<^>vvv^v>>vv<><<<^<<^^vvv^^^>v<<^><^>v^><>vv<^>>><<<<<^v><<>><><>><^<><v<<>v>><>vv<><<^^<>^^>v^<^<<>^>>>>^<<<^><^>v^v>^^>v><^^<>^^>>^<<<>v>>^>^^><<<^^^^<^^><^^^v<^>^^<^v^vvvv<>>^vv^^^^vv<>v^v^^^<><>^<^>>>>>vv>>>^^>>^>><^^<<^<^v^v^>^v^>><><^v>>^<<>><^v>^>^v>vv>^>^^<^^^>^v^v<^<>vv>v>>v^^v^^v>>^<><>^^v>^^>><>^v^<^^v>^vv^^>>^>v^>><>v<>><>^>^^>>>^><v<<>^>>>v>>^>vvvvv>>^^>>v^>>vv^<^^^<^<^>^vvv^^<>>v^v>>v<>^^<^vv^>> +v^>>>v><>>v^^>>v^<>><<<>^<^<><^v>v<>v^<<<<<^v^<>>>><v<<>^>>>^>>^^^<^<>^vvv^>^v>v^v^^v^^^^v<^^<<>v^vv^^^>v<<<>^vv>v><>^^<v^<>v>vv>>^>^vv^>^v^^><>^vvv>v^v^<^>v^><^^<<>^^>^>v>>^^>^^>><>^>><>>>>v^v^<^^><><>v<>^^v^><^^^<^>>^>>v<<^v>^v<>><^v><>><>>^^<>>v^><>^><<>^v><<>^^^<<^^<<<<^v^>^vv^><<<<>v^>v^<^^<>vv>v><^<<^vv>v^>^<>v>>>>>^<><^^v^v^vv<^>>v^>^>^><<<^<<>v<>vv>>>^vv^<^^vv<>vv^>^v<<>v<>v>^^v^<>><^v^v^>>vv>^vv^<^<^<>v>^v>^^vv^^v><^>><<<^^<^^<^v<>>v^<^^^<<>vv>^>v^^^^^^v>v^>v><>><>><<^<>^v<^v^^>>>v>v<<>><<^><^><><>^v><>v>>v^^vv<<>vv^><<^^v^vv^v>><<>>v>>>>^>>v<<<><>>v<>>v>vv^^<^v<>^v>v>>v>^>>>>^v>><^<><><^><<<<^^^^><<^^^>^<v<<>v^vv^v^^^<^<>>v><>v^>v +^^^>>><^v>v^>^v><^<^<><v>>>>><>vv^<^<^>^^<^^>>v><<>^><<>>>>><>vv^^>^>>>v>^^v>^<<>><^<^<^>>><>v^v><>>>vv^>v><<><^v^v<><>>^vv^^<^vv<^vvvv<>>>>><^^<>^>^<>v<v^v^><>><^v<><^^vv>^^>vv<^>v^v>>>^v><<>>vv^>>^>^<^v><<^^<^^^^>><>^^<>vv^vv^^v^vv>>v^>^v<<>^>><^>><><<<>v>^v>^v>v>v^v<<^^>v>^v<>>><vv^>^^v<>^<^^^v>>v>^<<^v<>>>^<<<^<^<<<^>v<^<^v><^^<>v^v<^><^>v^v><<>>^^^v><>v^^<<<^vv<>v<>>^>vv>^^<><>v><>v<>^<^v<>v^<><^>>v<>>^^<^^vv<>^^^v^<^v><>^vv><^v<>^^>>^^^v^>>vv>><>>^vvvv<^^^><><>><<^>vv<^v><>^><<^v^^<^<<>v><<^v^^<^^v<^v^v^v^>v^^^>>^>^>vv<>^^^^><^^v<^>vvv^<^^>^<^^><<^v>v<<>^<>v>^^v>v^vvv<^>^vv^v><<^>>vv^v<^>vv><>v^^>>>vv>>v>^v^<^v^v>v^><^><<^<>v><<^v<<<>>vvvv>^>>>vv>>vv^><^>v>^<>^v^v^^>>v^>^^>^^^>>v<^>>v<><>vvv<<>^^vv>v^<<>>>^>v>>v^>>^><^>vvv>><>>>>v<^v^v< +^>^>^^<^v<^>^<<^v<><>>>>v^^>^<^<^^v>v^vv><^>>v<^^vvv^<^^^>vv<^<>v<^^v><>>><>>>v>vv^><^<<>><<^<><^^><><^<>v>v<>v<>v<^^v>^v^>^vv^<>>>v^v^vv^vv>^^<>v>^>^>>v>^^><>>^v>v<<<>v<>><^^^v<<^^vvv^>>^^><><><<>>>>^>^><>v>>>>v>><^v<^vvv><^>>^>v>^vv^>>>^vvvvv>^v>><<>v>^^v<<><^vv^vvv^^><<<^>vvv>^>^^^v<^v>vv><<^<<^<>^v<>v>>><>v>^<>>^>vvv<^<><^v^><>vv>v>^<<>v><>^>v>v<><^>^vv>v^^><^>v^^^>>vv>vv^>v>vvv<><^<>^<<^<^v^^<><<v>>v>^>^v<>^<v<^><^<>^^v<>v<<>>v>^>^v^^^<<>v>>^<^<>^v>vv>v<^<^^><^<><>v^<^v>>>^vv<>^v^<<<<>vv>vv>^<>>^v>v<>v>^<^v><vv^>><^v^vv^^^vv><>v^vv<>>v><<><<><<>>v^>>>>v<>>^vv^>>vv>>^<>><<^<><^<><>v^^>^v>vv^^>v<>v>>>v<^^>v^<>v^>>v^vvv^vv^v>v><^>>v^<>^v<>v<^vv^v><^<><^><<^>>>^>^v<<>vv^^<>^>>^<>vv^>vv^v<^>v>v>><^<^>vv<<<<^>^v<<<^><<>^ +^<^v^>^^^>>>vv<<^^v<^><<>vv>vv>v<>>>>>^v>>v^v>v<>^vv>>><^v>v<>>>v^v>v>>v>>vvvv^vv<^^<<>v^><<^vv<^^<><^v^^>>>>^^<<<^<<^>v^^^^>v><<^^>vv^vv^>>v^^<^>^vvvv^v^v><^v^vvv>v>v^^^vv^>vv^>>^><^<>>v>^<^vvv>vv>^v^v^<>^<<<><<<^vv^<>v><^<<^^>vvvv>>><<>><>>>><>>^><<>v><^vv>vv<^>v^<>^v^>><^^>>^><>>^>v>^<^^^v>vvv^><<<^v^>v<v>>v<^v<>>>>^^^^vv^^^^>v><<>>v>^>>vv<><v>>v^<^^>v^>>>v<>^^<<^<>>^v>>>>^<><^^<<<>>vv^<<>v^>vvv^v<^v<^<>>v^>v<<>>vvvvv<>^vv>^vv><^^<<>>>><^<^<>v^>^^><>v<^^>>v<^>v>>^<<>^<><^^<><>>>^<<^^><><^<>^^^^<><^vv<<>>^<>^v<^<<<<<><>^^^>^<>vv^^v>^^^<^vv><^>><>v<<>^>>>^><<^<<<>><>^v<>^^^v^v><^^vv^vvv<>>>^v>v>v<<>v<><>^vv^<^<>vv>>vv^<><>^>vvv^<^^^>v><>v^vvv^^v>> +<^^^<<<>^^>>^v>^<^>><>^<>^<^^>><<<^><>>v>^v><>><><<><^v>^v>>>>^^^^^v^<<<^v^>^v^><<><<<>^><<<>^v<^>vv^^v<^<<<<^<^v^>v>>><><<<^>^vv>^v^><<>^^<>vv>^^>v>>^v^^<^v<>><^v^^v<^<>v>^v^^^<<>>v<^^><>^<^<^<^^v^>vv^<^v>^v<<^^>>>>v^<^<>v^>^>v^^<^vv^v>v^^v^>vv^<^<<^v>vv^vv<<^>^<^^^<<^><>vv>><<<><<<^v><<<vvv^<^<>v>>^^vv<><>><^<^vvv<^^>>vvv<^<^^^^v<^v<^<<<<<^^vv>v>v^^^>v^>>v^>><<>>>><><<<>>>><^v>v^><^><<^<<^vvv>>>>v><><>v^>v>v^^vv^<<^>^<^v>^^v>v>vvv>v>v><<<>vv^>^^v<^^v^<^^v>v>v<<vv>^v^v>><<>^^v>>v>>vv^><^^>vvvv^v^v^^<>>v^<<<^vv<>^v^>>v>v>><>><>>v^<^>v^<<<^<<>>v<>>>>^<><<<^<^vv^v<^<^<<<^vv>>>>v>>>v<><<^^^v>^vv^>><>>^><<^>><^^v^<^<<^>v>v>>vvv^^vv^^v^v><<^v>>>><^v><^^^^<<<^>vv><<<>>v^<^<^>v^<>^><^vvvv^^>v<<<>v^<^v>^<^^^>^vvv><^v<^><^^>>>v>^^>>^^v^^^^^v^v^>^<<^^<>>><>v^v<<^>^^^^vv<><>vv^^^<>^>v^^<^v<>v>>>^>^^<^<>v^<<^v^<>v^<><^^^>>vv^^<>^^v^^>>^>>v>^>>^<^v>^^v>v><^>>v^^>^><^>v>>>v^>>>^<<^>><>><^^^>>><><^v><><<>v^<<>vvv^v>>>v^^^v<>v^vv><<^>>^<>>v^<^v>>vv>v<>^>v>vv^v><>^<>^v<>vv<<^v>^v>v><>^vvv^^><^^<>^>>^>vv<^vvv<>>v^<>v>^<<^>^v^><>>>>>^>v^>^v>v<<><>v^v<>>v^^^>vv^<^>^<v^^<<>>v>vv^^^vvvv^>^^<<<<>v<<>^v>^<^^v^^>v^><^<>vv^^v<><^><<>^v^^<>vvv^<^v>^<^<<>^<>vv<><<<^^>>>>>><^<>>v^^vv<^>v^>^^<<>>^>>^<^v^>^v^^<^^>>v^<v<^v>^v^<^<<^vv>^<<<>v^<>^v>v^v>^<>^^>^v^v><<^>^^^^v<><^v<<><>v^>^>>v^<><>v^>>^v<^^vvv^<><^^^v>v<v^vv>^>^>v<>v<>>^<>^^>>v<^^>^vv^^<<^<^^<><<^v^^>>v<^v<<^<^>vv>><^vvv<<><<<<><<<^<<^>><>^^>vv^vv^>^<<><<><<><<>^^<<^>v^>>^<^>>>> +v^vv<>v^<><^<>>^<<<^>^^^<>>v<<v><<^>v<^v>>vv^^>>>^v^^v^^<^>v^vvvvvv>^^vv><^>>^^<<^^>v<^><>v>v^><>v^>^>><>>>^^><^>^>>>>vvv><<^<<vv^><v^<^v^>>^>^v<^>v^>^v^>>^><^>>^><><<<><^<<<^^<^<<^^vv^v>v^v^^<>vv^^v^v<v><^<>^<<^^<^v>^vv>>v^><>v^v^v><>vvv^^v^<><>v<>^^>^<^<>>^vv>^v>^v^<<>v>><<><><<^^<>^<>v>v>^v<>v^>v<<^vv^>>^>><v<^>^^v^<^<<><>vv^>v>><<^v>><^>^>v>v>>^v^v^><<><>^^>^v>^<>><<>^>vv>vv<^<<>v<^<<^<<^>>^v<>^>>^>^^^>v>>^<^^^v^v^v><^>><>>v<>^v<<^^>v><^<^<^^<>vv>>^v<<>^^>^vvv^v>v^^><<<><^^^<>^^v^^^>vv<>>>v>^<>v><^><<<<^><><^v^<<><^>^<<<^>v^^^><>vv^<>^v>>>v<>><^>>vv^>v^^><^>v^>vv>^^><><><>><<<><<^^^>^<>^<<^><>^<<^vv<^^>>^^>v<>v>>><^>>vv^><^ '9') + read_number() + `sA` + set_state(read_b) + +end + +state read_b + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sD` + set_state(read_c) + +end + +state read_c + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sB` + set_state(read_d) + +end + +state read_d + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sE` + set_state(read_e) + + +end + +state read_e + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sC` + set_state(read_f) + + +end + +state read_f + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sF` + + `[a=]nlAn[ b=]nlBn[ c=]nlCn[ d=]nlDn[ e=]nlEn[ f=]nlFn` + `10an` + + # (a, d) + # (b, e) + # (c, f) + + # (af - cd) / (ae - bd) + # num + `lAlF*` + `lClD*` + `-` + + # den + `lAlE*` + `lBlD*` + `-` + + `~s.sY` + + # if no residue + if `l.` == 0 then + `lClBlY*-lA/sX` + `[x = ]nlXn[ y = ]nlYn10an` + `lX3*lY+` + `lo+so` + end + if `l.` != 0 then + `[no solution]n10an` + end + + set_state(read_a) + + +end + +interrupt program_end + `lop` +end + + + + + + + + + + + + + + + + +function read_number + read_number_start() + read_number_end() +end + +function read_number_start + + -1 + # ret _1 if not a digit + return_if(`ln` < 48) + return_if(`ln` > 57) + `st` + + # throw the true digit onto the stack + `ln48-` + + # inc i + adjust_index(1) + # recurse + read_number_start() + +end + +function read_number_end + + # if we only have 1 item on stack (-1) we found no number, so return + return_if(1 == `z`) + + # push entire number thing onto temporary stack + `[STz0<.]ds.x` + # multiply ten then pop and add repeatedly until done + `0` + `[LTd_1=qr10*+l.x]ds.x` + # get rid of the extra -1 + `st` + # decrement i so we reread the skipped char + adjust_index(-1) + +end diff --git a/src/pladcl/2024/day13/part2.pdl b/src/pladcl/2024/day13/part2.pdl new file mode 100644 index 0000000..65f5d7b --- /dev/null +++ b/src/pladcl/2024/day13/part2.pdl @@ -0,0 +1,164 @@ +state read_a + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sA` + set_state(read_b) + +end + +state read_b + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sD` + set_state(read_c) + +end + +state read_c + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sB` + set_state(read_d) + +end + +state read_d + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sE` + set_state(read_e) + + +end + +state read_e + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sC` + set_state(read_f) + + +end + +state read_f + + return_if(`ln` < '0' or `ln` > '9') + read_number() + `sF` + + `lC10000000000000+sC` + `lF10000000000000+sF` + + `[a=]nlAn[ b=]nlBn[ c=]nlCn[ d=]nlDn[ e=]nlEn[ f=]nlFn` + `10an` + + # (a, d) + # (b, e) + # (c, f) + + # (af - cd) / (ae - bd) + # num + `lAlF*` + `lClD*` + `-` + + # den + `lAlE*` + `lBlD*` + `-` + + `~s.sY` + + `[. = ]nl.n[ ]n` + + if `lY` < 0 and `l.` == 0 then + `[fuck!!! ]n` + end + + # if no residue + if `l.` == 0 then + `lClBlY*-lA~s.sX` + if `l.` == 0 then + `[x = ]nlXn[ y = ]nlYn10an` + `lX3*lY+` + `lo+so` + end + if `l.` != 0 then + `[no sollution x]n10an` + end + end + if `l.` != 0 then + `[no solution]n10an` + end + + set_state(read_a) + +end + +interrupt program_start + `0k` +end + +interrupt program_end + `lop` +end + + + + + + + + + + + + + + + + +function read_number + read_number_start() + read_number_end() +end + +function read_number_start + + -1 + # ret _1 if not a digit + return_if(`ln` < 48) + return_if(`ln` > 57) + `st` + + # throw the true digit onto the stack + `ln48-` + + # inc i + adjust_index(1) + # recurse + read_number_start() + +end + +function read_number_end + + # if we only have 1 item on stack (-1) we found no number, so return + return_if(1 == `z`) + + # push entire number thing onto temporary stack + `[STz0<.]ds.x` + # multiply ten then pop and add repeatedly until done + `0` + `[LTd_1=qr10*+l.x]ds.x` + # get rid of the extra -1 + `st` + # decrement i so we reread the skipped char + adjust_index(-1) + +end diff --git a/src/pladcl/2024/day14/part1.pdl b/src/pladcl/2024/day14/part1.pdl new file mode 100644 index 0000000..a21220e --- /dev/null +++ b/src/pladcl/2024/day14/part1.pdl @@ -0,0 +1,96 @@ +interrupt program_start + `101sw` + `103sh` + + `lw2/sm` # width middle + `lh2/sM` # height middle + + `100s.` + + # 7890 are outputs +end + +state read + adjust_index(2) # go past p= + read_number() + `sx` # x position + adjust_index(1) # go past , + read_number() + `sy` + + adjust_index(3) # go past " v=" + read_number() + `s1` #dx + adjust_index(1) # go past "," + read_number() + `s2` + + #adjust_index(1) # go past newline + + `[x=]nlxn[ y=]nlyn[ 1=]nl1n[ 2=]nl2n10an` + + `lxl1l.*+lw%sx` + `lyl2l.*+lh%sy` + + if `lx` < 0 then + `lxlw+sx` + end + if `ly` < 0 then + `lylh+sy` + end + + `[nx=]nlxn[ ny=]nlyn10an` + + if `lx` < `lm` then + if `ly` < `lM` then + `[quadrant 1]n10an` + `l71+s7` + end + if `ly` > `lM` then + `[quadrant 3]n10an` + `l91+s9` + end + end + + if `lx` > `lm` then + if `ly` < `lM` then + `[quadrant 2]n10an` + `l81+s8` + end + if `ly` > `lM` then + `[quadrant 4]n10an` + `l01+s0` + end + end +end + +interrupt program_end + + `[w=]nlwn[ h=]nlhn[ m=]nlmn[ M=]nlMn10an` + `[7=]nl7n[ 8=]nl8n[ 9=]nl9n[ 0=]nl0n10an` + `l7l8l9l0***p` + +end + +function read_number + # does no error checking + `1` # sign + if `ln` == '-' then + `2-` # negative + adjust_index(1) + end + + `0` # c num + while `ln` >= '0' and `ln` <= '9' do + + `10*` + `ln48-+` # add in number + adjust_index(1) + + end + + #adjust_index(-1) + + `*` + +end diff --git a/src/pladcl/2024/day14/part2.pdl b/src/pladcl/2024/day14/part2.pdl new file mode 100644 index 0000000..98215c7 --- /dev/null +++ b/src/pladcl/2024/day14/part2.pdl @@ -0,0 +1,192 @@ +interrupt program_start + `101sw` + `103sh` + + `0s.` # num + `0sc` # count + + # X: x array + # Y: y array + `0sm` #x mean + `0sM` #y mean + + `0sv` # x variance + `0sV` # y variance + + `10 10^s(` # min x variance + `10 10^s)` # min y variance + + `0s{` # min x loc + `0s}` # min y loc + + `0sF` # finished flag + + # A: posx + # B: posy + # C: velx + # D: vely + +end + +state read + + adjust_index(2) # go past p= + read_number() + `lc:A` # x position + adjust_index(1) # go past , + read_number() + `lc:B` + + adjust_index(3) # go past " v=" + read_number() + `lc:C` #dx + adjust_index(1) # go past "," + read_number() + `lc:D` + + inc('c') + + #adjust_index(1) # go past newline +end + + +interrupt program_end + + `[finished reading]n10an` + #`[x=]nlxn[ y=]nlyn[ 1=]nl1n[ 2=]nl2n10an` + + # calculate variances + for '.' in 0 to 103 do + calculate_variance() + end + + `[lowest x var at ]nl{n[, lowest y var at ]nl}n10an` + + while `l{` != `l}` do + `l{101+s{` # inc x by 101 + + if `l}` < `l{` then + `l}103+s}` # inc y by 103 if it's smaller + end + + end + + `[calculated first tree at ]nl}n[, printing...]n` + `l}s.` + calculate_positions() + + for '!' in 0 to `lhlw*` do + if `l!lw%` == 0 then + `10an` + end + if `l!;Z` == 0 then + `[ ]n` + end + if `l!;Z` != 0 then + `[#]n` + end + end + + `10an[ at ]nl.n10an` + +end + + +function calculate_variance + + # find positions + for '!' in 0 to `lc` do + + `l!;Al!;Cl.*+lw%sx` + `l!;Bl!;Dl.*+lh%sy` + + if `lx` < 0 then + `lxlw+sx` + end + if `ly` < 0 then + `lylh+sy` + end + + # store these + `lxl!:X` + `lyl!:Y` + + `lmlx+sm` + `lMly+sM` + + end + + + # x and y variance calculation + `0sv` + `0sV` + + `lmlc/sm` + `lMlc/sM` + + for '!' in 0 to `lc` do + `lvl!;Xlm-2^+sv` + `lVl!;Ylm-2^+sV` + end + + if `lv` < `l(` then + `lvs(` + `l.s{` + end + if `lV` < `l)` then + `lVs)` + `l.s}` + end + + + `[.=]nl.n[ v=]nlvn[ V=]nlVn10an` + +end + +function calculate_positions + + # find positions + for '!' in 0 to `lc` do + + `l!;Al!;Cl.*+lw%sx` + `l!;Bl!;Dl.*+lh%sy` + + if `lx` < 0 then + `lxlw+sx` + end + if `ly` < 0 then + `lylh+sy` + end + + `1` + # index of this + `lylw*lx+` + `:Z` # store in Z + end + + +end + + +function read_number + # does no error checking + `1` # sign + if `ln` == '-' then + `2-` # negative + adjust_index(1) + end + + `0` # c num + while `ln` >= '0' and `ln` <= '9' do + + `10*` + `ln48-+` # add in number + adjust_index(1) + + end + + #adjust_index(-1) + + `*` + +end diff --git a/src/pladcl/2024/day14/part2_works.pdl b/src/pladcl/2024/day14/part2_works.pdl new file mode 100644 index 0000000..64c88e6 --- /dev/null +++ b/src/pladcl/2024/day14/part2_works.pdl @@ -0,0 +1,112 @@ +interrupt program_start + `101sw` + `103sh` + + `lw2/sm` # width middle + `lh2/sM` # height middle + + # found through excel + `8006s.` + + # robots bunch up horizontally every 103s + # offset of 27 + # robots bunch up vertically every 101s + # offset of 75 + + + + # 7890 are outputs +end + +state read + + adjust_index(2) # go past p= + read_number() + `sx` # x position + adjust_index(1) # go past , + read_number() + `sy` + + adjust_index(3) # go past " v=" + read_number() + `s1` #dx + adjust_index(1) # go past "," + read_number() + `s2` + + #adjust_index(1) # go past newline + + #`[x=]nlxn[ y=]nlyn[ 1=]nl1n[ 2=]nl2n10an` + + `lxl1l.*+lw%sx` + `lyl2l.*+lh%sy` + + if `lx` < 0 then + `lxlw+sx` + end + if `ly` < 0 then + `lylh+sy` + end + + #`[nx=]nlxn[ ny=]nlyn10an` + + `1` + # index of this + `lylw*lx+` + `:X` # store in X + + if `li1+;I` == -1 then + `[---------------------------------------------------------------------------------------]n10an` + `[. = ]nl.n` + + for '!' in 0 to `lhlw*` do + if `l!lw%` == 0 then + `10an` + end + if `l!;X` == 0 then + `[ ]n` + end + if `l!;X` != 0 then + `[#]n` + end + `0l!:X` # clear + end + + rewind() + `l.103+s.` + `10an` + `10an` # for less + end +end + + +interrupt program_end + + `[w=]nlwn[ h=]nlhn[ m=]nlmn[ M=]nlMn10an` + `[7=]nl7n[ 8=]nl8n[ 9=]nl9n[ 0=]nl0n10an` + `l7l8l9l0***p` + +end + +function read_number + # does no error checking + `1` # sign + if `ln` == '-' then + `2-` # negative + adjust_index(1) + end + + `0` # c num + while `ln` >= '0' and `ln` <= '9' do + + `10*` + `ln48-+` # add in number + adjust_index(1) + + end + + #adjust_index(-1) + + `*` + +end diff --git a/src/pladcl/2024/day14/part2_works2.pdl b/src/pladcl/2024/day14/part2_works2.pdl new file mode 100644 index 0000000..7d2075d --- /dev/null +++ b/src/pladcl/2024/day14/part2_works2.pdl @@ -0,0 +1,181 @@ +interrupt program_start + `101sw` + `103sh` + + `0s.` # num + `0sc` # count + + # X: x array + # Y: y array + `0sm` #x mean + `0sM` #y mean + + `0sv` # x variance + `0sV` # y variance + + `10 10^s(` # min x variance + `10 10^s)` # min y variance + + `0s{` # min x loc + `0s}` # min y loc + + `0sF` # finished flag + + # A: posx + # B: posy + # C: velx + # D: vely + +end + +state read + + adjust_index(2) # go past p= + read_number() + `sx` # x position + adjust_index(1) # go past , + read_number() + `sy` + + adjust_index(3) # go past " v=" + read_number() + `s1` #dx + adjust_index(1) # go past "," + read_number() + `s2` + + #adjust_index(1) # go past newline + + #`[x=]nlxn[ y=]nlyn[ 1=]nl1n[ 2=]nl2n10an` + + `lxl1l.*+lw%sx` + `lyl2l.*+lh%sy` + + if `lx` < 0 then + `lxlw+sx` + end + if `ly` < 0 then + `lylh+sy` + end + + #`[nx=]nlxn[ ny=]nlyn10an` + + + # store these + `lxlc:X` + `lylc:Y` + inc('c') + + `lmlx+sm` + `lMly+sM` + + # if done put it in an array for printing + if `lF` == 1 then + `1` + # index of this + `lylw*lx+` + `:Z` # store in Z + end + + if `li1+;I` == -1 then + + #`[.]n` + + # print tree when done + if `lF` == 1 then + for '!' in 0 to `lhlw*` do + if `l!lw%` == 0 then + `10an` + end + if `l!;Z` == 0 then + `[ ]n` + end + if `l!;Z` != 0 then + `[#]n` + end + end + + `10an[ at ]nl.n10an` + return + end + + # if we're done here + if `l.` == 103 then + + `[lowest x var at ]nl{n[, lowest y var at ]nl}n10an` + + while `l{` != `l}` do + `l{101+s{` # inc x by 101 + + if `l}` < `l{` then + `l}103+s}` # inc y by 103 if it's smaller + end + + end + + `[calculated first tree at ]nl}n[, printing...]n` + + `l}s.` + rewind() + `1sF` + end + + if `lF` != 1 then + + # x and y variance + `0sv` + `0sV` + + `lmlc/sm` + `lMlc/sM` + + for '!' in 0 to `lc` do + `lvl!;Xlm-2^+sv` + `lVl!;Ylm-2^+sV` + end + + if `lv` < `l(` then + `lvs(` + `l.s{` + end + if `lV` < `l)` then + `lVs)` + `l.s}` + end + + + `[.=]nl.n[ v=]nlvn[ V=]nlVn10an` + + `0sm` + `0sM` + `0sc` + rewind() + inc('.') + end + end +end + + + +function read_number + # does no error checking + `1` # sign + if `ln` == '-' then + `2-` # negative + adjust_index(1) + end + + `0` # c num + while `ln` >= '0' and `ln` <= '9' do + + `10*` + `ln48-+` # add in number + adjust_index(1) + + end + + #adjust_index(-1) + + `*` + +end diff --git a/src/pladcl/2024/day15/part1.pdl b/src/pladcl/2024/day15/part1.pdl new file mode 100644 index 0000000..be4c7d5 --- /dev/null +++ b/src/pladcl/2024/day15/part1.pdl @@ -0,0 +1,140 @@ +state read_map + if `ln` == '@' then + `lisp` + end +end + + +state read_instructions + `lnan` + + if `ln` == '<' then + -1 + end + if `ln` == '^' then + `0lw-` + end + if `ln` == '>' then + 1 + end + if `ln` == 'v' then + `lw` + end + if `ln` == 10 then + return + end + + move() + + #print_board() + +end + +interrupt newline + + if `lw` == 0 then + `li1+sw` + end + + if `li1+;I` == 10 then + `li1+lw/sh` + + `[board is ]nlw1-n[x]nlhn10an` + `lplw~` + `[robot is at (]nn[,]nn[)]n10an` + + adjust_index(2) + + set_state(read_instructions) + end + +end + +interrupt program_end + + `st` + + `[finished]n10an` + + 0 + for '!' in 0 to `lwlh*` do + + if `l!;I` == 'O' then + `l!lw~` + `[box is at (]nn[,]nn[)]n10an` + `l!lw~` + `r100*++` + end + + end + + +end + + +function print_board + + for '!' in 0 to `lwlh*` do + + `l!;Ian` + + end + +end + + +function move + + `sv` + `lpSP` + if _move() == 1 then + + '.' + `lp:I` + + '@' + `lplv+dsp:I` + + end + +end + +function _move + # v is vector of movement + # P is current position of push + + # returns 1 if can move/push + + # empty space -- can push + if `lPlv+;I` == '.' then + `LPst` + return 1 + end + + # wall -- can't push + if `lPlv+;I` == '#' then + `LPst` + return 0 + end + + # box, need to check further + if `lPlv+;I` == 'O' then + `lPlv+SP` # add new position to stack + + # if we can move + if _move() == 1 then + # set the next spot to be an O + 'O' + `LPlvd++:I` + return 1 + + end + + `LPst` + return 0 + + end + + `[unknown symbol type: ]nlPlv+;Ian10an` +end + diff --git a/src/pladcl/2024/day15/part2.pdl b/src/pladcl/2024/day15/part2.pdl new file mode 100644 index 0000000..6463b5f --- /dev/null +++ b/src/pladcl/2024/day15/part2.pdl @@ -0,0 +1,382 @@ +interrupt program_start + `0sc` +end + +state read_map + if `ln` == '@' then + '@' + `lc:X` + `lcsp` + inc('c') + '.' + `lc:X` + inc('c') + end + + if `ln` == '#' then + '#' + `lc:X` + inc('c') + '#' + `lc:X` + inc('c') + end + + if `ln` == '.' then + '.' + `lc:X` + inc('c') + '.' + `lc:X` + inc('c') + end + + if `ln` == 'O' then + '[' + `lc:X` + inc('c') + ']' + `lc:X` + inc('c') + end + + + +end + + +state read_instructions + `lnan` + + if `ln` == '<' then + -1 + end + if `ln` == '^' then + `0lw-` + end + if `ln` == '>' then + 1 + end + if `ln` == 'v' then + `lw` + end + if `ln` == 10 then + return + end + + move() + + #print_board() + +end + +interrupt newline + + if `lw` == 0 then + `lisw` + end + + if `li1+;I` == 10 then + `lilw/sh` + `lw2*sw` + + `[board is ]nlw1-n[x]nlhn10an` + `lplw~` + `[robot is at (]nn[,]nn[)]n` + + adjust_index(2) + + set_state(read_instructions) + + print_board() + + end + +end + +interrupt program_end + + `st` + + `[finished]n10an` + + 0 + for '!' in 0 to `lc` do + + if `l!;X` == '[' then + `l!lw~` + `[box is at (]nn[,]nn[)]n10an` + `l!lw~` + `r100*++` + end + + end + + `p` + + +end + + +function print_board + + for '!' in 0 to `lc` do + + if `l!lw%` == 0 then + `10an` + end + + `l!;Xan` + + end + + `10an` + +end + + +function move + + `sv` + `lpSP` + + `[` + _move() + `10an]x` #???? + + `[wow]nps.` + if `l.` == 1 then + + `[moved]n` + + '.' + `lp:X` + + '@' + `lplv+dsp:X` + + end + +end + +function _move + # v is vector of movement + # P is current position of push + + # returns 1 if can move/push + + # empty space -- can push + if `lPlv+;X` == '.' then + `LPst` + return 1 + end + + # wall -- can't push + if `lPlv+;X` == '#' then + `LPst` + return 0 + end + + # box left, need to check further + if `lPlv+;X` == '[' then + + # rightwards push + if `lv` == 1 then + + `lP2+SP` # add point to the right + + # if we can move + if _move() == 1 then + + # move this box + ']' + `lP3+:X` + '[' + `LP2+:X` + + return 1 + + end + + return 0 + + end + + # up/down push + if `lv` != 1 then + + `lPlv+SP` # add point to the up/down + # check if we can move + + if updown_check() == 1 then + + `LPlv+SP` # move + updown_move() + + return 1 + + end + + `[done]n` + + `LPst` + + return 0 + + end + + end + + # box right, need to check further + if `lPlv+;X` == ']' then + # leftwards push + if `lv` == -1 then + + `lP2-SP` # add point to the two left + + # if we can move + if _move() == 1 then + + # move this box + '[' + `lP3-:X` + ']' + `LP2-:X` + + return 1 + + end + + return 0 + + end + + # up/down push + if `lv` != -1 then + + `lPlv+SP` # add point to the up/down + # check if we can move + if updown_check() == 1 then + + `LPlv+SP` # move + updown_move() + + return 1 + + end + + `LPst` + + return 0 + + end + + end + + 0 + `[unknown symbol type: ]nlPlv+;Xan10an` +end + +# takes position in P +# also vector (assmed to be up or down) in v +function updown_check + + `[updown_check p=]nlPn[ ]nlP;Xan10an` + + if `lP;X` == '.' then + `LPst` + return 1 + end + + if `lP;X` == '#' then + `LPst` + return 0 + end + + if `lP;X` == ']' then + `LPlv+d` + `SP` # store one directly above + `1-SP` # and one directly to the left + + if updown_check() == 1 then + if updown_check() == 1 then + + `[}1]n` + return 1 + + end + end + + `[}0]n` + + return 0 + end + + if `lP;X` == '[' then + `LPlv+d` + `SP` # store one directly above + `1+SP` # and one directly to the right + + if updown_check() == 1 then + if updown_check() == 1 then + `[{1]n` + return 1 + end + end + + `[{0]n` + return 0 + end + + 0 + +end + + +# takes position above/below [ in P +function updown_move + + `[updown_move p=]nlPn[ ]nlP;Xan10an` + + if `lP;X` == '.' then + `LPst` + return + end + + if `lP;X` == '#' then + `LPst` + `[updown move on invalid thing. fuck.]n10an` + return + end + + if `lP;X` == '[' then + `lPlv+ds11+s2` # 1 = above directly, 2 = abo + + '.' + `lP:X` + '.' # and remove traces + `lP1+:X` + + `l1SP` # store one directly above '[' + `l2SP` # store two directly above ']' + updown_move() + updown_move() + + `LPlv+ds11+s2` # 1 = above directly, 2 = abo + '[' + `l1:X` # put this here + ']' + `l2:X` # and this here + + return + + end + + if `lP;X` == ']' then + `LP1-SP` + updown_move() + + return + end + +end diff --git a/src/python/2024/day13/part2.py b/src/python/2024/day13/part2.py new file mode 100644 index 0000000..f4e8808 --- /dev/null +++ b/src/python/2024/day13/part2.py @@ -0,0 +1,25 @@ +import re +a = open("temp").read().split("\n\n")[:-1] +#a = open("resources/2024/day13.txt").readlines() + +def solve(a, b, c, d, e, f): + y = ((a * f) - (c * d))/(a * e - b * d) + x = (c - b * y) / a + return (x, y) + + + +for i in a: + ba, bb, bp = i.split("\n") + + a, d = [int(re.sub(r'\D+', '', x)) for x in ba.split(", ")] + b, e = [int(re.sub(r'\D+', '', x)) for x in bb.split(", ")] + c, f = [int(re.sub(r'\D+', '', x)) for x in bp.split(", ")] + + x_s, y_s = solve(a, b, c, d, e, f) + x_10000, y_10000 = solve(a, b, 10000, d, e, 10000) + + print(a, b, c, d, e, f) + print(x_s + x_10000 * 1000000000, y_s + y_10000 * 1000000000) + +