day8
This commit is contained in:
		
							parent
							
								
									a55e26c4f9
								
							
						
					
					
						commit
						461169bfab
					
				
					 6 changed files with 914 additions and 1 deletions
				
			
		
							
								
								
									
										77
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										77
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| 
						 | 
					@ -7,6 +7,7 @@ name = "advent-of-code-2023"
 | 
				
			||||||
version = "0.1.0"
 | 
					version = "0.1.0"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "automod",
 | 
					 "automod",
 | 
				
			||||||
 | 
					 "num",
 | 
				
			||||||
 "rayon",
 | 
					 "rayon",
 | 
				
			||||||
 "regex",
 | 
					 "regex",
 | 
				
			||||||
 "scan_fmt",
 | 
					 "scan_fmt",
 | 
				
			||||||
| 
						 | 
					@ -105,6 +106,82 @@ dependencies = [
 | 
				
			||||||
 "autocfg",
 | 
					 "autocfg",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "num"
 | 
				
			||||||
 | 
					version = "0.4.1"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "num-bigint",
 | 
				
			||||||
 | 
					 "num-complex",
 | 
				
			||||||
 | 
					 "num-integer",
 | 
				
			||||||
 | 
					 "num-iter",
 | 
				
			||||||
 | 
					 "num-rational",
 | 
				
			||||||
 | 
					 "num-traits",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "num-bigint"
 | 
				
			||||||
 | 
					version = "0.4.4"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "autocfg",
 | 
				
			||||||
 | 
					 "num-integer",
 | 
				
			||||||
 | 
					 "num-traits",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "num-complex"
 | 
				
			||||||
 | 
					version = "0.4.4"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "num-traits",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "num-integer"
 | 
				
			||||||
 | 
					version = "0.1.45"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "autocfg",
 | 
				
			||||||
 | 
					 "num-traits",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "num-iter"
 | 
				
			||||||
 | 
					version = "0.1.43"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "autocfg",
 | 
				
			||||||
 | 
					 "num-integer",
 | 
				
			||||||
 | 
					 "num-traits",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "num-rational"
 | 
				
			||||||
 | 
					version = "0.4.1"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "autocfg",
 | 
				
			||||||
 | 
					 "num-bigint",
 | 
				
			||||||
 | 
					 "num-integer",
 | 
				
			||||||
 | 
					 "num-traits",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "num-traits"
 | 
				
			||||||
 | 
					version = "0.2.17"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "autocfg",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "proc-macro2"
 | 
					name = "proc-macro2"
 | 
				
			||||||
version = "1.0.70"
 | 
					version = "1.0.70"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@ edition = "2021"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
automod = "1.0.13"
 | 
					automod = "1.0.13"
 | 
				
			||||||
 | 
					num = "0.4.1"
 | 
				
			||||||
rayon = "1.8.0"
 | 
					rayon = "1.8.0"
 | 
				
			||||||
regex = "1.10.2"
 | 
					regex = "1.10.2"
 | 
				
			||||||
scan_fmt = "0.2.6"
 | 
					scan_fmt = "0.2.6"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								res/08/example
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								res/08/example
									
									
									
									
									
										Normal 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)
 | 
				
			||||||
							
								
								
									
										756
									
								
								res/08/input
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										756
									
								
								res/08/input
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,756 @@
 | 
				
			||||||
 | 
					LRRLRRLRRRLRLLRRRLLRRRLRLRRRLRLRRLRRRLRRRLRLRRRLRRRLRRLRRRLLLRLRRRLRRRLRRRLRLRLRRLLRRRLRLLRLRRRLRRLLRLRLRRLRRRLRRLLRLRRRLLRRLRRRLRLRRLLRRRLRRLLRRLRRRLRLRRRLRRLRRRLRRRLRRLRRRLRLRRLRRRLRRRLRRLLRLRRLRRLRRRLRLLLRRRLLRRRLRLRRRLRLRRLRRRLLLRLRRRLRLRRLRRRLRRRLRRLRLRLRRRR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PBN = (JRP, RVT)
 | 
				
			||||||
 | 
					XRS = (CRH, SXK)
 | 
				
			||||||
 | 
					MLN = (STJ, MGB)
 | 
				
			||||||
 | 
					XGX = (XGM, GKP)
 | 
				
			||||||
 | 
					VDC = (DBF, FVR)
 | 
				
			||||||
 | 
					NBC = (QQJ, XKG)
 | 
				
			||||||
 | 
					KRC = (QVQ, RJL)
 | 
				
			||||||
 | 
					LCX = (CSN, DBP)
 | 
				
			||||||
 | 
					MSX = (LVF, PPD)
 | 
				
			||||||
 | 
					MMF = (GBX, LCX)
 | 
				
			||||||
 | 
					BXQ = (MPS, GLM)
 | 
				
			||||||
 | 
					GTL = (VSF, DVZ)
 | 
				
			||||||
 | 
					SVR = (FKK, FJN)
 | 
				
			||||||
 | 
					HJJ = (XPS, HVS)
 | 
				
			||||||
 | 
					MHL = (HTN, HTG)
 | 
				
			||||||
 | 
					LGQ = (NJT, NML)
 | 
				
			||||||
 | 
					KFR = (TXK, DHG)
 | 
				
			||||||
 | 
					MXQ = (DGJ, MKP)
 | 
				
			||||||
 | 
					XST = (MGP, QSK)
 | 
				
			||||||
 | 
					BNJ = (NBC, DFB)
 | 
				
			||||||
 | 
					JLK = (RJS, XDM)
 | 
				
			||||||
 | 
					BKS = (SLF, PLK)
 | 
				
			||||||
 | 
					LCV = (RVB, CJV)
 | 
				
			||||||
 | 
					GJL = (FRB, QNK)
 | 
				
			||||||
 | 
					FPD = (SFN, MLS)
 | 
				
			||||||
 | 
					HMJ = (MXK, CRR)
 | 
				
			||||||
 | 
					SQF = (MCC, QXB)
 | 
				
			||||||
 | 
					CGC = (SCS, FFB)
 | 
				
			||||||
 | 
					CTP = (RJQ, BSV)
 | 
				
			||||||
 | 
					QCF = (JCB, TKP)
 | 
				
			||||||
 | 
					LBJ = (XKV, DQM)
 | 
				
			||||||
 | 
					RMC = (LLD, TTP)
 | 
				
			||||||
 | 
					LHK = (CDB, TSV)
 | 
				
			||||||
 | 
					HPC = (QLX, QPQ)
 | 
				
			||||||
 | 
					VXC = (PLF, SSV)
 | 
				
			||||||
 | 
					RDT = (GJL, TTN)
 | 
				
			||||||
 | 
					SDB = (MVL, FRF)
 | 
				
			||||||
 | 
					HRT = (DVS, BHX)
 | 
				
			||||||
 | 
					MHR = (VXR, VQN)
 | 
				
			||||||
 | 
					RPT = (BLP, DDP)
 | 
				
			||||||
 | 
					JFF = (DCJ, XST)
 | 
				
			||||||
 | 
					NDL = (NJQ, BNC)
 | 
				
			||||||
 | 
					FXL = (MSC, JSR)
 | 
				
			||||||
 | 
					DVZ = (JVJ, KLP)
 | 
				
			||||||
 | 
					XGD = (RFH, DTL)
 | 
				
			||||||
 | 
					MPR = (QNN, CKH)
 | 
				
			||||||
 | 
					SBB = (VTK, TSS)
 | 
				
			||||||
 | 
					DRJ = (GHM, NFK)
 | 
				
			||||||
 | 
					LXL = (SSJ, CQR)
 | 
				
			||||||
 | 
					BTN = (MXN, HLF)
 | 
				
			||||||
 | 
					SMX = (VFT, NKJ)
 | 
				
			||||||
 | 
					RJQ = (STS, GLR)
 | 
				
			||||||
 | 
					QLV = (PNP, TDK)
 | 
				
			||||||
 | 
					QMJ = (MKP, DGJ)
 | 
				
			||||||
 | 
					XDM = (SFB, JLN)
 | 
				
			||||||
 | 
					LFX = (CDM, LMX)
 | 
				
			||||||
 | 
					QTX = (RVB, CJV)
 | 
				
			||||||
 | 
					CPX = (TTH, CBK)
 | 
				
			||||||
 | 
					TFF = (CLG, LGN)
 | 
				
			||||||
 | 
					JDC = (BHH, HFJ)
 | 
				
			||||||
 | 
					TXV = (JVF, FXS)
 | 
				
			||||||
 | 
					LBP = (PRS, PRS)
 | 
				
			||||||
 | 
					LND = (QLV, TLK)
 | 
				
			||||||
 | 
					RXR = (BVT, QKX)
 | 
				
			||||||
 | 
					RSR = (GFN, GVL)
 | 
				
			||||||
 | 
					FLG = (RMC, LTD)
 | 
				
			||||||
 | 
					TPB = (PJP, QCL)
 | 
				
			||||||
 | 
					KQH = (LRG, MRL)
 | 
				
			||||||
 | 
					VVN = (KPP, HJH)
 | 
				
			||||||
 | 
					NTR = (RPQ, GFG)
 | 
				
			||||||
 | 
					QDK = (JFC, XGN)
 | 
				
			||||||
 | 
					VBA = (KLP, JVJ)
 | 
				
			||||||
 | 
					XSP = (KVF, VJV)
 | 
				
			||||||
 | 
					HVB = (CQR, SSJ)
 | 
				
			||||||
 | 
					XBN = (GBD, TCS)
 | 
				
			||||||
 | 
					RFH = (FGN, NSP)
 | 
				
			||||||
 | 
					HTN = (NBH, SMP)
 | 
				
			||||||
 | 
					PSD = (FLS, KCJ)
 | 
				
			||||||
 | 
					MGB = (SDF, MHR)
 | 
				
			||||||
 | 
					NXT = (HKQ, MLD)
 | 
				
			||||||
 | 
					MHC = (JSR, MSC)
 | 
				
			||||||
 | 
					KPP = (HHV, FNC)
 | 
				
			||||||
 | 
					TSS = (RBD, LGQ)
 | 
				
			||||||
 | 
					BMS = (NLL, NFJ)
 | 
				
			||||||
 | 
					BKV = (NLK, BBH)
 | 
				
			||||||
 | 
					SDF = (VXR, VQN)
 | 
				
			||||||
 | 
					GLR = (LFX, XXL)
 | 
				
			||||||
 | 
					NBN = (SXB, DLD)
 | 
				
			||||||
 | 
					CVV = (KGX, DTQ)
 | 
				
			||||||
 | 
					VKG = (VNG, PTR)
 | 
				
			||||||
 | 
					FJR = (KNQ, XGX)
 | 
				
			||||||
 | 
					RJN = (PGR, QCV)
 | 
				
			||||||
 | 
					CNJ = (LSV, BVN)
 | 
				
			||||||
 | 
					DTC = (RXR, MHX)
 | 
				
			||||||
 | 
					FVB = (BSM, BGR)
 | 
				
			||||||
 | 
					SFG = (KSP, GXM)
 | 
				
			||||||
 | 
					PLN = (PDV, XJD)
 | 
				
			||||||
 | 
					THL = (KRC, HXH)
 | 
				
			||||||
 | 
					PNP = (JQQ, SMV)
 | 
				
			||||||
 | 
					STS = (LFX, XXL)
 | 
				
			||||||
 | 
					NNC = (MPG, RVG)
 | 
				
			||||||
 | 
					NJT = (JGJ, CGH)
 | 
				
			||||||
 | 
					SCS = (NSR, DXX)
 | 
				
			||||||
 | 
					GSF = (LHP, FTK)
 | 
				
			||||||
 | 
					GBD = (DSN, HRT)
 | 
				
			||||||
 | 
					JVF = (HPT, QHF)
 | 
				
			||||||
 | 
					PSV = (NJC, CPH)
 | 
				
			||||||
 | 
					JLP = (FGD, BFF)
 | 
				
			||||||
 | 
					CRR = (PRB, HCH)
 | 
				
			||||||
 | 
					FVJ = (VBP, BBQ)
 | 
				
			||||||
 | 
					MVL = (CGS, BFN)
 | 
				
			||||||
 | 
					JXK = (SFN, MLS)
 | 
				
			||||||
 | 
					SSV = (DJB, TRK)
 | 
				
			||||||
 | 
					LXQ = (LSB, SPC)
 | 
				
			||||||
 | 
					LHS = (SSV, PLF)
 | 
				
			||||||
 | 
					DDK = (QXR, QCF)
 | 
				
			||||||
 | 
					XKG = (BTS, KFL)
 | 
				
			||||||
 | 
					TSM = (QCV, PGR)
 | 
				
			||||||
 | 
					CPT = (TMH, DFQ)
 | 
				
			||||||
 | 
					DGJ = (MMD, PJN)
 | 
				
			||||||
 | 
					MQP = (CFG, LRB)
 | 
				
			||||||
 | 
					RQM = (JTK, PLN)
 | 
				
			||||||
 | 
					PLK = (KQF, HSZ)
 | 
				
			||||||
 | 
					HVC = (NLK, BBH)
 | 
				
			||||||
 | 
					LSB = (NDT, TPG)
 | 
				
			||||||
 | 
					RMN = (SKJ, PBH)
 | 
				
			||||||
 | 
					QXL = (JNC, XMH)
 | 
				
			||||||
 | 
					TDD = (BSX, GBR)
 | 
				
			||||||
 | 
					BGP = (LBP, LBP)
 | 
				
			||||||
 | 
					TVA = (FBB, VBN)
 | 
				
			||||||
 | 
					VSB = (VNG, PTR)
 | 
				
			||||||
 | 
					XLH = (HMX, FJX)
 | 
				
			||||||
 | 
					NVQ = (RPQ, RPQ)
 | 
				
			||||||
 | 
					FMN = (BSV, RJQ)
 | 
				
			||||||
 | 
					XMC = (QCD, RJK)
 | 
				
			||||||
 | 
					HPT = (HGL, GNS)
 | 
				
			||||||
 | 
					CMS = (KVT, FQR)
 | 
				
			||||||
 | 
					QHF = (HGL, GNS)
 | 
				
			||||||
 | 
					QNT = (BPT, FLG)
 | 
				
			||||||
 | 
					KVD = (SLL, GGK)
 | 
				
			||||||
 | 
					DMK = (HKT, CGD)
 | 
				
			||||||
 | 
					CRM = (BTR, GHV)
 | 
				
			||||||
 | 
					TPJ = (GCT, DQD)
 | 
				
			||||||
 | 
					KFL = (RDG, VDC)
 | 
				
			||||||
 | 
					QCR = (DNK, THD)
 | 
				
			||||||
 | 
					CLV = (MTS, PBN)
 | 
				
			||||||
 | 
					ZZZ = (DPM, TCG)
 | 
				
			||||||
 | 
					QHN = (TNC, KVD)
 | 
				
			||||||
 | 
					NRP = (SQL, PMR)
 | 
				
			||||||
 | 
					JNH = (TKD, LQF)
 | 
				
			||||||
 | 
					VPR = (PKX, CTD)
 | 
				
			||||||
 | 
					LVD = (MQC, QKJ)
 | 
				
			||||||
 | 
					XRM = (BRM, MPR)
 | 
				
			||||||
 | 
					FFB = (NSR, DXX)
 | 
				
			||||||
 | 
					MGR = (MNB, TSP)
 | 
				
			||||||
 | 
					FMK = (THR, VGR)
 | 
				
			||||||
 | 
					KVT = (GSN, RXF)
 | 
				
			||||||
 | 
					VMS = (LPM, VJP)
 | 
				
			||||||
 | 
					DVA = (MHC, FXL)
 | 
				
			||||||
 | 
					MXS = (RJS, XDM)
 | 
				
			||||||
 | 
					KXV = (KPF, NKX)
 | 
				
			||||||
 | 
					BBH = (XSP, GMD)
 | 
				
			||||||
 | 
					PKX = (XHC, CPV)
 | 
				
			||||||
 | 
					NSL = (SMX, DNM)
 | 
				
			||||||
 | 
					DXV = (LPM, VJP)
 | 
				
			||||||
 | 
					CCC = (LCX, GBX)
 | 
				
			||||||
 | 
					JVS = (HJJ, FLF)
 | 
				
			||||||
 | 
					HPM = (QSF, CPT)
 | 
				
			||||||
 | 
					FVS = (XXR, CGF)
 | 
				
			||||||
 | 
					PPB = (XGX, KNQ)
 | 
				
			||||||
 | 
					XPF = (SMX, DNM)
 | 
				
			||||||
 | 
					HLF = (NQJ, CVV)
 | 
				
			||||||
 | 
					TJS = (LXQ, VFB)
 | 
				
			||||||
 | 
					FJK = (FGD, BFF)
 | 
				
			||||||
 | 
					QGQ = (FVJ, BDV)
 | 
				
			||||||
 | 
					GRR = (JKM, JLH)
 | 
				
			||||||
 | 
					GHV = (XGD, QBH)
 | 
				
			||||||
 | 
					RVT = (PVB, PCS)
 | 
				
			||||||
 | 
					TBL = (VGK, KTT)
 | 
				
			||||||
 | 
					SNR = (GCT, DQD)
 | 
				
			||||||
 | 
					XSK = (BLL, MNF)
 | 
				
			||||||
 | 
					VDS = (CCC, MMF)
 | 
				
			||||||
 | 
					RVG = (XSK, XSJ)
 | 
				
			||||||
 | 
					TKP = (MLN, KRX)
 | 
				
			||||||
 | 
					SRP = (QLV, TLK)
 | 
				
			||||||
 | 
					FXQ = (LVD, RHD)
 | 
				
			||||||
 | 
					LVC = (LCT, LKS)
 | 
				
			||||||
 | 
					HNC = (MQP, KTG)
 | 
				
			||||||
 | 
					DFP = (NMX, JFX)
 | 
				
			||||||
 | 
					JVT = (SNX, KQK)
 | 
				
			||||||
 | 
					JSR = (KXN, LXS)
 | 
				
			||||||
 | 
					HCV = (MFD, KJX)
 | 
				
			||||||
 | 
					RBJ = (JKT, HLZ)
 | 
				
			||||||
 | 
					HFC = (JFX, NMX)
 | 
				
			||||||
 | 
					XQG = (PGD, XFT)
 | 
				
			||||||
 | 
					FRB = (HCP, LVJ)
 | 
				
			||||||
 | 
					LQF = (QCR, XTL)
 | 
				
			||||||
 | 
					VGR = (RMN, LNQ)
 | 
				
			||||||
 | 
					MMN = (HDR, JTL)
 | 
				
			||||||
 | 
					PJN = (VNM, KHQ)
 | 
				
			||||||
 | 
					TRK = (NSL, XPF)
 | 
				
			||||||
 | 
					TVG = (CJH, THL)
 | 
				
			||||||
 | 
					DMH = (GPM, MSX)
 | 
				
			||||||
 | 
					VTK = (RBD, LGQ)
 | 
				
			||||||
 | 
					TMH = (BSQ, CMT)
 | 
				
			||||||
 | 
					JPN = (LTH, LST)
 | 
				
			||||||
 | 
					SFB = (NKN, RFM)
 | 
				
			||||||
 | 
					CGD = (VBH, ZZZ)
 | 
				
			||||||
 | 
					VNM = (LMT, VRQ)
 | 
				
			||||||
 | 
					NNT = (HHX, NTF)
 | 
				
			||||||
 | 
					VFQ = (HMJ, VFV)
 | 
				
			||||||
 | 
					SQL = (BCQ, NBN)
 | 
				
			||||||
 | 
					QKJ = (GHN, HCK)
 | 
				
			||||||
 | 
					MMR = (KMF, HPM)
 | 
				
			||||||
 | 
					PFS = (HVL, CTG)
 | 
				
			||||||
 | 
					FVD = (LBJ, DVM)
 | 
				
			||||||
 | 
					SLF = (KQF, KQF)
 | 
				
			||||||
 | 
					BBQ = (RSV, LHK)
 | 
				
			||||||
 | 
					TCG = (NGG, LLS)
 | 
				
			||||||
 | 
					BLR = (PTL, MSR)
 | 
				
			||||||
 | 
					CVH = (MVL, FRF)
 | 
				
			||||||
 | 
					GHN = (CKF, HTV)
 | 
				
			||||||
 | 
					XQC = (QXR, QCF)
 | 
				
			||||||
 | 
					GCT = (BGP, BGP)
 | 
				
			||||||
 | 
					XMJ = (BVN, LSV)
 | 
				
			||||||
 | 
					LBH = (VQX, SBC)
 | 
				
			||||||
 | 
					BNC = (LNH, CRM)
 | 
				
			||||||
 | 
					THP = (KBC, MHH)
 | 
				
			||||||
 | 
					VRQ = (VVN, THX)
 | 
				
			||||||
 | 
					BFN = (SGD, QXL)
 | 
				
			||||||
 | 
					TFH = (TDD, HGV)
 | 
				
			||||||
 | 
					MLS = (PRJ, JPQ)
 | 
				
			||||||
 | 
					XDQ = (BXQ, RQR)
 | 
				
			||||||
 | 
					DJS = (MTS, PBN)
 | 
				
			||||||
 | 
					SSK = (HKQ, MLD)
 | 
				
			||||||
 | 
					VBH = (TCG, DPM)
 | 
				
			||||||
 | 
					NNJ = (JHS, KFR)
 | 
				
			||||||
 | 
					JRP = (PCS, PVB)
 | 
				
			||||||
 | 
					FDK = (SRP, LND)
 | 
				
			||||||
 | 
					FCL = (HPC, NGH)
 | 
				
			||||||
 | 
					BGR = (MFV, CXJ)
 | 
				
			||||||
 | 
					HDR = (FXQ, KSN)
 | 
				
			||||||
 | 
					PPD = (PKL, KTR)
 | 
				
			||||||
 | 
					BLP = (DKJ, DKJ)
 | 
				
			||||||
 | 
					BCX = (PTL, MSR)
 | 
				
			||||||
 | 
					FLF = (HVS, XPS)
 | 
				
			||||||
 | 
					JPQ = (DMH, RTN)
 | 
				
			||||||
 | 
					GNS = (SLT, HHM)
 | 
				
			||||||
 | 
					GVH = (PRS, XKZ)
 | 
				
			||||||
 | 
					PDV = (VDK, VDK)
 | 
				
			||||||
 | 
					PQF = (BQN, CHK)
 | 
				
			||||||
 | 
					SCX = (NLL, NFJ)
 | 
				
			||||||
 | 
					JNC = (VNN, FVD)
 | 
				
			||||||
 | 
					THR = (LNQ, RMN)
 | 
				
			||||||
 | 
					VBP = (RSV, LHK)
 | 
				
			||||||
 | 
					MTS = (JRP, RVT)
 | 
				
			||||||
 | 
					NKG = (RPG, TFH)
 | 
				
			||||||
 | 
					LXK = (JXM, GSF)
 | 
				
			||||||
 | 
					TXK = (RJC, QNT)
 | 
				
			||||||
 | 
					SMV = (FTJ, GPD)
 | 
				
			||||||
 | 
					DCP = (FFB, SCS)
 | 
				
			||||||
 | 
					CJK = (FJR, PPB)
 | 
				
			||||||
 | 
					LGN = (NLF, MTJ)
 | 
				
			||||||
 | 
					CKF = (SMF, BSH)
 | 
				
			||||||
 | 
					TRP = (TNC, KVD)
 | 
				
			||||||
 | 
					TPG = (DJM, XMK)
 | 
				
			||||||
 | 
					VJC = (JSX, NBT)
 | 
				
			||||||
 | 
					LFK = (RXR, MHX)
 | 
				
			||||||
 | 
					SBX = (FJN, FKK)
 | 
				
			||||||
 | 
					FBB = (BMS, SCX)
 | 
				
			||||||
 | 
					BHX = (SDN, HTF)
 | 
				
			||||||
 | 
					CSN = (NHV, QVH)
 | 
				
			||||||
 | 
					QQJ = (BTS, KFL)
 | 
				
			||||||
 | 
					HFJ = (MMR, KCR)
 | 
				
			||||||
 | 
					SVS = (GFN, GVL)
 | 
				
			||||||
 | 
					FJL = (CJJ, GQF)
 | 
				
			||||||
 | 
					DHG = (QNT, RJC)
 | 
				
			||||||
 | 
					PCS = (VFG, SQF)
 | 
				
			||||||
 | 
					RVB = (SBB, TND)
 | 
				
			||||||
 | 
					PVB = (SQF, VFG)
 | 
				
			||||||
 | 
					LPJ = (LRK, LXK)
 | 
				
			||||||
 | 
					GVL = (NGL, GNV)
 | 
				
			||||||
 | 
					CTJ = (QCD, RJK)
 | 
				
			||||||
 | 
					PQB = (HMD, TQB)
 | 
				
			||||||
 | 
					MCC = (SFV, DVV)
 | 
				
			||||||
 | 
					QXX = (VBC, QGQ)
 | 
				
			||||||
 | 
					RNM = (XXQ, LLT)
 | 
				
			||||||
 | 
					HXB = (TRP, QHN)
 | 
				
			||||||
 | 
					JFC = (TFF, DFC)
 | 
				
			||||||
 | 
					SQQ = (JQL, HNC)
 | 
				
			||||||
 | 
					KHQ = (LMT, VRQ)
 | 
				
			||||||
 | 
					XCC = (FMK, DGK)
 | 
				
			||||||
 | 
					JTL = (FXQ, KSN)
 | 
				
			||||||
 | 
					NLF = (MLK, PLD)
 | 
				
			||||||
 | 
					FVR = (GVK, CMS)
 | 
				
			||||||
 | 
					SMF = (SNR, TPJ)
 | 
				
			||||||
 | 
					NJL = (TRP, QHN)
 | 
				
			||||||
 | 
					CSR = (DVP, KHX)
 | 
				
			||||||
 | 
					QNJ = (THL, CJH)
 | 
				
			||||||
 | 
					SBT = (XST, DCJ)
 | 
				
			||||||
 | 
					RLX = (DGK, FMK)
 | 
				
			||||||
 | 
					THX = (KPP, HJH)
 | 
				
			||||||
 | 
					KTG = (CFG, LRB)
 | 
				
			||||||
 | 
					PVC = (RQR, BXQ)
 | 
				
			||||||
 | 
					DLD = (GSM, DTT)
 | 
				
			||||||
 | 
					BFF = (JBH, JVT)
 | 
				
			||||||
 | 
					QKX = (FQJ, SFJ)
 | 
				
			||||||
 | 
					DQD = (BGP, XHS)
 | 
				
			||||||
 | 
					VFB = (LSB, SPC)
 | 
				
			||||||
 | 
					MSR = (VBK, JTQ)
 | 
				
			||||||
 | 
					CKB = (HHX, NTF)
 | 
				
			||||||
 | 
					FLS = (QNM, PQB)
 | 
				
			||||||
 | 
					QSF = (TMH, DFQ)
 | 
				
			||||||
 | 
					FTK = (FDK, FLQ)
 | 
				
			||||||
 | 
					FJX = (JVC, GXS)
 | 
				
			||||||
 | 
					BDF = (MPR, BRM)
 | 
				
			||||||
 | 
					MXK = (PRB, HCH)
 | 
				
			||||||
 | 
					SDQ = (FJX, HMX)
 | 
				
			||||||
 | 
					JCC = (TSP, MNB)
 | 
				
			||||||
 | 
					GKP = (JLK, MXS)
 | 
				
			||||||
 | 
					MRL = (FVS, NLQ)
 | 
				
			||||||
 | 
					DPM = (LLS, NGG)
 | 
				
			||||||
 | 
					GFL = (DDJ, NKG)
 | 
				
			||||||
 | 
					FBG = (RDT, MVG)
 | 
				
			||||||
 | 
					KJX = (VCJ, GHB)
 | 
				
			||||||
 | 
					GFC = (LLT, XXQ)
 | 
				
			||||||
 | 
					LVJ = (DJS, CLV)
 | 
				
			||||||
 | 
					KNQ = (XGM, GKP)
 | 
				
			||||||
 | 
					NJN = (FLS, KCJ)
 | 
				
			||||||
 | 
					DSS = (KPF, NKX)
 | 
				
			||||||
 | 
					JVC = (FHD, BMQ)
 | 
				
			||||||
 | 
					TVP = (TBL, MVX)
 | 
				
			||||||
 | 
					BQN = (SHT, TPS)
 | 
				
			||||||
 | 
					DFQ = (CMT, BSQ)
 | 
				
			||||||
 | 
					GXS = (FHD, BMQ)
 | 
				
			||||||
 | 
					LRK = (JXM, GSF)
 | 
				
			||||||
 | 
					KGX = (NDL, XDN)
 | 
				
			||||||
 | 
					VTD = (SXK, CRH)
 | 
				
			||||||
 | 
					KHH = (HKT, HKT)
 | 
				
			||||||
 | 
					NTF = (NVQ, NTR)
 | 
				
			||||||
 | 
					KRX = (STJ, MGB)
 | 
				
			||||||
 | 
					SPC = (NDT, TPG)
 | 
				
			||||||
 | 
					DJM = (JPN, TNG)
 | 
				
			||||||
 | 
					THD = (VFQ, GCC)
 | 
				
			||||||
 | 
					CLG = (NLF, MTJ)
 | 
				
			||||||
 | 
					NKN = (SRT, VHH)
 | 
				
			||||||
 | 
					GGK = (RLX, XCC)
 | 
				
			||||||
 | 
					HHV = (LCV, QTX)
 | 
				
			||||||
 | 
					LRG = (NLQ, FVS)
 | 
				
			||||||
 | 
					GNG = (BDF, XRM)
 | 
				
			||||||
 | 
					FNC = (QTX, LCV)
 | 
				
			||||||
 | 
					MVV = (QDK, LNK)
 | 
				
			||||||
 | 
					QTH = (MSH, XDC)
 | 
				
			||||||
 | 
					MKP = (MMD, PJN)
 | 
				
			||||||
 | 
					VBC = (FVJ, BDV)
 | 
				
			||||||
 | 
					JKT = (FJL, BNB)
 | 
				
			||||||
 | 
					MFV = (SVS, RSR)
 | 
				
			||||||
 | 
					HKX = (CPH, NJC)
 | 
				
			||||||
 | 
					HCH = (BKV, HVC)
 | 
				
			||||||
 | 
					TLK = (TDK, PNP)
 | 
				
			||||||
 | 
					DNK = (GCC, VFQ)
 | 
				
			||||||
 | 
					VXR = (NJV, KLH)
 | 
				
			||||||
 | 
					MPG = (XSJ, XSK)
 | 
				
			||||||
 | 
					JLN = (NKN, RFM)
 | 
				
			||||||
 | 
					LTH = (QQS, TXV)
 | 
				
			||||||
 | 
					FLQ = (LND, SRP)
 | 
				
			||||||
 | 
					SXN = (MHL, MHL)
 | 
				
			||||||
 | 
					CFG = (BXX, NRP)
 | 
				
			||||||
 | 
					NDT = (XMK, DJM)
 | 
				
			||||||
 | 
					TTP = (VPX, SXR)
 | 
				
			||||||
 | 
					QXR = (TKP, JCB)
 | 
				
			||||||
 | 
					TDK = (JQQ, SMV)
 | 
				
			||||||
 | 
					KXN = (NXH, BNJ)
 | 
				
			||||||
 | 
					VPA = (HTN, HTG)
 | 
				
			||||||
 | 
					VHH = (DSG, NCN)
 | 
				
			||||||
 | 
					AAA = (TCG, DPM)
 | 
				
			||||||
 | 
					GHM = (NNC, VKX)
 | 
				
			||||||
 | 
					GPM = (PPD, LVF)
 | 
				
			||||||
 | 
					CGH = (LVC, BMH)
 | 
				
			||||||
 | 
					NJQ = (LNH, CRM)
 | 
				
			||||||
 | 
					DKB = (HPC, NGH)
 | 
				
			||||||
 | 
					VKB = (KBC, MHH)
 | 
				
			||||||
 | 
					CKH = (LXL, HVB)
 | 
				
			||||||
 | 
					TSP = (BNN, CBJ)
 | 
				
			||||||
 | 
					FKS = (JTK, PLN)
 | 
				
			||||||
 | 
					NGH = (QLX, QPQ)
 | 
				
			||||||
 | 
					MFT = (QMR, CDQ)
 | 
				
			||||||
 | 
					BSV = (GLR, STS)
 | 
				
			||||||
 | 
					RQR = (GLM, MPS)
 | 
				
			||||||
 | 
					DDP = (DKJ, GTL)
 | 
				
			||||||
 | 
					SQP = (MVG, RDT)
 | 
				
			||||||
 | 
					LMX = (PLH, DDV)
 | 
				
			||||||
 | 
					JCB = (KRX, MLN)
 | 
				
			||||||
 | 
					HCP = (DJS, CLV)
 | 
				
			||||||
 | 
					KQF = (MHC, FXL)
 | 
				
			||||||
 | 
					NML = (CGH, JGJ)
 | 
				
			||||||
 | 
					DRG = (KFR, JHS)
 | 
				
			||||||
 | 
					NLQ = (XXR, CGF)
 | 
				
			||||||
 | 
					BNB = (CJJ, GQF)
 | 
				
			||||||
 | 
					MNF = (SQH, HCV)
 | 
				
			||||||
 | 
					HTF = (FHL, FTC)
 | 
				
			||||||
 | 
					JKM = (QNJ, TVG)
 | 
				
			||||||
 | 
					CDM = (DDV, PLH)
 | 
				
			||||||
 | 
					JHS = (TXK, DHG)
 | 
				
			||||||
 | 
					BDK = (TTH, CBK)
 | 
				
			||||||
 | 
					QVQ = (XJC, MFT)
 | 
				
			||||||
 | 
					MMD = (VNM, KHQ)
 | 
				
			||||||
 | 
					RFC = (HVL, CTG)
 | 
				
			||||||
 | 
					BNN = (FGS, SFG)
 | 
				
			||||||
 | 
					QCL = (GFL, KKH)
 | 
				
			||||||
 | 
					KSN = (RHD, LVD)
 | 
				
			||||||
 | 
					XMN = (XQC, DDK)
 | 
				
			||||||
 | 
					NJC = (TSM, RJN)
 | 
				
			||||||
 | 
					SQH = (MFD, KJX)
 | 
				
			||||||
 | 
					QCD = (KHH, KHH)
 | 
				
			||||||
 | 
					KTT = (PSV, HKX)
 | 
				
			||||||
 | 
					SRT = (NCN, DSG)
 | 
				
			||||||
 | 
					MHX = (QKX, BVT)
 | 
				
			||||||
 | 
					CBJ = (FGS, SFG)
 | 
				
			||||||
 | 
					TTH = (TMF, FPL)
 | 
				
			||||||
 | 
					DBF = (GVK, CMS)
 | 
				
			||||||
 | 
					DNM = (NKJ, VFT)
 | 
				
			||||||
 | 
					XGM = (MXS, JLK)
 | 
				
			||||||
 | 
					NLL = (FMJ, CPM)
 | 
				
			||||||
 | 
					HMD = (FKS, RQM)
 | 
				
			||||||
 | 
					PXT = (JTL, HDR)
 | 
				
			||||||
 | 
					GHB = (GGQ, MVV)
 | 
				
			||||||
 | 
					QCV = (VMS, DXV)
 | 
				
			||||||
 | 
					SBC = (FJK, JLP)
 | 
				
			||||||
 | 
					SGD = (XMH, JNC)
 | 
				
			||||||
 | 
					JQQ = (FTJ, GPD)
 | 
				
			||||||
 | 
					JLH = (TVG, QNJ)
 | 
				
			||||||
 | 
					KPF = (XDQ, PVC)
 | 
				
			||||||
 | 
					VQX = (JLP, FJK)
 | 
				
			||||||
 | 
					VDK = (SLF, SLF)
 | 
				
			||||||
 | 
					PLH = (SBX, SVR)
 | 
				
			||||||
 | 
					QNN = (LXL, HVB)
 | 
				
			||||||
 | 
					SXB = (GSM, DTT)
 | 
				
			||||||
 | 
					JQL = (MQP, KTG)
 | 
				
			||||||
 | 
					JXM = (LHP, FTK)
 | 
				
			||||||
 | 
					QXB = (SFV, DVV)
 | 
				
			||||||
 | 
					VBK = (BDK, CPX)
 | 
				
			||||||
 | 
					BVT = (FQJ, SFJ)
 | 
				
			||||||
 | 
					BHK = (KXV, DSS)
 | 
				
			||||||
 | 
					CJJ = (MXQ, QMJ)
 | 
				
			||||||
 | 
					XTL = (DNK, THD)
 | 
				
			||||||
 | 
					BDV = (BBQ, VBP)
 | 
				
			||||||
 | 
					CPH = (RJN, TSM)
 | 
				
			||||||
 | 
					DTA = (FJL, BNB)
 | 
				
			||||||
 | 
					TQB = (FKS, RQM)
 | 
				
			||||||
 | 
					KMR = (NNT, CKB)
 | 
				
			||||||
 | 
					LRB = (BXX, NRP)
 | 
				
			||||||
 | 
					MVG = (TTN, GJL)
 | 
				
			||||||
 | 
					XXL = (LMX, CDM)
 | 
				
			||||||
 | 
					LMT = (VVN, THX)
 | 
				
			||||||
 | 
					QMR = (PFS, RFC)
 | 
				
			||||||
 | 
					BKD = (DVP, KHX)
 | 
				
			||||||
 | 
					QNK = (LVJ, HCP)
 | 
				
			||||||
 | 
					DGK = (THR, VGR)
 | 
				
			||||||
 | 
					XHC = (FBG, SQP)
 | 
				
			||||||
 | 
					TNC = (GGK, SLL)
 | 
				
			||||||
 | 
					VJP = (GGM, HJD)
 | 
				
			||||||
 | 
					VQN = (NJV, KLH)
 | 
				
			||||||
 | 
					LLD = (SXR, VPX)
 | 
				
			||||||
 | 
					XDC = (CST, BHK)
 | 
				
			||||||
 | 
					KQK = (CNJ, XMJ)
 | 
				
			||||||
 | 
					XJC = (QMR, CDQ)
 | 
				
			||||||
 | 
					KKH = (NKG, DDJ)
 | 
				
			||||||
 | 
					FRF = (CGS, BFN)
 | 
				
			||||||
 | 
					FGS = (KSP, GXM)
 | 
				
			||||||
 | 
					GSB = (GBK, VDS)
 | 
				
			||||||
 | 
					NKX = (XDQ, PVC)
 | 
				
			||||||
 | 
					SDN = (FHL, FTC)
 | 
				
			||||||
 | 
					BVN = (CTP, FMN)
 | 
				
			||||||
 | 
					QSK = (DCB, KSC)
 | 
				
			||||||
 | 
					CTD = (CPV, XHC)
 | 
				
			||||||
 | 
					NBH = (XBN, NVB)
 | 
				
			||||||
 | 
					HRS = (LGD, VSK)
 | 
				
			||||||
 | 
					JTQ = (CPX, BDK)
 | 
				
			||||||
 | 
					CMT = (HXP, KMR)
 | 
				
			||||||
 | 
					DKJ = (VSF, VSF)
 | 
				
			||||||
 | 
					VNG = (KQH, PCC)
 | 
				
			||||||
 | 
					CPV = (SQP, FBG)
 | 
				
			||||||
 | 
					NBT = (HJK, GNG)
 | 
				
			||||||
 | 
					VCJ = (GGQ, MVV)
 | 
				
			||||||
 | 
					LNQ = (SKJ, PBH)
 | 
				
			||||||
 | 
					DFB = (QQJ, XKG)
 | 
				
			||||||
 | 
					RJC = (FLG, BPT)
 | 
				
			||||||
 | 
					SFV = (XMN, QJS)
 | 
				
			||||||
 | 
					RHD = (MQC, QKJ)
 | 
				
			||||||
 | 
					QQS = (JVF, FXS)
 | 
				
			||||||
 | 
					NHV = (BMN, GRR)
 | 
				
			||||||
 | 
					NGG = (SQQ, CQQ)
 | 
				
			||||||
 | 
					XGN = (TFF, DFC)
 | 
				
			||||||
 | 
					HCK = (CKF, HTV)
 | 
				
			||||||
 | 
					SNX = (CNJ, XMJ)
 | 
				
			||||||
 | 
					PRB = (HVC, BKV)
 | 
				
			||||||
 | 
					SXR = (SSK, NXT)
 | 
				
			||||||
 | 
					GGQ = (LNK, QDK)
 | 
				
			||||||
 | 
					DCJ = (QSK, MGP)
 | 
				
			||||||
 | 
					MFD = (GHB, VCJ)
 | 
				
			||||||
 | 
					GLM = (XQG, PDF)
 | 
				
			||||||
 | 
					TND = (TSS, VTK)
 | 
				
			||||||
 | 
					JFB = (BLP, BLP)
 | 
				
			||||||
 | 
					KSC = (VKB, THP)
 | 
				
			||||||
 | 
					CXJ = (SVS, RSR)
 | 
				
			||||||
 | 
					VMT = (MXN, HLF)
 | 
				
			||||||
 | 
					NSP = (HCC, TVP)
 | 
				
			||||||
 | 
					BSK = (PKX, CTD)
 | 
				
			||||||
 | 
					MPS = (XQG, PDF)
 | 
				
			||||||
 | 
					NJV = (CJK, MKD)
 | 
				
			||||||
 | 
					CGF = (CGC, DCP)
 | 
				
			||||||
 | 
					GMD = (VJV, KVF)
 | 
				
			||||||
 | 
					CRL = (PJP, QCL)
 | 
				
			||||||
 | 
					MGP = (KSC, DCB)
 | 
				
			||||||
 | 
					CQQ = (JQL, HNC)
 | 
				
			||||||
 | 
					GGZ = (HTG, HTN)
 | 
				
			||||||
 | 
					TNG = (LST, LTH)
 | 
				
			||||||
 | 
					CST = (KXV, DSS)
 | 
				
			||||||
 | 
					VFV = (CRR, MXK)
 | 
				
			||||||
 | 
					RPG = (TDD, HGV)
 | 
				
			||||||
 | 
					CQR = (DRG, NNJ)
 | 
				
			||||||
 | 
					KSP = (DPT, GSB)
 | 
				
			||||||
 | 
					VKX = (MPG, RVG)
 | 
				
			||||||
 | 
					FMJ = (PQF, CVL)
 | 
				
			||||||
 | 
					SLL = (RLX, XCC)
 | 
				
			||||||
 | 
					HLZ = (BNB, FJL)
 | 
				
			||||||
 | 
					GXM = (GSB, DPT)
 | 
				
			||||||
 | 
					BSH = (SNR, TPJ)
 | 
				
			||||||
 | 
					HGL = (HHM, SLT)
 | 
				
			||||||
 | 
					QVH = (GRR, BMN)
 | 
				
			||||||
 | 
					BTR = (XGD, QBH)
 | 
				
			||||||
 | 
					RBD = (NML, NJT)
 | 
				
			||||||
 | 
					HXP = (NNT, CKB)
 | 
				
			||||||
 | 
					BMP = (JCC, MGR)
 | 
				
			||||||
 | 
					KLP = (FGF, TJS)
 | 
				
			||||||
 | 
					NRK = (VBC, QGQ)
 | 
				
			||||||
 | 
					XMK = (TNG, JPN)
 | 
				
			||||||
 | 
					PBH = (GCL, LPJ)
 | 
				
			||||||
 | 
					NSR = (JFB, RPT)
 | 
				
			||||||
 | 
					SHT = (JVS, HKN)
 | 
				
			||||||
 | 
					NVB = (GBD, TCS)
 | 
				
			||||||
 | 
					MLK = (QTH, GTT)
 | 
				
			||||||
 | 
					FTC = (BSK, VPR)
 | 
				
			||||||
 | 
					PCC = (MRL, LRG)
 | 
				
			||||||
 | 
					PTL = (VBK, JTQ)
 | 
				
			||||||
 | 
					NKJ = (FCL, DKB)
 | 
				
			||||||
 | 
					GFN = (NGL, NGL)
 | 
				
			||||||
 | 
					MQC = (GHN, HCK)
 | 
				
			||||||
 | 
					KMF = (QSF, CPT)
 | 
				
			||||||
 | 
					DDV = (SBX, SVR)
 | 
				
			||||||
 | 
					KHX = (BLR, BCX)
 | 
				
			||||||
 | 
					DVP = (BCX, BLR)
 | 
				
			||||||
 | 
					KBC = (MCG, FKC)
 | 
				
			||||||
 | 
					FJN = (JFF, SBT)
 | 
				
			||||||
 | 
					FKK = (JFF, SBT)
 | 
				
			||||||
 | 
					DDJ = (RPG, TFH)
 | 
				
			||||||
 | 
					JVM = (JCC, MGR)
 | 
				
			||||||
 | 
					PJH = (JKT, JKT)
 | 
				
			||||||
 | 
					GNV = (SXN, KFC)
 | 
				
			||||||
 | 
					LKS = (CVH, SDB)
 | 
				
			||||||
 | 
					JBH = (SNX, KQK)
 | 
				
			||||||
 | 
					XSJ = (MNF, BLL)
 | 
				
			||||||
 | 
					MNB = (BNN, CBJ)
 | 
				
			||||||
 | 
					FQR = (RXF, GSN)
 | 
				
			||||||
 | 
					NCN = (LHS, VXC)
 | 
				
			||||||
 | 
					XXR = (DCP, CGC)
 | 
				
			||||||
 | 
					TSQ = (BSM, BGR)
 | 
				
			||||||
 | 
					VSK = (BMP, JVM)
 | 
				
			||||||
 | 
					DTQ = (XDN, NDL)
 | 
				
			||||||
 | 
					LSV = (FMN, CTP)
 | 
				
			||||||
 | 
					FHD = (NJL, HXB)
 | 
				
			||||||
 | 
					MTJ = (PLD, MLK)
 | 
				
			||||||
 | 
					LBC = (CSR, BKD)
 | 
				
			||||||
 | 
					NGL = (SXN, SXN)
 | 
				
			||||||
 | 
					DSN = (BHX, DVS)
 | 
				
			||||||
 | 
					LLT = (VJC, DSF)
 | 
				
			||||||
 | 
					XJD = (VDK, BKS)
 | 
				
			||||||
 | 
					HGV = (BSX, GBR)
 | 
				
			||||||
 | 
					HKT = (VBH, VBH)
 | 
				
			||||||
 | 
					FGN = (HCC, TVP)
 | 
				
			||||||
 | 
					HHG = (CSR, BKD)
 | 
				
			||||||
 | 
					TSV = (HFC, DFP)
 | 
				
			||||||
 | 
					FBK = (TSQ, FVB)
 | 
				
			||||||
 | 
					FGD = (JVT, JBH)
 | 
				
			||||||
 | 
					CGS = (SGD, QXL)
 | 
				
			||||||
 | 
					SLT = (HHG, LBC)
 | 
				
			||||||
 | 
					HMX = (JVC, GXS)
 | 
				
			||||||
 | 
					BVG = (VSK, LGD)
 | 
				
			||||||
 | 
					GSM = (FPD, JXK)
 | 
				
			||||||
 | 
					RJK = (KHH, DMK)
 | 
				
			||||||
 | 
					LNH = (GHV, BTR)
 | 
				
			||||||
 | 
					PLF = (DJB, TRK)
 | 
				
			||||||
 | 
					PMR = (NBN, BCQ)
 | 
				
			||||||
 | 
					CDB = (HFC, DFP)
 | 
				
			||||||
 | 
					HSZ = (FXL, MHC)
 | 
				
			||||||
 | 
					FHL = (BSK, VPR)
 | 
				
			||||||
 | 
					JTK = (PDV, XJD)
 | 
				
			||||||
 | 
					MVX = (KTT, VGK)
 | 
				
			||||||
 | 
					GPD = (JNH, JDV)
 | 
				
			||||||
 | 
					JGJ = (BMH, LVC)
 | 
				
			||||||
 | 
					JVJ = (TJS, FGF)
 | 
				
			||||||
 | 
					CVL = (BQN, CHK)
 | 
				
			||||||
 | 
					SSJ = (NNJ, DRG)
 | 
				
			||||||
 | 
					JDV = (TKD, LQF)
 | 
				
			||||||
 | 
					JFX = (PSD, NJN)
 | 
				
			||||||
 | 
					RXF = (TKS, LBH)
 | 
				
			||||||
 | 
					CDQ = (PFS, RFC)
 | 
				
			||||||
 | 
					FKC = (NRK, QXX)
 | 
				
			||||||
 | 
					BMH = (LKS, LCT)
 | 
				
			||||||
 | 
					MSH = (BHK, CST)
 | 
				
			||||||
 | 
					LLS = (CQQ, SQQ)
 | 
				
			||||||
 | 
					LST = (QQS, TXV)
 | 
				
			||||||
 | 
					GSN = (LBH, TKS)
 | 
				
			||||||
 | 
					RSV = (TSV, CDB)
 | 
				
			||||||
 | 
					DJB = (XPF, NSL)
 | 
				
			||||||
 | 
					GBR = (DTC, LFK)
 | 
				
			||||||
 | 
					MKD = (FJR, PPB)
 | 
				
			||||||
 | 
					HHX = (NVQ, NTR)
 | 
				
			||||||
 | 
					LTD = (TTP, LLD)
 | 
				
			||||||
 | 
					HKQ = (CTJ, XMC)
 | 
				
			||||||
 | 
					KTR = (RNM, GFC)
 | 
				
			||||||
 | 
					NMX = (NJN, PSD)
 | 
				
			||||||
 | 
					FFP = (HFJ, BHH)
 | 
				
			||||||
 | 
					BTS = (VDC, RDG)
 | 
				
			||||||
 | 
					GBK = (MMF, CCC)
 | 
				
			||||||
 | 
					MCG = (NRK, QXX)
 | 
				
			||||||
 | 
					LCT = (CVH, SDB)
 | 
				
			||||||
 | 
					CTG = (XRS, VTD)
 | 
				
			||||||
 | 
					VJV = (BTN, VMT)
 | 
				
			||||||
 | 
					HHM = (LBC, HHG)
 | 
				
			||||||
 | 
					NQJ = (DTQ, KGX)
 | 
				
			||||||
 | 
					MLD = (CTJ, XMC)
 | 
				
			||||||
 | 
					BSM = (CXJ, MFV)
 | 
				
			||||||
 | 
					GQF = (QMJ, MXQ)
 | 
				
			||||||
 | 
					DXX = (JFB, RPT)
 | 
				
			||||||
 | 
					BRM = (CKH, QNN)
 | 
				
			||||||
 | 
					TKS = (SBC, VQX)
 | 
				
			||||||
 | 
					KCR = (KMF, HPM)
 | 
				
			||||||
 | 
					FGF = (VFB, LXQ)
 | 
				
			||||||
 | 
					GFG = (PJH, RBJ)
 | 
				
			||||||
 | 
					XXQ = (DSF, VJC)
 | 
				
			||||||
 | 
					TKD = (QCR, XTL)
 | 
				
			||||||
 | 
					KVF = (BTN, VMT)
 | 
				
			||||||
 | 
					KCJ = (PQB, QNM)
 | 
				
			||||||
 | 
					VSF = (KLP, JVJ)
 | 
				
			||||||
 | 
					SKJ = (GCL, LPJ)
 | 
				
			||||||
 | 
					DBP = (QVH, NHV)
 | 
				
			||||||
 | 
					JSX = (GNG, HJK)
 | 
				
			||||||
 | 
					DSF = (JSX, NBT)
 | 
				
			||||||
 | 
					PLD = (QTH, GTT)
 | 
				
			||||||
 | 
					CJT = (NFK, GHM)
 | 
				
			||||||
 | 
					NFK = (VKX, NNC)
 | 
				
			||||||
 | 
					HTV = (SMF, BSH)
 | 
				
			||||||
 | 
					DTL = (NSP, FGN)
 | 
				
			||||||
 | 
					QPQ = (TPB, CRL)
 | 
				
			||||||
 | 
					DVM = (XKV, DQM)
 | 
				
			||||||
 | 
					SXK = (VSB, VKG)
 | 
				
			||||||
 | 
					PJP = (GFL, KKH)
 | 
				
			||||||
 | 
					DSG = (LHS, VXC)
 | 
				
			||||||
 | 
					CPM = (CVL, PQF)
 | 
				
			||||||
 | 
					STJ = (SDF, MHR)
 | 
				
			||||||
 | 
					XDN = (NJQ, BNC)
 | 
				
			||||||
 | 
					PRS = (FBB, VBN)
 | 
				
			||||||
 | 
					CJH = (KRC, HXH)
 | 
				
			||||||
 | 
					BHH = (KCR, MMR)
 | 
				
			||||||
 | 
					GCC = (VFV, HMJ)
 | 
				
			||||||
 | 
					RFM = (SRT, VHH)
 | 
				
			||||||
 | 
					PGR = (VMS, DXV)
 | 
				
			||||||
 | 
					SMP = (NVB, XBN)
 | 
				
			||||||
 | 
					PKL = (GFC, RNM)
 | 
				
			||||||
 | 
					PDF = (PGD, XFT)
 | 
				
			||||||
 | 
					DPT = (VDS, GBK)
 | 
				
			||||||
 | 
					BXX = (SQL, PMR)
 | 
				
			||||||
 | 
					DFC = (CLG, LGN)
 | 
				
			||||||
 | 
					GCL = (LRK, LXK)
 | 
				
			||||||
 | 
					BMQ = (HXB, NJL)
 | 
				
			||||||
 | 
					XPS = (XLH, SDQ)
 | 
				
			||||||
 | 
					CHK = (TPS, SHT)
 | 
				
			||||||
 | 
					DCB = (VKB, THP)
 | 
				
			||||||
 | 
					PTR = (KQH, PCC)
 | 
				
			||||||
 | 
					RJL = (XJC, MFT)
 | 
				
			||||||
 | 
					MHH = (MCG, FKC)
 | 
				
			||||||
 | 
					PRJ = (DMH, RTN)
 | 
				
			||||||
 | 
					CBK = (TMF, FPL)
 | 
				
			||||||
 | 
					NLK = (XSP, GMD)
 | 
				
			||||||
 | 
					FPL = (HRS, BVG)
 | 
				
			||||||
 | 
					HCC = (MVX, TBL)
 | 
				
			||||||
 | 
					GTT = (XDC, MSH)
 | 
				
			||||||
 | 
					VNN = (DVM, LBJ)
 | 
				
			||||||
 | 
					PGD = (FFP, JDC)
 | 
				
			||||||
 | 
					LVF = (PKL, KTR)
 | 
				
			||||||
 | 
					LHP = (FLQ, FDK)
 | 
				
			||||||
 | 
					GVK = (KVT, FQR)
 | 
				
			||||||
 | 
					KLH = (CJK, MKD)
 | 
				
			||||||
 | 
					BMN = (JKM, JLH)
 | 
				
			||||||
 | 
					LXS = (BNJ, NXH)
 | 
				
			||||||
 | 
					VFT = (FCL, DKB)
 | 
				
			||||||
 | 
					LPM = (HJD, GGM)
 | 
				
			||||||
 | 
					QLX = (CRL, TPB)
 | 
				
			||||||
 | 
					FXS = (QHF, HPT)
 | 
				
			||||||
 | 
					GBX = (CSN, DBP)
 | 
				
			||||||
 | 
					BCQ = (DLD, SXB)
 | 
				
			||||||
 | 
					HTG = (NBH, SMP)
 | 
				
			||||||
 | 
					DVS = (HTF, SDN)
 | 
				
			||||||
 | 
					XMH = (FVD, VNN)
 | 
				
			||||||
 | 
					BLL = (HCV, SQH)
 | 
				
			||||||
 | 
					QBH = (RFH, DTL)
 | 
				
			||||||
 | 
					FQJ = (FBK, MMT)
 | 
				
			||||||
 | 
					CRH = (VKG, VSB)
 | 
				
			||||||
 | 
					MSC = (LXS, KXN)
 | 
				
			||||||
 | 
					HJD = (MMN, PXT)
 | 
				
			||||||
 | 
					LGD = (BMP, JVM)
 | 
				
			||||||
 | 
					DVV = (XMN, QJS)
 | 
				
			||||||
 | 
					NFJ = (FMJ, CPM)
 | 
				
			||||||
 | 
					MXN = (NQJ, CVV)
 | 
				
			||||||
 | 
					VFG = (MCC, QXB)
 | 
				
			||||||
 | 
					TCS = (DSN, HRT)
 | 
				
			||||||
 | 
					BSQ = (HXP, KMR)
 | 
				
			||||||
 | 
					HVS = (SDQ, XLH)
 | 
				
			||||||
 | 
					MMT = (FVB, TSQ)
 | 
				
			||||||
 | 
					XHS = (LBP, GVH)
 | 
				
			||||||
 | 
					HXH = (RJL, QVQ)
 | 
				
			||||||
 | 
					DTT = (JXK, FPD)
 | 
				
			||||||
 | 
					HJH = (HHV, FNC)
 | 
				
			||||||
 | 
					QNM = (TQB, HMD)
 | 
				
			||||||
 | 
					RPQ = (PJH, PJH)
 | 
				
			||||||
 | 
					DQM = (DRJ, CJT)
 | 
				
			||||||
 | 
					RJS = (JLN, SFB)
 | 
				
			||||||
 | 
					NXH = (DFB, NBC)
 | 
				
			||||||
 | 
					GGM = (MMN, PXT)
 | 
				
			||||||
 | 
					FTJ = (JDV, JNH)
 | 
				
			||||||
 | 
					BSX = (DTC, LFK)
 | 
				
			||||||
 | 
					HKN = (FLF, HJJ)
 | 
				
			||||||
 | 
					VGK = (HKX, PSV)
 | 
				
			||||||
 | 
					VPX = (NXT, SSK)
 | 
				
			||||||
 | 
					SFJ = (MMT, FBK)
 | 
				
			||||||
 | 
					KFC = (MHL, GGZ)
 | 
				
			||||||
 | 
					RDG = (DBF, FVR)
 | 
				
			||||||
 | 
					RTN = (MSX, GPM)
 | 
				
			||||||
 | 
					QJS = (XQC, DDK)
 | 
				
			||||||
 | 
					XKZ = (VBN, FBB)
 | 
				
			||||||
 | 
					TMF = (HRS, BVG)
 | 
				
			||||||
 | 
					CJV = (TND, SBB)
 | 
				
			||||||
 | 
					XFT = (JDC, FFP)
 | 
				
			||||||
 | 
					TPS = (HKN, JVS)
 | 
				
			||||||
 | 
					BPT = (RMC, LTD)
 | 
				
			||||||
 | 
					HVL = (XRS, VTD)
 | 
				
			||||||
 | 
					HJK = (XRM, BDF)
 | 
				
			||||||
 | 
					XKV = (CJT, DRJ)
 | 
				
			||||||
 | 
					SFN = (JPQ, PRJ)
 | 
				
			||||||
 | 
					TTN = (QNK, FRB)
 | 
				
			||||||
 | 
					LNK = (XGN, JFC)
 | 
				
			||||||
 | 
					VBN = (BMS, SCX)
 | 
				
			||||||
							
								
								
									
										67
									
								
								src/days/d08.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								src/days/d08.rs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					use std::{collections::HashMap, fs};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub fn solve() {
 | 
				
			||||||
 | 
					    let path = "res/08/input";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let contents = fs::read_to_string(path).expect("I/O error, wrong path?");
 | 
				
			||||||
 | 
					    //let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let (instr_raw, map_raw) = contents.split_once("\n\n").unwrap();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let instr: Vec<char> = instr_raw.chars().collect();
 | 
				
			||||||
 | 
					    let map: HashMap<String, (String,String)> = map_raw
 | 
				
			||||||
 | 
					        .lines()
 | 
				
			||||||
 | 
					        .map(|line| {
 | 
				
			||||||
 | 
					            let (src, dst1, dst2) = scan_fmt!(line, "{} = ({}, {})", String, String, String).unwrap();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            (src, (dst1, dst2))
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        .collect();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // let mut curr = String::from("AAA");
 | 
				
			||||||
 | 
					    // let mut i = 0;
 | 
				
			||||||
 | 
					    // while curr != String::from("ZZZ") {
 | 
				
			||||||
 | 
					    //     dbg!(curr.as_str());
 | 
				
			||||||
 | 
					    //     curr =  match instr[i % instr.len()] {
 | 
				
			||||||
 | 
					    //         'L' => map.get(curr.as_str()).unwrap().0.clone(),
 | 
				
			||||||
 | 
					    //         'R' => map.get(curr.as_str()).unwrap().1.clone(),
 | 
				
			||||||
 | 
					    //         _ => panic!()
 | 
				
			||||||
 | 
					    //     };
 | 
				
			||||||
 | 
					    //     i+=1;
 | 
				
			||||||
 | 
					    // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // println!("Result 1: {}", i);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let mut curr: Vec<String> = map.keys()
 | 
				
			||||||
 | 
					        .filter(|s| s.ends_with("A"))
 | 
				
			||||||
 | 
					        .map(|s| s.clone())
 | 
				
			||||||
 | 
					        .collect();
 | 
				
			||||||
 | 
					    let mut i = 0;
 | 
				
			||||||
 | 
					    let mut steps: Vec<usize> = vec![0; curr.len()];
 | 
				
			||||||
 | 
					    while steps.iter().any(|s| *s == 0) {
 | 
				
			||||||
 | 
					        (0..curr.len())
 | 
				
			||||||
 | 
					            .for_each(|j| {
 | 
				
			||||||
 | 
					                if curr[j].ends_with("Z") && steps[j] == 0 {
 | 
				
			||||||
 | 
					                    steps[j] = i;
 | 
				
			||||||
 | 
					                } else if steps[j] == 0 {
 | 
				
			||||||
 | 
					                    curr[j] = match instr[i % instr.len()] {
 | 
				
			||||||
 | 
					                        'L' => map.get(curr[j].as_str()).unwrap().0.clone(),
 | 
				
			||||||
 | 
					                        'R' => map.get(curr[j].as_str()).unwrap().1.clone(),
 | 
				
			||||||
 | 
					                        _ => panic!()
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        i+=1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    dbg!(steps.clone());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let result = steps.iter()
 | 
				
			||||||
 | 
					        .fold(1, |x,y| {
 | 
				
			||||||
 | 
					            num::integer::lcm(x,*y)
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    println!("Result 1: {}", result);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,9 @@
 | 
				
			||||||
pub mod days;
 | 
					pub mod days;
 | 
				
			||||||
 | 
					#[macro_use] extern crate scan_fmt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fn main() {
 | 
					fn main() {
 | 
				
			||||||
    days::d07::solve()
 | 
					    days::d08::solve()
 | 
				
			||||||
    //_all_days()
 | 
					    //_all_days()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue