Compare commits

..

No commits in common. "157915cae5210f244b7351f842570a4dfc712c31" and "5167305a7a33de7dd651f86537ad2818adada289" have entirely different histories.

5 changed files with 919 additions and 234 deletions

View file

@ -1,3 +1,9 @@
0 3 6 9 12 15 RL
1 3 6 10 15 21
10 13 16 21 30 45 AAA = (BBB, CCC)
BBB = (DDD, EEE)
CCC = (ZZZ, GGG)
DDD = (DDD, DDD)
EEE = (EEE, EEE)
GGG = (GGG, GGG)
ZZZ = (ZZZ, ZZZ)

5
example2.txt Normal file
View file

@ -0,0 +1,5 @@
LLR
AAA = (BBB, BBB)
BBB = (AAA, ZZZ)
ZZZ = (ZZZ, ZZZ)

10
example3.txt Normal file
View file

@ -0,0 +1,10 @@
LR
11A = (11B, XXX)
11B = (XXX, 11Z)
11Z = (11B, XXX)
22A = (22B, XXX)
22B = (22C, 22C)
22C = (22Z, 22Z)
22Z = (22B, 22B)
XXX = (XXX, XXX)

992
input.txt
View file

@ -1,200 +1,792 @@
11 33 79 170 328 578 967 1621 2872 5498 11130 22891 46343 90829 171308 310792 543505 918895 1506641 2402808 3737314 LRLRLLRLLRRRLRLLRRLRLRRLRRLLLLRRLLRLRRLRRLRLRLRRLRLLRLRLRLRRRLLRLRLRLRRLRRLRRRLRRLRRLRRLRRLRRRLRRLRLLRLLRRRLRLRLLRRRLLRRLLLLRLRRRLLRLRLRRLRRRLRLRRLRLRRLLRLRRLLRLLRRLRLLRLLRRLRRRLLRRLRLRLRRLRRLRRRLRRLRRRLLRRLRLRRRLRRRLRLRRRLRRLRRLRRLRRRLRRLRLRRRLRLRRLLRRLRRRLRLRRRLLRLRRRLRRRLRLRLRRRLLRRLLRLRRRLRRLRRRLLLRRRR
-4 12 58 149 300 526 842 1263 1804 2480 3306 4297 5468 6834 8410 10211 12252 14548 17114 19965 23116
4 9 26 66 146 290 544 1024 2021 4198 8945 19036 39915 82362 168258 343303 705045 1463670 3070651 6483469 13694943 FTX = (VVM, VVM)
0 -1 4 30 99 245 525 1038 1973 3753 7431 15644 34662 78403 175746 383088 804886 1625931 3160350 5923858 10737621 LNR = (DQG, CMF)
21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 126 133 140 147 154 161 NXS = (TKM, FPB)
22 30 38 46 54 62 70 78 86 94 102 110 118 126 134 142 150 158 166 174 182 FQF = (HDC, NFB)
23 32 41 50 59 68 77 86 95 104 113 122 131 140 149 158 167 176 185 194 203 SPH = (MQB, XFB)
17 24 42 85 177 360 712 1386 2687 5210 10068 19245 36115 66174 118038 204766 345573 568004 910646 1426461 2186829 FDL = (CTR, NXS)
13 21 32 47 68 115 262 694 1798 4335 9803 21207 44641 92458 189568 385972 781800 1577454 3174336 6378503 12816737 DMF = (VHG, LJV)
11 30 74 153 286 528 1018 2059 4246 8678 17345 33906 65340 125498 242657 475189 943094 1889595 3798425 7612912 15140047 JBP = (CKR, VBF)
27 46 72 118 215 434 924 1975 4137 8477 17150 34609 69993 141534 284300 563515 1097813 2101901 3970290 7451561 14023129 MMK = (JVC, NSS)
2 -1 1 17 53 107 171 257 483 1295 3974 11705 31719 79466 186642 416552 893420 1858051 3772775 7517333 14749965 LLT = (MVP, QFC)
22 44 94 189 349 596 956 1482 2328 3920 7297 14748 30975 65212 135122 274090 545170 1068268 2073636 4006875 7732265 VVN = (SHF, XMN)
21 47 92 165 274 421 597 777 915 939 746 197 -888 -2735 -5621 -9879 -15903 -24153 -35160 -49531 -67954 CRR = (QNC, JMC)
16 46 103 194 323 506 799 1339 2398 4450 8251 14932 26105 43982 71507 112501 171820 255526 371071 527494 735631 RRK = (QCR, VFT)
21 33 45 66 116 230 466 920 1764 3352 6500 13173 28066 62062 139525 313342 695599 1519803 3266545 6915774 14449172 JXR = (DSM, RCD)
21 41 82 166 322 582 977 1533 2267 3183 4268 5488 6784 8068 9219 10079 10449 10085 8694 5930 1390 BMD = (KPL, CRR)
15 32 65 131 248 432 704 1122 1858 3342 6504 13183 26880 54285 108538 216211 431869 867304 1747887 3516991 7022508 HQM = (LDR, LFR)
14 38 71 114 187 343 682 1365 2628 4796 8297 13676 21609 32917 48580 69751 97770 134178 180731 239414 312455 VDP = (MGM, GFQ)
7 9 10 21 70 217 591 1471 3450 7744 16735 34866 70039 135714 253990 460106 809089 1385779 2320288 3812243 6169100 HLV = (GLV, TSS)
7 16 40 99 234 521 1085 2114 3873 6718 11110 17629 26988 40047 57827 81524 112523 152412 202996 266311 344638 LJQ = (VDS, LGB)
21 44 93 194 398 804 1598 3120 5987 11341 21374 40427 77190 148871 288683 558651 1070601 2019298 3733091 6749144 11922430 DVJ = (RJP, DTM)
12 15 14 7 -6 -23 -40 -51 -48 -21 42 155 334 597 964 1457 2100 2919 3942 5199 6722 VHL = (MFK, PCV)
9 31 66 121 217 407 805 1631 3280 6437 12303 23097 43194 81597 156980 307347 607507 1199155 2340472 4484921 8402439 LFH = (BTX, VPC)
14 22 26 26 22 14 2 -14 -34 -58 -86 -118 -154 -194 -238 -286 -338 -394 -454 -518 -586 NBN = (NBR, DRD)
5 13 26 52 105 213 434 881 1777 3610 7548 16410 36670 82208 180884 385710 793921 1580563 3060030 5802092 10852699 NKB = (TRQ, LTT)
8 7 16 38 76 138 242 421 728 1241 2068 3352 5276 8068 12006 17423 24712 34331 46808 62746 82828 QPM = (VPQ, SQB)
12 20 38 66 104 152 210 278 356 444 542 650 768 896 1034 1182 1340 1508 1686 1874 2072 VFD = (QBK, LCH)
11 28 56 96 158 290 632 1517 3663 8544 19118 41257 86513 177343 356747 705695 1374143 2635504 4981096 9281682 17059596 HRX = (KJL, SJC)
5 14 50 138 313 615 1083 1763 2771 4490 8043 16309 36006 81865 184821 407664 873997 1819974 3683540 7253236 13908603 RKF = (TFS, XMR)
22 52 110 209 362 582 882 1275 1774 2392 3142 4037 5090 6314 7722 9327 11142 13180 15454 17977 20762 GQK = (FVS, VDC)
22 41 74 129 225 403 747 1437 2868 5888 12235 25293 51368 101893 197507 376218 710574 1344127 2567364 4970517 9739327 DTV = (DHQ, PDG)
14 16 21 26 33 71 225 669 1711 3882 8151 16448 32862 66200 135126 278004 571179 1162423 2331940 4603961 8951410 MHM = (KLF, QJL)
18 22 38 89 211 462 950 1891 3718 7280 14198 27490 52649 99468 185064 338766 609802 1079042 1876414 3205983 5381031 GTM = (CPP, JJT)
1 13 37 85 177 350 680 1317 2528 4731 8496 14508 23557 36765 56498 88749 148207 267717 514331 1014563 1991669 LBN = (RFM, KCX)
16 37 75 140 260 494 948 1795 3311 5972 10736 19796 38393 78822 168725 367451 797225 1701138 3549550 7234285 14423393 JJR = (PNN, HPG)
13 34 69 139 293 621 1267 2442 4437 7636 12529 19725 29965 44135 63279 88612 121533 163638 216733 282847 364245 MDL = (BQM, RKF)
15 22 29 36 43 50 57 64 71 78 85 92 99 106 113 120 127 134 141 148 155 DSL = (BMD, GVK)
12 13 24 72 203 502 1124 2338 4602 8719 16173 29806 55063 102088 188981 346500 624384 1099249 1883630 3135164 5064083 MQF = (JXR, SPJ)
16 22 31 57 136 332 737 1459 2591 4157 6057 8120 10584 15760 32504 86828 245372 665255 1697550 4099589 9468672 VBF = (QVV, GTM)
18 20 22 35 84 212 485 999 1888 3330 5546 8785 13286 19206 26501 34745 42870 48808 49014 37847 6784 MBJ = (NRH, JCX)
26 40 60 100 185 365 753 1608 3505 7668 16599 35239 73093 148135 294064 573935 1105880 2111392 4004662 7554350 14169005 NRH = (CJM, KHS)
14 37 79 157 301 568 1066 1991 3687 6748 12192 21750 38328 66717 114645 194286 324364 533015 861597 1369667 2141375 SCN = (BJC, GTN)
26 46 80 139 236 397 692 1291 2558 5207 10554 20905 40120 74386 133218 230687 386850 629332 994988 1531559 2299236 HRK = (KHH, TSX)
1 8 26 59 113 196 318 491 729 1048 1466 2003 2681 3524 4558 5811 7313 9096 11194 13643 16481 MCS = (TPF, HBM)
0 4 29 86 181 316 500 777 1289 2426 5187 12003 28474 66768 151844 332218 697718 1407600 2733553 5123540 9294139 BQS = (VFD, MNF)
12 7 4 11 50 181 537 1383 3231 7080 14929 30865 63312 129553 264648 538893 1092110 2201596 4417932 8837368 17646010 TPB = (HTS, FLR)
15 19 30 60 135 306 678 1466 3095 6390 12973 26143 52850 108034 223821 468228 981780 2047002 4217481 8554651 17060138 XVV = (XLX, GDL)
4 23 62 145 315 646 1261 2365 4324 7855 14438 27119 51943 100338 192865 364855 674572 1214671 2127862 3627845 6026747 HGK = (PJC, KBT)
0 -2 1 17 70 225 639 1664 4038 9205 19811 40451 78840 147845 269432 482915 862636 1555638 2860301 5386215 10370274 MXF = (MFC, FQN)
9 16 36 81 178 382 793 1573 2968 5363 9450 16694 30481 58719 119464 252853 546219 1186490 2567764 5506931 11663356 JVS = (TMB, JPF)
8 12 29 70 149 283 492 799 1230 1814 2583 3572 4819 6365 8254 10533 13252 16464 20225 24594 29633 RFM = (FSQ, MQS)
2 0 4 23 66 142 260 429 658 956 1332 1795 2354 3018 3796 4697 5730 6904 8228 9711 11362 XCG = (TPF, HBM)
13 32 57 90 148 285 627 1420 3091 6322 12137 22002 37938 62647 99651 153444 229657 335236 478633 670010 921456 CMR = (LNV, LNT)
21 32 44 61 106 241 607 1495 3457 7463 15099 28772 51831 88420 142742 217210 308613 400694 449818 356347 -94816 BVF = (XXG, MRB)
6 4 -2 -7 0 48 214 692 1942 4996 12059 27638 60570 127510 258691 507089 962526 1772732 3173972 5534535 9415188 KFQ = (DMF, VXS)
20 38 72 131 224 360 548 797 1116 1514 2000 2583 3272 4076 5004 6065 7268 8622 10136 11819 13680 KVS = (VSF, PRK)
14 23 32 41 50 59 68 77 86 95 104 113 122 131 140 149 158 167 176 185 194 VVL = (QFC, MVP)
13 28 43 58 73 88 103 118 133 148 163 178 193 208 223 238 253 268 283 298 313 BNB = (GDL, XLX)
20 32 54 85 126 194 353 775 1844 4325 9661 20564 42270 85202 170484 341139 684723 1379417 2788967 5659626 11527921 BRB = (LNR, XBR)
12 42 94 190 372 707 1290 2244 3715 5862 8851 12896 18508 27457 45805 92242 218753 557969 1425339 3529889 8394603 BJK = (QKC, SPG)
1 16 52 121 245 478 939 1856 3627 6908 12736 22683 39011 64754 103587 159250 234173 326792 426852 507757 514745 FDQ = (HQR, GQK)
9 23 49 92 169 312 569 1010 1759 3101 5767 11605 25054 56263 127560 286684 633455 1372598 2916433 6081111 12456613 JPC = (TVL, XDZ)
8 8 4 -4 -16 -32 -52 -76 -104 -136 -172 -212 -256 -304 -356 -412 -472 -536 -604 -676 -752 JCL = (SJC, KJL)
26 50 92 159 258 396 580 817 1114 1478 1916 2435 3042 3744 4548 5461 6490 7642 8924 10343 11906 BBT = (LLL, XHB)
7 6 17 60 181 465 1050 2151 4118 7575 13716 24876 45577 84429 157644 295650 555589 1044640 1962503 3676488 6850057 FNH = (NNN, LSM)
10 22 50 115 247 480 857 1461 2494 4432 8290 16037 31207 59758 111237 200315 348762 587938 961882 1531087 2377055 QQM = (THC, TQH)
22 44 88 166 295 510 888 1586 2898 5337 9747 17448 30422 51580 85246 138213 222154 358926 591542 1005502 1768013 VDB = (DDR, VSX)
6 14 41 90 173 328 648 1335 2797 5811 11780 23117 43794 80099 141649 242712 403896 654268 1033971 1597412 2417099 MNS = (DPG, DBV)
11 22 32 41 58 123 337 898 2137 4539 8720 15312 24684 36398 48265 54827 45047 -1060 -117176 -357189 -803906 JCS = (SNH, VDP)
4 14 40 86 151 234 349 562 1075 2413 5840 14278 34296 80279 182833 405042 872646 1827912 3722368 7371206 14202685 BGS = (KVS, CLH)
15 31 63 134 282 578 1161 2296 4461 8469 15631 27966 48464 81408 132761 210624 325771 492267 728175 1056358 1505382 MDS = (JXV, VFJ)
10 16 17 21 46 120 281 577 1066 1816 2905 4421 6462 9136 12561 16865 22186 28672 36481 45781 56750 JJM = (XHG, PNJ)
3 3 4 24 106 323 775 1573 2804 4484 6546 8990 12455 19672 38535 87897 207673 475425 1032328 2122284 4148976 NJF = (BBF, DVJ)
18 23 20 2 -27 -33 73 468 1460 3543 7466 14318 25631 43503 70743 111040 169158 251159 364656 519098 726089 GKX = (KHH, TSX)
-6 4 34 91 180 308 508 892 1734 3580 7384 14674 27752 49914 85622 140447 220402 329964 467606 616981 730972 BXV = (DHM, VHR)
7 10 12 9 -4 -31 -65 -51 207 1234 4216 11535 27576 59885 120767 229423 414735 718818 1201468 1945645 3064140 CMF = (NJF, VCK)
19 25 32 40 49 59 70 82 95 109 124 140 157 175 194 214 235 257 280 304 329 LQN = (VPV, RFH)
5 7 27 90 242 556 1145 2198 4062 7416 13636 25544 48873 94970 185545 360820 693659 1315057 2462389 4573894 8475508 TST = (BMK, XSS)
17 30 60 126 262 519 965 1696 2892 4985 9054 17635 36258 76249 159748 328622 660175 1294516 2481452 4659216 8583698 SSB = (KMH, DKD)
10 25 69 169 366 716 1304 2281 3933 6796 11854 20926 37510 68672 129125 249524 492296 980111 1944451 3804703 7291826 RFH = (SSB, SFG)
9 28 54 82 114 173 320 681 1502 3269 6974 14709 30979 65516 139058 294709 619447 1283730 2613166 5217048 10218000 XXG = (TQV, JDH)
9 23 51 111 234 465 864 1517 2574 4343 7497 13505 25482 49760 98589 194440 376331 708331 1289779 2265607 3833254 TNT = (FNL, VNQ)
2 1 2 9 26 57 106 177 274 401 562 761 1002 1289 1626 2017 2466 2977 3554 4201 4922 HDF = (NVD, GQR)
6 10 14 15 20 71 275 848 2196 5070 10846 21995 42822 80567 146975 260456 448970 753786 1234278 1973935 3087776 MQN = (HTH, FXL)
3 13 30 54 85 123 168 220 279 345 418 498 585 679 780 888 1003 1125 1254 1390 1533 QSG = (LFP, FQF)
8 8 14 28 56 116 247 516 1032 2012 4014 8574 19687 46897 111270 256338 567509 1206143 2470123 4904763 9513099 CKK = (GDS, FDL)
1 0 -2 -8 -11 25 191 680 1894 4693 10930 24493 53162 111684 226585 443458 838118 1535101 2743069 4832537 8518726 XXT = (NBM, XFJ)
6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 PDG = (PPP, HKP)
12 19 33 54 82 117 159 208 264 327 397 474 558 649 747 852 964 1083 1209 1342 1482 FLV = (MBS, BVX)
12 15 20 35 69 134 255 497 1035 2331 5557 13539 32728 77088 175449 385066 816382 1678303 3361374 6590903 12707671 HTZ = (DXG, XTB)
12 38 77 141 271 567 1233 2637 5386 10416 19097 33353 55797 89881 140061 211977 312648 450682 636501 882581 1203707 DPG = (TST, TPD)
2 -2 5 33 103 269 656 1523 3360 7028 13951 26369 47661 82747 138578 224723 354062 543594 815369 1197553 1725635 DCR = (BFK, TPB)
6 19 34 61 126 273 566 1091 1958 3303 5290 8113 11998 17205 24030 32807 43910 57755 74802 95557 120574 PGD = (MBD, KBS)
13 28 52 98 190 356 631 1090 1943 3739 7746 16604 35393 73320 146304 280813 519357 928026 1606324 2699210 4410612 FTG = (GLT, MNK)
11 25 41 60 83 111 145 186 235 293 361 440 531 635 753 886 1035 1201 1385 1588 1811 GFK = (PMT, JDT)
-1 9 37 101 235 490 935 1658 2767 4391 6681 9811 13979 19408 26347 35072 45887 59125 75149 94353 117163 HQR = (FVS, VDC)
13 23 33 43 53 63 73 83 93 103 113 123 133 143 153 163 173 183 193 203 213 VKD = (TQG, KVP)
3 18 48 113 249 507 943 1597 2475 3572 5003 7342 12318 24135 52013 115394 255183 558334 1210486 2604295 5552483 KVL = (GQN, VMF)
-3 -11 -12 2 39 107 212 354 521 681 772 690 275 -705 -2572 -5758 -10827 -18499 -29676 -45470 -67233 SLT = (FFT, TXF)
5 2 2 15 59 159 340 624 1055 1805 3471 7786 19205 48346 119383 285791 663345 1497620 3297968 7094833 14917719 ZZZ = (XCG, MCS)
7 13 31 67 134 273 596 1373 3200 7319 16241 34988 73571 151821 308464 617466 1216269 2352705 4460235 8274849 15011628 JJT = (QSG, NLS)
18 30 42 54 66 78 90 102 114 126 138 150 162 174 186 198 210 222 234 246 258 XGL = (RRC, MRV)
5 12 22 39 72 145 333 835 2093 4964 10950 22489 43308 78837 136681 227145 363805 564116 850046 1248723 1793080 DHV = (JKB, JXB)
18 30 42 54 66 78 90 102 114 126 138 150 162 174 186 198 210 222 234 246 258 FFV = (NPN, KVC)
23 31 34 42 74 151 297 564 1100 2289 5028 11295 25347 56244 123056 265289 563085 1175063 2406874 4831400 9492944 LTV = (XGF, QPM)
24 34 44 70 151 373 907 2068 4414 8929 17391 33143 62698 118976 227618 439040 851304 1653716 3210518 6221840 12031157 MRB = (JDH, TQV)
5 5 6 9 25 93 298 784 1757 3473 6206 10191 15537 22105 29346 36094 40309 38765 26678 -2731 -58743 QHV = (SLB, TGR)
8 30 65 113 181 304 577 1206 2612 5663 12165 25814 53897 110131 219145 423241 792216 1437188 2529545 4326327 7203557 HLD = (FXL, HTH)
3 -3 2 45 172 456 1007 1994 3698 6624 11709 20672 36561 64561 113136 195587 332117 552503 899484 1432983 2235290 GLV = (RQT, BXT)
16 28 42 55 65 82 154 417 1176 3020 6973 14694 28780 53330 95148 166377 290076 511444 919320 1685677 3135807 QFC = (GLF, CMQ)
18 42 77 132 229 414 786 1567 3248 6857 14418 29731 59741 117031 224435 423500 789622 1458244 2668651 4834758 8656005 SRL = (QVM, FQM)
22 33 53 94 170 308 580 1163 2439 5174 10885 22642 46793 96506 198710 407198 826684 1656043 3264645 6324818 12037692 TMF = (BTX, VPC)
9 2 -5 4 60 221 589 1330 2700 5103 9257 16631 30457 57846 113895 229237 463363 927376 1821807 3497966 6555306 JST = (PST, SRQ)
20 29 43 70 124 227 415 751 1362 2544 5016 10456 22541 48887 104627 219002 447452 893523 1747765 3355078 6328150 FFX = (FJJ, MMF)
10 30 76 166 319 551 871 1277 1752 2260 2742 3112 3253 3013 2201 583 -2122 -6246 -12176 -20358 -31301 FNL = (NNT, LBM)
-1 -4 -12 -25 -43 -66 -94 -127 -165 -208 -256 -309 -367 -430 -498 -571 -649 -732 -820 -913 -1011 MVT = (SJV, TBL)
21 42 78 141 255 462 838 1529 2822 5276 9951 18788 35210 65034 117809 208728 361307 611086 1010692 1636719 2599033 SLB = (TKV, CGV)
17 22 32 65 156 375 869 1946 4237 9006 18747 38346 77349 154341 305211 598293 1161213 2226966 4210582 7833071 14316598 TQB = (CCF, VTB)
23 35 56 97 184 372 770 1588 3227 6448 12676 24520 46620 86967 158882 283885 495735 845977 1411392 2303811 3682824 NTV = (QPM, XGF)
12 22 50 102 193 369 738 1519 3123 6285 12283 23336 43417 80027 148066 277964 531906 1034564 2028564 3970366 7689797 DXG = (NVP, JNH)
9 24 56 105 167 230 283 360 645 1665 4596 11702 26919 56585 110303 201907 350481 581358 927000 1427631 2131463 CNQ = (QFX, XRT)
14 41 82 137 206 289 386 497 622 761 914 1081 1262 1457 1666 1889 2126 2377 2642 2921 3214 VVM = (BVF, CNF)
15 15 25 55 122 265 572 1228 2593 5319 10515 19969 36436 64001 108526 178190 284131 441199 668829 992043 1442590 XHG = (HRK, GKX)
6 12 33 73 141 260 476 867 1552 2700 4539 7365 11551 17556 25934 37343 52554 72460 98085 130593 171297 PCV = (GVN, NMN)
1 1 11 56 170 393 762 1305 2075 3308 5874 12352 29361 72304 174536 404269 894401 1893019 3845673 7524704 14225928 XMR = (KST, NNH)
16 34 67 130 253 498 998 2037 4211 8749 18154 37491 76971 157065 318416 640655 1277578 2522408 4928725 9534976 18281777 GQN = (BRM, FQD)
-4 7 28 69 151 314 645 1333 2768 5722 11693 23596 47228 94470 190320 388188 802635 1678168 3530805 7432530 15567904 CLV = (VMQ, KFG)
18 36 71 135 251 451 770 1238 1875 2697 3744 5144 7230 10730 17053 28697 49808 86922 149925 253269 417485 TQR = (HPT, JVP)
17 27 39 53 69 87 107 129 153 179 207 237 269 303 339 377 417 459 503 549 597 JGH = (DPG, DBV)
12 30 62 105 166 290 607 1404 3228 7032 14409 28053 52790 97915 182299 345074 667188 1313670 2614596 5216937 10363390 BPX = (JJL, PGD)
-3 3 14 34 79 179 385 791 1581 3111 6036 11492 21343 38503 67343 114193 187949 300795 469050 714150 1063775 GSH = (NDR, NDR)
20 27 34 42 57 94 185 406 955 2332 5700 13574 31162 69089 149059 315518 658934 1360377 2773254 5567058 10970703 TRP = (BSP, CMB)
12 31 66 136 277 553 1084 2099 4022 7604 14135 25826 46566 83450 149722 269974 488312 879201 1557928 2681748 4422091 QSD = (VSL, XTT)
-6 -12 -15 -10 7 50 176 548 1548 3988 9514 21369 45783 94400 188345 364791 687222 1261020 2256551 3942608 6733911 DGL = (CNQ, JMT)
9 11 24 56 115 209 346 534 781 1095 1484 1956 2519 3181 3950 4834 5841 6979 8256 9680 11259 FFT = (GRM, KMF)
19 28 47 85 150 249 393 608 953 1545 2589 4408 7464 12356 19775 30389 44623 62290 82019 100415 110874 SHV = (NDR, HTZ)
-7 -3 23 96 256 573 1173 2275 4239 7625 13263 22334 36462 57817 89229 134313 197605 284709 402455 559068 764348 TPJ = (MFB, SHN)
5 17 36 77 173 376 752 1366 2253 3371 4532 5307 4901 1994 -5456 -20452 -47243 -91659 -161500 -266983 -421251 SHN = (TVQ, SMD)
-10 -1 35 108 224 390 635 1065 1983 4134 9187 20644 45469 96853 198665 392271 746516 1371737 2438683 4203132 7036782 BXJ = (CMR, STP)
25 38 65 120 217 370 593 900 1305 1822 2465 3248 4185 5290 6577 8060 9753 11670 13825 16232 18905 RKV = (PJR, QHR)
-9 0 31 93 201 391 757 1533 3259 7106 15519 33524 71431 150402 313665 648355 1326471 2678800 5323567 10382883 19835829 TRQ = (JVR, QPL)
26 43 77 141 253 444 771 1351 2445 4634 9142 18374 36750 71929 136530 250470 444052 761949 1268243 2052691 3238403 CKR = (GTM, QVV)
3 23 56 102 159 224 304 453 872 2156 5868 15800 40606 99088 230553 514885 1111321 2333185 4790980 9662890 19196825 QQC = (FMM, DNH)
5 7 11 11 11 41 177 569 1488 3426 7340 15251 31643 66547 142001 305012 652619 1378773 2859373 5802111 11503367 PPP = (MMS, BML)
22 36 51 78 145 311 707 1627 3695 8141 17236 34977 68211 128605 236311 426997 765336 1370358 2461653 4440740 8029569 XFP = (VXQ, XXT)
6 11 26 57 119 258 583 1305 2775 5516 10276 18226 31642 55815 103621 205270 427380 907857 1916302 3954039 7913625 KJL = (RBJ, BKT)
15 31 62 110 187 328 607 1156 2187 4017 7096 12038 19655 30994 47377 70444 102199 145059 201906 276142 371747 KVC = (JXC, BVG)
0 3 16 55 149 340 683 1246 2110 3369 5130 7513 10651 14690 19789 26120 33868 43231 54420 67659 83185 KNL = (MDL, TBB)
-1 -7 -20 -48 -97 -155 -157 87 1031 3644 9836 23143 49779 100190 191275 349472 614943 1047131 1732004 2791346 4394503 PJK = (GMM, QLH)
2 1 11 55 171 420 898 1747 3154 5329 8473 12793 18703 27498 43092 76090 152970 336313 768231 1760599 3975675 PST = (KBH, QHQ)
17 23 30 37 38 32 58 269 1059 3257 8402 19113 39568 76106 137966 238177 394613 631227 979478 1479965 2184282 HLB = (HPT, JVP)
-2 -5 -6 10 70 213 500 1061 2230 4863 11016 25301 57457 126982 271071 557577 1105218 2113727 3906986 6992264 12138316 RKG = (BCJ, PQV)
15 31 72 145 263 460 824 1562 3120 6398 13135 26613 52974 103703 200257 382480 723413 1354473 2506834 4577305 8230185 GSV = (BDF, CCK)
19 44 99 206 404 767 1426 2586 4530 7614 12296 19331 30440 50097 89734 176986 375280 824379 1822508 3988499 8572027 FBJ = (BSR, GJR)
17 21 33 79 200 453 925 1781 3379 6502 12778 25380 50112 96984 182346 331572 582141 986731 1615599 2557037 3914040 BMK = (HPR, MRT)
17 17 25 61 159 381 834 1684 3174 5694 10033 18079 34436 69710 146592 310348 645927 1304631 2544169 4786953 8702701 PVR = (BGK, JHM)
0 -5 -16 -27 -22 19 120 326 748 1647 3568 7535 15318 29783 55336 98472 168440 278035 444528 690745 1046306 PCX = (MRP, TRP)
-5 0 21 67 147 270 445 681 987 1372 1845 2415 3091 3882 4797 5845 7035 8376 9877 11547 13395 JQJ = (HKT, NLD)
6 12 28 65 133 250 460 861 1655 3260 6582 13659 29103 63147 137747 298222 634504 1318424 2666836 5245089 10031765 CMX = (VMN, FNQ)
6 18 41 81 140 211 283 381 694 1883 5722 16328 42405 101185 225113 472799 946338 1817748 3367939 6042215 10526702 LGQ = (QPC, XVK)
20 37 65 118 226 454 941 1966 4057 8184 16121 31129 59206 111276 206873 380241 690732 1242056 2221884 3989792 7277474 XTB = (JNH, NVP)
9 19 50 117 246 497 1001 2011 3967 7575 13900 24473 41412 67557 106619 163343 243685 355003 506262 708253 973826 DBB = (GRF, RXP)
2 4 2 0 21 119 402 1079 2547 5554 11537 23379 47108 95539 195615 402326 823680 1663384 3290796 6351474 11936431 DXR = (HSK, BHF)
7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 TKN = (LPJ, VLS)
9 2 1 28 118 328 760 1600 3179 6074 11287 20568 36984 65880 116430 204036 353901 606178 1023181 1699236 2773850 JMC = (JCT, SBD)
23 30 32 29 21 8 -10 -33 -61 -94 -132 -175 -223 -276 -334 -397 -465 -538 -616 -699 -787 XGR = (VGD, PVC)
7 18 34 64 130 265 512 930 1611 2712 4509 7487 12495 21028 35768 61654 108003 192634 349640 643518 1193940 NDR = (XTB, DXG)
25 41 63 97 150 223 302 347 276 -60 -896 -2467 -4479 -4246 8519 64329 241515 721811 1894997 4544673 10161184 TSX = (RRR, DBB)
4 15 39 94 222 501 1072 2196 4356 8419 15873 29154 52078 90393 152466 250120 399636 622935 948955 1415238 2069742 DNR = (SLL, FPC)
23 37 51 66 79 81 57 -11 -127 -225 -24 1310 5911 18795 51062 126073 290811 635857 1329097 2670530 5178487 QMX = (HSV, JQV)
6 6 13 40 103 217 395 652 1010 1507 2246 3601 6868 15981 41506 109097 276067 661833 1501004 3232495 6646054 VMS = (CFS, PJK)
-5 -10 -3 41 171 485 1169 2548 5143 9732 17438 29930 49949 82618 138512 240597 439619 847736 1710719 3559493 7520095 JNX = (RKV, BCK)
20 45 85 142 224 354 580 995 1791 3392 6744 13910 29276 62012 131130 275921 577546 1203739 2501051 5183334 10710516 LPJ = (HVL, SDC)
7 2 -8 -8 30 147 402 898 1853 3748 7598 15426 31110 62005 122301 240325 474579 948318 1921648 3936104 8093318 GHD = (GDT, NKL)
4 16 42 89 180 376 809 1728 3571 7103 13720 26137 49890 96451 189423 376603 753528 1510350 3027408 6073069 12213482 BMM = (XVL, SJB)
16 39 81 168 346 699 1394 2771 5514 10971 21737 42674 82616 157095 292526 532405 946204 1641791 2782361 4609036 7470478 DFR = (QCB, JRD)
0 8 24 66 178 456 1093 2460 5256 10786 21465 41707 79473 149013 275959 507333 931952 1722236 3218006 6088132 11628236 BQV = (XTF, FRM)
13 32 63 120 220 378 598 858 1098 1239 1289 1635 3690 11180 32545 85226 203063 448694 933791 1851278 3525444 TMB = (NTK, NPR)
21 36 68 130 243 444 794 1386 2353 3876 6192 9602 14479 21276 30534 42890 59085 79972 106524 139842 181163 KDC = (CQD, DDQ)
7 7 16 42 102 243 575 1314 2830 5692 10709 19002 32234 53313 88239 150435 270173 514121 1024546 2095878 4320626 LQX = (DXR, MQP)
4 20 45 88 171 329 615 1129 2109 4150 8654 18660 40258 84855 172634 337629 634930 1150632 2015251 3421448 5647029 SLV = (FKG, MQG)
15 33 53 88 175 390 873 1877 3862 7661 14752 27691 50842 91789 164433 296086 543337 1025693 1992739 3950666 7888377 NGP = (FVH, FVH)
21 41 85 175 345 637 1092 1743 2624 3816 5558 8458 13846 24318 44527 82284 150039 266819 460707 771953 1256815 NLS = (LFP, FQF)
-5 -4 -1 4 11 20 31 44 59 76 95 116 139 164 191 220 251 284 319 356 395 GSS = (NSB, VVR)
7 20 45 91 166 275 418 588 769 934 1043 1041 856 397 -448 -1814 -3861 -6776 -10775 -16105 -23046 JTT = (XFB, MQB)
16 29 53 90 144 217 312 463 835 1973 5324 14213 35544 82670 180222 372347 736982 1410761 2632275 4816136 8677196 MKN = (QHK, XGL)
15 36 81 165 317 603 1168 2310 4617 9241 18462 36823 73327 145569 287449 563757 1098426 2130571 4127378 8012790 15629588 TKV = (FTJ, BRB)
13 16 36 94 229 505 1026 1979 3736 7055 13432 25685 48934 92364 172697 321490 600845 1137023 2190924 4302259 8577205 KHH = (DBB, RRR)
15 33 62 100 137 145 70 -153 -527 -813 -180 3392 14047 39431 92632 194815 378699 693037 1208274 2023572 3275405 QKC = (JQL, SJJ)
9 17 26 43 87 194 424 880 1758 3457 6794 13396 26384 51528 99142 187109 345583 624113 1102178 1904417 3222189 BVV = (GVQ, LCP)
15 28 60 127 254 494 975 1984 4105 8449 17045 33490 63970 118770 214450 377138 648203 1095478 1837082 3092037 5284118 VTB = (XGR, LCL)
10 22 46 91 176 339 651 1243 2358 4441 8278 15190 27280 47720 81051 133452 212914 329232 493702 718381 1014736 TGR = (CGV, TKV)
6 15 24 33 42 51 60 69 78 87 96 105 114 123 132 141 150 159 168 177 186 QVM = (SGD, QXN)
-6 -11 -16 -21 -26 -31 -36 -41 -46 -51 -56 -61 -66 -71 -76 -81 -86 -91 -96 -101 -106 DVM = (QSD, XVD)
7 24 56 112 206 361 614 1035 1799 3399 7184 16588 39739 94671 219193 488711 1047141 2158900 4294817 8274127 15504252 XRT = (PHB, QMX)
7 28 60 109 202 412 903 2013 4400 9280 18800 36656 69277 128420 237158 443522 850421 1678603 3394366 6960828 14320024 NTK = (CVB, QGV)
15 27 40 54 69 85 102 120 139 159 180 202 225 249 274 300 327 355 384 414 445 MQB = (FCT, JCS)
14 24 40 73 153 333 702 1425 2852 5779 12001 25373 53704 111983 227731 449783 862713 1610849 2939409 5268068 9329214 GCR = (TSN, VHL)
10 7 4 1 -2 -5 -8 -11 -14 -17 -20 -23 -26 -29 -32 -35 -38 -41 -44 -47 -50 HDC = (GSH, GSH)
XBR = (DQG, CMF)
XDZ = (LHB, FLJ)
JNV = (TSB, FSJ)
TSB = (NDK, GVT)
RNM = (QDT, DDC)
NXL = (JGD, HNM)
JGD = (JXL, PCQ)
MRP = (CMB, BSP)
PFB = (RGM, VJQ)
GFQ = (FRL, KHJ)
VDC = (RCF, MCF)
XNV = (MDL, TBB)
TFS = (NNH, KST)
DNV = (XJG, BXP)
LBM = (JVS, CGX)
TBB = (RKF, BQM)
VSF = (BLL, HCN)
VJJ = (LPJ, VLS)
BSV = (HDF, NSX)
JHP = (LMP, PHK)
XJG = (VTL, SSG)
VPM = (KFG, VMQ)
MMS = (MPR, HJJ)
HTH = (GSS, SVJ)
HPG = (JQJ, TKR)
JCT = (DDB, CKX)
TVL = (FLJ, LHB)
FJK = (NLN, QHV)
DRD = (GGF, SLT)
XBB = (PVG, KSH)
JGX = (MNF, VFD)
SBD = (DDB, CKX)
NFB = (GSH, SHV)
HBM = (CQS, RLQ)
VSL = (VSR, JMN)
QBK = (RNT, NTX)
TMT = (BVH, SCN)
MQS = (FHL, QBP)
GVR = (MMK, QFN)
KPH = (RNG, JST)
NPG = (VRH, HGS)
CHR = (VPM, CLV)
JTJ = (VPM, CLV)
SGD = (LXP, KBL)
FXR = (BVH, SCN)
FKG = (GSV, GTK)
XFJ = (KQT, VMG)
HSV = (DCR, HJB)
QVK = (NBR, DRD)
MGM = (FRL, KHJ)
FRL = (PNB, DSL)
VCD = (VSX, DDR)
QCR = (DFJ, VQQ)
RSP = (GJR, BSR)
NFR = (KVS, CLH)
FQQ = (JNJ, RFG)
GLF = (MBG, RKX)
HPT = (RXG, NSP)
PLF = (PCX, FVV)
VDQ = (VSQ, LTB)
NGM = (LGB, VDS)
LNT = (VJS, GVP)
SJV = (HXX, VTN)
QNT = (KLF, QJL)
DHR = (XGD, KJC)
HJB = (TPB, BFK)
CHL = (NKL, GDT)
NSS = (VGJ, LCV)
LCL = (PVC, VGD)
KST = (LTV, NTV)
DDR = (RKG, VDM)
JXB = (NQC, DNJ)
LLZ = (RRK, GLG)
TKM = (DCT, CPK)
GXG = (VTB, CCF)
BJC = (TKN, VJJ)
GTN = (VJJ, TKN)
RBC = (QRX, XNN)
JVP = (NSP, RXG)
PMG = (QRX, XNN)
FXX = (VPV, RFH)
JXV = (QQM, KVV)
BTX = (MTL, HNB)
BVG = (VXM, NXL)
JVC = (LCV, VGJ)
LJV = (CHL, GHD)
PRK = (BLL, HCN)
MHC = (KVG, KMG)
MQG = (GTK, GSV)
RCD = (JGH, MNS)
FRR = (TDV, GGV)
HBH = (GBR, DSF)
HSK = (PLF, DPV)
DFQ = (RJT, MQF)
PHK = (HGJ, GNN)
RHK = (DHV, HFG)
SQG = (FCP, PDM)
VFS = (SPD, PFM)
TPD = (XSS, BMK)
PQV = (CJH, QBR)
GDL = (GCR, KTX)
JXC = (NXL, VXM)
MRV = (FNH, VQM)
TVM = (FCP, PDM)
HKL = (LSR, BRQ)
TQH = (FTG, TPN)
FTJ = (XBR, LNR)
KVG = (PJJ, FDQ)
LMP = (HGJ, GNN)
SVJ = (NSB, VVR)
XNN = (JKR, FFV)
VXS = (LJV, VHG)
FVH = (FML, RTR)
LMN = (XXH, XXH)
QJD = (PGJ, PGJ)
KMF = (CVF, TRC)
XVD = (XTT, VSL)
PMT = (GML, DPT)
DBV = (TPD, TST)
STB = (VHR, DHM)
HJJ = (PJV, HLV)
GJC = (GDS, FDL)
PGH = (PGJ, LLZ)
MBB = (JCX, NRH)
BVX = (JHP, VRP)
HPR = (GPM, BMM)
QXN = (KBL, LXP)
VRH = (NFR, BGS)
TKR = (HKT, NLD)
KHK = (DNV, MBP)
LCP = (MXM, HXP)
BJM = (XLV, XRG)
NNN = (BNH, FRP)
NTX = (STG, JCD)
FMM = (FFX, JCH)
VPC = (MTL, HNB)
FKC = (XDD, TTL)
XHB = (KHK, RCM)
HRB = (QVK, NBN)
FPC = (CPR, GQP)
STA = (BVF, CNF)
VPQ = (QPK, FNV)
RDD = (FKG, MQG)
AAA = (MCS, XCG)
VLS = (HVL, SDC)
JCX = (CJM, KHS)
GNN = (FQL, BSV)
XGD = (PQK, BXJ)
NDK = (CLT, MHC)
XLV = (HQS, KTL)
DGQ = (CKR, VBF)
VRP = (LMP, PHK)
GTK = (BDF, CCK)
BKP = (RSR, BNN)
CFS = (GMM, QLH)
SFG = (KMH, DKD)
TTL = (HKL, DGF)
CHB = (MFC, MFC)
HXP = (JBP, DGQ)
SPD = (GFK, SXN)
LLJ = (MBJ, MBB)
JRD = (QGT, XMV)
HQS = (LFH, TMF)
CVB = (CCL, PFB)
QBF = (PJK, CFS)
QJL = (HRD, CMX)
QFX = (PHB, QMX)
NSB = (QGG, HKQ)
HCV = (CHR, JTJ)
RMM = (BCK, RKV)
FRT = (CFL, SHK)
QPC = (BRJ, VFS)
RXG = (TKX, BJM)
STG = (PNF, GVR)
LTC = (JRD, QCB)
GVQ = (MXM, HXP)
KTL = (TMF, LFH)
DGF = (LSR, BRQ)
CLT = (KMG, KVG)
KBH = (JGX, BQS)
NBM = (KQT, VMG)
XMN = (HQM, NVS)
HCN = (TPJ, LJK)
TDS = (RJT, MQF)
LTB = (DGL, KQH)
VNQ = (NNT, LBM)
BLQ = (KJC, XGD)
GDS = (NXS, CTR)
FRM = (GVX, LBN)
GML = (QNT, MHM)
QNC = (SBD, JCT)
RQT = (TQB, GXG)
GGV = (XVV, BNB)
HFG = (JKB, JXB)
VJQ = (NPG, PPK)
GDT = (NSH, PMX)
VMF = (BRM, FQD)
HKQ = (QCX, FLV)
VVR = (HKQ, QGG)
JQL = (TQR, HLB)
BXP = (SSG, VTL)
KBS = (LJQ, NGM)
BNH = (DFR, LTC)
BSR = (QBF, VMS)
RFG = (GCH, FXF)
XGZ = (CNF, BVF)
VMG = (KKT, VKD)
JCH = (FJJ, MMF)
QHX = (CHB, MXF)
FXL = (GSS, SVJ)
CCL = (VJQ, RGM)
GMM = (RDD, SLV)
FFN = (VXS, DMF)
CFK = (FMM, DNH)
BKT = (JFV, MVQ)
HTJ = (HFQ, KJH)
BQM = (XMR, TFS)
LJK = (SHN, MFB)
CGX = (JPF, TMB)
PHB = (HSV, JQV)
FVS = (MCF, RCF)
LFG = (JST, RNG)
FLC = (XXH, PRN)
JFC = (GBR, DSF)
FRP = (LTC, DFR)
MTL = (FBJ, RSP)
GLG = (QCR, VFT)
MNF = (LCH, QBK)
NVP = (HBH, JFC)
CJS = (TNT, RNF)
QCX = (MBS, BVX)
KJC = (BXJ, PQK)
TMZ = (RTR, FML)
QGG = (FLV, QCX)
XSS = (HPR, MRT)
RNG = (PST, SRQ)
KKM = (PJC, KBT)
FQM = (SGD, QXN)
QDT = (PHQ, QHX)
DPT = (MHM, QNT)
KFG = (VBX, KDC)
NPN = (JXC, BVG)
RNT = (STG, JCD)
PNF = (QFN, MMK)
MPS = (FVH, TMZ)
LHB = (VVN, CKN)
FCP = (XBB, BFC)
CKX = (FXX, LQN)
XLX = (GCR, KTX)
QFN = (NSS, JVC)
FML = (BPX, KDV)
CPP = (QSG, NLS)
FQL = (HDF, NSX)
GVT = (CLT, MHC)
NDN = (MBJ, MBB)
GPA = (GLG, RRK)
PGB = (XFX, RHX)
RRC = (VQM, FNH)
MQP = (HSK, BHF)
GLT = (XFP, JMV)
GVN = (JTT, SPH)
CPK = (BBT, PXB)
KCX = (FSQ, MQS)
KQH = (JMT, CNQ)
JQV = (DCR, HJB)
CVF = (HRX, JCL)
TQG = (NGP, NGP)
GVP = (BJK, NMS)
NVS = (LFR, LDR)
NKL = (PMX, NSH)
SKF = (KJH, HFQ)
NSP = (BJM, TKX)
JHM = (VDB, VCD)
DPV = (PCX, FVV)
LLL = (KHK, RCM)
XVK = (VFS, BRJ)
JNH = (JFC, HBH)
HGS = (BGS, NFR)
VMQ = (VBX, KDC)
DSM = (MNS, JGH)
HXX = (SKF, HTJ)
LXP = (BJH, FJS)
TVQ = (CQV, FRR)
RJT = (JXR, SPJ)
RRR = (RXP, GRF)
TKX = (XLV, XRG)
MVP = (CMQ, GLF)
BGK = (VDB, VCD)
TQV = (MVT, TNC)
DDB = (LQN, FXX)
FQN = (HGT, ZZZ)
DQG = (VCK, NJF)
MRT = (GPM, BMM)
QGV = (CCL, PFB)
GRM = (CVF, TRC)
FLJ = (VVN, CKN)
BRM = (LLJ, NDN)
NQF = (FTX, TJR)
JKB = (NQC, DNJ)
CMQ = (RKX, MBG)
FLR = (XNV, KNL)
TPF = (RLQ, CQS)
JMT = (XRT, QFX)
MVS = (PDG, DHQ)
BRQ = (MNN, SRL)
QDG = (FTX, FTX)
NLN = (TGR, SLB)
PHQ = (CHB, CHB)
QRX = (JKR, FFV)
FJS = (LVV, DVM)
JDT = (DPT, GML)
HNB = (FBJ, RSP)
KPL = (JMC, QNC)
LFR = (MCR, BQV)
JPF = (NTK, NPR)
VHG = (GHD, CHL)
KQT = (KKT, VKD)
LKA = (XTB, DXG)
JXL = (GCM, RHK)
FQD = (LLJ, NDN)
CCF = (XGR, LCL)
FNV = (LQX, KMS)
MBS = (JHP, VRP)
RGM = (NPG, PPK)
CQS = (TTB, CJS)
DFJ = (KVL, RJG)
RQQ = (LGQ, HPV)
PBF = (STB, BXV)
NBT = (QHK, XGL)
PRN = (PVT, JPC)
CBF = (FKC, KKL)
PVC = (DFQ, TDS)
THC = (FTG, TPN)
LCV = (GJC, CKK)
SJB = (QJD, PGH)
HNS = (TMT, FXR)
TJR = (VVM, XGZ)
PQK = (STP, CMR)
MBG = (CCX, FJK)
KKL = (TTL, XDD)
PXB = (LLL, XHB)
RTR = (KDV, BPX)
PJC = (DTV, MVS)
DDQ = (TFD, GSR)
QCB = (QGT, XMV)
MBD = (NGM, LJQ)
VTD = (BGK, JHM)
CJH = (RNM, JRQ)
VHR = (CBF, XCQ)
QPK = (KMS, LQX)
BBJ = (FXR, TMT)
JCD = (GVR, PNF)
NBR = (SLT, GGF)
PNJ = (HRK, GKX)
VXM = (HNM, JGD)
JFV = (RQQ, TKD)
FHL = (JSL, DNR)
VQM = (NNN, LSM)
CKN = (SHF, XMN)
NMS = (SPG, QKC)
FNQ = (JHK, TFV)
SSG = (FKV, BPG)
XFB = (JCS, FCT)
RSR = (PBF, HCX)
KBL = (FJS, BJH)
HKT = (PVR, VTD)
CPR = (FSN, JRH)
BDF = (HGK, KKM)
KVP = (NGP, MPS)
LNV = (VJS, GVP)
SXN = (PMT, JDT)
HGT = (MCS, XCG)
TNC = (TBL, SJV)
KKT = (TQG, TQG)
KTX = (VHL, TSN)
XFX = (GXX, HRB)
VQQ = (RJG, KVL)
KHJ = (DSL, PNB)
GCH = (NRR, NKB)
VPV = (SSB, SFG)
KMS = (MQP, DXR)
QPL = (JJM, NDS)
FVV = (MRP, TRP)
MQV = (RSR, BNN)
XGF = (SQB, VPQ)
DDC = (PHQ, QHX)
PQH = (FSJ, TSB)
SGV = (VSQ, LTB)
SHF = (HQM, NVS)
CCX = (NLN, QHV)
SPG = (JQL, SJJ)
HGJ = (FQL, BSV)
MNN = (QVM, FQM)
PJJ = (GQK, HQR)
TDV = (BNB, XVV)
PNB = (BMD, GVK)
GQR = (MKN, NBT)
MPR = (HLV, PJV)
JSL = (FPC, SLL)
QHK = (RRC, MRV)
FSN = (CFK, QQC)
HFQ = (KPH, LFG)
BRJ = (PFM, SPD)
PJR = (HLD, MQN)
KVJ = (GVQ, LCP)
VCK = (BBF, DVJ)
LSR = (SRL, MNN)
HVL = (QDG, QDG)
KBT = (DTV, MVS)
GGF = (TXF, FFT)
DKD = (TVM, SQG)
DNJ = (LMN, FLC)
NNH = (NTV, LTV)
TRC = (JCL, HRX)
BML = (HJJ, MPR)
BJH = (LVV, DVM)
QHQ = (JGX, BQS)
PMX = (MDS, THH)
JJL = (KBS, MBD)
BFC = (PVG, KSH)
HKP = (BML, MMS)
FNT = (KVJ, BVV)
JKR = (KVC, NPN)
VBR = (BVV, KVJ)
BCJ = (QBR, CJH)
FPB = (CPK, DCT)
XMV = (FFN, KFQ)
CQD = (TFD, GSR)
DFA = (FML, RTR)
KMH = (TVM, SQG)
JMN = (RMM, JNX)
JDH = (MVT, TNC)
GPM = (XVL, XVL)
DHQ = (PPP, HKP)
XTF = (GVX, LBN)
RBJ = (JFV, MVQ)
XXH = (PVT, PVT)
RJP = (HNS, BBJ)
JRQ = (QDT, DDC)
KMG = (PJJ, FDQ)
MFK = (NMN, GVN)
KSH = (JJR, JHJ)
XTT = (VSR, JMN)
RHX = (HRB, GXX)
VSQ = (DGL, KQH)
GJR = (VMS, QBF)
VMN = (JHK, TFV)
HTS = (KNL, XNV)
LVV = (QSD, XVD)
BHF = (PLF, DPV)
QLH = (RDD, SLV)
VDS = (JNV, PQH)
RCF = (MQV, BKP)
LDR = (MCR, BQV)
VTN = (SKF, HTJ)
TPN = (MNK, GLT)
QVV = (CPP, JJT)
KLF = (HRD, CMX)
JHK = (FNT, VBR)
DSF = (PGB, CCS)
NMN = (SPH, JTT)
SNH = (GFQ, MGM)
CFL = (VVL, LLT)
MVQ = (TKD, RQQ)
KDV = (PGD, JJL)
KHS = (HCV, FDS)
GVK = (KPL, CRR)
NLD = (PVR, VTD)
BBF = (DTM, RJP)
SDC = (QDG, NQF)
SLL = (CPR, GQP)
FJJ = (VDQ, SGV)
MFB = (TVQ, SMD)
JNJ = (FXF, GCH)
VFJ = (QQM, KVV)
GVX = (RFM, KCX)
PCQ = (RHK, GCM)
CGV = (FTJ, BRB)
XDD = (HKL, DGF)
CLH = (VSF, PRK)
QBR = (JRQ, RNM)
BNN = (PBF, HCX)
DNH = (FFX, JCH)
BSP = (FQQ, PDQ)
TFV = (FNT, VBR)
GCM = (HFG, DHV)
CMB = (PDQ, FQQ)
FXF = (NRR, NKB)
VSR = (RMM, JNX)
NSX = (GQR, NVD)
GRF = (RBC, PMG)
JRH = (CFK, QQC)
FCT = (VDP, SNH)
FSQ = (QBP, FHL)
MBP = (XJG, BXP)
FSJ = (GVT, NDK)
NVD = (NBT, MKN)
NRR = (LTT, TRQ)
MCF = (MQV, BKP)
SQB = (QPK, FNV)
HPV = (QPC, XVK)
PFM = (SXN, GFK)
TTB = (TNT, RNF)
HRD = (FNQ, VMN)
PGJ = (GLG, RRK)
XCQ = (KKL, FKC)
CQV = (TDV, GGV)
CJM = (FDS, HCV)
LTT = (JVR, QPL)
BVH = (GTN, BJC)
STP = (LNV, LNT)
QGT = (FFN, KFQ)
VTL = (FKV, BPG)
MNK = (JMV, XFP)
VXQ = (NBM, XFJ)
KKA = (FLJ, LHB)
SRQ = (KBH, QHQ)
VSX = (VDM, RKG)
CQM = (CFL, SHK)
PNN = (JQJ, TKR)
KVV = (TQH, THC)
MXM = (JBP, DGQ)
TSN = (PCV, MFK)
XRG = (HQS, KTL)
PVT = (TVL, TVL)
LFP = (HDC, HDC)
CCK = (KKM, HGK)
SHK = (VVL, LLT)
RLQ = (TTB, CJS)
BPG = (FRT, CQM)
TSS = (RQT, BXT)
CCS = (RHX, XFX)
NQC = (LMN, FLC)
BXT = (GXG, TQB)
PJV = (TSS, GLV)
NSH = (MDS, THH)
NDS = (XHG, PNJ)
TFD = (DHR, BLQ)
PDQ = (JNJ, RFG)
VGD = (DFQ, TDS)
DCT = (PXB, BBT)
LCH = (NTX, RNT)
MFC = (HGT, HGT)
DTM = (HNS, BBJ)
FDS = (CHR, JTJ)
BLL = (LJK, TPJ)
GXX = (QVK, NBN)
JMV = (XXT, VXQ)
LSM = (BNH, FRP)
JHJ = (PNN, HPG)
RKX = (FJK, CCX)
RXP = (PMG, RBC)
RJG = (GQN, VMF)
HCX = (BXV, STB)
PDM = (BFC, XBB)
SJJ = (HLB, TQR)
BFK = (FLR, HTS)
VJS = (NMS, BJK)
CNF = (XXG, MRB)
VDM = (PQV, BCJ)
QHR = (HLD, MQN)
SJC = (BKT, RBJ)
RCM = (MBP, DNV)
QBP = (DNR, JSL)
MMF = (SGV, VDQ)
VGJ = (CKK, GJC)
VBX = (DDQ, CQD)
GQP = (JRH, FSN)
BCK = (PJR, QHR)
VFT = (DFJ, VQQ)
CTR = (TKM, FPB)
NPR = (QGV, CVB)
SPJ = (RCD, DSM)
NNT = (CGX, JVS)
MCR = (FRM, XTF)
TBL = (VTN, HXX)
GSR = (DHR, BLQ)
PPK = (VRH, HGS)
PVG = (JHJ, JJR)
TXF = (KMF, GRM)
TKD = (HPV, LGQ)
RNF = (VNQ, FNL)
THH = (JXV, VFJ)
GBR = (PGB, CCS)
LGB = (PQH, JNV)
DHM = (XCQ, CBF)
FKV = (CQM, FRT)
SMD = (CQV, FRR)
HNM = (JXL, PCQ)
JVR = (NDS, JJM)
KJH = (KPH, LFG)
XVL = (QJD, QJD)

