Added 8th day solution
This commit is contained in:
parent
c4fa8f39f8
commit
2dacd8b5f5
|
@ -0,0 +1,788 @@
|
||||||
|
LLRRRLLRRRLRRRLRLRLLRRLRRRLLLRLRRRLRRRLRLLRRLRRRLLRRLRRLRLRRRLRRLLRLRRLRRRLRRLLRRRLRLLLRLRRRLRRLLLLRRRLRRRLRRRLRLRRLRRLRLRRLLRLLRRRLRRLRLLRRLRRLLRLLRLRRRLRLRLRRRLRRLLLRLRRRLLRLLRRRLRLRLRRRLLRLLLLRRRLRRRLRLRRRLRRLRRLLRLRLRRRLRRRLRLRRLLLLRLRRRLRRRLRLRRRLRLRRLRLRRRR
|
||||||
|
|
||||||
|
BQV = (HFG, GDR)
|
||||||
|
VQT = (JLQ, TNJ)
|
||||||
|
SGR = (TLQ, FGP)
|
||||||
|
BXN = (TTQ, HJH)
|
||||||
|
FXV = (RDS, NGH)
|
||||||
|
MXR = (BXN, PXF)
|
||||||
|
MJN = (RSQ, LBL)
|
||||||
|
PTG = (GSC, SFM)
|
||||||
|
TPD = (CXX, TCD)
|
||||||
|
FXD = (NDP, PVL)
|
||||||
|
GSB = (SVM, RHH)
|
||||||
|
LPX = (GSS, RHC)
|
||||||
|
JCS = (RKT, XHN)
|
||||||
|
TTQ = (MDT, BNX)
|
||||||
|
NXP = (QSK, JXB)
|
||||||
|
PRK = (TCT, JGS)
|
||||||
|
BDL = (PXH, RJH)
|
||||||
|
RGS = (MRL, VTT)
|
||||||
|
VFR = (VHS, QDB)
|
||||||
|
KFL = (PGM, KNL)
|
||||||
|
KJP = (QCQ, TKC)
|
||||||
|
NDN = (CLT, FKK)
|
||||||
|
FPG = (JJT, JJT)
|
||||||
|
XNH = (LSH, SQQ)
|
||||||
|
PBM = (GCD, VTD)
|
||||||
|
XGD = (FDN, XHT)
|
||||||
|
HQR = (KDD, RTX)
|
||||||
|
KQH = (BMQ, GLQ)
|
||||||
|
HLH = (GHM, FQL)
|
||||||
|
LGP = (RNT, DHG)
|
||||||
|
BCV = (VFL, XNC)
|
||||||
|
GSS = (DJT, PND)
|
||||||
|
VRM = (CPT, RGH)
|
||||||
|
LJX = (RXR, LNC)
|
||||||
|
FSB = (XJG, TFG)
|
||||||
|
XSJ = (DXJ, HBD)
|
||||||
|
FHB = (MBN, TPD)
|
||||||
|
NVR = (MLR, LMQ)
|
||||||
|
PCM = (CMS, XCH)
|
||||||
|
TDJ = (BBT, BMS)
|
||||||
|
GCD = (KHC, BDL)
|
||||||
|
NLM = (XSM, LML)
|
||||||
|
CKP = (NKS, PXJ)
|
||||||
|
CXD = (XGK, JLR)
|
||||||
|
FMS = (DNC, VJN)
|
||||||
|
XCV = (LML, XSM)
|
||||||
|
MBN = (TCD, CXX)
|
||||||
|
SDQ = (GRQ, CBJ)
|
||||||
|
KKF = (PRG, NCQ)
|
||||||
|
GJL = (RSQ, LBL)
|
||||||
|
MPV = (VTD, GCD)
|
||||||
|
NBQ = (MCG, RBN)
|
||||||
|
QQS = (RRQ, HJB)
|
||||||
|
QGS = (MXB, BFG)
|
||||||
|
NGB = (HRV, FCN)
|
||||||
|
VNP = (LDF, DJB)
|
||||||
|
XXQ = (QPJ, STL)
|
||||||
|
BLJ = (KCL, TXD)
|
||||||
|
QFV = (RFF, FFL)
|
||||||
|
FKS = (QQV, BTH)
|
||||||
|
DKX = (VXQ, RDX)
|
||||||
|
LVF = (LBH, QFT)
|
||||||
|
QQT = (CVJ, KNQ)
|
||||||
|
TRJ = (GRC, BHN)
|
||||||
|
MTC = (TKV, VTM)
|
||||||
|
SCV = (MHT, MHT)
|
||||||
|
FNT = (HRF, RDR)
|
||||||
|
FQS = (QVQ, LDX)
|
||||||
|
CMS = (GSK, LNQ)
|
||||||
|
HKH = (MHD, NRV)
|
||||||
|
MPQ = (FMS, LHR)
|
||||||
|
MFS = (KXL, KXL)
|
||||||
|
XXN = (SJQ, DBF)
|
||||||
|
RQG = (NQV, QFV)
|
||||||
|
SML = (HLD, MGG)
|
||||||
|
KVM = (SGJ, RBB)
|
||||||
|
XNC = (PMG, FXD)
|
||||||
|
TQB = (XND, NGX)
|
||||||
|
QRG = (GXR, XCB)
|
||||||
|
BNV = (PJJ, NLH)
|
||||||
|
KMK = (KJP, VSM)
|
||||||
|
CML = (PJK, HQB)
|
||||||
|
RBM = (HFK, JBH)
|
||||||
|
ZZZ = (NTL, GVD)
|
||||||
|
PGM = (HQK, LPG)
|
||||||
|
TSH = (NVK, JXD)
|
||||||
|
FXZ = (NGX, XND)
|
||||||
|
VNT = (JPB, VHM)
|
||||||
|
BFF = (HDD, CXP)
|
||||||
|
QRR = (FJP, NXN)
|
||||||
|
XLC = (KPR, FSB)
|
||||||
|
RNM = (PBM, MPV)
|
||||||
|
CMG = (VCK, GXX)
|
||||||
|
MPC = (FVT, JMM)
|
||||||
|
NMC = (TPC, TRF)
|
||||||
|
BBS = (PDP, PHC)
|
||||||
|
FCN = (QNF, MDM)
|
||||||
|
HPG = (MTC, MJB)
|
||||||
|
TCH = (BXH, FHH)
|
||||||
|
PPK = (DSQ, DSQ)
|
||||||
|
PMS = (FFV, TTG)
|
||||||
|
BML = (FXS, RKP)
|
||||||
|
QNF = (KTP, LTV)
|
||||||
|
PBQ = (TLQ, FGP)
|
||||||
|
BKP = (BMQ, GLQ)
|
||||||
|
LBL = (RDG, HLB)
|
||||||
|
BKL = (LJX, VCM)
|
||||||
|
LLS = (FXQ, CHG)
|
||||||
|
HFD = (CMS, XCH)
|
||||||
|
SJQ = (QBG, CGS)
|
||||||
|
TKC = (JXV, HRJ)
|
||||||
|
DKL = (HHP, SCK)
|
||||||
|
DPS = (RNP, RQG)
|
||||||
|
GMG = (PFN, LLV)
|
||||||
|
DNS = (SCV, TDD)
|
||||||
|
RDG = (XSP, QQT)
|
||||||
|
MHT = (TQB, TQB)
|
||||||
|
RKX = (DKX, DKX)
|
||||||
|
MJC = (KGT, CRJ)
|
||||||
|
LTV = (GKT, LVJ)
|
||||||
|
PLM = (MPS, NLC)
|
||||||
|
PHC = (FXV, VMD)
|
||||||
|
QLN = (QPJ, STL)
|
||||||
|
FTX = (PFM, SDQ)
|
||||||
|
XSP = (CVJ, KNQ)
|
||||||
|
XND = (BBS, TTF)
|
||||||
|
LSQ = (LCM, NJF)
|
||||||
|
HDV = (BBX, RKH)
|
||||||
|
DJG = (JBH, HFK)
|
||||||
|
XPM = (NNM, KNX)
|
||||||
|
FGP = (LVN, JMB)
|
||||||
|
QBG = (XBC, SGD)
|
||||||
|
HQK = (NVR, NKQ)
|
||||||
|
GMN = (SBP, KHJ)
|
||||||
|
NDR = (VHQ, MGN)
|
||||||
|
RQQ = (QVQ, LDX)
|
||||||
|
XFD = (BKX, QRG)
|
||||||
|
FCH = (SMF, BHJ)
|
||||||
|
JMM = (LVT, BCV)
|
||||||
|
SBR = (LBD, RGS)
|
||||||
|
NLH = (FPG, QVF)
|
||||||
|
TPC = (HFD, PCM)
|
||||||
|
GGP = (TPD, MBN)
|
||||||
|
LDF = (PMX, NMP)
|
||||||
|
TQP = (MQH, PJD)
|
||||||
|
SMD = (FCH, CCF)
|
||||||
|
HJB = (RFL, RMH)
|
||||||
|
JCJ = (BNV, RCM)
|
||||||
|
DJD = (LVS, HQD)
|
||||||
|
XHT = (CRH, NTS)
|
||||||
|
KXL = (XPT, XPT)
|
||||||
|
MCK = (PRG, NCQ)
|
||||||
|
TVQ = (XHN, RKT)
|
||||||
|
PGN = (GDR, HFG)
|
||||||
|
KTD = (VML, HLN)
|
||||||
|
RKH = (XNH, TJK)
|
||||||
|
VPC = (FDS, DPS)
|
||||||
|
HBD = (CCR, XGP)
|
||||||
|
FQL = (BCN, KBS)
|
||||||
|
QJN = (MJN, GJL)
|
||||||
|
KSV = (NBQ, GTR)
|
||||||
|
CBT = (PCN, DTB)
|
||||||
|
KJR = (TDH, HBJ)
|
||||||
|
PND = (JGM, PFL)
|
||||||
|
MFM = (XMD, QRP)
|
||||||
|
VBB = (HVH, SFP)
|
||||||
|
JKM = (SQP, LSQ)
|
||||||
|
SCP = (JPC, SML)
|
||||||
|
DFQ = (GRC, BHN)
|
||||||
|
RSQ = (HLB, RDG)
|
||||||
|
NCB = (CPS, KCG)
|
||||||
|
LVJ = (FLG, KXQ)
|
||||||
|
FQB = (RKX, RKX)
|
||||||
|
XPT = (GVD, NTL)
|
||||||
|
XGP = (LNK, XKG)
|
||||||
|
CBG = (LDF, DJB)
|
||||||
|
XFH = (LLV, PFN)
|
||||||
|
GGJ = (PXF, BXN)
|
||||||
|
LTJ = (CPS, KCG)
|
||||||
|
CPS = (DMN, QGD)
|
||||||
|
LRR = (DRN, NCJ)
|
||||||
|
XFS = (BKL, LXM)
|
||||||
|
NDP = (PQF, SVL)
|
||||||
|
BCN = (XGS, BJF)
|
||||||
|
GVK = (FXQ, CHG)
|
||||||
|
JKB = (LPX, MPH)
|
||||||
|
JBD = (MKH, XGD)
|
||||||
|
CNM = (KMG, CKD)
|
||||||
|
NSS = (MQL, RHX)
|
||||||
|
VCM = (LNC, RXR)
|
||||||
|
TTL = (FLD, DBS)
|
||||||
|
BJS = (TVC, FLF)
|
||||||
|
DNR = (KCP, BJS)
|
||||||
|
XSH = (JDF, QKN)
|
||||||
|
HHZ = (GVK, LLS)
|
||||||
|
RRC = (TSK, DNK)
|
||||||
|
SQP = (NJF, LCM)
|
||||||
|
QXR = (JHC, MXQ)
|
||||||
|
BKH = (VHS, QDB)
|
||||||
|
KJV = (KTT, LVD)
|
||||||
|
DHK = (FPV, NLS)
|
||||||
|
NMP = (NGB, PBF)
|
||||||
|
GJH = (VCN, CPP)
|
||||||
|
FBB = (MJC, VMF)
|
||||||
|
CMK = (LGP, GKD)
|
||||||
|
VTM = (XST, SRS)
|
||||||
|
DHG = (LRR, SNF)
|
||||||
|
DBS = (RVX, DCQ)
|
||||||
|
GSL = (NBX, JNN)
|
||||||
|
XSM = (BHS, HRT)
|
||||||
|
JBH = (NSS, FTN)
|
||||||
|
DXJ = (XGP, CCR)
|
||||||
|
JGS = (JKS, HHZ)
|
||||||
|
NTS = (GMG, XFH)
|
||||||
|
FHH = (BPG, KRM)
|
||||||
|
LBS = (KNL, PGM)
|
||||||
|
MQH = (FQB, FQB)
|
||||||
|
QVF = (JJT, PRK)
|
||||||
|
KSM = (PMS, LLF)
|
||||||
|
XQM = (JLC, KTD)
|
||||||
|
SXQ = (JXD, NVK)
|
||||||
|
GHC = (MGN, VHQ)
|
||||||
|
PJK = (CXG, DNR)
|
||||||
|
HHP = (NXC, KVM)
|
||||||
|
NHK = (XSJ, NHB)
|
||||||
|
SLP = (TNJ, JLQ)
|
||||||
|
HNK = (XSN, NHK)
|
||||||
|
KQX = (DHK, SQV)
|
||||||
|
XRX = (BGR, PVS)
|
||||||
|
MGH = (RLQ, TBJ)
|
||||||
|
FSV = (LKK, DNS)
|
||||||
|
NJP = (BGR, PVS)
|
||||||
|
PFM = (GRQ, CBJ)
|
||||||
|
LCF = (HBJ, TDH)
|
||||||
|
CPC = (JLC, KTD)
|
||||||
|
CXK = (JGP, JGP)
|
||||||
|
LJJ = (SQP, LSQ)
|
||||||
|
LNC = (BML, TNN)
|
||||||
|
VCN = (TBT, PLK)
|
||||||
|
NPF = (FBH, JPD)
|
||||||
|
LHR = (VJN, DNC)
|
||||||
|
BXJ = (VKV, BLJ)
|
||||||
|
KMB = (FSB, KPR)
|
||||||
|
CJQ = (QRG, BKX)
|
||||||
|
XVK = (PBX, DKQ)
|
||||||
|
GTL = (VKF, VJD)
|
||||||
|
BXH = (BPG, KRM)
|
||||||
|
NGX = (BBS, TTF)
|
||||||
|
JXT = (RHH, SVM)
|
||||||
|
DMN = (MFS, MFS)
|
||||||
|
BKX = (GXR, XCB)
|
||||||
|
KTP = (GKT, LVJ)
|
||||||
|
LXS = (JHC, MXQ)
|
||||||
|
LCM = (KKF, MCK)
|
||||||
|
VVL = (FGD, FNT)
|
||||||
|
CRC = (DKV, JKG)
|
||||||
|
HRJ = (KJF, QTD)
|
||||||
|
TSF = (HMJ, CMG)
|
||||||
|
HLN = (PCB, HHC)
|
||||||
|
VSM = (QCQ, TKC)
|
||||||
|
TKV = (XST, SRS)
|
||||||
|
PCL = (VCF, VLX)
|
||||||
|
QQV = (TRP, QBL)
|
||||||
|
FLF = (FJB, RGC)
|
||||||
|
MCL = (SCK, HHP)
|
||||||
|
GRQ = (VGV, GTL)
|
||||||
|
TCT = (JKS, JKS)
|
||||||
|
DMQ = (NMC, PDV)
|
||||||
|
LMQ = (SXX, FKS)
|
||||||
|
XPK = (FKK, CLT)
|
||||||
|
CDK = (FRX, BRM)
|
||||||
|
JLR = (KGR, TCC)
|
||||||
|
TDH = (KFL, LBS)
|
||||||
|
XXP = (CML, CLM)
|
||||||
|
KCG = (DMN, QGD)
|
||||||
|
LTL = (RQH, PTX)
|
||||||
|
QVR = (VPC, KXT)
|
||||||
|
DRN = (LCC, NLQ)
|
||||||
|
NQV = (RFF, FFL)
|
||||||
|
PLS = (LQJ, QVR)
|
||||||
|
DBF = (QBG, CGS)
|
||||||
|
KTT = (HNK, LRN)
|
||||||
|
MRL = (HFH, HFT)
|
||||||
|
BJG = (PTG, XJX)
|
||||||
|
FTQ = (PCD, RMP)
|
||||||
|
XQP = (TSC, QQS)
|
||||||
|
QCQ = (HRJ, JXV)
|
||||||
|
NJX = (XFL, XFX)
|
||||||
|
BNJ = (MGB, TGT)
|
||||||
|
CKD = (NTT, TBD)
|
||||||
|
NKS = (SDB, KQX)
|
||||||
|
NRQ = (PLR, NJX)
|
||||||
|
MBX = (MXR, GGJ)
|
||||||
|
LVS = (GHC, NDR)
|
||||||
|
KJF = (DKL, MCL)
|
||||||
|
NRV = (DFQ, TRJ)
|
||||||
|
DPA = (NBQ, GTR)
|
||||||
|
XCH = (LNQ, GSK)
|
||||||
|
RHC = (DJT, PND)
|
||||||
|
SVM = (XLC, KMB)
|
||||||
|
GRF = (VTF, HDR)
|
||||||
|
LLF = (TTG, FFV)
|
||||||
|
PHV = (FSG, VRJ)
|
||||||
|
SGD = (NND, CMK)
|
||||||
|
SSP = (GJL, MJN)
|
||||||
|
PVL = (PQF, SVL)
|
||||||
|
FVT = (BCV, LVT)
|
||||||
|
BNX = (SSM, HQR)
|
||||||
|
XSV = (JCS, TVQ)
|
||||||
|
MCJ = (RGM, GPV)
|
||||||
|
XXL = (SCP, XKM)
|
||||||
|
XST = (JKB, JFB)
|
||||||
|
GSK = (VRM, TCR)
|
||||||
|
NKQ = (MLR, LMQ)
|
||||||
|
VXQ = (SXQ, TSH)
|
||||||
|
GPV = (MVT, VKR)
|
||||||
|
RNL = (CQF, KQL)
|
||||||
|
VBR = (BFG, MXB)
|
||||||
|
MRR = (BKH, VFR)
|
||||||
|
GDR = (MMB, HKH)
|
||||||
|
MGS = (KMK, NGJ)
|
||||||
|
MLQ = (KNX, NNM)
|
||||||
|
NGH = (SQR, MGF)
|
||||||
|
QRP = (NBR, TCS)
|
||||||
|
MKH = (FDN, XHT)
|
||||||
|
JLQ = (DTL, PHD)
|
||||||
|
JBM = (MJB, MTC)
|
||||||
|
DNC = (HJF, GJH)
|
||||||
|
QRV = (CCF, FCH)
|
||||||
|
TJQ = (XRF, FRB)
|
||||||
|
VKR = (FTX, BCG)
|
||||||
|
SRS = (JFB, JKB)
|
||||||
|
TSK = (CJQ, XFD)
|
||||||
|
TGT = (BQX, CNM)
|
||||||
|
MDN = (XGD, MKH)
|
||||||
|
TVC = (FJB, RGC)
|
||||||
|
KCP = (FLF, TVC)
|
||||||
|
PMG = (PVL, NDP)
|
||||||
|
JHC = (LCF, KJR)
|
||||||
|
FMP = (KTL, JCN)
|
||||||
|
RBB = (DJD, JLG)
|
||||||
|
KQV = (QKN, JDF)
|
||||||
|
PFH = (GLP, STP)
|
||||||
|
CXP = (VNP, CBG)
|
||||||
|
MVG = (TSK, DNK)
|
||||||
|
PCN = (QJN, SSP)
|
||||||
|
HDR = (CGR, XLF)
|
||||||
|
KQL = (BDV, QPF)
|
||||||
|
BHJ = (TDJ, XVJ)
|
||||||
|
PJD = (FQB, GBN)
|
||||||
|
TRF = (HFD, PCM)
|
||||||
|
GKT = (FLG, KXQ)
|
||||||
|
KRF = (NPF, RVD)
|
||||||
|
RMP = (VVL, GXF)
|
||||||
|
NBR = (MDN, JBD)
|
||||||
|
QBL = (DMQ, QDD)
|
||||||
|
VGV = (VKF, VJD)
|
||||||
|
XHN = (PBQ, SGR)
|
||||||
|
CXG = (BJS, KCP)
|
||||||
|
VTD = (KHC, BDL)
|
||||||
|
HFK = (FTN, NSS)
|
||||||
|
MHD = (DFQ, TRJ)
|
||||||
|
RNP = (NQV, QFV)
|
||||||
|
QLA = (VXQ, RDX)
|
||||||
|
LVD = (LRN, HNK)
|
||||||
|
GLQ = (RQK, KJV)
|
||||||
|
FPP = (MNG, RNM)
|
||||||
|
LXM = (LJX, VCM)
|
||||||
|
SSJ = (MKR, SGH)
|
||||||
|
JMB = (KPN, CTM)
|
||||||
|
JPB = (PNM, DNF)
|
||||||
|
XFL = (GKB, XXN)
|
||||||
|
HBJ = (LBS, KFL)
|
||||||
|
SRM = (KBJ, HLH)
|
||||||
|
CRH = (GMG, XFH)
|
||||||
|
VFL = (FXD, PMG)
|
||||||
|
KCL = (QRR, PNN)
|
||||||
|
DNK = (CJQ, XFD)
|
||||||
|
RQV = (NLC, MPS)
|
||||||
|
TCD = (GMN, RDH)
|
||||||
|
BMS = (DTV, VJC)
|
||||||
|
BMQ = (KJV, RQK)
|
||||||
|
PNM = (MSJ, SBK)
|
||||||
|
XSN = (XSJ, NHB)
|
||||||
|
JJN = (NBV, DJM)
|
||||||
|
TBJ = (GLD, HDV)
|
||||||
|
MSJ = (SBV, PJF)
|
||||||
|
MFD = (LXM, BKL)
|
||||||
|
BCG = (PFM, SDQ)
|
||||||
|
BGR = (FXF, KVB)
|
||||||
|
KVK = (QSK, JXB)
|
||||||
|
LBH = (MPC, PFB)
|
||||||
|
QFT = (MPC, PFB)
|
||||||
|
BPG = (BJG, MGX)
|
||||||
|
XKM = (SML, JPC)
|
||||||
|
HMS = (BKR, TJQ)
|
||||||
|
MQL = (RQV, PLM)
|
||||||
|
SGH = (XXV, RJV)
|
||||||
|
GRC = (PLS, NFT)
|
||||||
|
NCQ = (FTQ, KCC)
|
||||||
|
MKF = (XRX, NJP)
|
||||||
|
KGR = (DJG, RBM)
|
||||||
|
HJF = (VCN, CPP)
|
||||||
|
CGR = (TSF, HDB)
|
||||||
|
JFF = (MQH, PJD)
|
||||||
|
PXJ = (KQX, SDB)
|
||||||
|
DKQ = (MVG, RRC)
|
||||||
|
RDH = (KHJ, SBP)
|
||||||
|
PVS = (KVB, FXF)
|
||||||
|
HTM = (NTJ, MPQ)
|
||||||
|
TKF = (PPK, PPK)
|
||||||
|
KPB = (PMS, LLF)
|
||||||
|
FKK = (PDS, CDK)
|
||||||
|
BKR = (XRF, FRB)
|
||||||
|
PNN = (NXN, FJP)
|
||||||
|
VQK = (JNN, NBX)
|
||||||
|
KMG = (TBD, NTT)
|
||||||
|
XMZ = (RDX, VXQ)
|
||||||
|
BBT = (DTV, VJC)
|
||||||
|
GXX = (BKP, KQH)
|
||||||
|
FGS = (MXR, GGJ)
|
||||||
|
FFV = (SRM, FDJ)
|
||||||
|
MQK = (XQP, JHF)
|
||||||
|
NHB = (HBD, DXJ)
|
||||||
|
SNF = (NCJ, DRN)
|
||||||
|
RTH = (JGP, FRG)
|
||||||
|
LRN = (XSN, NHK)
|
||||||
|
JCN = (DQV, LTL)
|
||||||
|
RBT = (HDR, VTF)
|
||||||
|
LDC = (TJQ, BKR)
|
||||||
|
FJP = (BFF, FML)
|
||||||
|
GKD = (RNT, DHG)
|
||||||
|
CSD = (NPF, RVD)
|
||||||
|
GTR = (RBN, MCG)
|
||||||
|
FSG = (XSV, GTH)
|
||||||
|
HLB = (XSP, QQT)
|
||||||
|
BHN = (PLS, NFT)
|
||||||
|
NGJ = (KJP, VSM)
|
||||||
|
PJX = (PPK, SKN)
|
||||||
|
KPR = (TFG, XJG)
|
||||||
|
SFP = (HNG, PHV)
|
||||||
|
CGS = (SGD, XBC)
|
||||||
|
FLG = (KQV, XSH)
|
||||||
|
FDN = (NTS, CRH)
|
||||||
|
CLT = (PDS, CDK)
|
||||||
|
KRM = (MGX, BJG)
|
||||||
|
DTL = (HDM, RNL)
|
||||||
|
QDB = (MBK, PCL)
|
||||||
|
QDD = (PDV, NMC)
|
||||||
|
FXQ = (GFT, HTM)
|
||||||
|
TBD = (NTF, FBB)
|
||||||
|
RDX = (TSH, SXQ)
|
||||||
|
MGX = (PTG, XJX)
|
||||||
|
CCF = (BHJ, SMF)
|
||||||
|
MVT = (BCG, FTX)
|
||||||
|
LVC = (KPB, KSM)
|
||||||
|
NFT = (LQJ, QVR)
|
||||||
|
MDC = (JFF, TQP)
|
||||||
|
SCK = (NXC, KVM)
|
||||||
|
FML = (CXP, HDD)
|
||||||
|
QCM = (TPJ, MDC)
|
||||||
|
VJA = (SCP, XKM)
|
||||||
|
PXH = (QGS, VBR)
|
||||||
|
KNL = (LPG, HQK)
|
||||||
|
MMB = (NRV, MHD)
|
||||||
|
HFG = (HKH, MMB)
|
||||||
|
LML = (BHS, HRT)
|
||||||
|
DPR = (TPJ, MDC)
|
||||||
|
GKB = (SJQ, DBF)
|
||||||
|
BTC = (SFP, HVH)
|
||||||
|
DJT = (PFL, JGM)
|
||||||
|
VCK = (KQH, BKP)
|
||||||
|
KVB = (NHT, HTX)
|
||||||
|
LRJ = (DBS, FLD)
|
||||||
|
CCR = (XKG, LNK)
|
||||||
|
MGB = (CNM, BQX)
|
||||||
|
SDB = (DHK, SQV)
|
||||||
|
KMP = (VNT, HBM)
|
||||||
|
JGP = (XXL, XXL)
|
||||||
|
CLM = (HQB, PJK)
|
||||||
|
JKS = (LLS, GVK)
|
||||||
|
TBT = (GGP, FHB)
|
||||||
|
NTT = (NTF, FBB)
|
||||||
|
HRT = (MCJ, LBF)
|
||||||
|
BMX = (SGH, MKR)
|
||||||
|
HJH = (MDT, BNX)
|
||||||
|
DJB = (PMX, NMP)
|
||||||
|
CRJ = (MFM, HQQ)
|
||||||
|
XXV = (SLP, VQT)
|
||||||
|
MXB = (LVF, KKP)
|
||||||
|
LXN = (VNT, HBM)
|
||||||
|
RMH = (NJG, BKD)
|
||||||
|
MLR = (SXX, FKS)
|
||||||
|
SQV = (NLS, FPV)
|
||||||
|
XKG = (MFD, XFS)
|
||||||
|
LVN = (CTM, KPN)
|
||||||
|
NTR = (QCM, DPR)
|
||||||
|
NTF = (VMF, MJC)
|
||||||
|
MGN = (FMP, DLQ)
|
||||||
|
PLR = (XFL, XFX)
|
||||||
|
SSM = (RTX, KDD)
|
||||||
|
GBB = (RLQ, TBJ)
|
||||||
|
VTF = (XLF, CGR)
|
||||||
|
SHQ = (JLR, XGK)
|
||||||
|
CXX = (GMN, RDH)
|
||||||
|
FLD = (DCQ, RVX)
|
||||||
|
QPF = (CXD, SHQ)
|
||||||
|
RDR = (TCH, QKP)
|
||||||
|
GSC = (MGS, DRQ)
|
||||||
|
GTA = (XND, NGX)
|
||||||
|
VHQ = (FMP, DLQ)
|
||||||
|
MRF = (VKV, BLJ)
|
||||||
|
XCB = (SMD, QRV)
|
||||||
|
NBV = (MKF, GGB)
|
||||||
|
SBK = (PJF, SBV)
|
||||||
|
XRF = (CBT, SMB)
|
||||||
|
TPJ = (JFF, TQP)
|
||||||
|
KDD = (BGD, MQK)
|
||||||
|
DKV = (KFM, NTR)
|
||||||
|
FBH = (MBX, FGS)
|
||||||
|
RGH = (PGN, BQV)
|
||||||
|
FXS = (RJC, JJN)
|
||||||
|
SVL = (LKD, XXP)
|
||||||
|
JXS = (NKS, PXJ)
|
||||||
|
SMX = (LKK, DNS)
|
||||||
|
QTD = (DKL, MCL)
|
||||||
|
CPT = (PGN, BQV)
|
||||||
|
BDV = (CXD, SHQ)
|
||||||
|
BFG = (KKP, LVF)
|
||||||
|
PSM = (DKJ, XVK)
|
||||||
|
CBJ = (GTL, VGV)
|
||||||
|
XJG = (LXN, KMP)
|
||||||
|
MPH = (GSS, RHC)
|
||||||
|
KFM = (DPR, QCM)
|
||||||
|
SQR = (XPK, NDN)
|
||||||
|
VJC = (VFB, JCJ)
|
||||||
|
DQV = (PTX, RQH)
|
||||||
|
FJB = (VVJ, PSM)
|
||||||
|
RQK = (KTT, LVD)
|
||||||
|
PDV = (TRF, TPC)
|
||||||
|
KNQ = (TKF, PJX)
|
||||||
|
HHC = (XPM, MLQ)
|
||||||
|
RHX = (PLM, RQV)
|
||||||
|
GXR = (SMD, QRV)
|
||||||
|
HMJ = (VCK, GXX)
|
||||||
|
JJT = (TCT, TCT)
|
||||||
|
XLF = (HDB, TSF)
|
||||||
|
RFF = (XXQ, QLN)
|
||||||
|
GFT = (NTJ, MPQ)
|
||||||
|
LQK = (KSM, KPB)
|
||||||
|
TXD = (PNN, QRR)
|
||||||
|
KBS = (XGS, BJF)
|
||||||
|
NLS = (GRF, RBT)
|
||||||
|
RFL = (BKD, NJG)
|
||||||
|
MPS = (LRJ, TTL)
|
||||||
|
DCQ = (PFH, GNX)
|
||||||
|
FXF = (HTX, NHT)
|
||||||
|
BGD = (JHF, XQP)
|
||||||
|
NBX = (MRF, BXJ)
|
||||||
|
LKD = (CML, CLM)
|
||||||
|
VJN = (GJH, HJF)
|
||||||
|
TCC = (RBM, DJG)
|
||||||
|
NXN = (BFF, FML)
|
||||||
|
DTB = (SSP, QJN)
|
||||||
|
HRV = (MDM, QNF)
|
||||||
|
LNK = (XFS, MFD)
|
||||||
|
KHJ = (FPP, RLV)
|
||||||
|
MKR = (XXV, RJV)
|
||||||
|
LQJ = (KXT, VPC)
|
||||||
|
HDM = (KQL, CQF)
|
||||||
|
PTX = (LQK, LVC)
|
||||||
|
PJF = (JBM, HPG)
|
||||||
|
RNT = (LRR, SNF)
|
||||||
|
RKP = (JJN, RJC)
|
||||||
|
JCH = (SBR, XVT)
|
||||||
|
MJF = (XPT, ZZZ)
|
||||||
|
DXN = (TGT, MGB)
|
||||||
|
VST = (NXP, KVK)
|
||||||
|
NJF = (MCK, KKF)
|
||||||
|
KGT = (HQQ, MFM)
|
||||||
|
SXX = (BTH, QQV)
|
||||||
|
PCD = (GXF, VVL)
|
||||||
|
PXF = (TTQ, HJH)
|
||||||
|
FPV = (RBT, GRF)
|
||||||
|
LKK = (SCV, SCV)
|
||||||
|
KTL = (LTL, DQV)
|
||||||
|
QKP = (FHH, BXH)
|
||||||
|
TLQ = (JMB, LVN)
|
||||||
|
MNG = (PBM, MPV)
|
||||||
|
AAA = (GVD, NTL)
|
||||||
|
JFB = (MPH, LPX)
|
||||||
|
VTT = (HFH, HFT)
|
||||||
|
RDS = (MGF, SQR)
|
||||||
|
FGD = (RDR, HRF)
|
||||||
|
CQF = (QPF, BDV)
|
||||||
|
TCR = (CPT, RGH)
|
||||||
|
HVH = (PHV, HNG)
|
||||||
|
DNF = (MSJ, SBK)
|
||||||
|
MGG = (RQQ, FQS)
|
||||||
|
GGB = (XRX, NJP)
|
||||||
|
FFL = (XXQ, QLN)
|
||||||
|
VCF = (GSB, JXT)
|
||||||
|
TNN = (RKP, FXS)
|
||||||
|
LLV = (LTJ, NCB)
|
||||||
|
HQQ = (XMD, QRP)
|
||||||
|
LQG = (MRR, RKM)
|
||||||
|
GHM = (KBS, BCN)
|
||||||
|
JXD = (CSD, KRF)
|
||||||
|
RKT = (PBQ, SGR)
|
||||||
|
QKL = (CKP, JXS)
|
||||||
|
BKD = (LJJ, JKM)
|
||||||
|
SBP = (FPP, RLV)
|
||||||
|
SKN = (DSQ, JHM)
|
||||||
|
JLC = (HLN, VML)
|
||||||
|
JPD = (MBX, FGS)
|
||||||
|
JLG = (HQD, LVS)
|
||||||
|
NJG = (LJJ, JKM)
|
||||||
|
TCS = (MDN, JBD)
|
||||||
|
VKV = (KCL, TXD)
|
||||||
|
MCG = (MGH, GBB)
|
||||||
|
BJF = (HRC, QNX)
|
||||||
|
PHD = (HDM, RNL)
|
||||||
|
MHF = (JXS, CKP)
|
||||||
|
FTN = (MQL, RHX)
|
||||||
|
PLG = (NJX, PLR)
|
||||||
|
RLV = (MNG, RNM)
|
||||||
|
XJX = (GSC, SFM)
|
||||||
|
GVD = (BMX, SSJ)
|
||||||
|
JHF = (QQS, TSC)
|
||||||
|
NVK = (KRF, CSD)
|
||||||
|
RVX = (PFH, GNX)
|
||||||
|
HNG = (FSG, VRJ)
|
||||||
|
MDT = (SSM, HQR)
|
||||||
|
TFG = (LXN, KMP)
|
||||||
|
DSQ = (KSV, KSV)
|
||||||
|
RXR = (TNN, BML)
|
||||||
|
KCC = (PCD, RMP)
|
||||||
|
TTG = (SRM, FDJ)
|
||||||
|
VML = (HHC, PCB)
|
||||||
|
HDB = (HMJ, CMG)
|
||||||
|
PFN = (NCB, LTJ)
|
||||||
|
JXB = (JCH, HHB)
|
||||||
|
XVJ = (BBT, BMS)
|
||||||
|
FDS = (RQG, RNP)
|
||||||
|
RJH = (VBR, QGS)
|
||||||
|
GLD = (RKH, BBX)
|
||||||
|
PLK = (FHB, GGP)
|
||||||
|
RCM = (PJJ, NLH)
|
||||||
|
HRC = (RFN, CRC)
|
||||||
|
RGM = (MVT, VKR)
|
||||||
|
DLQ = (JCN, KTL)
|
||||||
|
NTL = (SSJ, BMX)
|
||||||
|
KKP = (LBH, QFT)
|
||||||
|
RQH = (LQK, LVC)
|
||||||
|
CTM = (QKL, MHF)
|
||||||
|
FRG = (XXL, GLZ)
|
||||||
|
VLX = (GSB, JXT)
|
||||||
|
QGD = (MFS, RLL)
|
||||||
|
LCC = (CPC, XQM)
|
||||||
|
TSC = (HJB, RRQ)
|
||||||
|
JGM = (PLG, NRQ)
|
||||||
|
KPN = (QKL, MHF)
|
||||||
|
VMF = (CRJ, KGT)
|
||||||
|
STP = (DXN, BNJ)
|
||||||
|
LPG = (NVR, NKQ)
|
||||||
|
VFB = (RCM, BNV)
|
||||||
|
HLD = (RQQ, FQS)
|
||||||
|
VHM = (PNM, DNF)
|
||||||
|
PFB = (JMM, FVT)
|
||||||
|
RKM = (BKH, VFR)
|
||||||
|
CVJ = (TKF, PJX)
|
||||||
|
NCJ = (NLQ, LCC)
|
||||||
|
LBD = (MRL, VTT)
|
||||||
|
HHB = (XVT, SBR)
|
||||||
|
JDF = (LXS, QXR)
|
||||||
|
BTH = (QBL, TRP)
|
||||||
|
QDP = (DKX, XMZ)
|
||||||
|
DKJ = (PBX, DKQ)
|
||||||
|
PDS = (FRX, BRM)
|
||||||
|
DJM = (MKF, GGB)
|
||||||
|
HFH = (VQK, GSL)
|
||||||
|
QNX = (RFN, CRC)
|
||||||
|
RFN = (DKV, JKG)
|
||||||
|
LDX = (VST, QKJ)
|
||||||
|
TJK = (SQQ, LSH)
|
||||||
|
NLQ = (XQM, CPC)
|
||||||
|
LVT = (XNC, VFL)
|
||||||
|
PJJ = (FPG, QVF)
|
||||||
|
XGS = (QNX, HRC)
|
||||||
|
GTH = (JCS, TVQ)
|
||||||
|
SMB = (PCN, DTB)
|
||||||
|
SBV = (JBM, HPG)
|
||||||
|
MBK = (VLX, VCF)
|
||||||
|
STL = (CXK, RTH)
|
||||||
|
PQF = (LKD, XXP)
|
||||||
|
KNX = (NLM, XCV)
|
||||||
|
XBC = (NND, CMK)
|
||||||
|
VHS = (PCL, MBK)
|
||||||
|
GLZ = (XKM, SCP)
|
||||||
|
NHT = (SMX, FSV)
|
||||||
|
HTX = (SMX, FSV)
|
||||||
|
MDM = (LTV, KTP)
|
||||||
|
BHS = (MCJ, LBF)
|
||||||
|
PDP = (VMD, FXV)
|
||||||
|
SFM = (DRQ, MGS)
|
||||||
|
HDD = (CBG, VNP)
|
||||||
|
RVD = (JPD, FBH)
|
||||||
|
DTV = (VFB, JCJ)
|
||||||
|
PMX = (NGB, PBF)
|
||||||
|
RLL = (KXL, MJF)
|
||||||
|
PCB = (MLQ, XPM)
|
||||||
|
PBF = (HRV, FCN)
|
||||||
|
VRJ = (XSV, GTH)
|
||||||
|
QSK = (JCH, HHB)
|
||||||
|
RRQ = (RMH, RFL)
|
||||||
|
KBJ = (GHM, FQL)
|
||||||
|
FRB = (CBT, SMB)
|
||||||
|
KHC = (PXH, RJH)
|
||||||
|
JNN = (MRF, BXJ)
|
||||||
|
BRM = (VBB, BTC)
|
||||||
|
FRX = (VBB, BTC)
|
||||||
|
NXC = (SGJ, RBB)
|
||||||
|
NTJ = (FMS, LHR)
|
||||||
|
QVQ = (QKJ, VST)
|
||||||
|
BBX = (TJK, XNH)
|
||||||
|
VKF = (HMS, LDC)
|
||||||
|
HQB = (CXG, DNR)
|
||||||
|
RJC = (DJM, NBV)
|
||||||
|
NND = (LGP, GKD)
|
||||||
|
VVJ = (DKJ, XVK)
|
||||||
|
LBF = (GPV, RGM)
|
||||||
|
RHH = (KMB, XLC)
|
||||||
|
HQD = (GHC, NDR)
|
||||||
|
VMD = (NGH, RDS)
|
||||||
|
JKG = (KFM, NTR)
|
||||||
|
XGK = (TCC, KGR)
|
||||||
|
VJD = (LDC, HMS)
|
||||||
|
FDJ = (HLH, KBJ)
|
||||||
|
KXQ = (XSH, KQV)
|
||||||
|
GLP = (BNJ, DXN)
|
||||||
|
SGJ = (JLG, DJD)
|
||||||
|
JPC = (MGG, HLD)
|
||||||
|
XFX = (XXN, GKB)
|
||||||
|
PBX = (RRC, MVG)
|
||||||
|
GBN = (RKX, QDP)
|
||||||
|
PRG = (KCC, FTQ)
|
||||||
|
RJV = (VQT, SLP)
|
||||||
|
HBM = (VHM, JPB)
|
||||||
|
XVT = (RGS, LBD)
|
||||||
|
CPP = (TBT, PLK)
|
||||||
|
QKN = (LXS, QXR)
|
||||||
|
MJB = (TKV, VTM)
|
||||||
|
BQX = (KMG, CKD)
|
||||||
|
MXQ = (LCF, KJR)
|
||||||
|
KXT = (FDS, DPS)
|
||||||
|
XQA = (LLS, GVK)
|
||||||
|
TRP = (DMQ, QDD)
|
||||||
|
TTF = (PDP, PHC)
|
||||||
|
SMF = (TDJ, XVJ)
|
||||||
|
CHG = (GFT, HTM)
|
||||||
|
LSH = (LQG, BQF)
|
||||||
|
JXV = (KJF, QTD)
|
||||||
|
RLQ = (HDV, GLD)
|
||||||
|
GXF = (FNT, FGD)
|
||||||
|
PFL = (NRQ, PLG)
|
||||||
|
HFT = (VQK, GSL)
|
||||||
|
JHM = (KSV, NGZ)
|
||||||
|
NNM = (XCV, NLM)
|
||||||
|
RTX = (MQK, BGD)
|
||||||
|
RGC = (VVJ, PSM)
|
||||||
|
LNQ = (VRM, TCR)
|
||||||
|
GNX = (STP, GLP)
|
||||||
|
MGF = (XPK, NDN)
|
||||||
|
SQQ = (BQF, LQG)
|
||||||
|
TNJ = (DTL, PHD)
|
||||||
|
TDD = (MHT, TMT)
|
||||||
|
BQF = (MRR, RKM)
|
||||||
|
DRQ = (NGJ, KMK)
|
||||||
|
HRF = (TCH, QKP)
|
||||||
|
NLC = (TTL, LRJ)
|
||||||
|
RBN = (MGH, GBB)
|
||||||
|
NGZ = (GTR, NBQ)
|
||||||
|
QPJ = (CXK, CXK)
|
||||||
|
XMD = (NBR, TCS)
|
||||||
|
TMT = (TQB, FXZ)
|
||||||
|
QKJ = (NXP, KVK)
|
|
@ -0,0 +1,9 @@
|
||||||
|
RL
|
||||||
|
|
||||||
|
AAA = (BBB, CCC)
|
||||||
|
BBB = (DDD, EEE)
|
||||||
|
CCC = (ZZZ, GGG)
|
||||||
|
DDD = (DDD, DDD)
|
||||||
|
EEE = (EEE, EEE)
|
||||||
|
GGG = (GGG, GGG)
|
||||||
|
ZZZ = (ZZZ, ZZZ)
|
|
@ -0,0 +1,5 @@
|
||||||
|
LLR
|
||||||
|
|
||||||
|
AAA = (BBB, BBB)
|
||||||
|
BBB = (AAA, ZZZ)
|
||||||
|
ZZZ = (ZZZ, ZZZ)
|
|
@ -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)
|
|
@ -0,0 +1,81 @@
|
||||||
|
import std.stdio;
|
||||||
|
import std.algorithm;
|
||||||
|
import std.string;
|
||||||
|
import std.array;
|
||||||
|
import std.math;
|
||||||
|
|
||||||
|
struct Node {
|
||||||
|
string name, left, right;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Puzzle {
|
||||||
|
string instructions;
|
||||||
|
Node[string] nodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
Puzzle parsePuzzle(string filename) {
|
||||||
|
Puzzle p;
|
||||||
|
string[] lines = File(filename).byLineCopy.array;
|
||||||
|
p.instructions = lines[0].strip;
|
||||||
|
foreach (string line; lines[2..$]) {
|
||||||
|
string[] nameAndBranches = line.split("=");
|
||||||
|
string name = nameAndBranches[0].strip;
|
||||||
|
string[] branches = nameAndBranches[1].strip[1..$-1].split(",").map!strip.array;
|
||||||
|
p.nodes[name] = Node(name, branches[0], branches[1]);
|
||||||
|
}
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
void part1() {
|
||||||
|
Puzzle p = parsePuzzle("input.txt");
|
||||||
|
Node currentNode = p.nodes["AAA"];
|
||||||
|
size_t instructionIdx = 0;
|
||||||
|
ulong steps = 0;
|
||||||
|
while (currentNode.name != "ZZZ") {
|
||||||
|
char instruction = p.instructions[instructionIdx++];
|
||||||
|
if (instructionIdx >= p.instructions.length) instructionIdx = 0;
|
||||||
|
if (instruction == 'L') {
|
||||||
|
currentNode = p.nodes[currentNode.left];
|
||||||
|
} else if (instruction == 'R') {
|
||||||
|
currentNode = p.nodes[currentNode.right];
|
||||||
|
}
|
||||||
|
steps++;
|
||||||
|
}
|
||||||
|
writeln(steps);
|
||||||
|
}
|
||||||
|
|
||||||
|
void part2() {
|
||||||
|
ulong gcd(ulong a, ulong b) {
|
||||||
|
if (a < b) swap(a, b);
|
||||||
|
while (b != 0) {
|
||||||
|
a = a % b;
|
||||||
|
swap(a, b);
|
||||||
|
}
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
|
ulong lcm(ulong a, ulong b) {
|
||||||
|
return a / gcd(a, b) * b;
|
||||||
|
}
|
||||||
|
Puzzle p = parsePuzzle("input.txt");
|
||||||
|
Node[] startNodes = p.nodes.values.filter!(n => n.name[$-1] == 'A').array;
|
||||||
|
ulong lcmSteps = 1;
|
||||||
|
foreach (size_t i, Node startNode; startNodes) {
|
||||||
|
Node currentNode = startNode;
|
||||||
|
ulong cycleLength = 0;
|
||||||
|
size_t instructionIdx = 0;
|
||||||
|
while (currentNode.name[$-1] != 'Z') {
|
||||||
|
char instruction = p.instructions[instructionIdx++];
|
||||||
|
if (instructionIdx >= p.instructions.length) instructionIdx = 0;
|
||||||
|
currentNode = instruction == 'L' ? p.nodes[currentNode.left] : p.nodes[currentNode.right];
|
||||||
|
cycleLength++;
|
||||||
|
}
|
||||||
|
lcmSteps = lcm(lcmSteps, cycleLength);
|
||||||
|
}
|
||||||
|
writeln(lcmSteps);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
part1();
|
||||||
|
part2();
|
||||||
|
}
|
Loading…
Reference in New Issue