diff options
author | Marvin Borner | 2022-12-21 09:50:39 +0100 |
---|---|---|
committer | Marvin Borner | 2022-12-21 09:50:39 +0100 |
commit | 551d0b6018c054f891ffb3c3fb92a65e839c2d51 (patch) | |
tree | 8e5c14bb53c564edc74712a652b66aff257a8b1d | |
parent | da36b579a724833d166f1076f906adee817b2527 (diff) |
whoo
-rw-r--r-- | 2022/18/input | 2742 | ||||
-rw-r--r-- | 2022/18/solve.py | 34 | ||||
-rw-r--r-- | 2022/19/input | 30 | ||||
-rw-r--r-- | 2022/19/solve.py | 69 | ||||
-rw-r--r-- | 2022/20/input | 5000 | ||||
-rw-r--r-- | 2022/20/solve.py | 32 | ||||
-rw-r--r-- | 2022/21/input | 2401 | ||||
-rw-r--r-- | 2022/21/solve.js | 32 |
8 files changed, 10340 insertions, 0 deletions
diff --git a/2022/18/input b/2022/18/input new file mode 100644 index 0000000..563efca --- /dev/null +++ b/2022/18/input @@ -0,0 +1,2742 @@ +13,6,3 +13,5,16 +11,2,10 +7,6,15 +8,11,3 +5,6,15 +6,11,3 +5,14,15 +11,18,8 +9,16,7 +2,10,11 +8,3,11 +5,7,6 +18,14,15 +10,5,5 +17,6,14 +6,4,7 +9,2,14 +3,11,16 +7,18,14 +14,12,4 +7,14,3 +12,16,4 +16,5,7 +14,7,3 +9,3,14 +14,14,16 +4,17,12 +17,16,14 +8,10,20 +16,10,17 +10,5,4 +11,5,4 +13,16,4 +12,2,12 +3,8,14 +8,5,14 +17,14,7 +16,7,3 +7,7,3 +15,15,7 +6,3,9 +5,6,5 +8,3,13 +16,14,4 +19,9,11 +5,8,5 +13,15,17 +15,7,16 +18,9,9 +4,6,8 +11,4,8 +9,19,12 +17,8,4 +13,4,16 +13,20,12 +9,17,12 +17,12,8 +14,11,2 +12,4,16 +3,7,8 +12,9,3 +14,16,4 +14,3,14 +4,16,9 +7,2,10 +12,5,5 +19,9,8 +17,11,3 +14,17,17 +13,12,19 +14,17,5 +11,13,20 +6,18,10 +12,1,10 +6,5,7 +2,8,8 +13,4,14 +5,3,13 +14,16,5 +12,17,7 +6,14,4 +5,10,17 +9,8,2 +13,4,5 +13,7,18 +5,19,8 +18,11,14 +1,10,9 +16,16,7 +5,5,8 +3,5,10 +6,3,8 +5,16,7 +6,9,4 +10,16,3 +18,7,13 +5,4,10 +9,14,18 +18,13,12 +19,11,15 +14,17,8 +15,6,13 +16,15,6 +3,15,10 +17,14,9 +14,15,16 +10,14,1 +10,2,15 +9,18,13 +2,10,9 +5,17,8 +14,9,3 +3,14,15 +12,3,13 +4,16,13 +7,6,17 +4,4,8 +13,3,10 +4,4,12 +11,19,14 +9,10,4 +14,10,16 +6,18,13 +9,4,4 +20,9,11 +3,11,5 +5,13,15 +2,14,11 +5,12,17 +10,20,12 +10,2,6 +14,5,15 +14,11,19 +9,20,13 +10,2,11 +17,16,12 +17,7,16 +3,8,10 +3,15,12 +4,7,14 +3,13,12 +19,12,12 +10,20,9 +10,1,12 +12,2,9 +17,16,15 +14,20,11 +6,17,6 +5,16,11 +6,19,9 +11,15,2 +11,8,2 +3,11,10 +10,4,5 +10,15,16 +7,4,7 +3,5,13 +2,13,8 +18,6,7 +19,8,12 +15,15,5 +17,12,5 +6,15,16 +7,12,18 +13,17,15 +15,4,7 +12,18,11 +18,12,14 +6,16,7 +13,12,4 +1,11,10 +10,14,3 +8,6,18 +14,4,9 +18,10,5 +5,16,14 +13,3,14 +5,6,6 +10,7,4 +7,7,16 +19,12,13 +11,4,15 +10,14,16 +18,8,13 +10,8,18 +3,13,10 +4,7,16 +15,3,14 +12,14,19 +6,7,4 +11,3,4 +18,9,12 +3,5,12 +9,3,6 +19,13,13 +4,7,13 +7,19,10 +2,11,6 +5,5,10 +8,16,17 +5,4,14 +18,7,15 +5,7,13 +9,11,2 +3,16,13 +16,4,8 +15,17,6 +10,4,4 +6,4,11 +2,13,14 +13,6,17 +7,3,12 +13,19,12 +10,19,16 +16,11,4 +12,15,18 +17,11,5 +4,12,13 +3,16,9 +12,3,10 +8,1,12 +18,12,15 +6,2,14 +16,6,14 +17,15,9 +14,13,3 +13,1,9 +16,13,17 +15,18,13 +7,13,18 +4,13,16 +6,4,13 +9,4,13 +11,19,10 +7,4,4 +9,7,18 +18,16,11 +3,12,12 +12,2,14 +7,10,18 +17,16,11 +11,13,2 +11,3,5 +11,3,14 +3,10,15 +16,18,11 +4,15,7 +11,11,20 +4,14,17 +8,12,19 +4,15,10 +10,16,7 +10,6,17 +19,12,11 +16,5,10 +10,4,6 +17,5,10 +16,10,4 +8,11,19 +7,5,17 +14,18,14 +12,2,10 +9,4,6 +6,9,3 +7,15,11 +6,4,10 +15,8,2 +3,7,13 +4,4,7 +14,19,14 +11,8,20 +14,8,3 +16,16,12 +18,13,8 +5,17,10 +17,14,15 +15,8,18 +7,3,8 +8,7,3 +15,11,4 +8,4,14 +19,11,10 +6,11,5 +10,9,1 +4,14,15 +11,1,12 +13,16,8 +4,10,17 +11,14,18 +8,10,3 +6,14,16 +4,6,11 +5,16,10 +7,17,12 +12,17,16 +16,10,3 +12,2,8 +3,11,7 +2,12,11 +17,17,13 +17,9,14 +17,18,13 +7,17,16 +9,17,15 +5,18,9 +11,4,17 +5,8,16 +14,11,3 +14,6,17 +17,8,11 +12,9,2 +9,18,7 +10,3,13 +8,6,19 +12,16,5 +18,5,9 +1,11,8 +12,7,2 +9,19,8 +11,3,7 +6,8,15 +6,13,18 +14,13,16 +6,8,4 +16,3,14 +6,17,12 +17,12,17 +11,11,19 +12,14,2 +11,3,13 +15,17,7 +15,14,3 +13,17,17 +9,10,3 +13,7,19 +16,6,5 +6,1,11 +17,8,14 +2,14,6 +15,4,14 +12,5,15 +17,4,7 +18,10,7 +9,14,3 +13,18,7 +15,8,4 +6,5,5 +7,17,6 +7,8,18 +4,17,10 +16,7,12 +10,18,11 +8,6,17 +8,13,1 +12,18,8 +4,14,7 +17,7,7 +10,7,18 +3,12,13 +10,2,12 +16,13,4 +10,2,8 +15,10,4 +18,12,5 +15,19,10 +8,7,2 +17,11,6 +7,4,9 +14,3,16 +14,9,18 +11,6,18 +4,8,10 +15,3,11 +17,17,10 +19,10,13 +6,16,16 +16,13,3 +10,1,10 +15,15,4 +18,9,5 +3,15,9 +9,19,9 +14,14,4 +11,4,16 +4,11,14 +13,18,16 +12,18,13 +15,4,11 +20,12,11 +6,3,6 +8,18,15 +10,3,11 +12,14,3 +13,18,5 +10,15,4 +10,5,17 +11,12,20 +4,8,5 +6,2,12 +7,4,5 +16,6,17 +6,12,3 +10,4,14 +18,11,15 +19,13,12 +3,11,15 +17,6,9 +16,6,7 +14,8,17 +1,9,10 +1,10,10 +15,8,16 +4,9,16 +8,11,2 +14,19,11 +12,20,13 +5,11,16 +4,12,16 +9,3,5 +15,13,18 +10,18,15 +3,15,11 +10,3,5 +11,12,2 +10,13,19 +20,9,10 +16,8,16 +7,14,16 +3,13,15 +8,7,5 +2,15,9 +6,10,3 +20,11,11 +7,12,19 +8,15,17 +15,9,20 +5,14,4 +7,11,2 +11,10,2 +5,17,13 +14,3,8 +4,6,6 +13,10,19 +12,17,3 +9,10,19 +3,9,8 +6,16,8 +9,13,2 +8,19,15 +16,8,11 +10,9,18 +17,4,10 +17,8,13 +9,10,20 +5,4,12 +19,13,14 +8,5,8 +14,3,10 +9,19,10 +4,12,15 +12,2,13 +9,16,3 +15,2,12 +13,10,2 +9,2,9 +11,12,19 +14,10,3 +8,8,2 +12,7,16 +16,12,16 +8,14,19 +5,13,3 +17,5,8 +11,17,4 +19,11,6 +7,19,12 +15,5,17 +17,6,15 +12,5,16 +5,6,8 +5,5,6 +2,13,12 +8,19,10 +3,14,8 +15,16,7 +13,12,18 +10,9,2 +6,4,6 +3,8,11 +10,18,13 +17,4,8 +18,15,9 +5,9,16 +10,19,9 +3,9,6 +17,3,11 +6,10,4 +12,5,17 +5,6,9 +6,5,13 +19,11,11 +18,11,7 +16,4,14 +15,5,4 +14,4,7 +12,8,4 +6,3,7 +5,4,7 +16,11,17 +2,9,8 +13,20,11 +5,10,15 +15,5,15 +10,12,18 +7,5,6 +5,14,6 +8,7,15 +19,13,8 +18,12,11 +10,3,16 +13,8,18 +17,7,5 +8,14,17 +6,15,7 +7,10,19 +15,2,11 +11,11,2 +14,5,4 +14,15,15 +12,16,16 +7,5,16 +9,9,1 +14,13,17 +17,16,10 +10,17,5 +18,14,8 +3,8,6 +3,11,6 +9,16,17 +3,7,9 +6,4,8 +5,12,18 +6,16,17 +16,14,16 +20,11,7 +14,18,9 +15,13,17 +13,16,17 +4,3,7 +1,12,13 +5,17,15 +13,19,9 +12,3,14 +9,15,4 +18,12,13 +3,14,12 +13,9,2 +16,14,6 +10,4,11 +6,17,8 +5,11,17 +7,5,4 +2,9,9 +8,3,15 +2,11,11 +6,17,11 +7,3,13 +15,3,7 +6,14,5 +16,16,11 +12,9,19 +18,16,10 +11,14,4 +2,14,9 +4,6,9 +12,4,4 +18,5,15 +8,9,19 +3,10,17 +8,1,11 +8,16,15 +10,12,4 +15,14,17 +1,13,7 +8,12,3 +7,7,17 +9,7,3 +10,15,17 +17,12,15 +14,4,15 +12,14,17 +19,14,9 +17,10,5 +8,13,2 +15,8,3 +4,16,14 +17,14,12 +2,11,9 +15,6,7 +18,13,15 +5,10,3 +9,14,16 +18,15,15 +10,1,7 +13,2,12 +11,13,19 +11,5,3 +13,15,3 +6,14,6 +14,19,8 +18,17,13 +10,7,3 +12,4,14 +10,2,5 +4,7,6 +10,17,7 +13,5,3 +8,14,4 +8,3,5 +15,18,9 +4,14,5 +14,17,15 +4,14,4 +15,13,3 +12,10,19 +1,9,9 +18,5,8 +12,12,17 +8,6,3 +15,7,18 +18,12,16 +17,13,8 +4,12,6 +11,18,13 +18,10,8 +16,8,6 +6,5,15 +6,15,4 +8,19,11 +12,19,11 +12,12,3 +12,16,18 +15,6,18 +14,11,1 +10,6,20 +3,6,7 +9,5,18 +15,12,3 +5,9,8 +9,1,11 +6,7,5 +7,10,17 +13,6,16 +15,16,10 +4,12,5 +5,13,19 +12,4,6 +8,6,4 +7,16,3 +7,4,14 +10,6,15 +8,14,2 +15,11,19 +6,5,10 +18,8,14 +3,4,13 +16,16,15 +5,5,16 +13,5,15 +15,18,11 +16,8,13 +11,10,18 +18,7,8 +6,17,14 +4,13,17 +16,10,18 +6,5,6 +2,8,10 +13,16,2 +15,18,10 +6,16,13 +17,5,14 +17,6,13 +20,7,10 +19,7,13 +9,16,4 +5,18,10 +11,6,4 +15,14,4 +14,12,3 +11,10,3 +19,11,7 +7,3,11 +4,8,6 +10,10,20 +18,8,18 +4,15,13 +12,14,18 +18,9,13 +16,3,10 +15,6,4 +12,5,3 +7,13,16 +12,11,20 +4,4,11 +14,17,16 +19,10,15 +15,3,12 +5,4,9 +6,16,5 +15,17,10 +13,10,5 +18,9,11 +12,19,10 +10,4,16 +9,14,4 +11,5,18 +7,5,7 +9,3,13 +7,8,4 +19,12,8 +15,6,17 +16,9,4 +6,18,8 +13,14,17 +3,12,6 +18,16,12 +9,4,12 +14,4,4 +11,17,14 +16,16,6 +5,6,16 +11,3,6 +4,6,10 +13,4,18 +12,19,9 +10,3,8 +2,13,9 +9,18,10 +2,13,10 +8,2,11 +6,15,6 +16,16,14 +17,15,12 +10,3,14 +3,13,14 +18,16,9 +8,14,5 +9,9,17 +5,17,6 +5,18,14 +18,8,11 +10,5,13 +11,19,11 +14,5,16 +8,7,18 +18,5,10 +4,17,5 +18,15,14 +6,4,9 +8,8,19 +4,11,6 +14,5,6 +11,6,2 +20,12,12 +8,10,2 +3,7,10 +13,4,15 +14,7,18 +10,16,16 +2,11,16 +18,8,15 +8,5,17 +20,12,7 +6,17,16 +6,10,17 +12,4,8 +10,17,17 +10,16,5 +3,10,8 +14,2,10 +9,9,18 +19,13,10 +8,9,2 +4,11,8 +15,11,17 +16,12,6 +16,15,14 +16,16,16 +15,4,15 +7,9,3 +18,10,14 +11,14,3 +17,6,10 +9,8,4 +2,10,17 +7,9,4 +4,9,5 +17,11,15 +4,6,13 +7,16,17 +5,5,14 +9,19,15 +10,5,19 +5,5,15 +4,15,16 +19,9,9 +3,14,7 +14,14,17 +17,14,4 +19,5,11 +17,16,8 +8,19,13 +11,18,9 +6,18,14 +15,17,9 +15,9,4 +18,6,9 +18,14,7 +13,2,13 +4,8,7 +19,10,11 +14,4,14 +9,18,6 +8,15,18 +5,12,5 +8,17,9 +17,8,8 +17,6,5 +2,6,9 +2,8,11 +8,9,6 +17,9,8 +6,6,14 +17,4,9 +10,18,7 +19,7,9 +16,14,5 +4,13,4 +11,6,3 +17,4,14 +14,16,17 +5,7,4 +18,11,12 +12,15,5 +3,9,11 +5,11,4 +12,18,9 +7,16,5 +5,5,5 +11,1,13 +14,14,3 +5,17,7 +17,9,5 +9,2,15 +10,11,2 +6,11,14 +7,2,9 +14,2,8 +8,18,7 +11,19,13 +6,3,11 +13,5,18 +15,14,5 +6,3,15 +7,9,19 +16,5,8 +8,2,12 +14,9,4 +13,19,7 +14,13,18 +14,7,17 +7,8,19 +6,9,16 +12,10,3 +6,15,17 +12,18,14 +4,14,16 +6,13,2 +18,11,8 +4,11,13 +18,13,9 +18,17,11 +17,5,13 +2,8,13 +1,14,8 +7,12,3 +9,6,3 +17,15,6 +9,20,9 +15,5,12 +6,6,5 +11,16,4 +7,3,5 +16,17,14 +4,17,8 +5,5,7 +6,18,12 +11,7,3 +15,4,8 +20,10,12 +7,18,10 +17,8,5 +2,11,12 +3,6,10 +15,6,16 +15,10,17 +2,7,6 +18,15,7 +14,9,2 +2,12,7 +10,3,17 +14,12,2 +13,12,20 +20,11,13 +7,10,2 +1,9,11 +17,9,16 +3,9,4 +16,5,5 +14,9,19 +7,3,9 +7,13,3 +17,6,6 +15,11,18 +16,4,12 +10,12,3 +5,16,5 +18,7,11 +11,16,16 +2,6,8 +10,16,15 +16,9,5 +5,15,15 +10,8,19 +3,8,15 +13,15,4 +11,19,12 +15,12,18 +12,19,12 +12,15,19 +19,9,12 +3,10,14 +15,3,8 +4,5,5 +16,5,13 +5,13,17 +14,6,5 +11,19,15 +15,17,16 +3,14,9 +10,2,13 +9,4,16 +10,18,14 +9,3,15 +14,11,18 +13,13,3 +18,15,5 +18,7,6 +10,15,2 +9,18,11 +10,2,14 +13,11,1 +19,8,11 +11,10,19 +2,6,11 +8,8,4 +16,12,4 +14,15,13 +19,16,10 +10,2,9 +9,18,12 +7,4,15 +5,7,8 +12,9,18 +15,6,15 +4,14,6 +11,8,19 +14,18,8 +14,17,13 +6,13,3 +8,17,15 +8,2,14 +13,14,19 +3,5,9 +13,18,6 +18,7,7 +13,12,2 +5,9,3 +13,11,19 +5,4,11 +11,3,17 +3,5,8 +8,16,6 +13,10,20 +13,18,14 +7,17,15 +14,16,12 +8,12,2 +17,4,13 +10,11,20 +12,10,2 +11,2,8 +9,2,10 +12,1,9 +8,5,16 +12,8,3 +20,15,9 +6,8,16 +10,17,16 +16,14,8 +12,17,5 +4,8,16 +7,15,18 +9,5,14 +13,16,5 +10,8,1 +11,20,12 +17,7,8 +7,2,12 +14,19,12 +10,10,19 +7,17,8 +15,7,6 +9,11,3 +14,6,15 +5,9,5 +20,14,11 +6,17,10 +17,11,16 +8,19,9 +17,13,16 +18,14,14 +3,12,9 +16,17,12 +14,7,5 +14,17,9 +19,9,14 +10,2,10 +16,15,4 +15,10,2 +11,2,14 +8,7,6 +8,19,6 +12,2,7 +16,3,12 +14,6,4 +4,8,4 +8,4,10 +14,15,4 +12,19,13 +10,6,18 +18,6,8 +2,9,10 +11,15,3 +16,13,16 +8,9,3 +10,18,8 +11,17,15 +17,13,5 +7,2,11 +17,13,15 +8,4,9 +18,7,14 +6,17,9 +12,12,18 +4,13,12 +19,7,10 +11,10,20 +13,19,13 +15,6,11 +4,5,15 +8,11,1 +12,7,18 +13,5,5 +6,7,16 +4,6,7 +15,16,9 +6,3,14 +18,15,13 +12,13,19 +17,17,8 +12,19,7 +15,5,5 +5,6,13 +19,6,11 +14,12,5 +2,12,9 +9,4,5 +15,5,11 +3,17,10 +16,17,11 +14,13,2 +20,9,8 +17,10,16 +2,9,15 +14,4,10 +7,4,16 +13,13,17 +12,9,16 +10,7,2 +9,8,19 +13,3,6 +11,7,18 +4,8,9 +17,10,18 +10,3,7 +16,8,4 +7,6,5 +1,7,11 +5,13,18 +3,6,11 +8,11,18 +17,12,6 +8,8,3 +18,14,13 +11,9,18 +5,13,13 +15,6,6 +7,14,19 +7,12,4 +9,7,2 +13,3,13 +15,17,11 +10,17,4 +8,17,18 +12,19,14 +19,8,9 +6,16,12 +8,7,4 +4,7,7 +13,3,15 +10,20,11 +7,14,4 +18,10,9 +17,14,8 +16,7,7 +15,4,13 +18,11,5 +4,8,15 +2,9,11 +1,13,12 +2,8,9 +6,19,10 +14,8,18 +11,18,12 +16,7,4 +4,10,16 +10,18,17 +3,11,8 +12,15,17 +17,5,11 +19,9,10 +19,8,16 +2,11,13 +20,9,12 +14,4,16 +5,13,9 +15,4,9 +18,10,11 +3,12,7 +4,9,12 +4,13,5 +11,15,18 +7,13,2 +12,1,12 +5,9,11 +2,8,12 +17,7,15 +14,5,12 +12,5,18 +3,14,11 +5,13,4 +17,8,7 +15,5,6 +19,8,7 +13,16,16 +5,11,15 +3,10,11 +8,6,16 +19,8,15 +6,18,7 +18,7,10 +14,3,9 +10,16,4 +15,19,13 +8,16,16 +17,14,17 +3,13,8 +4,5,11 +9,18,3 +5,17,14 +7,9,18 +6,16,6 +9,6,18 +6,9,19 +6,7,3 +9,19,13 +16,15,5 +14,16,7 +12,17,17 +18,9,17 +12,11,19 +16,7,17 +13,4,6 +3,6,12 +13,17,5 +8,18,14 +5,14,5 +15,18,12 +13,2,10 +5,5,9 +18,6,10 +9,13,18 +3,10,9 +6,6,18 +17,15,7 +4,9,7 +3,11,17 +15,6,8 +4,7,15 +11,12,1 +12,7,17 +6,14,3 +15,15,15 +17,14,11 +6,6,7 +13,20,13 +15,9,2 +12,2,11 +5,6,7 +13,8,3 +2,7,10 +19,10,12 +6,10,16 +16,17,6 +13,8,17 +17,13,4 +7,2,7 +11,9,3 +12,11,2 +13,8,16 +5,10,2 +10,19,7 +8,4,6 +17,5,9 +13,1,10 +16,4,13 +13,6,1 +6,11,4 +18,14,6 +12,13,17 +17,15,10 +7,12,1 +6,4,12 +4,7,9 +16,7,15 +6,9,6 +5,12,3 +4,14,14 +14,13,20 +15,18,15 +19,14,11 +16,18,12 +10,15,15 +6,6,17 +9,5,6 +14,18,11 +13,2,11 +7,19,8 +19,14,8 +18,11,11 +13,6,4 +1,10,8 +9,14,17 +16,17,13 +4,7,17 +10,1,11 +9,2,13 +4,10,7 +4,8,13 +8,15,3 +13,10,3 +10,9,20 +19,12,6 +3,14,10 +1,12,10 +7,9,2 +9,17,16 +9,1,12 +18,8,6 +6,5,4 +6,14,7 +12,19,8 +14,10,19 +17,6,7 +8,5,15 +11,19,7 +13,18,9 +18,6,13 +8,17,16 +10,7,14 +18,11,4 +15,17,8 +1,7,10 +10,19,12 +16,5,6 +9,11,18 +17,16,7 +6,7,8 +5,9,4 +6,4,14 +16,9,16 +13,4,13 +11,3,9 +12,13,2 +11,3,16 +5,6,17 +13,3,7 +9,4,7 +5,15,9 +16,10,5 +15,13,14 +15,11,3 +7,17,11 +11,5,5 +7,3,15 +4,16,10 +11,9,19 +15,12,2 +16,6,16 +19,11,14 +13,3,8 +15,17,14 +1,8,9 +19,13,9 +10,11,18 +7,1,10 +13,4,7 +12,1,16 +5,6,10 +13,18,11 +10,10,1 +5,11,2 +19,9,13 +4,17,13 +19,14,10 +15,16,6 +7,12,2 +10,11,1 +8,17,4 +10,15,1 +7,16,4 +3,15,14 +11,9,2 +19,8,14 +4,11,4 +10,13,20 +3,15,13 +15,16,18 +16,18,13 +14,13,4 +1,10,12 +11,20,13 +12,6,4 +5,12,4 +17,4,12 +4,10,3 +5,9,6 +5,15,12 +16,11,16 +5,7,10 +15,6,14 +3,10,10 +5,16,17 +18,10,16 +11,4,13 +9,5,16 +11,2,9 +12,5,8 +3,14,14 +6,11,6 +15,6,3 +8,11,20 +9,15,3 +12,4,3 +17,12,4 +6,9,18 +7,11,18 +4,18,10 +6,5,8 +3,13,6 +14,2,11 +7,11,19 +1,10,13 +4,15,14 +8,16,3 +16,7,6 +13,8,19 +15,17,5 +5,8,8 +17,10,7 +15,7,5 +14,5,3 +16,15,12 +1,9,13 +2,9,13 +11,1,9 +16,5,14 +2,12,13 +3,6,16 +5,16,8 +10,3,12 +3,14,16 +12,2,15 +5,12,6 +12,3,16 +8,3,7 +16,4,11 +5,8,17 +11,2,11 +13,17,13 +11,4,18 +3,16,10 +3,12,8 +2,10,13 +18,15,11 +18,5,12 +2,7,11 +14,3,6 +15,6,5 +14,10,2 +2,12,14 +6,13,4 +15,16,16 +8,19,12 +2,10,8 +15,9,19 +14,6,6 +15,4,10 +17,14,16 +2,11,14 +9,16,5 +8,18,9 +10,7,1 +16,5,9 +18,6,16 +15,13,16 +5,15,7 +16,4,15 +15,16,14 +6,8,6 +14,5,10 +16,5,15 +9,5,15 +6,3,13 +8,16,18 +16,3,11 +7,3,7 +9,13,19 +16,14,13 +12,3,8 +9,9,3 +2,11,10 +17,14,13 +14,16,6 +20,12,14 +10,5,16 +13,9,4 +12,5,4 +1,13,8 +17,17,14 +3,10,7 +10,13,2 +15,9,17 +14,19,10 +4,5,12 +7,10,3 +13,16,6 +16,7,9 +3,16,12 +4,9,4 +16,8,18 +2,11,5 +13,17,6 +7,17,5 +6,19,14 +5,16,6 +10,17,13 +3,8,13 +3,7,15 +12,4,7 +4,6,4 +11,14,19 +9,18,16 +8,3,6 +9,2,12 +13,2,7 +8,4,13 +8,17,14 +19,10,10 +10,15,5 +15,15,6 +18,15,10 +5,9,18 +10,20,13 +12,17,14 +19,7,12 +6,8,18 +16,2,10 +2,7,12 +7,13,4 +17,15,14 +8,15,5 +12,17,6 +18,9,8 +16,12,3 +11,9,1 +10,18,16 +16,10,16 +12,5,7 +15,19,11 +12,8,20 +10,9,3 +6,12,17 +1,14,9 +8,7,17 +13,5,4 +13,14,1 +9,13,4 +7,16,10 +9,17,18 +15,16,4 +5,8,15 +3,6,13 +7,11,3 +19,11,12 +10,11,3 +4,9,3 +12,7,4 +10,19,11 +17,8,3 +10,17,3 +6,12,2 +9,17,9 +6,7,15 +8,14,7 +15,10,18 +4,8,14 +19,14,7 +13,1,8 +18,14,12 +14,14,18 +13,15,15 +6,5,14 +10,15,18 +14,2,9 +12,13,3 +7,15,7 +14,4,5 +11,1,8 +16,14,15 +18,10,13 +4,16,12 +5,5,13 +4,15,5 +17,9,7 +14,5,17 +6,10,14 +11,17,5 +20,8,10 +14,17,7 +11,13,4 +9,3,8 +9,16,18 +2,7,14 +5,3,9 +6,11,18 +14,5,11 +8,2,7 +7,14,5 +7,3,6 +6,2,13 +9,18,9 +1,11,15 +3,7,4 +4,12,18 +16,9,18 +9,18,14 +3,7,14 +7,18,11 +19,7,8 +5,11,3 +6,12,4 +17,12,7 +13,5,7 +16,18,10 +7,18,12 +5,8,7 +9,2,5 +9,2,11 +10,2,7 +13,19,8 +12,19,16 +3,6,14 +16,7,14 +16,15,16 +18,8,9 +5,13,14 +5,7,17 +3,10,13 +6,2,11 +3,9,5 +6,13,19 +16,16,5 +9,9,19 +10,16,17 +15,17,15 +11,2,5 +11,19,9 +8,5,18 +5,16,15 +15,8,5 +19,11,13 +20,12,10 +9,13,20 +14,18,16 +12,17,12 +13,15,14 +6,6,4 +14,8,6 +18,12,8 +6,6,6 +16,4,9 +11,20,11 +9,3,10 +5,9,17 +18,11,9 +4,10,5 +4,13,9 +17,8,16 +9,17,17 +7,13,19 +19,13,11 +14,8,5 +7,18,6 +9,12,18 +4,16,7 +2,10,12 +17,9,15 +12,12,20 +17,12,14 +2,13,7 +5,15,5 +5,15,17 +11,3,10 +16,3,6 +12,16,17 +4,7,10 +11,2,12 +16,4,10 +17,6,11 +9,4,17 +8,4,15 +15,10,19 +15,17,12 +9,3,7 +15,15,3 +9,16,16 +11,11,18 +16,5,4 +14,16,15 +2,15,7 +9,7,19 +2,9,12 +14,11,4 +16,13,15 +10,6,4 +20,13,9 +5,2,10 +19,9,7 +3,8,16 +2,13,11 +7,18,8 +16,18,14 +12,3,17 +5,7,11 +10,19,6 +7,6,18 +4,5,6 +19,8,8 +5,6,4 +7,18,5 +19,17,10 +4,5,14 +17,10,3 +16,13,14 +13,9,3 +10,6,2 +11,19,6 +9,6,19 +7,19,9 +18,9,4 +14,7,6 +8,18,10 +15,6,12 +11,18,6 +11,17,18 +18,9,14 +19,15,10 +14,5,5 +7,19,11 +3,7,11 +9,16,14 +4,5,7 +4,18,13 +17,7,12 +15,8,6 +17,17,11 +3,8,5 +11,5,17 +8,10,18 +10,8,2 +16,2,12 +5,10,16 +17,8,12 +16,11,5 +4,12,7 +15,10,3 +8,4,4 +14,1,12 +8,3,8 +10,7,19 +16,7,5 +4,13,13 +8,4,16 +6,13,17 +18,9,7 +15,7,4 +8,14,18 +9,7,14 +16,12,17 +1,8,11 +1,14,12 +14,5,8 +16,15,13 +18,6,11 +3,13,9 +10,4,15 +19,6,13 +6,6,8 +15,16,5 +9,15,18 +7,4,6 +8,5,10 +8,2,13 +5,11,5 +6,13,15 +13,3,12 +17,9,10 +6,5,11 +11,18,5 +6,6,16 +14,5,18 +17,10,17 +11,12,3 +11,4,4 +11,18,10 +16,16,13 +11,17,7 +10,19,10 +2,10,15 +7,4,17 +8,10,19 +11,17,9 +15,18,6 +2,15,8 +18,13,4 +3,7,7 +2,12,15 +6,6,9 +7,16,16 +5,5,4 +15,14,18 +8,20,13 +7,11,4 +18,10,17 +17,9,9 +14,3,15 +5,14,3 +14,3,7 +6,8,17 +4,15,12 +17,15,11 +13,11,17 +4,9,15 +15,4,5 +8,17,10 +18,14,11 +7,18,13 +15,12,4 +14,4,11 +16,5,12 +2,10,7 +15,9,5 +2,14,16 +16,15,9 +8,4,5 +19,12,10 +8,6,7 +7,1,9 +10,12,2 +17,9,3 +5,3,14 +6,11,16 +7,4,13 +14,15,5 +11,7,2 +12,4,5 +5,13,5 +4,10,9 +16,7,13 +4,10,8 +7,8,3 +4,10,14 +8,3,18 +3,14,13 +6,17,5 +3,8,7 +16,7,16 +4,6,15 +15,17,13 +6,4,4 +12,3,6 +8,4,17 +6,3,10 +15,8,17 +19,10,9 +7,4,8 +19,15,11 +18,4,9 +10,3,15 +13,19,14 +4,15,9 +9,19,11 +9,2,8 +17,6,8 +18,9,6 +17,8,6 +4,13,8 +16,17,10 +9,2,7 +7,10,16 +18,12,6 +9,8,18 +7,17,13 +14,5,9 +10,19,14 +17,12,16 +8,17,8 +16,15,8 +11,16,5 +8,18,12 +10,13,1 +15,18,7 +15,13,4 +8,3,14 +17,15,15 +5,17,9 +18,9,15 +4,3,11 +8,17,6 +5,3,10 +18,8,12 +18,8,16 +17,7,9 +4,4,14 +9,12,19 +13,5,14 +5,18,12 +8,2,10 +12,3,11 +11,12,4 +11,8,17 +13,14,4 +10,18,12 +17,13,10 +17,15,16 +2,7,8 +12,6,16 +5,7,14 +7,16,15 +13,13,4 +13,5,17 +13,17,9 +17,13,13 +10,3,18 +13,18,15 +8,19,14 +9,3,12 +4,12,4 +17,10,15 +11,7,17 +7,17,7 +17,10,14 +13,6,6 +2,9,7 +13,7,4 +7,7,14 +4,12,14 +8,14,16 +13,14,3 +17,16,16 +5,16,12 +18,16,13 +13,13,18 +4,16,8 +9,10,1 +5,3,11 +12,18,12 +3,12,15 +14,10,18 +4,5,13 +6,5,16 +7,16,14 +17,16,6 +11,18,11 +16,6,12 +14,6,16 +8,4,7 +5,12,8 +15,19,14 +15,15,17 +13,16,7 +15,14,6 +5,14,7 +8,15,2 +13,8,2 +15,2,10 +18,10,6 +5,15,3 +9,4,15 +12,11,4 +9,17,4 +20,10,15 +11,2,7 +20,8,13 +9,17,5 +9,5,17 +11,18,7 +11,1,10 +10,14,17 +17,3,7 +9,1,8 +14,5,13 +13,9,1 +10,20,7 +17,13,6 +13,2,9 +10,19,8 +12,17,11 +12,13,4 +4,15,15 +10,13,16 +13,11,18 +15,5,13 +5,10,5 +11,15,6 +5,18,11 +14,7,4 +5,17,11 +7,7,20 +6,16,14 +7,8,17 +12,3,5 +13,19,6 +3,13,7 +9,10,16 +12,16,3 +12,9,1 +6,15,14 +12,3,12 +15,3,13 +7,15,16 +4,11,17 +2,7,9 +8,19,5 +2,12,8 +16,11,2 +14,3,11 +4,14,9 +15,15,16 +4,16,15 +9,5,5 +3,13,5 +10,6,5 +15,10,14 +16,4,16 +18,12,7 +8,18,13 +7,19,13 +14,19,9 +10,14,2 +13,16,3 +12,4,17 +12,17,15 +19,11,5 +8,6,5 +10,10,3 +11,20,10 +17,7,14 +13,17,16 +13,20,10 +8,18,5 +7,5,3 +2,14,10 +3,8,9 +14,6,18 +6,10,2 +14,16,8 +9,20,14 +18,5,11 +9,4,14 +5,17,12 +7,18,15 +7,5,13 +17,7,13 +9,5,4 +18,13,16 +7,18,9 +7,15,6 +3,10,6 +12,17,4 +12,12,19 +13,17,8 +12,3,3 +5,15,13 +4,10,6 +16,3,9 +6,16,4 +7,19,14 +3,11,13 +10,10,18 +4,5,8 +11,15,4 +14,12,19 +17,16,9 +9,11,17 +18,11,16 +10,16,19 +10,1,13 +13,8,1 +19,12,7 +5,14,16 +10,14,5 +7,2,8 +15,15,10 +12,8,2 +7,15,17 +8,12,17 +2,16,8 +10,16,6 +7,6,7 +5,17,5 +7,8,16 +11,17,6 +5,6,14 +4,4,9 +11,20,9 +2,13,13 +18,3,10 +11,5,15 +18,7,12 +12,12,2 +4,16,11 +19,12,9 +14,18,13 +19,12,14 +8,20,8 +9,3,16 +8,19,8 +11,13,18 +15,16,3 +13,12,3 +2,6,10 +8,18,6 +15,4,6 +5,14,17 +6,14,17 +2,14,12 +11,6,19 +20,8,12 +1,9,14 +18,10,4 +13,6,15 +7,14,2 +3,15,8 +13,7,2 +4,13,6 +10,17,8 +5,5,11 +10,0,10 +10,9,19 +18,13,6 +13,7,15 +13,7,17 +7,15,3 +7,16,6 +14,15,7 +9,10,2 +10,10,17 +3,8,17 +15,13,2 +9,18,17 +9,13,1 +12,3,15 +12,6,18 +17,12,11 +7,3,10 +4,4,10 +16,14,18 +15,16,17 +10,18,9 +17,7,17 +1,8,12 +7,6,16 +13,1,11 +15,16,15 +17,13,7 +10,17,15 +19,9,16 +2,14,14 +14,16,16 +6,15,5 +3,4,9 +12,16,20 +3,12,16 +1,9,12 +11,16,17 +19,5,12 +14,17,14 +13,6,5 +8,4,12 +5,7,5 +12,7,3 +16,12,18 +6,19,11 +11,19,8 +8,17,17 +15,2,13 +15,16,8 +19,11,9 +13,9,17 +5,13,16 +4,10,4 +4,4,13 +4,6,5 +15,9,16 +14,14,19 +19,9,5 +4,7,5 +13,19,15 +12,12,1 +12,1,13 +9,12,20 +9,11,19 +11,13,3 +13,17,10 +6,19,12 +16,6,13 +2,13,6 +18,5,13 +20,9,9 +3,6,9 +9,20,12 +5,6,12 +15,16,11 +19,10,6 +10,13,3 +16,12,15 +18,11,17 +1,12,11 +6,18,9 +5,12,14 +5,14,18 +6,7,18 +9,6,4 +12,1,11 +11,3,12 +13,4,4 +13,7,3 +18,9,16 +3,17,13 +18,13,11 +14,6,3 +16,15,15 +12,14,16 +11,1,14 +9,12,2 +1,11,12 +4,7,8 +10,18,6 +11,3,8 +8,17,5 +9,9,20 +11,7,4 +2,15,10 +11,4,14 +7,16,9 +3,4,7 +4,18,9 +13,10,17 +17,5,12 +12,8,18 +13,9,19 +14,6,7 +12,13,20 +6,12,19 +13,8,20 +17,11,17 +8,13,20 +16,17,7 +14,17,6 +16,16,8 +15,4,12 +4,11,16 +11,12,18 +15,19,7 +16,5,11 +2,7,13 +15,7,17 +13,19,11 +18,10,10 +15,9,3 +7,7,4 +11,18,14 +5,12,13 +11,13,16 +12,10,1 +5,12,2 +2,10,14 +19,8,10 +6,9,17 +15,3,15 +10,15,3 +3,5,14 +2,11,7 +12,4,10 +13,10,18 +10,12,19 +8,9,20 +6,12,18 +14,12,18 +18,15,6 +13,20,14 +7,16,18 +13,4,10 +16,11,10 +8,2,8 +4,12,17 +5,7,12 +11,14,17 +7,8,20 +18,6,6 +16,8,17 +4,12,8 +11,1,11 +15,12,16 +14,4,17 +11,6,17 +9,3,11 +19,9,6 +13,18,12 +12,3,4 +14,4,6 +16,17,8 +4,13,15 +3,8,8 +1,12,8 +16,4,7 +12,6,19 +13,6,18 +12,8,1 +3,4,8 +4,5,10 +12,18,7 +14,18,10 +18,4,12 +15,7,15 +16,7,11 +17,15,5 +16,14,14 +17,13,14 +11,11,1 +5,11,18 +16,11,3 +20,10,6 +15,10,16 +17,13,11 +6,19,7 +9,8,3 +4,13,7 +14,11,17 +10,1,8 +15,18,14 +3,5,7 +14,7,16 +3,15,7 +7,8,2 +13,14,5 +2,14,8 +15,5,7 +3,12,14 +14,13,5 +10,8,3 +8,15,4 +12,7,19 +4,14,10 +2,12,10 +13,11,4 +18,12,17 +14,15,17 +17,6,12 +14,19,7 +6,9,2 +17,11,8 +15,3,9 +13,13,19 +9,9,2 +18,5,14 +18,10,15 +18,9,10 +17,14,5 +4,9,14 +5,7,16 +4,6,14 +14,2,12 +7,4,11 +6,17,7 +14,9,17 +14,15,8 +16,9,7 +10,6,19 +19,13,7 +4,10,15 +4,15,4 +7,17,4 +3,10,5 +4,17,11 +6,17,15 +7,14,18 +3,9,12 +10,18,5 +9,15,19 +10,16,2 +14,4,12 +16,9,17 +15,4,16 +19,16,12 +17,8,17 +5,6,11 +14,18,7 +1,10,11 +12,14,4 +17,8,10 +5,10,18 +7,4,10 +8,13,4 +17,12,12 +6,11,19 +18,12,9 +3,12,11 +3,7,12 +16,13,12 +16,11,18 +5,4,13 +13,1,13 +6,14,20 +18,15,8 +17,9,11 +16,8,3 +5,4,8 +5,13,8 +20,10,7 +11,13,1 +4,11,7 +14,15,18 +12,20,14 +12,7,5 +6,6,15 +11,1,7 +5,8,3 +13,4,17 +14,8,2 +11,3,15 +8,15,15 +4,9,6 +16,9,15 +15,19,12 +6,2,9 +12,18,10 +5,18,7 +8,1,8 +14,3,5 +8,5,2 +18,13,13 +10,17,6 +10,6,3 +14,6,2 +6,7,17 +12,19,15 +10,18,10 +13,18,13 +9,10,18 +16,14,7 +3,9,17 +20,11,8 +19,6,9 +9,6,14 +7,13,17 +11,0,11 +9,18,8 +15,11,16 +18,7,9 +11,15,19 +16,17,16 +18,8,8 +18,13,14 +11,18,15 +5,8,12 +5,19,11 +8,7,19 +6,16,10 +6,15,15 +4,15,8 +14,17,4 +3,13,16 +12,10,4 +19,7,14 +2,14,7 +14,18,12 +21,10,10 +20,10,10 +8,18,4 +10,16,14 +5,15,10 +10,20,10 +16,4,6 +17,15,4 +7,2,15 +7,17,9 +4,13,14 +12,6,3 +8,9,18 +4,5,9 +13,17,7 +18,14,5 +8,13,19 +19,9,15 +2,8,15 +17,10,4 +12,16,6 +19,8,13 +8,18,16 +10,19,15 +6,12,5 +5,4,6 +7,14,17 +4,8,17 +20,13,10 +11,18,4 +11,8,1 +7,19,6 +12,7,8 +10,8,20 +17,11,4 +9,20,7 +4,14,11 +11,7,19 +12,4,15 +19,14,12 +13,19,10 +11,14,2 +2,9,6 +18,8,10 +9,17,11 +16,14,3 +7,11,17 +13,16,10 +13,18,8 +6,15,3 +12,20,10 +15,14,16 +13,11,2 +8,16,5 +8,13,18 +17,15,13 +3,11,12 +17,7,6 +6,12,16 +3,3,12 +16,3,15 +3,9,15 +6,18,11 +9,3,9 +4,7,11 +14,12,17 +7,15,4 +14,10,17 +5,19,12 +6,6,3 +7,7,18 +10,16,18 +13,17,11 +12,8,17 +9,19,6 +15,17,17 +13,11,3 +5,12,15 +2,14,13 +9,18,4 +3,8,12 +17,14,14 +2,8,7 +19,10,8 +6,5,9 +12,17,18 +18,12,10 +8,4,8 +17,11,10 +3,12,10 +7,9,16 +13,3,9 +5,8,18 +3,11,9 +7,17,10 +11,15,16 +2,10,10 +16,9,3 +9,14,19 +2,11,15 +14,15,3 +11,14,5 +5,10,14 +18,15,12 +8,3,4 +9,19,7 +8,20,12 +10,5,18 +5,12,16 +9,11,4 +20,10,8 +5,15,11 +19,6,10 +18,6,14 +11,20,8 +15,8,13 +8,5,4 +5,18,8 +19,8,6 +15,12,17 +14,8,19 +14,8,20 +10,14,19 +13,15,18 +9,16,19 +17,6,17 +11,18,16 +12,11,1 +19,12,15 +4,14,13 +17,18,11 +3,4,10 +11,5,19 +13,2,15 +8,8,17 +4,12,3 +16,8,5 +3,7,5 +16,12,5 +5,15,14 +4,12,9 +18,13,7 +10,6,6 +10,14,18 +5,8,6 +1,11,13 +8,7,16 +2,16,11 +10,3,9 +8,3,9 +18,16,6 +16,6,15 +15,5,8 +12,5,6 +9,16,8 +7,17,17 +2,12,12 +9,6,2 +10,5,3 +10,14,20 +17,18,10 +13,6,2 +9,17,6 +6,15,8 +16,9,6 +3,6,8 +17,12,18 +3,10,16 +10,17,14 +7,6,11 +15,9,18 +10,16,13 +13,1,12 +15,15,19 +17,16,13 +13,17,4 +14,17,12 +7,7,5 +20,10,9 +10,13,18 +10,19,5 +3,15,15 +10,6,16 +14,1,7 +7,7,19 +19,15,12 +13,1,7 +1,12,14 +3,7,6 +6,13,16 +2,9,16 +3,14,6 +13,13,2 +11,17,17 +5,16,16 +13,15,5 +5,7,15 +2,10,6 +11,15,17 +3,16,14 +18,13,10 +17,10,6 +13,20,9 +13,3,5 +4,3,10 +10,4,18 +1,10,14 +12,13,18 +7,14,14 +18,8,7 +8,5,3 +11,17,16 +15,7,2 +4,5,16 +3,12,5 +11,19,16 +14,4,8 +5,3,12 +18,14,9 +16,13,13 +15,13,5 +12,11,18 +14,4,13 +8,10,1 +2,8,6 +16,7,18 +3,5,11 +18,13,17 +14,15,6 +8,11,4 +3,9,9 +15,8,15 +16,6,8 +13,14,2 +15,7,14 +17,9,6 +18,13,5 +15,18,8 +11,6,20 +15,11,2 +18,16,7 +8,20,9 +2,11,8 +14,11,6 +9,17,13 +17,16,5 +12,3,9 +7,10,5 +13,3,11 +1,8,10 +17,9,18 +4,17,15 +2,9,14 +9,8,17 +11,9,20 +4,15,6 +16,11,15 +17,13,9 +12,4,13 +18,12,12 +9,14,2 +8,11,16 +9,7,4 +5,3,7 +10,18,4 +5,15,4 +6,14,18 +17,7,4 +8,18,11 +14,18,6 +16,15,10 +18,17,12 +4,14,8 +12,15,3 +6,3,12 +10,11,4 +9,5,7 +5,5,17 +5,2,11 +15,5,14 +10,4,13 +10,5,14 +6,5,17 +5,16,13 +13,9,18 +14,5,14 +17,15,8 +1,13,10 +12,6,15 +1,12,12 +14,17,10 +10,4,17 +6,18,6 +12,19,6 +14,2,13 +19,15,9 +15,7,3 +17,17,15 +14,9,5 +14,14,2 diff --git a/2022/18/solve.py b/2022/18/solve.py new file mode 100644 index 0000000..540640e --- /dev/null +++ b/2022/18/solve.py @@ -0,0 +1,34 @@ +import numpy as np + +cubes = set( + [ + tuple(int(c) for c in dat.split(",")) + for dat in open("input").readlines() + if dat != "" + ] +) + + +def sides(cube): + i = np.identity(3, dtype=int) + return set([tuple(cube + m) for m in np.vstack([i, -i])]) + + +def part1(): + return sum(len(sides(cube) - cubes) for cube in cubes) + + +def part2(): + visited = set() + q = [(0, 0, 0)] + high = max(max(np.array(cubes).max(axis=0))) + 1 + while q: + current = q.pop() + sub = sides(current) - cubes - visited + q += [side for side in sub if all(-1 <= val <= high for val in side)] + visited.add(current) + return sum((side in visited) for cube in cubes for side in sides(cube)) + + +print(f"Part 1: {part1()}") +print(f"Part 2: {part2()}") diff --git a/2022/19/input b/2022/19/input new file mode 100644 index 0000000..17ddb86 --- /dev/null +++ b/2022/19/input @@ -0,0 +1,30 @@ +Blueprint 1: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 17 clay. Each geode robot costs 3 ore and 11 obsidian. +Blueprint 2: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 20 clay. Each geode robot costs 2 ore and 12 obsidian. +Blueprint 3: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 12 clay. Each geode robot costs 3 ore and 8 obsidian. +Blueprint 4: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 8 clay. Each geode robot costs 2 ore and 10 obsidian. +Blueprint 5: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 12 clay. Each geode robot costs 3 ore and 15 obsidian. +Blueprint 6: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 5 clay. Each geode robot costs 4 ore and 8 obsidian. +Blueprint 7: Each ore robot costs 2 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 8 clay. Each geode robot costs 3 ore and 20 obsidian. +Blueprint 8: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 13 clay. Each geode robot costs 2 ore and 9 obsidian. +Blueprint 9: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 15 clay. Each geode robot costs 2 ore and 13 obsidian. +Blueprint 10: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 18 clay. Each geode robot costs 3 ore and 8 obsidian. +Blueprint 11: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 8 clay. Each geode robot costs 2 ore and 12 obsidian. +Blueprint 12: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 17 clay. Each geode robot costs 3 ore and 11 obsidian. +Blueprint 13: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 19 clay. Each geode robot costs 4 ore and 13 obsidian. +Blueprint 14: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 15 clay. Each geode robot costs 3 ore and 16 obsidian. +Blueprint 15: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 12 clay. Each geode robot costs 3 ore and 17 obsidian. +Blueprint 16: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 18 clay. Each geode robot costs 2 ore and 11 obsidian. +Blueprint 17: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 15 clay. Each geode robot costs 3 ore and 16 obsidian. +Blueprint 18: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 19 clay. Each geode robot costs 2 ore and 12 obsidian. +Blueprint 19: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 16 clay. Each geode robot costs 2 ore and 18 obsidian. +Blueprint 20: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 19 clay. Each geode robot costs 3 ore and 17 obsidian. +Blueprint 21: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 20 clay. Each geode robot costs 4 ore and 16 obsidian. +Blueprint 22: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 16 clay. Each geode robot costs 3 ore and 20 obsidian. +Blueprint 23: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 5 clay. Each geode robot costs 4 ore and 11 obsidian. +Blueprint 24: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 16 clay. Each geode robot costs 4 ore and 12 obsidian. +Blueprint 25: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 20 clay. Each geode robot costs 2 ore and 17 obsidian. +Blueprint 26: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 11 clay. Each geode robot costs 2 ore and 7 obsidian. +Blueprint 27: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 19 clay. Each geode robot costs 3 ore and 10 obsidian. +Blueprint 28: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 14 clay. Each geode robot costs 4 ore and 8 obsidian. +Blueprint 29: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 10 clay. Each geode robot costs 3 ore and 10 obsidian. +Blueprint 30: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 7 clay. Each geode robot costs 4 ore and 11 obsidian. diff --git a/2022/19/solve.py b/2022/19/solve.py new file mode 100644 index 0000000..58310b5 --- /dev/null +++ b/2022/19/solve.py @@ -0,0 +1,69 @@ +import re +from math import prod +import functools + +all_costs = [ + [(s[1], 0, 0, 0), (s[2], 0, 0, 0), (s[3], s[4], 0, 0), (s[5], 0, s[6], 0)] + for s in [ + [int(x) for x in re.findall(r"\d+", dat)] + for dat in open("input").readlines() + if dat != "" + ] +] + + +def weight(state): # from reddit, better than previously.. + mined = state[-1][-1] + return 1000 * mined[3] + 100 * mined[2] + 10 * mined[1] + mined[0] + + +@functools.lru_cache +def bfs(current, bots, time_left, top): + costs = all_costs[current] + q = [(0, (bots, (0, 0, 0, 0), (0, 0, 0, 0)))] + res = 0 + depth = 0 + while q: + time, (bots, has, mined) = q.pop(0) + + if time == time_left: + res = max(res, mined[3]) + continue + + if time > depth: + q.sort(key=weight, reverse=True) + q = q[:top] + depth = time + + new_has = tuple(has[i] + bots[i] for i in range(4)) + new_mined = tuple(mined[i] + bots[i] for i in range(4)) + + q.append((time + 1, (bots, new_has, new_mined))) + + for i in range(4): + if any([has[j] < costs[i][j] for j in range(4)]): + continue + + new_bots = bots[:i] + (bots[i] + 1,) + bots[(i + 1) :] + new_has_state = tuple(new_has[j] - costs[i][j] for j in range(4)) + q.append((time + 1, (new_bots, new_has_state, new_mined))) + return res + + +def part1(): + return sum( + [ + bfs(i, (1, 0, 0, 0), 24, 1000) * (i + 1) + for i in range(len(all_costs)) + ] + ) + + +def part2(): + return prod( + [bfs(i, (1, 0, 0, 0), 32, 10000) for i in range(len(all_costs[:3]))] + ) + + +print(f"Part 1: {part1()}") +print(f"Part 2: {part2()}") diff --git a/2022/20/input b/2022/20/input new file mode 100644 index 0000000..9a8138a --- /dev/null +++ b/2022/20/input @@ -0,0 +1,5000 @@ +698 +5116 +8155 +-9039 +3858 +6218 +1451 +-740 +3403 +4144 +8600 +6568 +-5125 +-2582 +-3724 +-9818 +3791 +-4764 +109 +8938 +-6537 +7939 +-9729 +284 +1044 +1409 +8079 +9109 +-4382 +-3346 +-2753 +-2701 +-1386 +8138 +8677 +-3273 +-7531 +4959 +-3399 +6558 +-1628 +-8413 +2251 +742 +8269 +3423 +-1630 +-2129 +1451 +-2186 +5470 +9601 +7727 +86 +7958 +-1777 +7806 +3926 +7837 +1593 +5494 +-7872 +9726 +396 +3181 +-4411 +8470 +-5529 +2496 +1141 +3445 +7213 +5404 +4715 +-7710 +5754 +8848 +-2715 +-165 +4209 +7582 +6905 +3140 +-1327 +-5856 +-4706 +3553 +8826 +8873 +4368 +-6482 +9955 +-6642 +4246 +8624 +-4211 +-5303 +-7764 +-4521 +-453 +-681 +6303 +-130 +1734 +-6654 +4415 +-9477 +-674 +9069 +1798 +-7077 +5624 +-1389 +-6443 +-498 +-2199 +-7805 +-4032 +-731 +6566 +1911 +-8098 +6175 +-3002 +-411 +5713 +-6791 +6573 +4886 +4056 +-5593 +-6593 +-9981 +782 +8842 +7040 +507 +8908 +5453 +3431 +6449 +1585 +2301 +-9504 +-3637 +-151 +-2808 +-7266 +-2403 +-5518 +-2700 +-5880 +-6078 +6326 +7523 +2750 +730 +-539 +-7785 +-6620 +-148 +1674 +8726 +-9379 +1282 +1590 +1166 +-1688 +9495 +8337 +4143 +-2418 +2205 +6198 +-4709 +-7681 +-2878 +-8956 +7939 +-9516 +-502 +601 +-7575 +9185 +-4483 +-6086 +8601 +-3384 +1776 +3719 +-6290 +-882 +-5026 +3714 +-6664 +2594 +1487 +-6459 +-7320 +-1936 +4788 +-8080 +6174 +7301 +-8757 +-4963 +-7550 +716 +-1389 +-6630 +-6072 +1435 +-3466 +1661 +1508 +4563 +3682 +7768 +9436 +5390 +-5214 +-4003 +7192 +9736 +7218 +720 +-5329 +3849 +95 +6403 +7199 +2446 +-2294 +7418 +7368 +-691 +-9802 +-4499 +73 +8624 +9088 +9601 +7601 +-6624 +-1283 +7337 +-2367 +-8452 +4629 +2160 +-6933 +8957 +4024 +8261 +6842 +136 +2493 +-5797 +-8248 +3462 +-5363 +-2833 +6326 +-4839 +-2118 +7234 +3869 +5729 +103 +79 +9866 +6804 +8335 +5822 +6012 +2744 +-7030 +-4689 +-9279 +1406 +2060 +9349 +2190 +-4261 +-3940 +-118 +3268 +9592 +-9990 +8261 +-8243 +7749 +8393 +-7611 +7757 +4473 +5166 +-3689 +-3665 +9276 +3978 +-6517 +-2120 +-2861 +4215 +5694 +1480 +-5670 +271 +-3369 +-2945 +8560 +-5737 +-2093 +5780 +-397 +-4808 +-516 +3229 +-4394 +6886 +5983 +4026 +5129 +-9989 +819 +1731 +-3960 +-7823 +5213 +3359 +-6735 +-6562 +-8878 +5161 +-6918 +-7452 +1768 +-6015 +-7945 +-8785 +4862 +8974 +-5283 +7661 +-8264 +382 +-9411 +-5606 +-5688 +-6285 +-5516 +1920 +-871 +9822 +9756 +8061 +5334 +6393 +-4288 +-8913 +1411 +-480 +-9897 +1772 +4275 +-8357 +3372 +940 +1496 +-6333 +-7702 +3576 +8697 +-2779 +-420 +-1578 +-8351 +-1478 +-4798 +-2946 +-8123 +8177 +4512 +-8607 +-7379 +-4879 +5925 +6872 +2853 +-3608 +-1630 +358 +6414 +-413 +-2372 +-8893 +-6509 +-3080 +-621 +-263 +-1445 +86 +-4716 +2546 +1120 +-1303 +-5356 +-7872 +289 +1126 +809 +-2748 +5257 +-1042 +9161 +2792 +-8865 +-3104 +-1691 +4962 +1048 +-3458 +2091 +5202 +-6960 +-9749 +8611 +8547 +-3312 +2979 +2029 +709 +560 +7068 +-3807 +3750 +-5748 +-6005 +3493 +-4741 +-43 +-796 +3393 +8887 +-8644 +-7322 +7751 +2748 +-7872 +7557 +281 +-2510 +-2783 +-8873 +597 +2624 +6707 +-8620 +6859 +-4936 +-5207 +5267 +-2832 +-3856 +-5568 +4662 +-4381 +-6886 +-2089 +3823 +8525 +-4501 +65 +9347 +-6409 +-1468 +2233 +-4951 +9118 +-7023 +1054 +7063 +-9248 +800 +-2151 +4068 +2626 +3897 +1564 +1577 +4281 +6771 +5289 +-705 +-4771 +-8601 +-1526 +-7430 +6142 +-1805 +-7587 +3436 +8253 +2589 +-1756 +1938 +5994 +-9802 +7877 +-1746 +7534 +-3456 +-2837 +-6630 +-2686 +-7043 +-1478 +8207 +-8852 +-4894 +-8842 +7801 +4008 +2652 +4382 +-1478 +-9233 +-6743 +7349 +8981 +8308 +-2424 +3870 +-894 +-2029 +9882 +-2108 +1673 +4614 +5133 +9075 +-7613 +-7266 +1866 +2192 +8220 +-4176 +1793 +8942 +-2392 +8533 +-3955 +-3869 +-4168 +1516 +8392 +-7395 +-2011 +7449 +-4567 +6801 +2019 +-4537 +2595 +-4833 +3757 +3446 +-5360 +-6989 +6621 +424 +-761 +5429 +7489 +8174 +1900 +2328 +-9349 +5111 +-5775 +-4261 +4470 +5743 +2056 +5992 +5527 +-7641 +7314 +-4985 +2882 +-3970 +8688 +2718 +5963 +7861 +-2481 +3198 +7906 +-1907 +-6163 +-7599 +-4902 +1481 +-9910 +-9578 +2492 +-6899 +-6072 +6968 +-1420 +-3283 +-9311 +-8826 +9454 +-322 +-503 +2467 +-9202 +-8851 +-2686 +-7787 +7730 +1994 +-5543 +-5020 +4832 +-6863 +1765 +-9386 +-8718 +-9989 +1153 +7597 +6189 +7634 +7839 +185 +914 +6768 +-9601 +-7267 +5148 +-9804 +-4113 +-3620 +-4495 +-2007 +5611 +-4528 +-4446 +-5988 +-6058 +185 +-6495 +-6268 +-8694 +8281 +-1886 +8740 +7396 +-264 +203 +6061 +-5203 +716 +8553 +8743 +-8222 +3653 +-6785 +9658 +-9971 +8461 +-761 +-155 +-9899 +-7750 +-2628 +-2221 +-44 +9124 +6671 +3629 +-4672 +7013 +3779 +-1298 +5920 +-855 +-2224 +-2201 +-8243 +9999 +-9524 +9157 +1588 +-1307 +4197 +598 +-3449 +167 +8908 +-8680 +-6232 +-152 +445 +1213 +-973 +-7231 +7756 +3912 +-6856 +-6571 +-2645 +8949 +-4119 +-9234 +9800 +-7859 +-8107 +6382 +4731 +8188 +3446 +-7849 +-9732 +5345 +-4534 +-7053 +-3 +-7373 +-3142 +5919 +-4284 +8242 +5913 +-8105 +2315 +1443 +9478 +-1625 +8684 +-5379 +-8493 +-1840 +1053 +3283 +9215 +3805 +494 +972 +2949 +866 +693 +7427 +-4362 +1129 +-7726 +6034 +4862 +271 +4224 +597 +-473 +-2338 +-5925 +6854 +1819 +3966 +9218 +8566 +-4018 +247 +9626 +515 +5566 +-3181 +-814 +8319 +7342 +5332 +-3497 +-9031 +-3550 +4532 +-35 +1191 +-9339 +-1866 +4909 +-5211 +4740 +-7817 +-7274 +6807 +-8993 +-5245 +1849 +707 +1842 +-8385 +8968 +73 +-4963 +-8264 +-7360 +-9995 +4286 +2744 +-2008 +-1193 +-6606 +3144 +4818 +7860 +4337 +-4152 +-4029 +5339 +-5868 +4755 +8500 +9601 +-5190 +314 +8552 +-5803 +-526 +7349 +-5320 +8791 +-4020 +-949 +1932 +-2352 +-1470 +-3772 +5390 +-3002 +4358 +1644 +2299 +1588 +2116 +-9194 +5992 +7293 +-7786 +1486 +-550 +-695 +-1762 +-9250 +2077 +8105 +4757 +9978 +-6010 +-1658 +2997 +-2753 +4894 +3007 +-650 +58 +8216 +-6015 +159 +-6743 +4257 +-5173 +-4711 +-8246 +5453 +1562 +-7896 +-6587 +7868 +7306 +-4113 +-4499 +2801 +5429 +-545 +-1146 +404 +7980 +514 +3638 +-1045 +5315 +6547 +9878 +8783 +-4995 +6424 +-1034 +9515 +2742 +-1046 +-2833 +1345 +2303 +3557 +-2728 +3493 +5495 +2652 +4820 +1769 +2373 +-1562 +-1528 +9515 +3018 +8842 +-4845 +-4864 +-2833 +9721 +-5109 +7373 +1928 +-4537 +9459 +7179 +-9343 +-7177 +7156 +-8416 +-958 +-3148 +722 +8644 +8684 +5689 +1579 +3086 +-8688 +-5722 +-7087 +-8259 +6665 +-2549 +9168 +6192 +2173 +7702 +-8350 +-4665 +-9230 +-1528 +6024 +9940 +7150 +-7353 +3465 +-3960 +240 +6255 +-7098 +5866 +4613 +-925 +4437 +7045 +-3844 +-9102 +6817 +8459 +3042 +1469 +3311 +-290 +1729 +-7215 +-7889 +-8905 +-2297 +7173 +-4113 +3493 +1411 +3918 +-6927 +-9142 +-1777 +7022 +-1029 +901 +-2700 +3878 +8932 +-9161 +9105 +3297 +4727 +3043 +-5609 +96 +5334 +2547 +4977 +-1644 +2970 +-8976 +5262 +2436 +6060 +2037 +-6735 +-2221 +7052 +-5730 +-1569 +791 +1331 +-6786 +-5047 +-5435 +-9482 +2845 +-590 +1182 +9657 +-3710 +-8829 +8562 +-8006 +3433 +7511 +-2977 +-781 +-2703 +-6307 +-1141 +7336 +-8769 +6845 +4 +6145 +2638 +-5184 +-9405 +-4047 +-7560 +7387 +9076 +-6845 +-2291 +-2838 +-8399 +2496 +-8956 +9160 +9443 +-1034 +-4673 +-4981 +-4137 +-912 +7237 +-1036 +7632 +-2110 +-189 +-571 +-9039 +2853 +2456 +-7821 +4926 +8773 +-4257 +-6213 +-4764 +-4426 +6284 +9845 +-1551 +9660 +-3053 +3921 +5217 +7533 +6622 +5960 +9806 +-8737 +-5779 +-5997 +-9672 +2306 +-6719 +-6190 +514 +8233 +-8107 +2687 +-2719 +-4116 +-1389 +1618 +-6438 +5728 +-3785 +8268 +-6537 +454 +6144 +359 +-9823 +-6642 +2687 +3413 +-9528 +-3078 +4939 +2141 +-8015 +7583 +-9135 +1823 +8690 +-1172 +-6610 +3535 +-353 +6725 +1420 +6445 +-2223 +-5074 +7774 +-6567 +8968 +2065 +9942 +-3578 +-4059 +5549 +9662 +-8597 +4833 +6849 +5617 +-6009 +8798 +5718 +-9016 +-670 +7192 +7885 +723 +8742 +6303 +-7092 +-8556 +-2395 +-8900 +6198 +5800 +8729 +-4400 +-7440 +-9010 +494 +8296 +-2340 +6846 +-1712 +-4424 +-6505 +7206 +-9606 +1411 +4248 +-9405 +-4763 +4106 +2860 +3908 +3297 +1567 +6835 +-9349 +-5347 +8942 +9579 +-8928 +358 +-4887 +-209 +638 +1126 +2446 +8489 +-1936 +73 +-7242 +8708 +-8407 +7383 +-5748 +2576 +-8597 +-6515 +3042 +-7945 +-6031 +-9758 +1819 +3662 +-9570 +-1757 +-5748 +-4653 +7917 +5129 +-3061 +834 +4358 +-5104 +-2222 +-5966 +918 +-5497 +-5736 +-7364 +4519 +-6716 +8811 +8707 +6133 +3517 +-4625 +-6511 +5535 +-8873 +103 +-2778 +-8246 +-5856 +-2263 +-1430 +-4908 +249 +-1242 +-554 +672 +-9823 +-7177 +6150 +2297 +-2272 +-2667 +-8280 +-6618 +-7283 +-1325 +-3385 +4808 +-5596 +-7956 +4176 +3120 +-8078 +7914 +-4845 +-701 +-4617 +-5268 +-3260 +8772 +-4853 +-8221 +-3655 +-3260 +2297 +4405 +6900 +2590 +-698 +-4374 +-1973 +-8361 +7939 +3414 +-4595 +-555 +8279 +-5668 +-1122 +-5162 +6587 +8308 +8656 +2118 +-2698 +-9706 +4596 +-3466 +-4539 +1866 +-5999 +-1755 +1051 +4266 +4740 +-7225 +636 +-2653 +1759 +8806 +-8551 +1056 +8177 +8208 +5814 +6273 +-1223 +5179 +-1098 +7570 +-5585 +-5259 +-902 +-4472 +1631 +-3078 +88 +4891 +5266 +8566 +-3628 +-6698 +-2099 +8241 +8328 +4927 +3010 +-6913 +-427 +3240 +-6125 +-2723 +-9706 +7279 +-4579 +8279 +-7871 +-1944 +-2977 +-8227 +-9785 +-216 +-6087 +6968 +-6554 +4805 +1955 +8103 +-9103 +2216 +-7479 +-3216 +-4926 +8391 +-772 +8570 +1330 +1977 +-2502 +-1842 +-2377 +2065 +2865 +-5913 +-4288 +-9919 +5556 +1361 +-3125 +3576 +5531 +2344 +-1045 +8457 +8792 +-9212 +1816 +-873 +-487 +1952 +2633 +-9795 +3507 +-5913 +-5240 +-2828 +-7747 +3956 +5406 +-5882 +4589 +5652 +-2323 +6273 +7659 +4248 +3419 +7813 +-4168 +-5210 +-7710 +-937 +7977 +5445 +2824 +-6894 +1900 +8998 +3095 +1908 +5129 +5589 +5229 +-371 +-8104 +-8962 +9789 +-8087 +-5395 +-8107 +9309 +7619 +-1893 +-5537 +897 +-6830 +-5423 +-4421 +1190 +-9786 +7825 +-1300 +7213 +5904 +-7308 +5140 +-7964 +1898 +-9141 +-4553 +-4195 +7567 +7131 +6512 +-8037 +4465 +-1220 +6946 +-968 +-1406 +6590 +-1431 +-3956 +-5750 +9249 +9697 +-2115 +9206 +-2896 +-3929 +8348 +-2392 +-411 +9172 +8839 +720 +-353 +-539 +958 +-2340 +8498 +211 +-582 +-1728 +-189 +6217 +5632 +3490 +2317 +4715 +-2700 +990 +9001 +1148 +9821 +-2500 +1352 +-5253 +4291 +4617 +244 +-3677 +4973 +-4054 +-7125 +-5198 +-9349 +-5985 +-5497 +2276 +-9989 +-6342 +9531 +-7572 +-7430 +-8544 +2902 +-1669 +1190 +3504 +67 +-9019 +-5155 +6888 +-8867 +5569 +-8011 +6767 +-9582 +1823 +2393 +-8800 +8114 +-2700 +-4793 +8562 +-9653 +-9063 +-9015 +9205 +-88 +-2662 +9806 +1140 +998 +-9693 +-9931 +6682 +4536 +-6751 +9099 +-4983 +1182 +3915 +1787 +-1359 +-9569 +-4959 +9067 +-8714 +6471 +5418 +5596 +6590 +194 +-7255 +-4825 +-412 +-335 +2569 +-5748 +-9020 +3990 +6768 +-9332 +-1112 +-2992 +-4905 +411 +-8393 +1884 +5129 +-5732 +-5565 +514 +1636 +8190 +-150 +-6488 +-7469 +3051 +6619 +7071 +-9786 +-4741 +1420 +-2555 +9382 +-3779 +-6263 +-1660 +4823 +-7664 +-7952 +-3980 +-741 +-5859 +9023 +-2114 +-3841 +988 +-2118 +-5362 +6446 +1545 +6317 +-3281 +9772 +4675 +-4046 +5912 +-6219 +8414 +-2001 +-1697 +-4296 +6507 +5202 +-7214 +6495 +-9817 +7561 +-2036 +2988 +5036 +4384 +-6624 +-5203 +7703 +-1110 +5229 +-2039 +-5826 +3487 +-3897 +6860 +2999 +-7872 +4173 +-6766 +-7723 +2029 +5925 +1234 +2875 +2759 +-7593 +-6511 +-5140 +-4470 +-8186 +-7266 +8343 +-5465 +-486 +-7450 +-1852 +8582 +-2151 +833 +-1033 +-6302 +-6871 +9023 +-9587 +833 +-1665 +-2440 +-9992 +-4623 +-595 +1746 +3551 +5600 +-8468 +-730 +8669 +2074 +-3228 +-8843 +-7455 +5129 +-2500 +-7071 +-4578 +-7916 +9794 +-9365 +5730 +277 +549 +-8046 +3378 +-6159 +-1948 +-6308 +-8940 +9877 +-4404 +1663 +2535 +-9673 +-5323 +5429 +-5478 +-6331 +-3548 +-9899 +-4398 +-259 +-5835 +9757 +-2621 +-917 +-6243 +5566 +9787 +-437 +-7650 +-6570 +8677 +-4734 +-6731 +2861 +-4603 +3405 +9001 +3635 +-4764 +2080 +-4988 +2390 +1048 +-2081 +-680 +-2263 +-4045 +-9982 +9703 +6164 +8848 +-7308 +-4382 +2575 +3377 +-3068 +8001 +4018 +6941 +-6644 +-4725 +-7882 +-5027 +4517 +-8915 +-6388 +-9349 +-4022 +-2955 +-2686 +8234 +7940 +-898 +3640 +990 +3042 +4552 +9686 +-1303 +8295 +-2485 +-3914 +-9477 +-1133 +1379 +-4867 +1663 +4820 +8001 +1545 +3127 +3846 +2870 +543 +-4567 +4175 +-2808 +4180 +-6490 +6846 +9920 +-2999 +-9150 +-1112 +3284 +2276 +-7505 +-9517 +-5095 +593 +-5795 +-6655 +8032 +-8865 +-5590 +-405 +3719 +-2917 +5847 +8864 +-4424 +6936 +-9816 +8889 +1605 +-579 +351 +-7570 +-6881 +3769 +-9171 +-4036 +-9517 +1163 +6446 +-8574 +-8729 +7903 +-8416 +-1050 +9096 +3187 +-473 +2043 +4977 +5 +-4662 +2297 +7826 +5992 +9866 +-1135 +8799 +-2769 +8842 +6861 +-579 +-3311 +-8984 +4706 +-7872 +-2480 +-3335 +-1098 +-8604 +-9250 +-6617 +907 +-2627 +9312 +2619 +-9552 +3108 +4353 +-3534 +370 +-683 +2955 +-8087 +5008 +4940 +-4256 +-4510 +1426 +-4588 +-6186 +7749 +-2460 +2899 +-7285 +-5809 +4173 +974 +-2067 +-5722 +1250 +-8505 +8214 +5407 +5814 +8889 +-6459 +2011 +2979 +3107 +9654 +830 +6150 +-7800 +514 +-6109 +2853 +-4998 +9712 +-6130 +-2092 +-7411 +-215 +-5835 +2089 +5585 +-3511 +8377 +6002 +-1798 +-6012 +9384 +4171 +1510 +-5393 +-7560 +9375 +8209 +5181 +2545 +8755 +2361 +-4296 +-1454 +3883 +-3312 +8600 +-3492 +5345 +9502 +-2045 +-3419 +4147 +-957 +-5197 +-4651 +-9142 +-1307 +2906 +-5970 +838 +7354 +487 +3577 +7527 +-6031 +-6785 +-5763 +-1714 +3751 +2953 +-2462 +-2416 +-4113 +-9320 +-6218 +-3909 +-7474 +3668 +-7043 +-7751 +5718 +-1430 +1044 +-8272 +-7162 +-8712 +-2110 +3711 +8875 +-1107 +-7457 +4745 +-9245 +-9919 +-9295 +1150 +-1081 +4704 +8563 +-5055 +-4183 +-4617 +-3677 +2133 +-3880 +4288 +-5767 +104 +-7614 +-6994 +-951 +-2908 +-2706 +-9960 +-3369 +-7023 +-3166 +8610 +-5624 +4917 +-8796 +6111 +6219 +-9195 +-1667 +3714 +5484 +-5763 +3259 +-7768 +-3847 +-2371 +-549 +5572 +-8612 +-7952 +8657 +5652 +-583 +-6204 +-9885 +1406 +-5815 +-1122 +1909 +3491 +-4394 +-7419 +3653 +-2 +6495 +-3905 +-6052 +445 +9684 +-2221 +-9982 +8908 +-4445 +4606 +2808 +4959 +5982 +-2489 +-5601 +3181 +79 +1421 +7411 +-6091 +-5781 +-4128 +5538 +-7218 +-9451 +249 +-2371 +2392 +-6318 +-9460 +8958 +3194 +-2516 +7679 +5148 +-5437 +-670 +4754 +3925 +-3796 +-3659 +46 +-1329 +8515 +7130 +-4494 +-4263 +-7975 +-5997 +-7259 +6029 +-7896 +-9960 +-5848 +3463 +-5842 +5318 +1285 +9871 +3437 +2228 +-1223 +-1628 +1590 +-5951 +5638 +-9971 +9565 +5339 +4057 +-2121 +-5259 +-4493 +-6869 +-7661 +2045 +64 +7153 +3846 +2628 +5104 +-7196 +-5797 +7669 +-2505 +-4336 +6537 +3713 +5406 +4506 +4238 +3249 +-5399 +7279 +-9292 +-9365 +8519 +-2667 +-2438 +-9474 +-7106 +870 +-2946 +6864 +-8674 +-4846 +8396 +7269 +-9752 +9064 +5585 +3574 +-3849 +-3722 +2063 +-56 +7314 +-5335 +1914 +8565 +3410 +2228 +-5732 +8151 +2278 +-5559 +1632 +-2998 +-1109 +-2913 +-4676 +-6814 +1766 +1883 +-6795 +5601 +-1050 +-4401 +8408 +-8482 +8660 +-5944 +8745 +-6869 +4911 +5609 +-8729 +8660 +-6752 +2632 +-4569 +-6315 +-2523 +-480 +9321 +2703 +7323 +6658 +6658 +3428 +1659 +1141 +7191 +6257 +-5226 +9382 +-5208 +-4388 +-3895 +1030 +-660 +7829 +-7560 +1768 +7939 +-7817 +5747 +7882 +4180 +4759 +361 +9240 +5799 +-2272 +2074 +8707 +-8301 +6883 +-2998 +-2284 +4613 +8496 +5175 +-6802 +-853 +2799 +-7910 +4245 +-4178 +-8907 +-6791 +-246 +791 +3487 +-8617 +-996 +-1242 +-9178 +-8896 +-3605 +-498 +4345 +-5825 +1840 +-2596 +1050 +1600 +-316 +-3062 +5428 +-1296 +7534 +9806 +9239 +9049 +758 +-5379 +4985 +-2153 +-133 +9223 +3486 +-5950 +-6438 +9966 +-1728 +-6072 +-2177 +-3270 +5913 +1747 +-918 +2458 +1707 +5301 +-9528 +3941 +6164 +5913 +-915 +-8537 +3393 +-7076 +3156 +-1441 +-1832 +-4964 +2589 +6519 +8108 +-323 +4971 +-9690 +5161 +-1454 +-2878 +-5231 +-2792 +9575 +-7916 +892 +-1283 +5273 +950 +-8982 +3638 +3463 +-8961 +-536 +-6103 +6519 +9299 +-9907 +7004 +4164 +8078 +2892 +-3529 +9657 +1911 +6566 +-9482 +-4771 +2870 +-2 +-6407 +-5895 +8593 +-2703 +3446 +-4775 +9068 +8677 +-6758 +1559 +382 +8643 +-718 +8642 +-3655 +-3515 +-7275 +7905 +6502 +-2882 +7153 +-5668 +-3088 +6992 +-1526 +-6994 +-4411 +1680 +4787 +3841 +5445 +-4007 +7203 +-8895 +601 +6060 +812 +3921 +6761 +104 +3015 +-2118 +9101 +4101 +-3802 +2706 +6558 +-6712 +-4746 +-9436 +2489 +-8024 +7385 +-1830 +-4059 +-2741 +8887 +3281 +-5208 +-6337 +5814 +-1783 +-2597 +-4128 +-4951 +-1809 +-5215 +1619 +-3852 +167 +-8371 +-2500 +-1630 +4891 +-3355 +7556 +1952 +-5825 +-9995 +-5850 +5464 +-7770 +299 +5662 +-4857 +-1483 +-6804 +-5879 +-2338 +1621 +-427 +-5848 +9206 +6945 +6403 +950 +5922 +-9124 +3137 +3613 +-3997 +-1283 +2767 +3348 +4898 +4511 +-6386 +2300 +7785 +8974 +866 +8123 +2029 +-3014 +-2758 +1488 +8573 +6878 +3619 +6096 +-7440 +1812 +136 +4979 +-1577 +-8684 +5349 +6654 +-6160 +7648 +-7672 +3757 +1659 +-1555 +-9138 +7677 +-767 +5074 +-4760 +-4870 +-5966 +-1669 +-6802 +-7440 +1886 +6376 +9845 +-8684 +-7554 +-4894 +-8396 +-6918 +4164 +7148 +6002 +-9182 +7549 +-5364 +6012 +1043 +-5791 +-4017 +9662 +-8750 +3120 +-135 +-7306 +-4426 +-5346 +-5587 +-3239 +-3677 +7822 +2141 +3823 +-3228 +1608 +-6511 +4823 +-2443 +-9026 +1250 +4879 +4833 +-8785 +3687 +-3738 +5872 +7237 +1190 +-2523 +-6960 +-5614 +-539 +8209 +-9169 +-2699 +-3789 +8582 +-9343 +-2662 +-8413 +-2532 +-1123 +-1746 +3885 +7763 +-3388 +272 +2132 +-3761 +-4968 +844 +5036 +1371 +720 +-6894 +1502 +-4502 +-1046 +-7245 +-9757 +8882 +-7875 +3222 +8143 +7063 +5638 +-483 +-6978 +1800 +-1107 +-1574 +2592 +6403 +-9564 +5099 +1051 +-1026 +-2224 +-1496 +3645 +-1892 +1585 +8203 +-3105 +-8751 +-9580 +-4866 +4107 +7207 +9942 +-2424 +-8730 +7052 +-3151 +-8087 +-6347 +-535 +1592 +7512 +7208 +594 +-3526 +4506 +-8861 +-1440 +-5383 +-4794 +-8033 +3447 +-3779 +-2596 +5266 +8949 +4968 +-7956 +-4409 +-1661 +-4424 +-3825 +6701 +707 +4475 +-751 +7502 +7072 +9120 +-260 +-6965 +-3454 +593 +-9238 +-6409 +7643 +-4926 +-9233 +611 +5992 +-7997 +-5233 +-1065 +-5835 +4705 +-28 +1461 +-3851 +-5232 +-5894 +-1478 +7631 +588 +-9329 +9092 +7703 +-3273 +8742 +8839 +6215 +3303 +6754 +-5744 +3675 +-5073 +213 +2240 +-4464 +-1863 +8165 +-8822 +4114 +-6451 +-2364 +-4018 +-3620 +5873 +1508 +2768 +2522 +-7639 +6665 +2145 +-798 +-3237 +-3181 +-2611 +-8634 +-5538 +-2221 +1383 +-7706 +6334 +-2567 +-1711 +-6457 +8468 +-1882 +-7832 +3638 +-3384 +-46 +1560 +3430 +-4655 +2975 +135 +-7245 +3304 +-1934 +-2582 +-8788 +-3105 +-2903 +-8421 +-549 +2866 +9657 +-9508 +7913 +-7225 +3291 +4979 +-2460 +-6920 +-9026 +1200 +-3684 +2390 +9720 +3907 +-1098 +6768 +-3469 +-4958 +-8680 +-5612 +3613 +-5318 +-8617 +5265 +6976 +8493 +9951 +-2732 +-2780 +-3540 +-6642 +-5980 +2983 +-4551 +-9758 +8734 +-8310 +-5593 +-5699 +-9349 +4120 +-1205 +8143 +9870 +8820 +-2224 +1593 +9978 +9141 +-3503 +8193 +-9349 +7806 +5723 +-1283 +-8275 +9966 +5533 +6275 +-1866 +5406 +5814 +-857 +-2991 +6403 +-2769 +6346 +-3920 +8450 +6272 +7813 +-6481 +-6892 +3791 +7088 +6358 +6395 +-7898 +3326 +-9451 +6714 +-9540 +-9545 +-676 +-2160 +-1257 +-2913 +239 +4009 +698 +-3179 +3757 +5955 +-2842 +-3441 +5622 +2575 +-60 +-4168 +-2992 +-6035 +2173 +-6671 +-9339 +-2130 +7958 +8603 +-6992 +3416 +2493 +-8111 +-6276 +-1922 +-2619 +-3769 +-5651 +7170 +2482 +-9482 +-7169 +7730 +3892 +112 +9523 +2970 +5626 +-9274 +493 +-4288 +-6928 +8562 +-9673 +203 +6855 +7555 +-3101 +8632 +-2681 +-7918 +2524 +1346 +3732 +3633 +3193 +9362 +9756 +-9215 +2971 +7423 +-631 +6554 +3021 +-5894 +6334 +2401 +-6923 +-8763 +-3262 +-9024 +6255 +3640 +-2416 +-8900 +-7235 +7513 +3613 +-7531 +6439 +2451 +5968 +-8184 +6227 +3309 +-3098 +-4936 +3140 +-5393 +8075 +7613 +-5644 +-7833 +-8421 +7901 +-4498 +-9238 +7088 +6667 +3383 +6834 +8299 +-2003 +1263 +2761 +8033 +2160 +-6724 +367 +-7330 +9790 +6914 +1244 +-462 +942 +-543 +8230 +9309 +2099 +-5508 +-4655 +-9320 +8585 +757 +-8236 +-750 +9486 +-6451 +-619 +-1067 +-6626 +3424 +-1499 +-8916 +1569 +5599 +9954 +2963 +-4920 +5345 +-1794 +5456 +2465 +-2865 +544 +4323 +-5150 +-5435 +7979 +-7389 +7241 +742 +9432 +-480 +7892 +-9161 +-4061 +-3739 +1688 +3209 +2446 +9215 +-6633 +4199 +3960 +4715 +-8563 +-1959 +4858 +-6413 +7035 +-2415 +9601 +-4345 +-5665 +-5420 +8105 +6573 +-6830 +7434 +-7225 +3310 +7756 +6761 +2671 +-814 +5427 +9482 +9296 +-3597 +-3474 +5585 +-8595 +8566 +9707 +-6653 +2801 +9128 +-6563 +-3580 +-44 +-8685 +7194 +9574 +9206 +-9844 +2665 +9609 +-6230 +-4985 +-7025 +-9590 +8238 +5032 +3463 +-6285 +4976 +5229 +-5342 +4619 +5023 +8338 +1332 +9793 +7220 +9215 +3679 +-3710 +2411 +1661 +-3909 +-4951 +7311 +-9056 +-8659 +3729 +8582 +5925 +5755 +-7469 +-567 +9312 +6824 +5758 +4996 +2999 +-2511 +6522 +-4594 +4307 +-9233 +446 +-8034 +73 +-4915 +7140 +5810 +6801 +-2965 +9203 +-9981 +-7633 +-4363 +4299 +-6162 +-9958 +7714 +-6883 +6395 +4217 +-7493 +-621 +-2070 +4450 +-4490 +-7506 +-9220 +3054 +4773 +3656 +-6890 +2377 +-6407 +7045 +8061 +7368 +5594 +4544 +-7787 +-1598 +-1398 +-8288 +2742 +8979 +888 +-1043 +-7695 +4473 +5280 +2535 +-4499 +58 +1406 +-9038 +-928 +-251 +597 +-7242 +-3146 +3638 +-4987 +5205 +3140 +-7152 +9618 +7935 +-5588 +-996 +3882 +3304 +2539 +1374 +-8182 +-4411 +-8157 +-8247 +-5516 +-9146 +9656 +-1615 +-6745 +-6867 +-9649 +4475 +-516 +-4713 +4301 +-9649 +9362 +-2792 +-1108 +3393 +8258 +-2230 +-8468 +3303 +1563 +7059 +-1122 +-923 +31 +376 +-2918 +3522 +-2511 +7126 +-962 +9995 +4858 +3414 +5964 +-7650 +645 +-2878 +79 +-2678 +4189 +6077 +2809 +4078 +-2814 +-2323 +4846 +-6509 +-7126 +4286 +4584 +7619 +-2424 +-6318 +3507 +8562 +6214 +5004 +5484 +1147 +8002 +4619 +-6097 +6145 +6619 +-8482 +1528 +2057 +3619 +-4932 +2512 +-1974 +-8537 +7813 +9299 +8547 +8737 +-8275 +-3789 +-9981 +5099 +-3548 +8050 +-6109 +3707 +-1767 +9901 +8387 +2197 +6725 +5173 +-4553 +8195 +507 +358 +2608 +-2987 +9249 +-1046 +-3827 +-871 +4874 +7590 +7513 +-2230 +3009 +-2753 +7398 +2814 +287 +-240 +-1055 +3956 +-4516 +-2807 +2096 +9985 +2228 +7369 +2200 +2972 +-7815 +-9291 +1361 +-6450 +1458 +-5241 +-3053 +9021 +2496 +-3562 +-6953 +-568 +-6625 +-1043 +-3681 +-2865 +-186 +3405 +-1036 +1689 +8195 +-4623 +-9748 +415 +3297 +8178 +-1863 +-7628 +6761 +-1388 +1284 +5728 +321 +58 +8547 +-5100 +7127 +73 +-9948 +-9592 +-4451 +140 +5485 +-2633 +-6707 +4977 +3397 +7964 +5008 +-6769 +4528 +-389 +1411 +-5511 +7588 +2749 +-8783 +5407 +-1823 +8195 +-2647 +-7572 +-7290 +367 +-4914 +8455 +1305 +-5891 +-2780 +-2065 +-9928 +-9328 +-8125 +4539 +-8637 +682 +-7413 +-4088 +-4045 +3729 +-2120 +-6593 +6682 +2590 +-6434 +2403 +-9271 +-9077 +5859 +800 +-7496 +-1229 +2443 +6147 +5274 +5952 +-3827 +-5631 +-1762 +-7311 +3444 +-531 +-9516 +1591 +6681 +-6027 +4388 +-8300 +-1019 +-1339 +9279 +241 +6779 +6159 +5460 +8839 +-4763 +-8597 +5982 +-7458 +-3982 +7368 +-9486 +-6933 +6055 +3304 +8575 +-1557 +-1499 +-8416 +-4591 +9756 +-8937 +-8243 +-1712 +-5614 +-4100 +9320 +1616 +-6806 +-9746 +3590 +-5026 +2712 +8870 +445 +-6075 +2173 +9519 +-8984 +4397 +-3940 +5064 +-343 +-8393 +8870 +-5924 +611 +-8833 +4619 +9535 +6343 +-1108 +-4948 +-6240 +-6582 +4451 +6895 +39 +2133 +-3990 +-2918 +818 +-917 +7456 +9178 +-6593 +-8034 +-2750 +2679 +-514 +1464 +5913 +-155 +1801 +-2498 +-112 +-5925 +-7320 +-6933 +5468 +7449 +-381 +1156 +6258 +-3909 +4099 +7858 +2015 +-2053 +-8852 +-6970 +-1081 +-8426 +-7373 +6133 +-5538 +6590 +2647 +6429 +-5026 +-1938 +-3655 +-3053 +4385 +-8677 +7293 +-6762 +-8798 +1000 +-3841 +-1409 +-5826 +-4594 +-5860 +-2584 +-579 +6233 +1554 +3989 +8498 +-2297 +8946 +-2555 +2590 +3507 +1557 +8093 +-7644 +5123 +510 +2029 +-6688 +3686 +9557 +653 +-203 +3372 +4164 +58 +2228 +2442 +3259 +8060 +3540 +-9018 +1371 +2102 +-6044 +-9539 +3463 +-8377 +4517 +1726 +-9322 +758 +7939 +4112 +-2371 +4917 +-5161 +6055 +5204 +8105 +-9671 +9075 +637 +-3841 +7368 +3143 +4889 +-2008 +5999 +-5374 +-5045 +-1283 +8328 +-6766 +191 +4497 +6059 +6681 +-867 +-1398 +-3418 +-1442 +-8928 +7785 +4357 +2816 +-9734 +-3400 +-1780 +-7768 +-3628 +9069 +6981 +8227 +3869 +-967 +-5360 +-1531 +3564 +-8684 +-516 +-205 +-7369 +-5590 +-1991 +-9539 +5098 +2224 +2496 +3883 +-158 +7032 +187 +-9634 +-7971 +-3717 +-2224 +8203 +7958 +9204 +-8575 +9413 +9777 +7053 +-2459 +1974 +3091 +-6624 +5337 +-9108 +2200 +-740 +-9106 +-9896 +9523 +-487 +4701 +6832 +1516 +8455 +8582 +-5722 +4983 +194 +6629 +-4313 +958 +3261 +6414 +958 +8764 +1564 +3638 +-7159 +-6230 +8892 +-4845 +-6795 +7756 +-958 +6726 +6604 +-6063 +4541 +-5051 +-2257 +-1941 +-4230 +9070 +7726 +6904 +-6172 +-4481 +-5769 +-6039 +-1194 +9910 +4823 +-3440 +2970 +-209 +3087 +8515 +6466 +8072 +6301 +9804 +-8836 +9115 +9029 +-9841 +6866 +1702 +-6124 +-7448 +-7435 +707 +-4012 +4080 +-1842 +838 +6400 +2005 +9574 +-5999 +-8300 +-3078 +-7710 +8193 +-2272 +2048 +1324 +-5699 +-4473 +4787 +6303 +7063 +7167 +8178 +-8882 +-7946 +-5320 +5625 +8143 +-8620 +-5116 +8958 +-9677 +200 +-5860 +9826 +-6465 +8525 +3441 +4138 +-2915 +8557 +-9454 +-1089 +-4219 +4032 +9910 +5926 +-1098 +5394 +973 +6701 +-2317 +2743 +-5026 +-1547 +-6671 +2975 +5448 +-8351 +-5738 +-8526 +6619 +8562 +597 +8656 +-4981 +1487 +-6400 +-7850 +-8917 +-2151 +9532 +-3454 +7598 +6179 +7001 +-1549 +8728 +7233 +6366 +4617 +1594 +-1325 +1383 +-996 +-9798 +3960 +-9831 +-3346 +-6126 +-9943 +-4184 +-6624 +-6863 +8127 +7657 +8470 +6590 +3978 +9347 +9523 +874 +-7440 +-5744 +-6127 +-6427 +-3181 +9129 +9052 +6209 +-513 +-2029 +-2305 +-3529 +5625 +-9843 +9591 +1804 +-9995 +-9146 +1488 +2211 +-4749 +3218 +-2792 +2875 +5266 +1220 +9099 +6791 +-7991 +1143 +-8278 +3686 +-8512 +-408 +7249 +4276 +5123 +4229 +-5161 +-7912 +-2878 +-6055 +2483 +-1203 +-731 +2910 +7481 +3015 +-1148 +-3461 +4215 +-8014 +-43 +64 +-2500 +146 +-4593 +9432 +-8769 +-9234 +9298 +3676 +-1572 +5293 +-5868 +-6191 +-9843 +9170 +2744 +6557 +-2344 +9979 +-7283 +-1702 +9384 +-5412 +-532 +4781 +9633 +1281 +-4172 +4838 +-8385 +-7896 +-2989 +-1042 +-5469 +-1757 +2979 +-2392 +-760 +3126 +5148 +-4260 +-413 +-2644 +-6091 +-9456 +7884 +-2616 +-9073 +-9604 +-1879 +7756 +-41 +108 +-2543 +-9868 +9408 +-3562 +-1659 +6583 +-9117 +-4617 +707 +-7344 +-3672 +33 +9520 +536 +-483 +907 +5535 +-2876 +3021 +482 +1593 +-1466 +-3166 +-7916 +5009 +-5074 +4823 +-6367 +-7702 +-2039 +9172 +2649 +-3848 +1046 +7349 +7185 +9813 +-5826 +9300 +-1478 +9657 +-4071 +-4354 +-5227 +-2987 +-6941 +2752 +-492 +-9436 +-9499 +2198 +-1305 +-8221 +-106 +7482 +-1250 +-3334 +-5125 +-5204 +6848 +-8939 +-6134 +4610 +-3104 +-335 +-7156 +5834 +-7896 +-3181 +9800 +9348 +-8222 +-7889 +8494 +9239 +-539 +5106 +5578 +188 +3676 +-1697 +8976 +494 +1765 +-4931 +-2808 +9863 +-7214 +-3708 +-674 +-4196 +6899 +-2792 +2513 +6914 +1812 +4278 +647 +9601 +5099 +-1668 +-5690 +-6052 +7149 +-1550 +-1919 +6863 +5270 +-9649 +6628 +-5710 +7016 +5814 +8601 +-5946 +874 +4331 +-26 +4144 +926 +-2505 +-1017 +7346 +-1381 +-7809 +5072 +-6613 +3419 +812 +-1753 +-1403 +44 +5782 +-8917 +3009 +-6160 +-290 +-1515 +-9888 +-6721 +-4232 +544 +-6856 +-7126 +-7683 +798 +8533 +-2826 +909 +9329 +8533 +-8515 +3635 +8105 +3637 +-4959 +1181 +1226 +-4622 +-9970 +850 +-239 +1971 +5905 +-8637 +9239 +-9612 +-7085 +3297 +3823 +-1135 +-4617 +8819 +-5482 +4283 +-6326 +9618 +-9446 +9300 +65 +7016 +-2758 +6695 +-6574 +-4288 +2689 +8601 +-6055 +3460 +5983 +3194 +5440 +8889 +1173 +3120 +-5318 +9107 +-4682 +5035 +1143 +7032 +-1046 +4572 +4544 +4888 +-516 +9160 +-5788 +-4022 +-3113 +5742 +3974 +-6027 +-1764 +-8921 +-8774 +8278 +-3848 +5638 +-7394 +9134 +-6436 +6128 +-7518 +1445 +-6569 +-6509 +-3580 +7855 +5825 +-1010 +-7531 +2174 +9744 +3925 +-8418 +4059 +-7218 +7873 +4158 +4170 +-1505 +-3272 +1516 +-4371 +5036 +9910 +-1936 +-8385 +-9128 +7700 +2141 +-2561 +8794 +5275 +-4223 +-4877 +3463 +7757 +-2500 +3416 +-5401 +-4700 +4401 +-8873 +-38 +3496 +1855 +-220 +-6308 +-3268 +-8624 +-2205 +-467 +-9040 +-4367 +-8521 +-6622 +-6446 +-2008 +7213 +-4077 +-7771 +8820 +-6346 +1970 +8027 +3522 +6408 +-3941 +-840 +2089 +-8823 +-7910 +7506 +-9002 +191 +879 +-5983 +-5026 +8734 +-4799 +1308 +7966 +-1335 +-4819 +9300 +9484 +-5127 +-6463 +4732 +-4749 +7969 +-6562 +866 +2733 +-2515 +-5819 +904 +-830 +4435 +3366 +-3987 +2669 +-6050 +4572 +-4156 +-5458 +3869 +-5752 +-5875 +-20 +71 +-9409 +-5309 +1682 +-1034 +-9905 +3990 +-7666 +-1043 +-2451 +8677 +2174 +-2297 +-8718 +-4394 +9720 +1027 +-5856 +-4137 +-630 +8480 +6148 +-2776 +9285 +1332 +-574 +-5484 +-3108 +4008 +4722 +9347 +-6446 +7226 +-5982 +-4499 +-5401 +-3663 +5402 +296 +-9355 +-4992 +2171 +32 +-1112 +8873 +-7908 +9535 +-1436 +-6993 +-5173 +5599 +-4771 +3379 +7813 +4773 +-5211 +1690 +-3486 +-8674 +8633 +-1577 +-8678 +1605 +-3198 +-6448 +-7572 +-1704 +4142 +-6073 +-1743 +9550 +-7085 +2370 +-7008 +6912 +-4673 +5638 +2943 +-9903 +4358 +8764 +9720 +6963 +-8309 +5468 +-1296 +-2616 +-7527 +162 +-8845 +-2014 +5850 +7963 +3576 +9790 +6343 +6959 +8299 +3253 +-6291 +-2867 +6590 +-2089 +9584 +-6203 +7990 +2886 +4652 +-4071 +8839 +6089 +2937 +-1728 +6060 +4499 +-5512 +1573 +-3812 +5362 +-6465 +469 +-8920 +-4012 +3775 +2318 +-4036 +-6409 +1823 +-29 +-1925 +2188 +7282 +-4418 +3990 +8165 +-9907 +7823 +-7676 +1026 +1379 +-1010 +-8243 +-5737 +9205 +-1578 +-6390 +4968 +-9277 +3042 +9789 +4576 +2276 +7573 +4099 +-5794 +2442 +3629 +9218 +6087 +-7106 +6653 +-3357 +-7946 +-1369 +-6211 +3883 +2787 +-7709 +-867 +4034 +5617 +9749 +5920 +-4350 +-8444 +-5211 +-2417 +-723 +-7899 +-5876 +9643 +-1289 +-5903 +-8504 +-7786 +4646 +-1744 +6163 +6972 +1781 +58 +-1628 +6771 +-9264 +9663 +-8924 +3805 +247 +-9454 +2436 +-9477 +-8180 +-8216 +7114 +-6570 +-6103 +-9597 +5980 +-5668 +4128 +-7439 +121 +4368 +8998 +-2796 +1480 +-8692 +-4001 +-100 +-546 +-3253 +1765 +-5104 +-2387 +4216 +-8669 +4412 +-2505 +2088 +-2338 +8875 +7686 +1388 +4176 +-5161 +-7396 +7767 +-9295 +7702 +-8281 +1557 +1631 +0 +-814 +-5848 +88 +-3192 +1817 +-3071 +-6815 +9546 +2935 +8834 +-8345 +-1406 +-4902 +-4653 +779 +-1370 +-8684 +7431 +-631 +6854 +-4012 +6044 +-5418 +1938 +-3912 +7837 +-1350 +-7245 +2442 +8234 +4059 +827 +8033 +4171 +-6965 +-3928 +5456 +-9518 +9067 +-4088 +321 +1837 +-9928 +5974 +-7182 +-5392 +2595 +8196 +-4990 +-7126 +8279 +-5095 +-2303 +-4858 +5089 +2077 +8151 +6682 +5286 +-8300 +2670 +-5600 +-3386 +4589 +8108 +901 +7209 +-385 +-8367 +928 +8960 +1800 +8432 +6583 +8454 +-3785 +-1637 +5974 +5172 +2540 +4059 +4906 +7237 +-6568 +-1106 +-8047 +-7504 +-9706 +7736 +5098 +5617 +-9395 +-8395 +-8107 +2328 +1593 +2616 +-60 +5992 +-951 +-7076 +241 +-704 +446 +3784 +-9512 +-2306 +1485 +-3376 +-3080 +-6502 +1281 +-9844 +-7428 +-2665 +3901 +9656 +-3452 +3265 +-6562 +-1828 +-1905 +7246 +-7025 +3550 +7067 +8883 +-5605 +-481 +1608 +-8852 +-8337 +-5243 +-583 +2853 +284 +5120 +2792 +-5637 +6389 +411 +-4814 +8783 +-6219 +-2323 +9785 +4029 +-720 +-2191 +1388 +8304 +-3241 +-1925 +2084 +-1572 +-6272 +-7946 +-8037 +6256 +6256 +-9516 +-2236 +-2505 +7218 +-9546 +-6006 +-9617 +-7786 +2343 +8661 +-9231 +-1430 +707 +-9312 +7889 +-2431 +-4709 +3372 +3555 +3043 +2115 +-2102 +-2645 +-7552 +-3856 +-1220 +7246 +3629 +-9995 +-9706 +-962 +-8647 +-7795 +6619 +-5881 +-5654 +-2275 +5877 +-6272 +-1190 +5961 +980 +-8570 +8220 +2191 +3441 +231 +1621 +-5418 +4630 +6125 +7114 +5601 +8061 +-8712 +4435 +6815 +4572 +-4261 +3164 +-7244 +954 +-406 +1199 +-2631 +-1991 +1827 +-6688 +4941 +7073 +6240 +7784 +-5995 +-7426 +9065 +4027 +8174 +-2627 +-2987 +9995 +4212 +6452 +-5228 +-9051 +2039 +5626 +-5999 +2687 +-4545 +7423 +6301 +1682 +8674 +-8474 +8669 +6253 +329 +-7476 +593 +6655 +7388 +55 +-9 +4635 +-1753 +-2523 +-7064 +-5996 +-807 +-3272 +7400 +-2211 +-9454 +6187 +-7412 +-2381 +1555 +-2758 +1339 +5402 +8105 +-2245 +-4618 +5631 +-3548 +-8157 +-8686 +6834 +-4707 +8566 +7385 +-9286 +-2381 +-7493 +382 +-3199 +2766 +-2792 +8684 +-6398 +-4764 +-2307 +1494 +6518 +2036 +-5788 +-5351 +4962 +5337 +1807 +6920 +-6538 +3553 +8613 +5563 +-8048 +-3566 +-8222 +-1517 +5800 +-2700 +3048 +-4022 +-8373 +1618 +-7432 +-6191 +926 +9877 +3323 +-549 +-4684 +-1222 +2761 +-251 +9109 +-9853 +3883 +-2046 +1466 +6150 +-8953 +4539 +6791 +7583 +-6920 +345 +1605 +-8892 +-4644 +-1914 +7140 +6854 +2883 +-3540 +-2194 +1167 +-1311 +-898 +-2346 +1061 +9001 +3897 +9903 +2325 +-5644 +-5761 +-629 +5608 +-7656 +3687 +-6226 +-5182 +-5182 +4646 +-5466 +4068 +5921 +-7432 +-9889 +-4570 +9174 +-386 +1636 +-5859 +7927 +-7324 +-8125 +-5243 +4289 +-9721 +-7419 +-442 +-6574 +7169 +-5722 +-9596 +1577 +-2091 +-545 +5755 +6806 +-9756 +-7694 +-4575 +-4898 +-6091 +-6556 +5506 +-2700 +9382 +-9133 +-7575 +-1754 +8619 +5183 +-2575 +2682 +-912 +67 +-8045 +-7647 +-6090 +-134 +-8712 +-6509 +-1387 +-2343 +2173 +-6409 +-4913 +6651 +9669 +-5596 +-1930 +4034 +-1289 +6873 +9124 +-2248 +5300 +3823 +-1370 +-6347 +9951 +-9465 +-1393 +9001 +8195 +2706 +7516 +9518 +-3559 +-549 +6842 +-3049 +9515 +-7640 +-5690 +1153 +3090 +86 +564 +1375 +4865 +8789 +-3268 +9697 +3493 +-159 +3447 +-6438 +5105 +5764 +7379 +-5093 +-7871 +2913 +8299 +-5162 +1729 +-7442 +4298 +890 +2497 +-2812 +-9292 +8673 +-9240 +663 +-3672 +-9831 +-3975 +9754 +-9903 +-8575 +-415 +-7680 +-2890 +3719 +8312 +4117 +-8534 +454 +6218 +1083 +-8512 +1757 +6428 +8298 +1199 +8806 +-740 +-8418 +7686 +-3776 +-97 +-1325 +5181 +-525 +-569 +7619 +7868 +7842 +-4041 +-6385 +7155 +-3549 +-8540 +-7106 +2139 +-997 +-8015 +707 +-4741 +-1401 +-6871 +859 +9792 +5020 +-1916 +-6693 +2955 +-7671 +-3827 +6061 +-7841 +-7537 +-5925 +9273 diff --git a/2022/20/solve.py b/2022/20/solve.py new file mode 100644 index 0000000..6a0a74f --- /dev/null +++ b/2022/20/solve.py @@ -0,0 +1,32 @@ +import numpy as np + +data = [ + (i, int(dat)) + for i, dat in enumerate(open("input").readlines()) + if dat != "" +] +size = len(data) + + +def solve(arr, mult): + for coord in arr[:] * mult: + i = arr.index(coord) + arr.pop(i) + arr.insert((i + coord[1]) % (size - 1), coord) + zero = [coord[1] for coord in arr].index(0) + locs = [1000, 2000, 3000] + return sum(arr[(zero + p) % size][1] for p in locs) + + +def part1(): + copied = data[:] # don't overwrite because part2 + return solve(copied, 1) + + +def part2(): + applied = [(i, dat * 811589153) for i, dat in data] + return solve(applied, 10) + + +print(f"Part 1: {part1()}") +print(f"Part 2: {part2()}") diff --git a/2022/21/input b/2022/21/input new file mode 100644 index 0000000..f3eba58 --- /dev/null +++ b/2022/21/input @@ -0,0 +1,2401 @@ +lzvm: ptgl * wvjc +jlbw: 5 +vgzr: 2 +scpf: 3 +lgtp: 2 +srsp: vdmg * fqbh +hcmw: 7 +cnpc: 9 +scvq: wzpm - cnwd +nvml: 3 +rlvv: 7 +ffrw: lscf + jcht +lprr: 2 +srpn: 2 +hspb: gdhj + fbbc +bhsc: 4 +hdtw: qfmd * wntp +sjhs: mfjc - nwcz +wtgh: 17 +rjvw: hzjt * lnlw +cwpc: 2 +wtqw: 3 +tnhb: 2 +dvrh: 3 +znnv: wthv / qczc +qpln: wspn * jpnc +phbj: wnzd + cnpc +lhln: mwcz * dvln +grqn: 3 +crdg: jfzb * pwpj +lsjd: 4 +tzwh: shgc - bqzv +rldp: 3 +pjzm: 5 +pwbn: 2 +ljgc: nsbn + jwwz +vhjj: gjzm + qrzs +wmfj: dnbb * nbfq +bjgq: vcdj * sfhl +rpfm: 9 +bqlm: sdpl * nqdr +gmjg: nzwv * ljsq +lptd: humn - mrjt +rlts: nlnf / wmmj +nfdl: sbgc * rdwl +stpr: 3 +fqgm: rvgf * jsvv +cgrz: 4 +dvfw: vdzq + tfzd +bwwv: 10 +dfcw: 8 +psrq: hcvr * lvdd +lltb: qrtt * qpnn +tlgs: wrqq * wvhs +whll: 2 +tmfd: 5 +crvv: 2 +thhz: 3 +fhpw: 13 +qwqb: 3 +lfhp: 3 +vszc: 8 +cfgn: 5 +jcjb: rtvp + mpcm +hwlg: 5 +vqhg: whpc + sgmj +lhll: qwqb + svtq +cvjc: zjmz * hcmw +rszs: wmqd * flhp +hqbs: lzrr * jfvt +dpwb: bsmg * vsjs +dfzj: 10 +zqhb: cvzg * zrpj +qtwr: vhbm * flrs +fbtc: bqnw * hzgg +pdfm: 5 +bllh: 10 +vzhq: 2 +bszl: 2 +cvzg: zbpr + vvfg +cczs: slws + dvfw +wvrq: 6 +vrhf: 2 +tphn: tllc + lwhq +gbmt: qfln * pflg +nqtb: phjv + dqwf +qpst: 2 +fsrp: vfgn + ghsm +fffv: zfvq * lsts +cvln: psrq / bgcl +bqvm: 19 +shff: 2 +cjnh: 7 +wrhb: 3 +gpsl: npmt * gcgb +tmgv: cnzs + sfvt +hlql: nllh + gnlr +bsrc: jmvn * fdpt +fnbp: 19 +ptrl: gpmg * wmjv +ddsh: cztw + mgpq +zmtf: nqlj * gmjt +ctsj: 2 +qnpm: 2 +zhgr: jcpz * msvz +mfbg: tzcs * qfmj +hllz: wnhv + twsh +bbwz: fpcq * nncm +tlzb: 7 +jjzf: wssz + gbpr +cqgb: fffv + jtpl +sgqn: smns + mgws +tzjc: 9 +dslw: 6 +cdls: 2 +bdqm: mfdc * jpgb +nzpp: ddrh + bvfb +mzcl: lcpb / sgqn +wfcn: msgg / fqcz +mtvg: 3 +mtpd: 2 +tllc: flzq + pfqz +wfgh: qpbz * mscj +zvvw: 15 +zspw: rspv * lgdh +qwqg: nvqr * vblw +whpv: vpcb * pzvb +dtsr: 5 +plpc: fgsc * vnjb +spln: 13 +fnfm: 1 +jlbv: 2 +blwt: nhfd + nslf +sgnb: 4 +ntfc: 12 +znhg: 2 +tlvl: 2 +wqrw: 3 +mtvq: wmfj + fldv +qpnn: rvbm - jnmf +zcbm: 5 +qmzr: 2 +gqfd: 2 +jgjf: 9 +wrsf: 1 +mgfq: bqgf * qpff +pjff: tqbl * bfzm +sfng: qzhl * cslr +jwqs: 1 +tbzw: 3 +jzmj: cfgn + wfdv +rznc: 1 +rmhb: 4 +nlmq: jqcr + mwbl +nsgd: 3 +fdvl: glcn + tvfb +spfj: bqlm + cmgr +rcnn: 7 +qdss: hpdr + ntdv +twhn: gsgv * gcfs +mwrw: 17 +tghw: wccd - czcj +dsnv: 3 +mbhp: rrgz * ntld +plrn: 3 +jcht: 4 +cfqf: 2 +rddd: ctsj + jvwn +bngj: 3 +hdph: 2 +gqtd: fzjn * chnw +rzfw: wmfd - tpcz +qbgv: pvmv * rnqm +mhjl: qgpq * nbwq +snzv: qlsw * bgqs +bwsj: vcgm + jszc +chhf: vzbv * lmpw +sgjh: vzws + msgd +rpsm: 3 +gpdq: dvwl + sgvt +nghg: hllc + zcmt +wdqz: 4 +bbfl: 2 +djzd: 6 +cszl: 12 +jdmz: 1 +rcsw: tpnv * bswq +wrvm: 10 +sdcs: gccn * lprr +hplm: zwsg + ctvv +gljv: 4 +mwsb: qlmv * tbqw +zpzs: 4 +pcdm: rdws * hmlb +hhgr: 3 +svgd: 5 +wtzw: nlmq * dvms +ndwq: nrwc + jzjw +zdhd: gbtd * qbng +srtn: fcbs * pjgr +cnwd: rjgc * bngj +lbws: dhrw + bndv +gjzm: 15 +wpsc: gdwq * csvt +wbls: 7 +bnns: 5 +qqnl: 2 +vqgh: 5 +mqtd: lzcq + msvq +rdql: 5 +vrwp: 11 +dlqn: 3 +bvdn: 3 +cpsq: zbhn * zsld +zbhv: pdbq + ndhf +lflz: crpc * njzw +grdq: 11 +jgzh: 5 +nllh: 6 +sqmg: qjzv * lgnb +cjlz: dqhs * djtr +sfhm: thbq * tvql +ncfn: zdnq + vdzv +rpgr: ghct * stld +mrpm: 2 +wpgc: hvtb * rcpd +nbjl: tjrz * nnfl +bnsw: ffsv * qmcs +hrqb: 2 +phjv: 4 +smzg: znhz * fdtg +jqtw: 3 +zsct: 11 +fsqj: 6 +wrmj: vpvl * nlvn +rrnt: 3 +qjzv: rrsw / fwtb +pjwv: 7 +wrjh: 4 +grnw: hlgb / wtdm +fnhs: 5 +lnhr: 2 +pwss: 8 +ddzd: wbzn * fnbp +vpcb: 2 +zcdd: 2 +chmz: 2 +mmfs: 1 +tfvp: nqrw * mmvq +pccl: 1 +dzvb: 3 +pbpp: 11 +jnmf: djnw * lbqj +qdgb: pwww * lmzt +rjvj: pfwl / lgtp +vwsc: vjps + gszw +rdfb: 14 +thbq: 2 +qhhn: 3 +jjss: 4 +qbng: gbdf + vzzh +ttnz: zwhw - llcv +lrgz: 20 +dhrw: 1 +dnqd: tghw * cpdj +wswz: 3 +hdqn: 4 +vmbp: mrqw / qhjc +hvvw: 3 +jcvr: tnhb * ncrp +lbcd: 2 +bjsz: tgvd + pgbc +gtgn: mdhr + ncwv +pfgp: 4 +lsgl: dcpw * tvbn +nqrw: cjqn / lpqt +chzz: rngm + rptd +wfdv: 2 +lldr: bgpm - vswd +jcpz: 5 +lqcb: 7 +fwvg: zdbb * pqms +jjfb: 1 +sdjw: 8 +zfhw: fcrs * qbnd +gdsb: chqs * rcnn +znhz: 2 +mgbh: bzwm * qdnc +wvjc: 3 +scfn: 2 +bjhp: 2 +ccrm: nsvf * mtpj +psmd: vdvf * frqg +pzvh: 2 +dgvb: zlrz * qdss +hqsl: 2 +lzcq: 8 +qbnd: 15 +mclf: lszg - fmrl +rrsw: hmbb * ffsh +mscj: dncs / cfqf +hwbr: 2 +nhjl: 7 +ldgp: 3 +hthg: hlvm + fdpw +pbnt: 3 +tcch: 3 +gdjw: qrnp * stfz +gqjj: 2 +ctwc: dfhc * qlgd +lzlr: qntm * dqzt +tvfb: 3 +mrbr: 3 +tppb: 5 +mqrf: qrqv * qjcn +mzpl: tbsn + sbwn +pzgg: qdnt / lllq +lhvt: pwqz * bbwl +vlbr: lhhb * bjps +glzz: 2 +psqz: hggq + ncgg +bdrw: 3 +bmvf: nqvp + tnmw +jpwg: 2 +rtnq: vdvr - zfqh +srwf: vtdd + vqhz +zmgg: snfb * mfbn +lpbn: dvrh * phwr +rhlg: 3 +gpmg: 5 +mctq: lhll - rhlg +mnfl: 8 +pgcs: 7 +wvdq: 6 +tbsn: 10 +fpjw: rtvs * zbhv +bftt: 3 +nqhq: gjpl * zdbf +qpzf: hthg + znhd +gbpr: gbhv * fqsm +nwfb: nnvt * ldgp +lbqj: 3 +zlzg: twvj + sbnj +zwhm: qntz * pmzp +wzbq: 2 +zhzw: 4 +lzcg: jmrn - bqwv +hdnq: hnvr * mfbg +vswd: 1 +qqpc: bsff * nfsq +snfv: fhnd / sdrt +qjvh: pdfm * nwfb +vbhj: 3 +nsvh: 1 +gdvj: 1 +jplg: 4 +dcpw: hwgv + nljn +pcvd: 3 +mrqw: wgbm * wzgq +jjlp: 3 +hzgg: bqrf - pzdz +rdvw: qsbl / tcch +cvlw: rlvv * lsgg +rgwm: bdbf * hhcv +bcpf: 2 +dzql: wtdw - zhgr +qmss: 8 +vlzr: 2 +hrdq: lhmb - tswg +mwbl: qrsg + bgpc +vdql: whsm + crbv +vdml: nfbd * mbhp +fhnd: wbfz + jbpq +lbpc: 3 +gqpf: swbd + dlqr +dgqz: jlwh + dqwh +mmqs: vbsd + sdhf +cpdj: 2 +qfsq: ppvw * wggh +dffn: thrp * wgrs +wzpn: gpsl / shff +zhdr: jczd + qtqr +fdsq: cdls + vspg +fgsq: qpzf - bhqz +jpvs: swzp + crgj +dmgc: nwsl * pgcs +dwfh: 2 +mjhg: hhpq * lvrz +bcpz: 20 +vhrl: 8 +tvql: 5 +npmt: 5 +blth: wmmg * wjjt +wjvn: smzg + cfsp +rwfv: hhgr + wpgm +vdvf: 3 +vhcf: zcrq + hvnl +nttt: gdrc * wlcd +hpfl: 2 +mfjg: jpnr + tvgm +tdrb: 5 +vjpz: 4 +jftw: 4 +rcjw: rtwq * qqgn +zcfr: 3 +zqjp: wllr + mnsw +bgcl: 2 +mfwz: 4 +dsgc: 17 +jhpm: 7 +hgpb: 10 +bdrs: sdvg * zjnb +hcvr: 14 +ffpw: mmbz + nsrl +rdmw: 4 +pvbm: fhsr + hfdq +mwvv: vlgw + lgvw +slfv: 10 +qtqr: grdb * ngrh +qrsh: 15 +whcc: htfn * ptzp +bjjd: ljjv * pfnv +qhbz: bnsw - bhgv +qbzr: nfsl + bbmd +hbbt: 3 +jhml: 5 +sjsq: lqdz * mzpl +mqqz: 14 +cbqg: 17 +vnzn: bqbz * btdr +msgg: dqrb * srcw +qcbt: 2 +pwpj: 2 +dfhc: 2 +nhlv: 5 +lspg: fmqf * pgrl +qdzh: 2 +bnrb: gnvn + phpt +jnhv: 1 +gpzc: cpdm * nvqt +mdjt: 2 +rpgb: 10 +cmbv: gmsc * zmct +mmvq: jspg / dwfh +vcvv: 13 +pbjw: 7 +cjdd: 5 +mlzt: scmm * ntsh +prpz: zcfj + hnlw +zhlb: gmhz * hwjt +psct: snzz + svfv +fvvt: hnwq * zlzg +wbts: rrnt * bsjr +vfsz: dgnn * bchq +hwpl: bvls * bmfp +fqcz: 3 +jjlr: 3 +wjvt: zspw + grjb +lmvn: nrhz + wvrq +lszg: nbgh + wqth +zsld: 3 +trjq: 19 +sbht: 2 +mtmn: 2 +rwwn: 2 +cslf: 1 +blzg: 18 +bcnf: snqd * bbfl +nbth: 4 +vtfs: 5 +drwb: 5 +dnmp: 15 +wnzd: nzgj * vtfs +wzct: bghw + ctgd +tbrw: npqm * nppj +vjrq: 8 +pzdz: jjlr * fbcq +qgfm: pbnt * hjrm +vmmb: nmmj + cvls +mtjp: 4 +szds: rlts * rvjq +lwhq: 18 +ccpw: vpcg + mlcg +bhsj: nzjv + lqgh +cmbm: psct + wwjb +bggd: 2 +mzqr: jtvw + mdzh +dhqd: 4 +pjfm: 14 +lwsq: cpfr * wbgm +nftd: gcqm * cjdd +zgtj: ppfz + djcq +jslf: 2 +dhmq: nsft + npdl +vwwc: zvsf * hbbg +gmwv: blgr - tnfh +bhrc: wfcn - jszw +cvzz: 12 +hghn: wbts * vrtq +pdhs: 4 +cfvj: 2 +hsgn: lbcc / zqjp +rvcs: 2 +hsfl: 4 +dgbl: 4 +rcpf: 2 +whsm: thbn + spfj +ghnt: 12 +vdzv: nrpt * ljlg +zrds: 5 +nwjz: 3 +zdss: fpdj + qrnt +wsvj: 2 +fstv: tpvt * jhgb +nvzh: 2 +zgtg: wgfl * rmpf +vpch: wfgh * rjfj +mdbj: 2 +pdmz: gcqw / fntt +mbtl: jzhz * hzjs +szfw: 12 +mnsw: 6 +hjrm: qvdl * qjfr +wpqs: nhrt * zptt +gtss: 5 +hcql: mlzt + tnjz +tczm: 3 +gjpl: 4 +jhzp: tmtb / bcjw +mlnp: hdtj + sswp +pzhl: 2 +lnpw: 2 +bcpt: zwgt * whcc +bglj: qsnt + rcsw +cbvv: 4 +zhcj: jghv * wsbp +wtwj: 6 +fsrz: tlds * zmdw +zjfc: ldhj + bvrp +vhbg: fwvn * jnst +cvqw: 4 +lfqv: rtrm + pzbg +tbqh: fvnm + qnlq +zlrd: 2 +dprv: hgfd - cslf +mrdr: mhjl + bfgj +nzwv: zzmh + nbth +nnfl: fbrs * svgd +qvtp: fwqf / chmz +hzjt: mzjw - hlff +tdsb: tqmd * thnv +pwfc: 7 +phpt: vzsg * rdwn +mchl: 2 +wthv: gljv * vgzj +fbrs: ldqf + qrvc +gwdh: 16 +ndhf: wngv / ffdg +lgdh: bhwj - nrjj +dzgf: 2 +dtwv: rdbj * qgfm +jzhz: 2 +rvps: dhfl * lvjp +flrs: 3 +tqmv: 2 +bfzm: 3 +tdgd: rdmp * cwpc +dwbg: 2 +pwww: nrqc + tfvp +nqmd: 2 +jzgd: 5 +jwbf: 20 +cjdh: gtgn + rght +nsrl: fhjd + jmjb +crpd: 6 +dmgj: hjzn * mqtv +gqrw: nmjj * ljdb +hjnf: 3 +gsdz: fvbn * hwbb +jmqn: lgzt + vvrz +ndmz: wzzd * dlzl +nfvn: rmrl * fpwt +tvzh: 19 +cfsp: gpbm * mnmj +dfsh: 7 +nzlf: bglj + grqn +gdwq: 5 +vnzr: 2 +ngrh: 3 +svcf: srms * zvvt +pjzb: 9 +spqb: mjpz * ndpl +ntsh: 3 +hqtz: vzmc + zdzr +nsft: pwfc * gsnr +qbsq: 2 +qdnt: hwnz - fgsq +spnd: mjhg + wsvj +vpvb: 1 +lnpp: 3 +csdb: 2 +sdnn: 5 +srdb: zwwp - npzs +hnrs: nlwp + cbtb +rbwb: hwrw + gbgh +qfzb: 13 +fjch: 2 +hmlb: 11 +zqmq: dpwb + qvrv +cpfr: 3 +spzw: lzvm + ltbv +bmwg: 4 +hfjw: 2 +fcbs: pjzb + qwmw +nlvn: wgrr + tnrr +mhwb: pccl + dslw +wtdw: bwqg * mfsb +gsnr: hplm * cdhc +dsmv: 2 +nmls: wrvm * ppcf +nnmf: 5 +hsmp: tvtg + pbbh +fdpw: ntjw + hrmm +qhnl: mqrc + jwlz +sswp: 6 +jrcw: clcw * hqsl +fwcp: 3 +hhbf: 6 +mcgv: cwqn + wptt +dpnj: hnmd + bbhm +vdsh: cfhz * nscd +cczt: zqnn + mbvt +zftd: 2 +wqzc: 9 +nmrh: dprv * njtd +hggq: pstr + zqdc +mnmj: ddrr + qrps +hfdq: 2 +wwzt: pjzm * zsct +qqqp: 2 +qfpm: 5 +szbq: chgc - flql +jblv: mnfl - qzmr +dfzr: jzgd + mfgq +mbvt: zrjh + qvpc +ptzp: 3 +zgvl: ndvm + zfdc +npqm: jqng + fdcb +lnnr: 13 +pzvb: 17 +qwrb: 4 +zcmt: 3 +nrjh: 17 +mlnh: wvqh + prcw +rgfq: lmsf * gnnl +qpff: 2 +fvnm: ljmh * hzzl +jwdl: vsnn + prnh +fvtz: dmgc + pljv +znbg: 7 +pgzw: 2 +cdvg: 2 +fjrh: phbq * wfwc +vjps: qtwr + nhth +bsjr: 3 +gmrs: tghv * lftw +rvzl: hnbm + zqhw +vqmb: jggh * pdbp +fvvh: 1 +rdlh: 2 +hvtb: 13 +jgfb: 3 +wzrc: nrtv + cpgt +lcpb: lqwr + ggcw +zwjr: sfhm * hlql +qwmw: cbjp + nqsr +fwtb: 2 +zfqh: bdrs + zslz +llvp: gmbl + bpvt +bfnr: rddd * cbmm +lfdj: dcjj * zmrd +hlgb: lspg + gnsn +svrr: 2 +jrps: srct + twml +rtvs: 2 +rdws: 3 +ntlc: pgsz / gqpl +qlrn: 14 +rdvt: 3 +root: cwtl + wqpn +qbmt: nwjz + bhfh +ldzl: 2 +cdnp: ssjm + dsrh +hrmq: mqqz - hmnq +qzmr: 1 +rrgz: 3 +jgfc: bndp * mjsd +trsc: rpfm - pzvh +lqdz: 2 +hmbv: 7 +qntm: llvp * rwjh +sgsh: jqzb + gqtd +sglb: ngfd * hhgl +fvbn: 5 +cstd: gqbp / lqcb +lrsb: 3 +zpnl: llsv * tsvw +fbrp: 5 +bqbz: fgfw * qmzr +tbqw: 3 +wfch: cjzm * dmbm +gcfs: 2 +tsfb: jgfc + vcdt +jjcv: zphw + cvlw +qztz: 5 +fvlw: jrtf * bsmr +lgvw: dbmb / mgns +pqms: 2 +hvgr: 2 +gnqc: 6 +cjdb: hgpw + hnsn +gdfn: stgr + zftd +mfjc: jhdb + vsbp +qgwz: 5 +hqpr: 3 +qhgl: 5 +bqzv: 6 +sgmj: 1 +rnqm: vvhw * bwzc +tvpc: 7 +nmfm: 2 +dtlf: 2 +btdr: ngpb + nbcp +sdjv: 6 +nlmd: 8 +ctjw: qgwz + wtdc +thrp: ghhf + mhwg +rdnt: rmzn + jcmb +stlj: rcgn * csdb +sjtp: tpqf * wspw +qrsg: qtlv * gzfg +gpfd: 3 +nscd: 2 +tjpr: qjfl + gfsm +hnvr: 4 +qrgg: lqwh * fdnb +rzlm: 19 +jtvw: 1 +cwqh: 5 +dbjs: vcrs / gphc +hcsg: hjlh * ccnm +nzjm: 19 +ctzf: 12 +ltsm: chhf - rmbd +sfsh: 4 +vlmp: 2 +clwl: zgdm + vjrq +fthz: 14 +pflg: 5 +hwgv: tndq + bszl +hncv: 3 +cdgn: pzqs + vfgd +llsv: qwlc + pwmv +dvlr: 3 +dhgd: 1 +rfbh: 5 +tnvq: 3 +rqzf: 3 +bwvh: 2 +mjsd: mdtd + qfsq +nhrt: 13 +mzbh: 2 +mpcm: 8 +rght: wzpn + fsrz +crpc: 5 +flzq: pbmz * lfhj +lwgc: qbmt * mzbh +dhjr: 5 +mcvl: fmrd * tbfd +rrbn: 2 +zzmh: 13 +gmvh: 2 +swfb: gtss * srss +lgwl: mfbs + zvrh +rfsp: 8 +wssz: jcdj + mtph +qrtt: 15 +fjbn: 2 +hpfj: grbh + mbtl +gshm: 5 +gprl: 2 +zqnn: lrgz + mgfq +dqhs: 2 +dqrs: 2 +wbrs: zvbp + wvfc +qntj: 4 +gsvm: 2 +nmfn: 13 +wsqq: 14 +ddqj: 3 +tswg: 5 +wspw: 4 +wqth: dmpn * bcrj +wngb: wtzw * bwvh +fhbb: 3 +mtph: dfzj * fqph +clwr: srdb + hfqn +tpvt: 5 +lfsn: hgql * hsmp +zjnb: hfcn * jcjb +tpnv: 2 +wllr: 1 +rngm: bmvf + bfrt +pbfb: mzzc + jmpp +pfpz: 10 +hhtp: jsqp * gwcq +mcht: gmvh * bsjb +vdqm: 12 +tbnq: pwss * zvvw +nqsr: 1 +ljmh: 4 +nwcz: gnqc * sfsh +zmdw: wdpf - rzfw +rdrz: 6 +nlzl: 17 +gzzs: 12 +sgbt: 17 +pqsd: 4 +ngnz: snfs * qqdf +zgcq: ndwq + rnnt +gfdf: 1 +rlcr: zgcq * dsmv +sphm: srqw * qghp +vndq: jdmz + zwrg +dvcm: 16 +qwrv: trgs * ctjw +pgrl: fhpw * njws +ltbf: 3 +zwgt: 4 +cdsv: gmjg + mwvv +rcwb: rmwq * dntt +fmrd: 2 +hjzn: hlnq + pvpd +ctjj: 4 +znwn: 5 +crgj: 1 +rfbp: 12 +jpnr: 5 +mlwg: grdq * clwl +dbff: ccwm * vhrl +ldww: 11 +qqcb: 2 +tfzd: fcsb + scvq +vspg: tdrb * hhgm +snhf: qnqw * rjvw +hcnl: 3 +crdd: 2 +wspn: gsbb * lpvn +szhd: bgvs * rnfh +jhgb: jjqr * hpfl +sgtf: 6 +hnlw: 1 +pssr: cpqr + mqtd +vfgd: 2 +whpp: dndw * fjbn +jznl: gqrw - vjbb +qzlb: dpzq * lldr +crbv: ptvr * qcbt +wtgf: 2 +bdzj: tvpc + tmfz +lqwr: wpgp * spnd +bfgj: spln * dsnv +nppj: 5 +vnjb: 3 +jggh: tqmz + prsp +nfjw: qzrj + wvjz +mfvj: 4 +wnwn: zgtj * svfw +jsvv: 2 +rfwf: 2 +ntdv: 2 +ndsb: vrwp * zrds +scml: 3 +gzwl: vdqm / ptch +ggtm: 4 +ptgl: gwmq - crpd +mbvl: lfsn / dhbz +mhpg: hfpd * jmqm +tdsq: ztjm * zwms +ljdb: vztc + ztdj +tzhm: btdv + hllz +dbqs: 3 +nlwp: dpqt * hvgr +nnmt: 3 +hhpr: tzlr + rdcv +pdrj: 2 +wgqg: snzv + tmqq +nzwt: 7 +nbcp: jvhd * dmfq +gmsc: lhln - vpvb +jvjr: 3 +wjjt: 4 +bbwl: 11 +ltvf: tnhf - qblw +pnjs: nnrv / wvdq +gbtd: 4 +stgr: 5 +gwfs: 5 +fzcl: zwlg + phbj +srcw: zpnf + scpn +nrzs: 6 +mrqc: mwsb * hrnj +pfqz: 19 +zbnc: 1 +fdnb: 2 +qjfl: qqnl * zbwm +ctdn: 4 +zvbp: qmss * mdjt +tdgc: 2 +tvbn: 5 +tmqq: pfzs + rzsh +tpqf: mvth * phlh +nflf: chtn + dvzz +cggg: 4 +tnfh: 3 +wmmg: 2 +hfqn: fvvt - hjpp +chgm: vbzg * gpnz +vzvc: 2 +fwsg: smwp + hbcm +njgq: 2 +qvcf: 9 +gsht: 2 +nhfd: 1 +pnfn: pwrl * hfsq +hmcv: 9 +smtz: zdss + pjqd +srms: 8 +wgfl: 3 +snzm: mmjl * tdqj +jghv: 17 +pbmz: 2 +wpgm: 11 +dmqn: 3 +drrz: whgq * jwdl +gnnl: 2 +wzlh: cwqh * pflt +tpcz: 2 +nzsn: 4 +hgqm: 3 +qczc: 2 +svfv: 2 +bpvt: gtpl + mlnp +bqgf: fbmb + qztz +chqs: gqtq + qdzh +jjrb: 11 +ppvw: clwr - nllr +qbpl: tbnq + sjhs +hwwj: wwvz + crhc +vrtq: 2 +lvrs: 2 +bhsg: 12 +pwzg: 2 +fldv: bncd * zhcj +vcgz: nzjm + pvqg +zphw: sbqg / sqjc +frqg: gdrq + rfbp +cpzq: jbnp * bbsc +cnzs: bbwq * cfvj +gbgh: 2 +jhcw: rqzf + hsfl +rvbm: mhpg + zbnc +wmqd: 2 +fbbc: sgbt * cscj +lhhb: 3 +wqbh: tdvn * gwnl +mzlb: 3 +vbsd: cndv + ggtm +npdl: nftd * sfzl +rvww: ljqs * qgqt +pvfl: 2 +hvnl: sdcs * mfvj +shgc: hqtz + vtbr +zgcz: 2 +chpv: 13 +mjsr: 5 +prnh: 2 +nnvg: 2 +lgnv: wtrq * tdjw +dbmb: fhjf * jrtg +dqrd: qdvp + sjpj +dldm: 3 +rjgc: 3 +lgpn: 5 +bghw: nvml * grpp +tszz: 8 +mfdc: qffz + vhpb +cmjz: wwzt + qslw +vbnt: 2 +jtzt: wwjt + mrdr +cpdm: 5 +ptcr: 2 +gsbb: wmbn + jtdn +sbgm: 7 +tnmw: 3 +vvdq: 6 +jtdn: 12 +crdr: 4 +gqdf: 1 +qvrv: nqvw * ccpw +nmqh: 20 +qvfp: dgwp * srrn +cbjp: bfzz / qvfr +jpgb: 2 +qzcf: 2 +qmcs: 3 +mfbn: 16 +lftq: zpzs * snsq +sftc: 15 +hbbg: vdsh + stfr +fpzl: hspb + nbjl +zszf: tnrj * ndmt +dvzz: 3 +zwhw: rlwz - sdjw +wwvh: 11 +djnw: 3 +wtft: 11 +qjww: jjrb * bhrc +pstr: hpfj * nflb +nqdr: 17 +vbwg: 3 +qntz: 2 +pqgl: 20 +wdcs: pcjl * wncv +wqzh: 6 +jpdl: 2 +fwvn: lfqv * vmsm +fdpn: rqbl * hprr +rpjh: jhcw + vfsz +cqjf: wrmj + nqtb +wbzn: 2 +mfbp: 5 +ccpp: 15 +bwqg: brrc * wswz +fgpl: srjb + pfrz +ghsm: fstv / bggd +nrnc: 3 +lsts: 2 +nbfq: qzgb + rvps +mvth: 2 +bmlr: 2 +dpqt: 11 +dsnf: mtmn * pbvb +bswq: mlwb + gstn +vrnw: vszh + nmvh +wctc: hmhm + hpgl +qfng: sphb + dmgj +zpvn: 3 +zwwp: bjjd + wnch +mlfp: 17 +dqzt: mpqd + qrfp +msgd: mmfs + sgtf +wvzz: 1 +nfbd: 2 +cscj: dcwd * cmws +hlvm: qjdg * hrqb +gcqm: 5 +bvpb: gpzc * znhg +bqwv: 1 +gdhj: hnrs + ndld +mjpz: 3 +mdtd: hgrg * bpsw +nrqc: rhpz * djzj +bqhb: 5 +fwqf: vljb * tmqs +vddp: ddsh + nvrn +jdjf: 12 +ntld: wrqv + fvlw +jhdb: psmd + dwbd +vmsm: 2 +pbjg: bmlr * jgcr +vbzg: 3 +pjgr: 19 +ztmz: cvfs + cjrt +fqnj: qdgb / srpn +lqgh: dtlf * vbsq +qrzs: bjhp * drcq +rpnn: fftj + rnpp +vlrp: 13 +dqwf: 3 +llzm: 3 +bnrc: rjqf * hmbv +sqjc: 2 +vszq: 6 +bvvr: 2 +qchw: jjhj * qhjw +mcwf: zbjz * mdbj +bchq: 8 +pjqd: hnft * hwpl +chnw: 4 +zvsf: 3 +rfbf: vlrp * jvnz +ptfl: 6 +fgfw: 5 +hjvp: 5 +pfzs: qlhn * ngnz +ncwv: wdzl + gzzs +wqhr: nzwt * dgmq +srrn: dzql + wvvf +htct: 4 +qzhr: 2 +spsb: 7 +vjmp: 3 +tghv: bwlr + rdvt +lcwc: dcwc + mwhd +wgzr: 4 +tncv: 8 +hwbb: 3 +czcj: rtnq - wpgc +jmpp: 11 +nnpd: dddg + ldlh +rdcv: 8 +bswt: fjdj - bmjp +glqd: 3 +pfnv: zmrh - rcjw +pmzp: wsqq + wfch +mhcl: 8 +tlcr: 2 +smnj: 2 +phwr: 3 +gstn: 1 +hlnq: 8 +pfsl: 3 +pvqm: mbvc * vcqg +gfgf: vgvf + vzzg +ffsh: 17 +bcsb: 4 +zdnq: vzjg * nqhq +frml: 15 +lpqt: 2 +hmbb: 2 +ggcw: nhww * hhtp +jnvg: zllp * zpsg +jjhj: 2 +swbd: httg * tvzh +dnst: qdgq + trpn +nvrn: 2 +wscd: lltb / bfbq +lncq: 7 +wqsf: gcgj * wtft +rjqf: 3 +bmjp: 6 +vvtc: whpv + vqpl +pflt: 2 +lglf: 3 +bqmq: 2 +jzjw: 8 +vcdt: dgvb * jmfh +nrtv: ltvf + cttw +whgq: jmpm + rdvw +jqzb: gqbd - cbtf +tjzf: 3 +njgm: 2 +ljjv: dgqz + gdhl +qhjc: 5 +tjvd: 2 +dpgf: lhlm + rtsd +nnzw: rwfv / mhzc +bqsp: 2 +sgrg: frcf / wtbh +bvcw: ghzl * zjfc +blzs: 2 +zptt: 3 +vbcw: 2 +pcbw: dvql * jjlp +fhsr: htlf * ptcr +lqmz: 5 +pcjl: 3 +whnr: qbgv - jhzp +dhwp: 5 +wdbb: dgfb * pwqt +spst: dmzh * gpdq +qfln: 15 +qdgq: qbbv * lbws +dmbm: 3 +rdmp: chgm - qpln +tbjc: 7 +qdjg: 5 +qwhs: wqrw * wrhb +mhlg: pfmm * rjtt +lhlm: bdmv * vvdq +rhpz: 5 +tdgg: pcwf * wbrs +sdpl: 2 +hpbs: wsvh + nmls +clzr: mtvq + lgnv +bqjb: 2 +ndvm: 8 +jbnp: bjsz + cvln +trgs: 2 +hmtq: 5 +nrhz: 1 +fmqz: mbzb * ccpp +rptd: llvn * pbpp +bdmn: wrjf * pqgl +lfhj: 5 +jspg: plrn * qrgg +fcsb: hpbs * lmvn +rmzn: sfzp + mgbh +tjbd: 7 +sfcl: jhpm + fnfj +pjbv: 3 +tgvd: rcqr + rfbf +ghct: vhcf + nqcg +nstm: zhlb + jznl +dntt: 2 +qzrj: bdmn / jpwg +hfpd: 4 +hjgw: fgpl / thhz +whwn: 5 +fvjj: cbbb + rfct +qgmf: pvqm + dhgd +lfmj: grwc + pglf +tgsv: 3 +bsmr: 3 +jlbz: wvzz + nbbt +vlgw: mcvl * btzm +bhgv: 11 +jwlz: 2 +gpzr: 2 +lmbw: bjwm + fllr +chzq: wjvt / fjfz +snqd: 3 +wzlt: sqnl + pqrl +vdjs: hcsc * qhff +dmzh: 4 +fjtf: fnnv + fmhs +pffl: 2 +mqrc: vhvn + hvvw +rqbl: chzz * llzm +dzqf: 20 +wqjt: 2 +bhqz: pcbp * mmgq +wmmj: 2 +qnqw: 2 +wggh: pdlg * crlm +prcw: jvjr + mfwz +slzn: trtg + dnmp +vszh: 12 +ljzg: 6 +tmqs: 2 +zbpr: vnch * wnjm +hgrg: whwm + wngb +mgrs: ddqj * lrhn +crqr: hfjw * hmcv +tnjz: mchl * szds +rtwq: szsg + trjq +lvch: 2 +mdhr: bzmq * nbnp +mflf: qllh + zjcb +qctf: cdsv + tzwh +mwbs: qjvh + prtn +chgc: jqlz * lzsf +bpsw: hgpb + mhbp +wccd: dqbg / fnhs +qwzw: sbgm + dqrd +jhdp: plhb / bfzs +sfwr: tfbv + dddc +ztjm: 5 +zrpj: nhqm + mflf +fhjf: 3 +dbpj: fnfm + lnhv +zvzt: jwbf + znnv +gcqw: hrjr - hcql +ptlp: 2 +vjqq: 3 +pmbd: qvfp + bcpt +bvfb: 5 +cmnl: 6 +tsgd: 3 +hdtj: 4 +zcmz: pqwm + tdsb +frcf: qssg * gdfn +nllr: wdbb / gshm +wmlf: 2 +pmmz: rpsm * czfc +lmpw: 4 +qvmp: 3 +dvms: 2 +jscb: lvsl * lnnr +cztw: qtjw + ctcj +snfb: 2 +qzgb: crdr + srwf +cgtq: gjpj * fdvl +srpf: dqsj + nnvg +wngv: ntlc - tdgg +gbdf: 5 +psfj: lgzj * mrzg +scpn: lrtq * rdql +cslr: tbrw + vnzr +tvtg: 3 +wvqh: nvzh * pvbm +pvqg: zhzq * jqqc +nvgn: grnh + gdjw +wtrq: zczj * mmlj +bwzn: 1 +hvld: 3 +dmpn: hhfj - qbnt +dnbb: 5 +plhb: psqz * rfsp +rmrl: 3 +sdrt: 2 +zdzq: 10 +prtn: zclm + nvqd +fjfz: 4 +hnbm: tmgv + ldgr +qsfc: dqgd * dhwp +ccbn: 5 +pdbp: wzlh + chpv +fhjd: fdpn + gbmt +cnsf: hjvp + cszl +qvwc: nrtl * rnrv +vfjq: 2 +rfct: qzlb + vvnr +pdzg: 2 +llqd: bvcw + cnsf +jmrn: rszz * hgln +nznc: 5 +ccwm: pnwc * wvwh +dncs: dhdd + sjsq +wsbp: 3 +nhth: 1 +dcbh: 3 +nbgh: dbwd * wzlt +msvq: scpf * ggrh +rfbl: fzcl / jplg +phlh: zntc + qzsc +lqsc: wrsf + djzd +rlfd: 17 +hgpw: rpjh + ghvb +bgpc: nfdl - smtz +tcdz: 3 +hrbb: qzcf * ldww +dlzl: 2 +pmvn: 5 +frzt: 3 +zbhg: dbff - mhlg +zvrh: 14 +mljl: 3 +prcb: 3 +rtvp: 5 +lpvn: 2 +vzzh: 2 +gwnl: 8 +grbh: 5 +mfsb: 3 +gcbm: cjdb + dgbf +nhjz: 4 +szdm: 13 +bfzz: qwrv - bjgq +sqwr: lthz / pvcj +grdb: 2 +ghvb: gdsb + qwhs +zbwm: 7 +jcff: dhmq - cczs +zsfh: 13 +htfn: nlzl + fthz +bhjr: mcgv + sgrg +nsvf: 3 +pmlv: nttt + jjjv +ffdg: 2 +hnqg: 12 +jcdj: wvqr + nlrg +wrqv: 2 +sbgc: nflf + pqsm +tzlr: 9 +wwjt: 15 +vvfg: jhfw + nlvp +lrtq: lzvv - hvql +jvnz: 2 +sphb: swfb - hlrd +dcsf: jnvg - mcwf +mznv: 12 +lsgg: jhpf * fvjj +wjtg: 7 +rltj: 3 +jdmn: 7 +nnrv: hqpr * qzbh +lftw: clbj + nwtz +gmjt: nttg / rcpf +sdhf: 12 +tndq: shgf * dvlr +dcwd: 3 +ggmn: 4 +qblw: 2 +wwnn: 2 +dcwc: 20 +vsjs: tzhm + sgsh +qvdl: 5 +bbgf: 5 +drbd: 3 +lgnb: 3 +vgjg: wvzm * wqzh +bbmw: bcnf + bwzn +gbth: rfsc * jhjt +gcws: hptp + nfvn +hwnz: dcsf / mrpm +qfmd: 3 +bzmq: 11 +ptvr: sbht * qfzb +wncv: 3 +bftb: 3 +qjjg: bnns * hwlg +zvvt: 4 +zfdc: tqmv * fwcp +mmbz: rdlh * pssr +ldqf: jgjf + vmrt +fspz: pbjw * whcr +jszc: sbqh + pfpz +srjb: frml * mbvl +bvhj: 2 +wzvl: bftb * dpnj +jhwf: 6 +bwhj: 4 +trpn: sgjh * plpc +dvtz: htct * sgnb +nqpw: 2 +wnrb: 3 +ccnm: nnpd * pjbv +llvn: hrgr + pzzs +hrgr: 2 +fvtv: 2 +hmhm: tjbd * qgpr +gnvn: ptfp + cjdq +rtsd: 3 +gpzm: 3 +vzsg: 3 +nvqd: zgfl * cwpd +hvlz: 2 +rmbd: 1 +rcqr: thfd * cggg +qgpq: jjss + jwlq +nqcg: rvzl * zcfr +mmgq: dqst + pjff +zgqn: 2 +qjcn: fbtc + rgfq +vhbm: 8 +nbbc: 8 +hcsc: 3 +gqsw: 1 +snfs: 4 +wclz: 2 +pfwl: jmqn + sqmg +gqbp: bzrp * bbmw +snsq: mhwb * bcpf +jfzb: 3 +dsrh: ctzf + tjzf +gnsn: lfnd * vbcw +ltbv: bnrb + gdvj +zbzv: 2 +srqw: 5 +lzhc: 3 +fbbt: tpmm - jcsc +lgzj: 7 +jlwh: stlj + rpwp +ljlg: hjvv + fspz +sfzl: mnds - zcfc +rfsc: 2 +gphc: 2 +nmjj: 2 +ggrh: 7 +hptc: 5 +lmnz: 17 +jmjb: rcwb / cvqw +rcgn: spsb + ctjj +ncgg: fbpf * bhjr +cmlg: vtvw * zvfn +dhdd: jsnr + lsgl +jcvs: 3 +tndh: 2 +jczd: 1 +nntd: 5 +qdvp: 7 +tnqq: 2 +drpm: 9 +fjnf: mdfs + mbnf +pqhs: jhml * wpfz +ztsr: 2 +ldgr: 12 +ndlh: dhjd * lclm +hfcn: 2 +fcdf: hjgw - spzw +gjjz: jpnd * wtqw +dwbd: 10 +hgql: jjzf + qhbz +sqwc: vrhf * vdql +lsmb: qwzw + rrlr +qdnc: zhzw * wlqc +vzmc: 5 +vjsj: 2 +tdjw: 4 +jtjc: dtqn + szhd +dvwl: lfhp * scfn +phbq: 2 +twhm: 18 +mmlj: 5 +zwqm: 5 +wzzd: nznh / njzv +hptp: tbjg * rshd +wqpn: zcdv * hdtw +jqcq: 9 +hprr: 2 +lvsl: 17 +rzsh: wrsw + qrsh +cwrl: ddzd * wjhh +clbj: 11 +srss: 4 +tnhf: pmvn + hbbt +mczd: wsbb * srtn +mhwg: 7 +zdgc: fzbb * nscz +jnst: ppmm * mrbr +bvvc: rdfb / wtgf +zpsg: 8 +qlsw: pwbn * fhbb +cqcl: 5 +cwvn: jwqs + fjtf +jpnd: whll * srpf +zcfj: dfsh * nfhz +jhjt: pmlv + pgff +djzj: 5 +lvrz: 3 +tcvc: hhbf * rwwn +ctdz: hsnj + ztmz +tgvq: 5 +wtgn: wnlv * cjnh +qbjl: 13 +gqpl: 3 +jhpf: 3 +jqqc: 2 +znhm: 12 +msvz: 2 +fbcq: 3 +nrjj: pqpl * ndsb +zzjg: 3 +vmrt: 7 +tpht: 4 +dqwh: 3 +qssg: 2 +cvls: zcjf + vgzr +qrqv: 2 +qlgd: fbft * fwsg +gcdm: bvvr * zcmz +pgbc: 16 +ldrm: dnst + sjtp +tdrg: 2 +qrnt: snbp * jlbv +ppcf: 3 +jqcr: bgvb + vpch +gwmq: dsgc + gpzr +hmpd: wqqd * nqwj +fsdc: nvth * hmtq +hpgl: cqgb + ldrm +pljn: 1 +fqjn: wrjh + mfhw +blgr: hptc * zbzv +dgfb: lgwl * gwfs +hhgm: blzs + cqcl +nscz: zgqn + sftc +bzwm: 6 +rnfh: 8 +mbnf: mczd + jhdp +vcrg: mrqc + jscb +rwfb: 19 +mpqd: 5 +dsjl: 5 +ldhj: dhjr + cbcf +psvh: 1 +wvjz: bzdb * qctf +gszw: 4 +cvfs: ffpb * rpmf +bjjq: rbnf * rdrz +dtqn: dmjf + hnsh +thnv: 15 +qnbz: pcbw * fjnf +nbnp: 5 +lzrr: 2 +hrjr: mtjf * wctc +ddrh: 12 +htlf: 5 +nnvt: 2 +bchr: 3 +jghr: fbrp * gdrd +hrmm: vnzn - mwrj +wgrs: 2 +lzhd: trsc * pjwv +nfsq: 3 +crlm: 5 +ltqm: pnjs * qjjg +zmct: 5 +flws: 3 +qtlv: cbvv * fqnj +bndp: qsfc + qpnw +jpnc: 2 +lbcc: httq + lwzd +sqnl: lvch + ccbn +cdgh: 4 +qrmn: 2 +gsdr: 5 +dqrb: 3 +pgsz: fjrh + cpqm +mlbd: 2 +ctcj: pdzg * dhqd +httq: lbtm - mclf +jglz: nnzw * zcdd +dhsj: lmwb / hfnn +tbmd: 2 +tmtb: gtgz + fpjw +wnch: pntq * crdg +nwtz: bwhj + blth +dftd: gjjz + twhm +rdwl: wgzr * gfgf +clcw: 4 +bfbq: 4 +mhbp: vjpz + qvcf +wfwc: lflz - zwbt +pbbh: 3 +vjbb: vjqq * fhnj +bdbf: cstd * lglf +qvpc: lqmz * lmnz +gjdv: 2 +tqmz: 1 +hfrg: qfpm * njgm +mgws: 3 +bhwj: nstm / pcvd +snbp: smnj * bqvm +wnrr: wpsc * bgjv +cfhz: 3 +wsbb: gjdv * fdsq +gdrq: hdnq + rznc +lnhv: fpbl * nnmf +bqnw: 7 +hbdm: 10 +vtbr: lzgl * brlr +cpqm: sdbf + mlwg +jsnr: 19 +cjrt: 3 +tzcs: 12 +jcsj: 2 +rwjh: 2 +njrb: hqlp * lwsq +fntt: 3 +nncm: 2 +jhfw: jpvs * mlsj +trtg: 8 +mgpq: vlsj * nswg +tqbl: 2 +vgqg: 8 +hwjt: njrb + vfzp +ssjm: tgnd * tnqq +zbjz: ndsj + tncv +qhtc: 1 +wmbl: 2 +bgvs: 12 +gbmc: 2 +wvpv: rzps * gsdr +hwrw: wqzc * wnrb +mtpj: ndmz - vdjs +fjdj: wdcs + lzvf +svtq: 6 +wvqr: dbpj * ncqc +gpbm: 2 +qhjw: grwq + vgjg +gtpl: cdnp * vjsj +jqlz: nmrh + lhvt +swzp: wmbl * tsgd +zvjn: llqd + sglb +hgln: 3 +cwpd: 5 +zdbb: dncl / wbls +jtpl: fvpb * sppp +mhzc: 2 +dzhc: 11 +nqvw: 5 +btvn: 1 +nsbn: 1 +tpmm: hvgw * rfhf +rrbd: 1 +sfvt: 11 +gdhc: 19 +mfgq: 2 +zfvq: cmbv + chrm +qrnp: 2 +mnrq: 2 +cmhq: 6 +fjbt: 2 +smwp: 9 +fzjn: 5 +rrlr: 5 +lscf: 4 +cttw: 16 +wtdm: 2 +slws: dfzr * wvpv +nlvp: 10 +brrc: lvnw + jjfb +bzrp: jhnv + wtgn +mczs: 2 +pgff: cpsq * sfcl +zcrq: dgwg * vfjq +frmf: tphn * lmbw +vcrs: gcdm * cgrz +nrtl: 11 +njtd: nsvh + wszg +mfgw: 16 +nrwc: 3 +thbn: wqbh / mhcl +dvln: 2 +wpfz: 19 +rpmf: 3 +zlnq: 3 +hfgw: rgwm + frmf +qnlq: zbhg * pqsd +vlqt: mmqs * gqjj +qwqw: 2 +stld: 2 +vzws: 4 +rdwn: 3 +rggr: gqfd * dpgf +scmm: nnqw + wdqz +wqqd: 4 +ljsq: 5 +cbcf: 8 +fbmb: 14 +wzpm: dvtz * qqqp +bgjv: 2 +jzwf: wbqv + bhgh +dddc: fwvg + zgtg +cjqn: 14 +wggv: 5 +qrfp: 2 +nznh: bdzj * qnpm +cjzm: 5 +tvfs: 9 +hmnl: 5 +fdtn: 2 +vlsj: svrr * dcbh +lmwb: pbjg + bhsg +fpcq: ggmn * pwzg +vmjq: 10 +cbtf: 6 +bdmv: 6 +qctm: mtvg + crqr +hvql: 2 +wgrr: 1 +fvpb: 14 +gnbz: qbsq * pmbd +mfhw: btvn + ntfc +gcgb: qbjl * pffl +qghp: sdjv + zcbm +zqdc: rctp * qvtp +hpdr: vmbp / lhpr +nwsl: 3 +dddg: 3 +lvlv: fvtz + lcwc +vblw: 13 +vbsq: rrbd + fsqj +rszz: 6 +gfsm: znhm * hdph +zslz: zwjr + lnpp +rlwz: rlcr / wwnn +qfmj: 2 +pvpd: bnrc + dfcw +mrjt: fmqz * blzg +humn: 831 +zcjf: 5 +rfhf: mwpv * wmlf +vvrz: lzhd + bhsj +bgqs: jcsj * pmmz +dvql: 3 +ppmm: fjbt * bvdn +zvzq: 3 +htjw: vqgh * dtsr +grnh: wzct / jrmg +ggtv: qsvl / wqrj +fpdj: slfv + bchr +wrtr: mzqr + bwwv +rmpf: 13 +vvtm: rfbh + nlpb +lhpr: 2 +ndmt: 2 +qpbz: pljn + njpn +nqlj: 2 +qmns: 4 +rjdr: hrmq * dldm +pzsw: 6 +ppfz: 4 +flhp: wscd + lftq +zwhr: vvtc * spvs +rcpd: 7 +dgbf: zvdr * ptfl +gwcq: 3 +dgmq: 2 +jvhd: 2 +bsjg: lgfh * frzt +nfhz: 3 +grpp: 11 +wcsc: 2 +njzv: 2 +zrjh: rzlm * nmfm +cdhc: dgbl + zlnq +zwbt: tvfs * mgrs +cbmm: 5 +bwzc: wgqg + nvbw +vdvr: wrtr * wpqs +ctvv: tbzw + gscq +fqph: 5 +hzzl: drrz + jrps +fnfj: wclz * jdjf +mwpv: jglz + ttln +sbcr: tjng * tmfd +fpwt: 7 +mvwr: vddp * hfgw +pqrl: zjhr * vjmp +bjps: 2 +vsbp: fbbt - lncq +fmqr: 5 +gnlb: 2 +nlrg: 7 +nswg: 2 +jrtg: dwbg + ngtr +gmhz: 5 +ghzl: 16 +gngz: 2 +lvdd: 12 +njzw: pttb - lmgb +mlcg: 1 +zntc: 5 +qqdf: 2 +fdtg: 14 +bfrt: zmvc + tlzb +wnlv: dftd + jtzt +wnhv: fvtv * ztsg +zvfn: 5 +nmvh: 5 +lhmb: vwsc * hmpd +dgnn: 2 +sbnj: bthl + cjdh +httg: 7 +lnlw: 17 +hlff: 5 +pljv: vqhg * znwn +pcbp: 2 +tnrj: 3 +bbhm: 20 +jfln: 6 +nqvp: hblc * grcq +qffz: 3 +mmjl: 16 +cttf: spqb + zdzw +nbwq: 2 +wrsw: 10 +njpn: 10 +bfgs: 7 +vgzj: gsjp * hbdm +lmwf: rwfb * wqjt +ffpb: 3 +zcfc: 4 +flsg: 2 +bvrp: 2 +hnsn: rggr + rldp +jjjv: mfgw * bqhb +vcqg: 3 +fftj: vwfc * vcvv +vcgm: 12 +gbhv: pdrj * glqd +btzm: 4 +jmpm: wcgj * gsdz +bbwq: 4 +vcdj: 2 +lhtl: mzlb * mtdz +ztsg: vmmb + zszf +gsjp: 2 +dlqr: 18 +rspv: 2 +ndpl: 2 +ffsv: 11 +ltcz: 4 +wjhh: 12 +zwwd: 5 +wmjv: 10 +qbbv: qntj * ltcz +hnmd: 1 +qsnt: 3 +nbbt: rmhb * zdzq +bvwm: bwsj + cvjc +wntp: tsfb - vhbg +fqln: nzpp * hvld +gdrc: 2 +dqst: 5 +pght: wbmd * qnzs +pvcj: 2 +pwrl: fqgm + qctm +zgfl: 7 +vzzg: 8 +fzls: wwvh + dffn +tfbv: bbgf * pzsw +vdzq: sdnn * mznv +bntb: swfp * gcws +dcjj: 9 +jmqm: zrtt - nnmt +czfc: 3 +wtbh: 2 +pcwf: flws + tbdf +rpwp: 3 +grwq: hrbb + vwwc +spvs: 2 +nggf: wqhr - rltj +jrmg: 2 +jsbj: 3 +tjng: 2 +tbjg: 20 +jzcp: 11 +gdrd: 5 +nzjv: 5 +bzbg: 2 +hzvq: tpht * stpr +hhgl: cmhq * rvcs +jvwn: 5 +lthz: jslf * cmjz +sbqg: pdmz - wqsf +fqsm: qvmp * mnrq +mrzg: 3 +rgnf: 9 +rzps: 3 +dqgd: 4 +sjpj: 3 +gmbl: mljl + bcpz +qqgn: 2 +tmjp: 4 +nvqt: 3 +gqbd: 18 +vhpb: hfrg + bllh +fdpt: 3 +rqcz: 5 +rmwq: jlbz * crvv +qsbl: rbwb + dhzq +pzbg: wccj * rvww +nhww: hwbr * tpdq +zdzw: qhgl * ljzg +vvhw: 13 +rvjq: 2 +ngpb: 3 +qnzs: 3 +wtdc: pzhl * bcsb +gqwr: 2 +pnwc: 2 +mrll: 2 +bhfh: btjm * hqbs +jwcb: 2 +jrtf: 3 +rfph: 2 +wmbn: rjdr + rpnn +glcn: 8 +lrhn: jcvr + jzmj +wbfz: gcbm / lrsb +qjfr: 3 +lwgr: gnbm + tcdc +btqn: lzlr + qfng +nljn: 15 +dqsj: pdhs + bvvc +hjvv: bvpb * cwvn +nnqw: tdsq * hdll +nhqm: 3 +zdzr: 4 +mtjf: 2 +zllp: hsgn + gmrs +wlqc: 2 +lvnw: 6 +vdmg: fpzl * ptlp +qlhn: 2 +gcgj: mbff + wnrr +wnjm: lsjd * jgzh +nvth: gpzm + tszz +csvt: 5 +lgzt: 5 +jfvt: 4 +pzqs: 10 +fzbb: 2 +thdn: lqwp * szdm +ftvr: 11 +ldlh: 8 +npzs: pqhs * gwgz +hcwm: 2 +qtjw: qgmf * nrnc +gscq: cdgh + ctwq +ptfp: zvzq * zhdr +chrm: lsmb * mtpd +cwtl: gprl * whnr +whpc: nqpw * jgfb +qzbh: btqn + fsdc +tdqj: 2 +swfp: 2 +mtdz: 7 +lbtm: vtbj * qdjg +qpnw: 3 +vzjg: pcdm + hcwm +fmqf: snzm / vzvc +bcrj: 2 +hhft: 2 +wvwh: gnbz / fpgb +gtgz: gbmc * dsnf +rshd: 2 +fpbl: 2 +whcr: hrdq + glzz +tjrz: 5 +zczj: 5 +gsgv: gqsw + hcsg +pdcg: 2 +wzgq: 5 +tpdq: 9 +qzhl: vlmp * jcvs +vtbj: dbjs + vcmw +pdlg: 4 +ljqs: tdgd / dzgf +hjlh: tnvq * vlzr +qgpd: 2 +pqrd: tlvl * jlbw +tlcg: 2 +mgns: 3 +dgwg: zrtn * dmqn +pntq: dmtb + zqhb +lclm: 2 +bncd: 2 +vtdd: hzvq * pgzw +lvjp: 15 +jcmb: lptd * cvzz +qvfr: 2 +whwm: qjww * cmlg +tjqh: 3 +tmfz: gqdf + htbb +ctwq: qlrn + drpm +bthf: 2 +gcls: jrsl + dsjl +wvvf: 8 +wwvz: 1 +wgbm: wzvl + sphm +dmtb: jcff + ffpw +bzdb: nvgn + vssj +hhfj: lnpw * ctwc +hfsq: 2 +wbmd: qbzr + lvlv +fcrs: nhjl + gzwl +vwfc: 3 +qrvc: rpgb - ltbf +hvgw: 3 +njws: 3 +lqwh: 4 +dpzq: 2 +bqrf: lvrs * nmqh +szsg: ghnt * wtgh +dmfq: 14 +brlr: vmjq + psvh +hdll: 3 +grjb: pqrd * zwhm +bbmd: 15 +pfgr: zwqm * hdqn +zwms: 5 +jshn: mfjg * dwjd +pjhn: dtwv / tppb +dncl: rfph * jvrn +gdgj: drwb * jsbj +zmcw: 4 +tqmd: 4 +nqwj: 2 +bsff: 11 +vzbv: 2 +nhwg: htjw - cmnl +vcmw: rdnt / fjch +hqlp: 3 +cpgt: wtwj * crdd +rjtt: tgvq * lqsc +bfzs: 8 +lgfh: 3 +bhgh: dvcm - qhtc +zmrh: bswt * tqch +rctp: vndq + npph +sgvt: 1 +rbmp: 3 +wvzm: 3 +htbb: bfgs + pfgp +gqtq: 5 +bbsc: 3 +wptt: 10 +djcq: lwgc / njgq +pwqt: qpst * gbth +fbpf: bqmq * njnq +mbff: 11 +lllq: 2 +zjcb: 5 +jwlq: 3 +ttln: whwn * nsgd +ntvs: szbq + grnw +pwmv: qwrb * mzcl +pljt: wjtg * dmwf +cjdq: 20 +jcsc: dfpc * nphq +ncqc: 2 +cslt: vqmb * ccrm +jjqr: 11 +hlrd: 2 +qgqt: 3 +wdzl: fmqr * qqcb +zqhw: 6 +lqwp: 5 +mwcz: 4 +tbdd: 17 +mzjw: qqpc + bsjg +dmjf: zlrd * qwqg +dmwf: 3 +npgz: 5 +vvnr: 3 +zjhr: lpbn * tlcr +pzzs: ffrw + bftt +tnrr: 18 +zvdr: chzq - mwbs +mqtv: zgvl / tdrg +gjpj: 13 +npph: qmnt * lbpc +dhzq: vcgz * nhjz +ndsj: ltsm + tmjp +fpgb: 2 +lzgl: 2 +pvmv: ncfn * ctdz +wsrr: 3 +hfnn: 2 +tsvw: 3 +chtn: wfmt - jrcw +lmgb: sbcr * ptrl +zwrg: 6 +pdnf: pjsc * gqwr +pdmj: 5 +ptch: 2 +sdvg: 3 +njnq: zvjn * hhft +tqsl: wsrr * prcb +bmfp: 3 +jvrn: mwrw * jblv +jmfh: gqpf * zmtf +zwsg: nhwg + bhsc +pjsc: jwcb * dhsj +pbvb: mlnh * tjvd +jsqp: 3 +pfrz: vcrg + nzjf +smns: 4 +mfbs: gmwv + jftw +ghhf: 4 +fcwl: 19 +qslw: bzbg * pjfm +qjdg: nggf + flsg +btdv: tdgc + npgz +zrtt: jdmn + gpfd +zbhn: 3 +vvtw: nhlv * tndh +hzjs: vlqt * sdgr +wqrj: 2 +cbbb: ghdg / mlbd +twvj: rszs * zmcw +sdbf: tcvc * rbcv +rvgf: 5 +sfzp: hhpr * bqjb +hnwq: gdgj + lmwf +vbrv: 2 +grcq: 5 +wrjf: zfhw + twhn +bndv: 6 +hbcm: 10 +jszw: 14 +wlcd: rdmw * dlqn +fmrl: cwrl / nrzs +pqsm: 9 +mbzb: 3 +pglf: hcnl * jjcv +vljb: szfw + tbdd +wmfd: cmwr + tqsl +wszg: rgnf - hmln +qtft: 2 +hmln: 3 +nlpb: 2 +gnlr: 1 +zmrd: 2 +prcl: 2 +hblc: 4 +zgdm: vdml / wcsc +rnrv: 3 +dhbz: dzvb * vbnt +nttg: mjsr * bmwg +dbwd: 4 +rnpp: gwdh + cqjf +wdpf: bfnr + bbwz +qhff: 3 +wmgp: vvtm * dbqs +mwhd: 3 +gnbm: 1 +ndld: wmgp + nzlf +bsjb: rjvj / qtft +sdgr: 2 +jbjc: 2 +vwpq: 2 +fqbh: 2 +vfgn: nznc * cmbm +zcdv: sqwc * qbpl +ztdj: cpzq / lnhr +dqbg: rpgr + lfmj +cmgr: 18 +wsvh: ljgc + gngz +bsmg: 2 +hhcv: 2 +vtvw: 5 +gccn: dzhc + cqms +ghdg: hvlz * pfgr +hsnj: vdws + zdhd +vfzp: zgcz * htzh +qgpr: snfv - clzr +wwjb: 3 +twml: lhtl * bvwm +ctgd: blwt + gdhc +wcgj: 2 +hgfd: tgsv + pdmj +cfhh: 10 +ddrr: 9 +dhfl: 2 +fnnv: tczm * tjqh +cmws: 5 +tqch: wmzg * hmnl +wrqq: fdtn + nntd +srct: snhf - cgtq +qsvl: qtmv * pbgm +jgcr: zvzt + gfdf +lzsf: lwgr * qgpd +wbgm: 3 +drcq: gcls * prcl +dwjd: zpvn * jzcp +lzvv: 13 +jrsl: 8 +vhvn: cdvg * nmfn +rdbj: jqtw * pbfb +qbnt: 3 +snzz: jlzq * qvwc +rnnt: vvtw * vbhj +vpvl: 2 +mnds: qwqw * mlfp +shgf: nzsn * gsht +wccj: 2 +svfw: lzhc * gsvm +jqng: 1 +mbvc: 2 +zpnf: 12 +fdcb: 5 +tdvn: wjvn / vzhq +mwrj: bdqm * ldzl +zhzq: 12 +nphq: 2 +hrnj: 5 +pqpl: 2 +nslf: cfhh - jnhv +cbtb: tbjc * tlcg +fmhs: 1 +jlzq: 2 +lmzt: 2 +fllr: rlfd * qzhr +hnft: nlmd * qmns +tgnd: 4 +btjm: 4 +nzjf: lbcd * sqwr +qmnt: 2 +gzfg: 2 +tvgm: bqsp + whpp +qlmv: 3 +cplb: 3 +zclm: drbd * vhjj +qtmv: 2 +pfmm: bjjq - ttnz +dfpc: ggtv - tzjc +nfsl: zqmq / vgqg +jhnv: qhnl * wggv +rtrm: tbqh + mvwr +wvhs: 3 +nzgj: vzdw * tjpr +cndv: 3 +bcjw: 2 +lwzd: fqln + mqrf +fstd: 3 +llcv: 2 +lzvf: cjlz * vbrv +pqwm: cttf + lzcg +jwwz: rfwf + hghn +djtr: 5 +nrpt: ftvr * pqnh +sbqh: 1 +dgwp: 5 +pqnh: cczt * fcwl +sbwn: jghr - vszc +wssq: dqrs * cbqg +prsp: bdrw * mtjp +ngtr: 9 +zmvc: hncv * vwpq +hnsh: 1 +htzh: hwwj * jpdl +vssj: llfn * cplb +zjmz: 2 +znhd: wnwn + sfng +thfd: 17 +qllh: tcdz * qrmn +crhc: jfln + wzrc +nlnf: dzqf + pnfn +ntjw: sfwr + ndlh +wvfc: 1 +bjwm: rbmp * dcsb +dhjd: pljt + svcf +zrtn: prpz / mczs +pbgm: zmgg + mctq +jbpq: bntb * jbjc +vqhz: 15 +bgvb: pdcg * srsp +pwqz: 2 +grwc: zpnl - jtjc +rbnf: 19 +bgpm: 8 +cqms: 6 +ngfd: 2 +pdbq: jqcq * hnqg +llfn: mcht / tbmd +mppm: 5 +vdws: 13 +hhpq: 3 +rjfj: 2 +vgvf: mppm * fstd +bwlr: 14 +pttb: ntvs / vbwg +cwqn: 12 +vztc: dhzf * qnvs +mzzc: nbbc + qhhn +vpcg: zdgc / pvfl +nflb: 2 +mdzh: 6 +sppp: cdgn * rrbn +qzsc: 2 +rbcv: ctdn + fqjn +qsjm: slzn + spst +wmzg: 15 +qrps: 4 +tbfd: 3 +mtbg: ltqm * rqcz +cpqr: lfdj * qsjm +sfhl: 4 +zdbf: qnbz + nfjw +zlrz: jshn - jzwf +nvqr: 3 +dhzf: pzgg + fcdf +bthl: fsrp / hhgz +stfz: zsfh * bvhj +hllc: 4 +ndfj: 3 +hjpp: thdn * pdnf +hmnq: 1 +vqpl: 3 +mlsj: 3 +hhgz: 2 +lfnd: dnqd - bsrc +wpgp: 5 +mlwb: 6 +dndw: 3 +lmsf: psfj + mrll +nmmj: 16 +twsh: nqmd * pfsl +tlds: 2 +gpnz: rfbl * vrnw +vsnn: 15 +dcsb: scml * nghg +fgsc: 3 +fhnj: qchw / wzbq +cmwr: 6 +fbft: 2 +tcdc: 6 +tbdf: nrjh * gnlb +jmvn: pght / hjnf +vzdw: 2 +bvls: vlbr + fvvh +wbqv: jhwf + znbg +vnch: 2 +ncrp: 9 +wfmt: mfbp * lgpn +qnvs: 2 +stfr: 1 +gwgz: zwwd * fzls +flql: pjhn / bthf +gdhl: ndfj * zzjg +mdfs: mtbg - cslt +zwlg: tlgs + ztsr +qwlc: hgqm * zwhr +nvbw: wssq * vszq diff --git a/2022/21/solve.js b/2022/21/solve.js new file mode 100644 index 0000000..818e463 --- /dev/null +++ b/2022/21/solve.js @@ -0,0 +1,32 @@ +d=require("fs").readFileSync("input", "utf8").trimEnd().split("\n").map(s=>s.split(": ")).reduce((a,s)=>({...a,[s[0]]:s[1].split(/ ([+|\-|*|/]) /)}),{}) + +r=m=>isNaN(d[m])?eval(r(d[m][0])+d[m][1]+r(d[m][2])):d[m] + +function part1() +{ + return r("root") +} + +function part2() +{ + // small binary search + // i'm sure there are better ways.. but it works + d["root"][1] = "-" + low = 1e2 + high = 1e20 + while (low != high) { + mid = (low + high)/2 + d["humn"][0] = `${mid}` + score = 0 - r("root") + if (score < 0) low = mid + else if (score == 0) return mid + else high = mid + } + return 0 +} + +const tic = performance.now(); +console.log(part1()); +console.log(part2()); +const toc = performance.now(); +console.log("TIME: " + ((toc - tic) / 1000).toFixed(6) + " seconds"); |