View file

@ -1,43 +1,115 @@
use std::io::stdin; use std::{
cmp::{max, min},
collections::HashMap,
io::stdin,
};
use anyhow::Result; use anyhow::Result;
use regex::Regex;
// RL
//
// AAA = (BBB, CCC)
// BBB = (DDD, EEE)
// CCC = (ZZZ, GGG)
// DDD = (DDD, DDD)
// EEE = (EEE, EEE)
// GGG = (GGG, GGG)
// ZZZ = (ZZZ, ZZZ)
fn gcd(a: i64, b: i64) -> i64 {
let mut l = max(a, b);
let mut s = min(a, b);
loop {
let r = l % s;
l = s;
s = r;
if r == 0 {
break;
}
}
l
}
fn lcm(a: i64, b: i64) -> i64 {
a * b / gcd(a, b)
}
fn main() -> Result<()> { fn main() -> Result<()> {
let mut sum = 0; let nodes_re = Regex::new(r"([0-9A-Z]{3}) = \(([0-9A-Z]{3}), ([0-9A-Z]{3})\)")?;
let mut nodes_map = HashMap::new();
let mut first = true;
let mut instructions = "".to_string();
for line in stdin().lines().map_while(Result::ok) { for line in stdin().lines().map_while(Result::ok) {
let nums: Vec<i64> = line if first {
.split_whitespace() instructions = line.clone();
.map(str::parse) first = false;
.map_while(Result::ok)
.collect();
let mut sequences: Vec<Vec<i64>> = vec![nums];
loop {
let v = &sequences.last().unwrap();
let mut diffs = vec![];
let mut all_zeros = true;
for i in 0..(v.len() - 1) {
let diff = v[i + 1] - v[i];
if diff != 0 {
all_zeros = false;
}
diffs.push(diff);
}
sequences.push(diffs);
if all_zeros {
break;
}
} }
let mut prediction = 0; for m in nodes_re.captures_iter(&line) {
for seq in sequences.iter().rev() { nodes_map.insert(
prediction = seq.first().unwrap() - prediction; m.get(1).unwrap().as_str().to_string(),
(
m.get(2).unwrap().as_str().to_string(),
m.get(3).unwrap().as_str().to_string(),
),
);
} }
println!("{prediction}");
sum += prediction;
} }
println!("{sum}");
let mut cursors: Vec<String> = nodes_map
.keys()
.filter(|n| n.ends_with('A'))
.cloned()
.collect();
println!("starting cursors: {:?}", cursors);
// by inspecting the input, we know that the distance from A - Z is
// equal to the size of the Z - Z loops for all ghosts
// so we just need to save those and do LCM for all
//
// honestly, I'm a bit disappointed because of this
let mut loop_lengths = vec![];
for cursor in cursors.iter_mut() {
let mut steps = 0;
// let mut zeds = HashSet::new();
println!("cursor {cursor:?}:");
'outer: loop {
for instruction in instructions.chars() {
match instruction {
'L' => *cursor = nodes_map.get(cursor).unwrap().0.clone(),
'R' => *cursor = nodes_map.get(cursor).unwrap().1.clone(),
_ => {}
}
// println!("after going {} cursors are {:?}", instructions, cursors);
steps += 1;
// if cursors.iter().all(|c| c.ends_with('Z')) {
if cursor.ends_with('Z') {
loop_lengths.push(steps);
break 'outer;
// if zeds.contains(cursor) {
// println!(" looped on {cursor} at {steps} steps");
// break 'outer;
// }
//
// println!(" found {cursor} at {steps} steps");
// zeds.insert(cursor.clone());
}
}
}
}
let result = loop_lengths.into_iter().fold(1i64, lcm);
println!("{result}");
Ok(()) Ok(())
} }
#[cfg(test)] #[cfg(test)]
mod tests {} mod tests {
#[test]
fn test_hand_types() {}
#[test]
fn name() {
unimplemented!();
}
}