From ae36e47ba04acf07c5d986af2b810523b1ad2142 Mon Sep 17 00:00:00 2001 From: plasmaofthedawn Date: Fri, 15 Dec 2023 04:15:49 -0500 Subject: [PATCH] day 8 part 1 --- Makefile | 10 + resources/day8.txt | 768 +++++++++++++++++++++++++++++++++++++++ resources/day8lucy.txt | 732 +++++++++++++++++++++++++++++++++++++ resources/day8sample.txt | 5 + src/day8/part1.pas | 82 +++++ 5 files changed, 1597 insertions(+) create mode 100644 resources/day8.txt create mode 100644 resources/day8lucy.txt create mode 100644 resources/day8sample.txt create mode 100644 src/day8/part1.pas diff --git a/Makefile b/Makefile index 6b58e57..deba580 100644 --- a/Makefile +++ b/Makefile @@ -68,5 +68,15 @@ day7part2: @echo ./build/day7part2 +day8part1: + fpc src/day8/part1.pas -obuild/day8part1 + @echo + ./build/day8part1 + +day8part2: + fpc src/day8/part2.pas -obuild/day8part2 + @echo + ./build/day8part2 + clean: rm build/* \ No newline at end of file diff --git a/resources/day8.txt b/resources/day8.txt new file mode 100644 index 0000000..98a2cf8 --- /dev/null +++ b/resources/day8.txt @@ -0,0 +1,768 @@ +LRRRLRRLRRLRLRRLRRRLLRRLLRRLRRRLRLRRLLRRLRRLRLRRRLRRRLRLRLRLRRRLRRLRRRLRLRRLLLRLRLLRLRRRLRLRRRLRRRLLLRRLRLRRLRRRLLRRLRRLRRLRRRLRRLRRLRRLRLRRLRLRLRLRLRLRRRLRRLRLLLRRRLRLRRRLRRRLLRRLRRRLRRLRRRLRRRLRLRRRLRRLRLLRRLLRLRRLRLRLLRRLLRRLLRRLRRLRRRLRLRRLRLRRRLRRRLLRLRRLLLLRRRLLRLLLRRLRRRLRRRLRRRLRLRRRLRRRLRRRLRLRRRR + +FJT = (XDJ, LQV) +VLP = (BJP, TTH) +NVD = (KTC, TGT) +VCC = (SRV, GMR) +PNM = (SFQ, XMX) +DPD = (HHJ, MGG) +GQA = (BGC, BHR) +VQH = (RCV, VJC) +VHR = (GLQ, GJF) +SQC = (CDT, HKV) +GSV = (PKP, RMP) +JLZ = (KMM, QCG) +THG = (PTL, SXP) +FTC = (VFH, TPL) +JTT = (VQC, QVC) +KQC = (RCR, TRT) +RGP = (DPG, MFQ) +TDP = (XJV, QCR) +PCC = (LRD, XXR) +MRQ = (PPS, KHB) +TTX = (VSJ, XPN) +JNR = (DFB, NSV) +KJK = (PCR, LMT) +JLB = (GXB, HND) +BJN = (KNX, NXQ) +VDV = (XNB, DTB) +TXB = (DXL, PCN) +MJS = (NQK, PDV) +RPV = (BNF, QNS) +CLM = (KLR, QCT) +SXP = (JMV, MGN) +HQG = (LNV, RTX) +RQJ = (HQG, TSJ) +LGD = (PNM, RHG) +XPN = (LGC, CTR) +JJB = (CDH, TXV) +HVZ = (QRH, VHK) +LSV = (FRK, LXV) +RFH = (KMJ, DKH) +FFV = (DJK, MCR) +BMN = (HLV, NMQ) +RBC = (FVH, CXN) +PVK = (HKJ, LGD) +BHK = (MLL, JCP) +VJF = (DCM, SGJ) +XVB = (QBS, MNF) +NRT = (GLL, GLL) +NXL = (CRV, PQB) +TVC = (RKR, PVD) +LDX = (TKH, BHK) +JPG = (DMK, HHQ) +PHV = (JJS, CKP) +NVQ = (RRC, SHR) +KJH = (JKQ, CCR) +LHV = (MVL, LNK) +BBK = (NMH, SQL) +NXP = (PCH, CNJ) +STL = (LMR, HRB) +CFK = (NGC, KFK) +FGC = (VJM, JPG) +SFQ = (CXR, LCT) +KDN = (JPS, QBJ) +PCR = (DSB, TLL) +JKQ = (MRR, JFS) +FNS = (XNB, DTB) +BBP = (LTR, VLP) +MGN = (RKL, RMN) +HCM = (XPC, PHB) +RNJ = (QVC, VQC) +HVT = (FTN, JJQ) +NGP = (JSJ, TKR) +XBL = (BTH, JXS) +AAA = (GFB, FBF) +HXN = (SMM, RVJ) +CMF = (FJT, QMT) +XLR = (HBL, RXC) +NNK = (RCR, TRT) +HNM = (HKN, KBP) +CNN = (JCX, PXH) +VSF = (QFN, HTG) +MQM = (SSQ, QTS) +NBM = (TPD, CVS) +LJB = (SMK, KJK) +VTD = (NGG, NGG) +BCH = (FXM, BPK) +VJM = (DMK, HHQ) +TVX = (HJP, XSP) +TFD = (TSD, TSD) +XDR = (XPS, RDX) +XPD = (VBR, JLN) +TSJ = (RTX, LNV) +NQK = (FVP, NXF) +DCC = (QJL, QFQ) +HKB = (XBH, RXS) +MCR = (RTL, LSC) +GFB = (PND, KRM) +CVM = (JSH, CMP) +QXK = (VTD, XTD) +QFG = (TVX, TCJ) +GQH = (JLB, SFN) +NPB = (PRQ, MLJ) +LRD = (VDV, FNS) +QBJ = (FTV, QNM) +TBB = (FKD, LKP) +HBL = (VMF, DQJ) +HVC = (PQR, BXX) +TQC = (LNK, MVL) +KFQ = (PBK, KPD) +TRH = (SQD, CHT) +TMT = (RSP, SLD) +JBM = (XJV, QCR) +BXX = (NDN, SHC) +JFM = (GVJ, HLH) +PPP = (HGX, JJT) +DXG = (NPK, SBC) +KDQ = (QKD, XRD) +CDH = (XGJ, RGP) +XMX = (CXR, LCT) +PQN = (CKP, JJS) +VDX = (FRP, KJZ) +FRK = (SBT, HCQ) +TDG = (QTM, SVX) +JSD = (HHN, TJM) +JJS = (TTX, MSV) +ZZZ = (FBF, GFB) +XSP = (JXG, CCD) +GXX = (RQX, NGP) +VTG = (QHF, PPP) +BGC = (RQR, PPG) +MQV = (BDT, RMH) +DKH = (PDS, FGF) +XCA = (VHR, HCS) +GTC = (JSM, PTT) +JVV = (LFG, MQV) +TPP = (RBJ, ZZZ) +SRV = (TFV, LBT) +RPC = (FSM, FQF) +CDD = (SQX, QKV) +QHQ = (PVD, RKR) +QCR = (FXJ, LLB) +VDJ = (NMD, BVB) +VLF = (XHR, JRG) +PDS = (NPB, QHS) +TVM = (DQH, XPD) +SJF = (DXL, PCN) +TPD = (VLG, FGC) +SNM = (MHV, FSN) +SGJ = (CDV, BCH) +TPL = (NRT, FNP) +NBF = (DQH, XPD) +GGP = (QND, CHR) +LMR = (KFM, LMM) +HHQ = (KHG, VCF) +XVN = (TGH, FQM) +QTS = (DRH, XDN) +JPM = (JHQ, FGM) +LSB = (HKB, SPH) +NMQ = (BPF, VCP) +QKC = (SKL, RMD) +SXB = (LFG, MQV) +MRM = (SFR, NRD) +GSG = (LFR, TST) +MRR = (CFK, FXG) +RFS = (DDK, LML) +PTL = (MGN, JMV) +NXF = (PPK, MLT) +KSN = (MCK, HGN) +SFR = (NSN, DDP) +RHB = (KDQ, HQD) +SBM = (LGD, HKJ) +BCN = (BJH, DQC) +KTJ = (QBQ, PPC) +NMD = (RHB, GCD) +DFB = (PNP, HVJ) +GHG = (TGH, FQM) +LGC = (RQQ, KFQ) +NTS = (KJK, SMK) +BFM = (JLB, SFN) +HHK = (NFR, XDR) +PCN = (KKC, TQG) +XJV = (LLB, FXJ) +PPC = (NNK, KQC) +DTB = (RFH, FKB) +QNM = (RQJ, RXM) +HGN = (FJJ, HKQ) +PHJ = (HRH, LCF) +CMR = (VQK, TBM) +SXL = (TVV, TCP) +HPT = (XLR, HGK) +XVX = (PPP, QHF) +XRC = (PCC, SFT) +QXB = (HRR, SHN) +JMV = (RKL, RMN) +RTN = (MRN, STL) +JDD = (LDQ, QPB) +JTB = (HHJ, MGG) +MLM = (TVM, NBF) +BJP = (XTT, XTT) +HQN = (TXT, NJF) +XGV = (KHB, PPS) +XDB = (BHQ, XXC) +QVC = (GNB, CSV) +SFT = (LRD, XXR) +MXB = (MCR, DJK) +NQV = (CVM, PBV) +JQM = (TCP, TVV) +LFG = (BDT, RMH) +SMK = (LMT, PCR) +BXJ = (QMR, TVP) +LDD = (RQX, NGP) +RDX = (DFD, DSX) +KNQ = (BNF, QNS) +JLN = (MBF, XLS) +QFM = (CDD, GCT) +RND = (RTR, QPQ) +FLC = (BJN, NBR) +RRC = (CPK, DDC) +RVD = (DCC, NSC) +KQF = (TDG, HPN) +MPN = (MDC, FDF) +HKQ = (XDM, VCC) +PPK = (BTF, NQV) +QHS = (PRQ, MLJ) +HGK = (RXC, HBL) +DNX = (GMG, TBB) +HVJ = (HCD, DXG) +NHX = (RCF, RQF) +KHB = (PQN, PHV) +LNV = (VJF, BKH) +QMT = (XDJ, LQV) +VJK = (TXB, SJF) +PJH = (HLH, GVJ) +QNS = (MPN, BDP) +TVP = (RLR, MQN) +GBR = (HGG, TJG) +BRM = (LXV, FRK) +JFS = (FXG, CFK) +TKR = (TFD, CDS) +NBR = (KNX, NXQ) +KMJ = (PDS, FGF) +LKK = (NBR, BJN) +KPD = (MBK, TTT) +FVH = (FLL, XPM) +DSF = (JNP, HCM) +FCD = (HTC, XSK) +RNP = (MHH, HQS) +XBB = (SQB, SNM) +SDS = (GNX, BBP) +KBP = (XXT, KXJ) +FDF = (GSV, KGV) +CKP = (MSV, TTX) +MST = (QND, CHR) +RMH = (KNP, SQC) +JJQ = (MFN, VKS) +BXF = (RQT, JGF) +TCP = (JBV, QKC) +LTR = (BJP, BJP) +MNT = (XLR, HGK) +NXX = (NMF, MRM) +KFF = (TDG, HPN) +NCC = (THG, MVT) +KGV = (PKP, RMP) +HVH = (NJG, BND) +RKL = (STN, GTF) +CTH = (TST, LFR) +FQF = (NNC, XBB) +LFR = (GTM, FCD) +SLD = (HNM, MQQ) +TTJ = (FFR, FFR) +DQJ = (MNJ, LSB) +RQF = (XRC, FNX) +XHR = (GGJ, KTJ) +HJP = (CCD, JXG) +CTC = (QVL, KSN) +GQM = (TJM, HHN) +TGT = (MCP, MDH) +PBK = (MBK, TTT) +JGF = (MQX, BXJ) +FLL = (NVD, FKG) +TGH = (VVC, LVF) +MQN = (NKD, JNC) +SVX = (XCM, PPX) +MCP = (HVH, SVN) +FSN = (NXL, SGG) +TQG = (GXX, LDD) +HBA = (QCG, KMM) +DMK = (VCF, KHG) +QKD = (FXF, QFG) +MDH = (SVN, HVH) +QTM = (XCM, PPX) +PMP = (HGG, TJG) +JXS = (TSM, LDX) +LDQ = (NXT, DDV) +KNX = (BPX, RND) +KNP = (HKV, CDT) +XCM = (MPQ, HKC) +KMM = (VXM, XSH) +FFR = (QBS, QBS) +PLN = (GRH, QXB) +JFF = (QTS, SSQ) +FVK = (NBM, JCB) +TQN = (DKD, HHV) +HGX = (MSR, GVB) +CSD = (HHK, BFQ) +CNJ = (SLH, NXX) +THD = (XXC, BHQ) +TNL = (XGH, XKN) +MHH = (GGP, MST) +KQD = (DNK, QGR) +TSD = (VHK, QRH) +DSB = (BGV, NFK) +CPN = (TPG, LPH) +KBV = (LPH, TPG) +DTS = (PQR, BXX) +PPX = (MPQ, HKC) +LLP = (LVH, CJH) +PLL = (SJF, TXB) +CVS = (VLG, FGC) +HHJ = (CSD, DQV) +QFQ = (BTT, VBP) +FVP = (PPK, MLT) +TFV = (QBV, GQG) +NPK = (KNQ, RPV) +DVQ = (RNV, FPF) +DSX = (DGJ, RQB) +PBV = (CMP, JSH) +SQX = (JBN, RPD) +VJC = (SBD, HRK) +RLR = (NKD, JNC) +FTN = (MFN, VKS) +TRB = (RRC, SHR) +LVH = (XDB, THD) +NXB = (CMR, VDB) +JSM = (HQJ, GTD) +HHH = (XXF, JJB) +RPD = (JDD, RPL) +XSF = (QXB, GRH) +XPM = (FKG, NVD) +BNR = (CCT, NXD) +HKN = (KXJ, XXT) +KCP = (FFR, XVB) +PHB = (QFM, PPD) +DLC = (PMP, GBR) +GMG = (FKD, LKP) +DQC = (HQP, MLM) +SMM = (SXL, JQM) +SBP = (JRG, XHR) +GCR = (FPF, RNV) +FNX = (PCC, SFT) +PQB = (NKM, CMF) +TJM = (NXB, NPP) +PPS = (PQN, PHV) +BDP = (FDF, MDC) +CXN = (XPM, FLL) +VDB = (TBM, VQK) +SBD = (TDP, JBM) +NXQ = (RND, BPX) +DRH = (HXN, SKC) +VBG = (BCS, GSN) +LSJ = (GNX, BBP) +VCP = (KMQ, RMC) +MVL = (VMG, SCG) +JCB = (TPD, CVS) +MGG = (DQV, CSD) +RXS = (JTT, RNJ) +BTF = (PBV, CVM) +DFD = (DGJ, RQB) +GGJ = (PPC, QBQ) +BPK = (VBT, KQD) +DKD = (CNN, HSD) +SQD = (PHJ, CSL) +PQG = (JFM, PJH) +RMN = (STN, GTF) +RCV = (HRK, SBD) +MBK = (GKQ, MJS) +CXR = (SDS, LSJ) +XSK = (PLV, TQN) +FBR = (BFM, GQH) +GCD = (KDQ, HQD) +PMF = (FGM, JHQ) +XLP = (RFT, BMN) +NSC = (QFQ, QJL) +SHR = (CPK, DDC) +DXL = (TQG, KKC) +TTH = (XTT, TKZ) +CGS = (KSN, QVL) +QHF = (HGX, JJT) +NFR = (XPS, RDX) +CHR = (BBK, FLR) +RPL = (LDQ, QPB) +GTD = (MRJ, KJH) +PNP = (HCD, DXG) +GCT = (QKV, SQX) +SGG = (CRV, PQB) +HNN = (BVB, NMD) +HLK = (CLM, DDL) +GSN = (VDJ, HNN) +KFB = (JRQ, DSF) +XXR = (FNS, VDV) +FJJ = (XDM, VCC) +TCJ = (HJP, XSP) +DJK = (RTL, LSC) +NJF = (FKL, BNB) +BGV = (JSD, GQM) +JSH = (VTG, XVX) +JBV = (RMD, SKL) +RNV = (KBV, CPN) +FKB = (KMJ, DKH) +CDT = (HVC, DTS) +TQT = (TPR, VSF) +FNG = (LKK, FLC) +RBJ = (GFB, FBF) +RTR = (KFB, VHB) +BKH = (SGJ, DCM) +JRG = (GGJ, KTJ) +GTF = (TVC, QHQ) +JXG = (KQF, KFF) +MBF = (GXS, NQR) +GNB = (FLF, MTB) +KFK = (FMH, DLS) +LBT = (GQG, QBV) +CGT = (VSF, TPR) +GVA = (CTG, VQH) +FNP = (GLL, TPP) +RQT = (BXJ, MQX) +CDV = (BPK, FXM) +JCX = (QVX, LKM) +XSH = (SXB, JVV) +HKV = (DTS, HVC) +MRN = (HRB, LMR) +SBX = (CHT, SQD) +FRP = (CTG, VQH) +HHN = (NPP, NXB) +NGG = (SJL, SJL) +BJB = (KRL, JNR) +GNX = (LTR, LTR) +RCR = (KBH, NCC) +NDN = (MQM, JFF) +VXT = (JGF, RQT) +PPG = (BBG, THJ) +CDS = (TSD, HVZ) +VSJ = (LGC, CTR) +NSN = (DNF, TMT) +VRJ = (GBR, PMP) +CDQ = (VLF, SBP) +XDN = (HXN, SKC) +LCF = (FTM, CDQ) +HCQ = (DCF, RTN) +BPF = (KMQ, KMQ) +NNC = (SQB, SNM) +LQV = (SHQ, FTC) +VFH = (NRT, NRT) +VHK = (TMN, FNG) +LPH = (BMT, NHX) +PPD = (GCT, CDD) +BXH = (VTD, XTD) +LMT = (TLL, DSB) +TSM = (TKH, BHK) +KMQ = (NCS, NCS) +FTV = (RXM, RQJ) +XGJ = (MFQ, DPG) +RXM = (TSJ, HQG) +QBV = (SSH, QTB) +TBM = (HHR, FVK) +CCR = (MRR, JFS) +SKL = (GHG, XVN) +HRK = (JBM, TDP) +MFQ = (PQG, PDF) +DNK = (QJX, BGP) +BDL = (GMG, TBB) +MQQ = (HKN, KBP) +RQR = (THJ, BBG) +KFM = (GKN, DFN) +XKN = (HTL, PVS) +PDF = (JFM, PJH) +TTT = (GKQ, MJS) +RHG = (SFQ, XMX) +XTD = (NGG, NRM) +LXV = (SBT, HCQ) +HCD = (NPK, SBC) +TFT = (RFT, BMN) +DDK = (MCS, DFR) +DFR = (SBX, TRH) +BND = (GHM, BDJ) +SFN = (GXB, HND) +HQD = (QKD, XRD) +RMC = (NCS, LLZ) +RQQ = (PBK, KPD) +LKP = (PVK, SBM) +PQR = (SHC, NDN) +DGJ = (TKT, XXV) +CHF = (QCG, KMM) +SCG = (BDL, DNX) +TJG = (HHH, KJG) +PDV = (FVP, NXF) +HGG = (KJG, HHH) +VHB = (JRQ, DSF) +KBH = (THG, MVT) +PVD = (BRM, LSV) +MNJ = (HKB, SPH) +CJH = (THD, XDB) +DCF = (STL, MRN) +XLS = (GXS, NQR) +SBC = (RPV, KNQ) +BTH = (LDX, TSM) +CPV = (JXS, BTH) +DGR = (XLP, TFT) +NFK = (GQM, JSD) +VBP = (THN, BDB) +RTL = (HQN, XQT) +SJL = (FRP, FRP) +XPC = (QFM, PPD) +FXM = (VBT, KQD) +MCK = (FJJ, HKQ) +KRM = (DPD, JTB) +BNF = (MPN, BDP) +SQB = (MHV, FSN) +QKV = (JBN, RPD) +QBQ = (KQC, NNK) +FPF = (CPN, KBV) +SPH = (XBH, RXS) +PLV = (HHV, DKD) +DQV = (BFQ, HHK) +NJQ = (LHV, TQC) +PXH = (LKM, QVX) +TMN = (FLC, LKK) +LVF = (FBR, GTB) +BCS = (VDJ, HNN) +HHR = (JCB, NBM) +HHD = (NXD, CCT) +FGF = (QHS, NPB) +LSC = (XQT, HQN) +HQJ = (MRJ, KJH) +CHT = (PHJ, CSL) +HLH = (DGR, LTS) +NRD = (DDP, NSN) +JBN = (JDD, RPL) +TRT = (KBH, NCC) +HHV = (HSD, CNN) +DDL = (QCT, KLR) +CSV = (MTB, FLF) +SLH = (NMF, MRM) +THJ = (VLR, RNP) +CTG = (VJC, RCV) +MLL = (HVT, TDH) +HLV = (BPF, BPF) +XJS = (DQC, BJH) +RMD = (GHG, XVN) +BGP = (GCR, DVQ) +RCF = (FNX, XRC) +GHM = (XBL, CPV) +DLS = (HPT, MNT) +BDB = (BJB, QHM) +SVN = (BND, NJG) +NSV = (HVJ, PNP) +VQC = (GNB, CSV) +BHR = (PPG, RQR) +CCD = (KFF, KQF) +SBB = (TBJ, HLK) +VVC = (FBR, GTB) +SHQ = (VFH, TPL) +VMF = (MNJ, LSB) +MSV = (XPN, VSJ) +TDH = (JJQ, FTN) +RXC = (DQJ, VMF) +RSP = (MQQ, HNM) +SSH = (GLF, RVD) +LTS = (TFT, XLP) +HTC = (PLV, TQN) +GLF = (NSC, DCC) +BTT = (THN, BDB) +DFN = (RPC, CPJ) +NKM = (QMT, FJT) +RMP = (LLP, GHD) +PRQ = (DLC, VRJ) +TBJ = (CLM, DDL) +CPJ = (FSM, FQF) +LHD = (GSN, BCS) +GLL = (RBJ, RBJ) +TXT = (FKL, BNB) +NCS = (VHR, HCS) +GLQ = (JFN, TNL) +BMT = (RCF, RQF) +JRQ = (HCM, JNP) +FXJ = (VXT, BXF) +GMR = (LBT, TFV) +NMH = (XJS, BCN) +RQX = (JSJ, JSJ) +VXM = (JVV, SXB) +PCH = (SLH, NXX) +TXV = (XGJ, RGP) +XNB = (FKB, RFH) +JPS = (FTV, QNM) +JSJ = (TFD, TFD) +LLZ = (HCS, VHR) +HPN = (QTM, SVX) +DPG = (PQG, PDF) +NKD = (CTC, CGS) +TKZ = (BHR, BGC) +HRB = (KFM, LMM) +TLL = (NFK, BGV) +MPQ = (KDN, DSR) +BVB = (RHB, GCD) +JFN = (XKN, XGH) +QTB = (RVD, GLF) +BFQ = (NFR, XDR) +LCT = (SDS, LSJ) +SQL = (BCN, XJS) +LML = (MCS, DFR) +NMF = (SFR, NRD) +CPK = (BXH, QXK) +JHQ = (RFS, BQS) +QRH = (FNG, TMN) +MLT = (NQV, BTF) +BJH = (HQP, MLM) +XHC = (TBJ, HLK) +VQK = (FVK, HHR) +NXD = (LJB, NTS) +FSM = (NNC, XBB) +KHG = (GTC, RPG) +RTX = (BKH, VJF) +HSD = (PXH, JCX) +PND = (JTB, DPD) +CRV = (NKM, CMF) +FMH = (HPT, MNT) +BPX = (QPQ, RTR) +THN = (BJB, QHM) +XBH = (JTT, RNJ) +GVJ = (LTS, DGR) +KRL = (DFB, NSV) +XPS = (DFD, DSX) +TST = (GTM, FCD) +GKQ = (PDV, NQK) +HKC = (KDN, DSR) +DQH = (VBR, JLN) +GJF = (JFN, TNL) +QBS = (CHF, CHF) +HTL = (NXP, LGP) +MCS = (TRH, SBX) +RKR = (BRM, LSV) +VBR = (MBF, XLS) +FKD = (SBM, PVK) +FXF = (TVX, TCJ) +FBF = (KRM, PND) +QJL = (BTT, VBP) +QJX = (GCR, DVQ) +NGC = (FMH, DLS) +TPG = (BMT, NHX) +GTM = (HTC, XSK) +CTR = (KFQ, RQQ) +NQR = (HHD, BNR) +XGH = (PVS, HTL) +LKM = (VJK, PLL) +SHN = (JPM, PMF) +LMM = (DFN, GKN) +DDV = (SBB, XHC) +GQG = (QTB, SSH) +DDP = (DNF, TMT) +CSL = (HRH, LCF) +LLB = (VXT, BXF) +NPP = (VDB, CMR) +HKJ = (RHG, PNM) +QVL = (HGN, MCK) +TVV = (JBV, QKC) +MVT = (SXP, PTL) +VBT = (DNK, QGR) +XRD = (QFG, FXF) +GTB = (BFM, GQH) +JNP = (XPC, PHB) +KTC = (MDH, MCP) +QVX = (PLL, VJK) +QFN = (TRB, NVQ) +VLR = (HQS, MHH) +BDT = (SQC, KNP) +JCP = (TDH, HVT) +KKC = (GXX, LDD) +BDJ = (CPV, XBL) +GRH = (SHN, HRR) +GXB = (RBC, BTC) +MNF = (CHF, JLZ) +FGM = (RFS, BQS) +RVJ = (SXL, JQM) +FXG = (NGC, KFK) +HND = (RBC, BTC) +NXT = (XHC, SBB) +FKG = (KTC, TGT) +MQX = (QMR, TVP) +JJT = (GVB, MSR) +MHV = (SGG, NXL) +KJG = (JJB, XXF) +SBT = (DCF, RTN) +TPR = (QFN, HTG) +BNB = (XGV, MRQ) +XXT = (VBG, LHD) +PKP = (LLP, GHD) +HCS = (GLQ, GJF) +TKT = (XSF, PLN) +HRR = (PMF, JPM) +BHQ = (CGT, TQT) +FKL = (XGV, MRQ) +HRH = (FTM, CDQ) +QPB = (NXT, DDV) +XDJ = (SHQ, FTC) +PTT = (GTD, HQJ) +MDC = (KGV, GSV) +KXJ = (VBG, LHD) +FLF = (NJQ, MFB) +FTM = (VLF, SBP) +QCT = (FFV, MXB) +HTG = (TRB, NVQ) +TKH = (JCP, MLL) +XXC = (CGT, TQT) +MFN = (TTJ, KCP) +HQS = (MST, GGP) +GKN = (CPJ, RPC) +RQB = (XXV, TKT) +VKS = (TTJ, KCP) +QMR = (RLR, MQN) +XTT = (BGC, BHR) +MRJ = (JKQ, CCR) +SKC = (SMM, RVJ) +PVS = (LGP, NXP) +GXS = (BNR, HHD) +GVB = (GSG, CTH) +FQM = (LVF, VVC) +CMP = (XVX, VTG) +NVA = (VHK, QRH) +CCT = (NTS, LJB) +KJZ = (VQH, CTG) +STN = (TVC, QHQ) +HQP = (TVM, NBF) +DDC = (BXH, QXK) +QGR = (QJX, BGP) +GHD = (CJH, LVH) +MTB = (MFB, NJQ) +SSQ = (DRH, XDN) +QND = (FLR, BBK) +LGP = (CNJ, PCH) +RPG = (JSM, PTT) +XXF = (CDH, TXV) +XDM = (SRV, GMR) +VLG = (JPG, VJM) +NJG = (BDJ, GHM) +VCF = (GTC, RPG) +DSR = (QBJ, JPS) +DNF = (SLD, RSP) +MSR = (GSG, CTH) +BBG = (VLR, RNP) +XXV = (PLN, XSF) +MLJ = (VRJ, DLC) +MFB = (LHV, TQC) +QPQ = (KFB, VHB) +DCM = (CDV, BCH) +NRM = (SJL, VDX) +JNC = (CTC, CGS) +XQT = (TXT, NJF) +FLR = (NMH, SQL) +BQS = (DDK, LML) +BTC = (FVH, CXN) +QHM = (KRL, JNR) +RFT = (HLV, NMQ) +KLR = (FFV, MXB) +SHC = (MQM, JFF) +LNK = (VMG, SCG) +QCG = (VXM, XSH) +VMG = (DNX, BDL) \ No newline at end of file diff --git a/resources/day8lucy.txt b/resources/day8lucy.txt new file mode 100644 index 0000000..0214b99 --- /dev/null +++ b/resources/day8lucy.txt @@ -0,0 +1,732 @@ +LLLLLLLRRRLRRRLRLRLRLRRLLRRRLRLLRRRLLRRLRRLRRLRLRRLRLRRRLRRLRLRRRLRRLRRLRLRRLLRLLRLRRRLRRLRLLLLRRLLLLRLRLRLRRRLRLRLLLRLRRRLRRRLRRRLRLRRLRRRLRLLLRLLRRLRRRLRRLRRLRRLRLRRRLRLRLRLLRRRLRRRLRRLRRRLLLRRLRRLRRRLRLRRRLRRRLRLRRLRRRLRLRRLRLRRLRRRLRLRRLRLLRRRLLRLRRLRRRLLLRLRRLRRRR + +DGK = (KVQ, XHR) +KTC = (TVB, MTH) +CGR = (VVK, BKP) +LCG = (FQC, KHX) +PSZ = (FSF, QSM) +FBJ = (FHP, SPX) +KJD = (NRQ, VDH) +NCM = (JPJ, KNG) +TXH = (HNK, VHQ) +NND = (TRC, DFM) +JQN = (CNX, XLD) +RHB = (CDG, GBT) +JBN = (PXV, GVN) +DFC = (JRN, TXH) +TXG = (CHT, VBL) +XXQ = (JDC, JGV) +SVF = (FVD, LHQ) +FVK = (LCG, RNB) +XKT = (MPF, XJJ) +MHB = (JSJ, VQM) +FVC = (HXF, VVN) +JJR = (VNS, SLM) +RMT = (GDS, XHP) +CHT = (PXS, VLF) +SFJ = (XGC, LPM) +BJL = (XDN, VXN) +PQK = (NHS, DVB) +PDB = (JPQ, TVJ) +RGL = (DNN, NCN) +KRN = (SBL, PHL) +MTF = (PJL, KQR) +BTL = (CCF, LDP) +NLV = (CPM, HVL) +GCQ = (QMF, JVH) +KVH = (VKD, PQG) +RLB = (GSS, JVP) +QRB = (TNL, DKN) +JFV = (RDR, NSB) +BFC = (LGH, XLX) +HGQ = (SLM, VNS) +FQC = (VFQ, BXC) +DDS = (XHR, KVQ) +VQV = (SFT, BFQ) +XFD = (HVV, FLH) +TVP = (XQF, KSS) +GBH = (NPX, LDB) +KHL = (MGS, MMD) +NPX = (BJL, SFF) +VMG = (DHX, GVC) +RTJ = (XRF, BPK) +TLM = (NCG, QBB) +LXS = (TVB, MTH) +XNM = (QFL, KQK) +KQR = (QRD, JBN) +JQD = (DNN, NCN) +QCF = (MXL, MXL) +QMH = (NKG, SDJ) +NKK = (MCB, RLB) +MPJ = (BTL, JTF) +TLS = (VPJ, LMD) +XJB = (LML, TKZ) +HGF = (HBF, QHB) +KNJ = (QKM, XLR) +XCF = (QCJ, HTN) +HFS = (NKC, JFV) +QLS = (QBB, NCG) +QFL = (NXQ, QBN) +MTH = (FLN, LQR) +VND = (KMM, MQH) +NQQ = (VVH, NDL) +BTV = (QSM, FSF) +SLT = (NRQ, VDH) +NKG = (TBV, XCV) +SLM = (LBN, HPK) +CMQ = (KKS, VBH) +JTF = (LDP, CCF) +VFC = (GKH, KPS) +KCC = (JVM, MTF) +KFP = (MVX, NMX) +NQF = (QSK, KCC) +GGC = (VBV, TJR) +QQS = (NKK, NQC) +LXK = (FXC, QBC) +DVQ = (TFF, LKB) +PBL = (BGQ, FHQ) +KHV = (BVJ, XSD) +LDB = (SFF, BJL) +RJG = (LJB, CJM) +RCX = (QTB, PPL) +FLH = (HSX, KVX) +XTV = (HST, VCC) +GDC = (CMH, NCT) +RDP = (FKR, GHJ) +NXM = (PVV, KRX) +SCQ = (MFN, GRB) +MRT = (XGT, VLK) +DHJ = (XHP, GDS) +XFL = (TJK, QMH) +XQF = (CCQ, RPH) +CLV = (CKD, CCD) +CMT = (NCD, XDM) +NCT = (SXG, CLF) +JSS = (GMJ, LJC) +TLQ = (CRC, DXQ) +DMJ = (HHB, DRV) +JBH = (FVC, HDX) +QXK = (QSB, JBH) +DQN = (QMD, GDN) +SDH = (PRH, BCX) +QSB = (HDX, FVC) +MTP = (VVG, SPN) +CTM = (MFG, GGJ) +HND = (MNV, TXG) +MJS = (DMJ, QQG) +JNL = (LKB, TFF) +QLL = (FKM, HNH) +PNM = (PQR, NRL) +VSF = (LPM, XGC) +QBC = (QQS, MVF) +BFM = (FBP, BQJ) +KNG = (RTJ, CXN) +VFQ = (HFS, LBS) +LKB = (QVB, TXF) +KQD = (CDJ, CDJ) +ZZZ = (DHJ, RMT) +XKX = (HVP, NJF) +GSL = (QMS, DHM) +PNT = (CDJ, GJZ) +KBN = (CMQ, JBG) +DNX = (SFM, GFJ) +NMX = (XRR, LKL) +VPJ = (PSK, GQL) +XQD = (QCF, QCF) +HRM = (RHB, XXJ) +LCL = (MRT, FMB) +DRG = (RNB, LCG) +BKP = (QLL, MMQ) +FSF = (SLR, XGV) +KHX = (BXC, VFQ) +SXG = (NHL, KGK) +MJD = (TDH, RFP) +NRL = (CSG, MPT) +FBP = (QGC, GXH) +HDT = (LHQ, FVD) +BMP = (RMG, JXM) +NCN = (SLT, KJD) +NXQ = (JPP, QQL) +NGV = (HNJ, VVQ) +NPN = (MXL, NJK) +FVD = (XBQ, NKF) +GQM = (QCG, GGC) +QBP = (XML, HND) +VQT = (BTL, JTF) +HKP = (CMH, NCT) +JHP = (NDL, VVH) +FRL = (SHD, FNH) +FLN = (NVL, HGF) +MXH = (QSD, KKR) +BGL = (XCX, RFC) +RSQ = (MKH, TLS) +VML = (RJM, CXK) +XHP = (MJS, DNP) +GRV = (XRN, TVQ) +GKH = (BCF, VSD) +SPH = (MVX, NMX) +TLD = (LFR, GFQ) +LML = (QKS, NND) +PKT = (VXC, CMF) +LLQ = (THT, GRV) +CKD = (SPB, QDV) +KRM = (JQV, JNG) +RNS = (HJJ, MLV) +FKR = (FKK, BHN) +XNH = (SCQ, KLF) +GDN = (LBL, FHT) +CRB = (NHQ, QRB) +JKQ = (DPT, KBN) +NJF = (RJG, NGF) +NRT = (NSK, CSL) +LJR = (VTT, HCQ) +HLK = (DFC, DPV) +PQR = (MPT, CSG) +DNF = (NJF, HVP) +MPV = (HJD, XSF) +TBV = (XTJ, SVH) +LKX = (XFJ, HBM) +KTP = (CGR, RVR) +HVL = (BJH, QXK) +GJD = (XJJ, MPF) +HLC = (VVQ, HNJ) +JTX = (NCD, XDM) +CSG = (MFF, RKT) +PCH = (PGJ, GQM) +SFF = (VXN, XDN) +TCF = (KNG, JPJ) +LDP = (XFD, SBS) +XCR = (GJD, XKT) +QBM = (GFB, LRH) +CLP = (RJM, CXK) +MTT = (HST, VCC) +TQL = (BPM, GGT) +LFR = (HNF, RDP) +JHN = (CMT, JTX) +XCX = (CHG, CHG) +XGT = (HLK, QJF) +TQS = (TKL, MNF) +KFL = (HGQ, JJR) +LHQ = (XBQ, NKF) +CCQ = (DBP, HHC) +TKL = (VDN, PBP) +LBX = (BXM, SDH) +XLX = (NGJ, LHJ) +GVN = (BPG, TNK) +CCX = (HCQ, VTT) +KQK = (QBN, NXQ) +NQC = (MCB, RLB) +MPF = (DFT, SBG) +BNH = (MLV, HJJ) +CJM = (LBH, TNM) +CND = (VKB, PGQ) +HXM = (GMJ, LJC) +TKZ = (NND, QKS) +RKT = (LNQ, KFL) +GXH = (RQP, LBX) +TFF = (QVB, TXF) +LNK = (FDC, MXH) +KPK = (BNH, RNS) +QQG = (HHB, DRV) +MFP = (PQK, NBF) +VVK = (QLL, MMQ) +GFB = (RHN, LCN) +PPD = (QCJ, HTN) +FXV = (BPM, GGT) +KSS = (CCQ, RPH) +KCM = (LTB, PCH) +RHN = (FXV, TQL) +LFV = (DDJ, NQF) +JKG = (BGQ, FHQ) +MBS = (RQJ, LDQ) +HHC = (NGV, HLC) +CCD = (QDV, SPB) +RFM = (FTB, HSB) +QCG = (VBV, TJR) +GRH = (LXK, LGQ) +CDJ = (QQJ, BFC) +THT = (TVQ, XRN) +QRD = (PXV, GVN) +VHQ = (SXV, GJL) +MLV = (VRM, MCP) +XRR = (CLV, PBJ) +NMS = (DGK, DDS) +JPS = (JKT, KHL) +DJJ = (QMS, DHM) +MFG = (TLQ, VQD) +GPQ = (SHL, BNR) +QVB = (GDC, HKP) +LNN = (CMF, VXC) +VBQ = (LNN, PKT) +MMS = (SVV, HRM) +BGJ = (HXM, JSS) +QCK = (JSJ, VQM) +PKB = (XNH, JQH) +BCF = (TQR, TLL) +JRN = (VHQ, HNK) +SHL = (DMK, JBX) +LRG = (NSK, CSL) +NJV = (FJH, TXC) +GHQ = (FSB, HFX) +LHN = (TLS, MKH) +HBF = (BMP, GLM) +DTP = (DVQ, JNL) +FXR = (FTB, HSB) +PDS = (XLD, CNX) +SXV = (CPC, JNF) +QMF = (GGF, JDP) +JVP = (GPC, DNX) +RMG = (HRF, PKB) +LRH = (LCN, RHN) +HVP = (RJG, NGF) +TRC = (VKX, RQL) +PJL = (QRD, JBN) +HNK = (GJL, SXV) +CHM = (NBF, PQK) +PGH = (KMM, MQH) +SDN = (MFP, CHM) +DMK = (VRP, NNX) +MRR = (NGK, SMQ) +QDV = (NDM, JPT) +PGJ = (QCG, GGC) +BVJ = (NLV, HBR) +PGQ = (BGK, GBH) +LKL = (CLV, PBJ) +FDC = (KKR, QSD) +JDP = (PDB, PTX) +NJJ = (HSJ, GRH) +TVJ = (HDT, SVF) +NJK = (RBV, ZZZ) +HHN = (DPP, TLD) +QMS = (BLS, TQS) +QVR = (CVB, BNJ) +FFQ = (RMJ, HGZ) +LGQ = (QBC, FXC) +JPP = (RSG, KTG) +DPV = (TXH, JRN) +HBR = (CPM, HVL) +NSK = (JQN, PDS) +SBS = (HVV, FLH) +BFQ = (VBQ, JPB) +LBN = (LXJ, CCR) +RBD = (KRM, PNX) +NQX = (LML, LML) +XSA = (QKS, NND) +NDB = (HFX, FSB) +QMD = (LBL, FHT) +XTJ = (JDT, JDT) +GLH = (SHL, BNR) +FXC = (MVF, QQS) +HSX = (NFN, LVG) +JNF = (JJH, FNR) +CXK = (SPC, TVP) +GGF = (PDB, PTX) +XBQ = (QNX, JCQ) +LJC = (SFJ, VSF) +MMD = (XLK, CND) +HFG = (JKT, KHL) +NHQ = (TNL, DKN) +JVM = (KQR, PJL) +CGH = (RTC, VFC) +HNF = (GHJ, FKR) +TMF = (NMS, GJH) +NGJ = (NXM, BDB) +MRM = (JKQ, MPS) +QTC = (JSS, HXM) +TNM = (JFF, QXR) +DHK = (LJR, CCX) +XSB = (MRR, CXC) +XRN = (XDP, QBP) +XCV = (XTJ, SVH) +VVA = (QSM, FSF) +NKC = (RDR, NSB) +MXL = (RBV, RBV) +PTX = (TVJ, JPQ) +VRL = (NQX, XJB) +RQK = (MPS, JKQ) +PBJ = (CKD, CCD) +VRP = (DQN, QLC) +KLF = (MFN, GRB) +XXJ = (GBT, CDG) +HST = (QHV, MMS) +SFT = (JPB, VBQ) +NRR = (LCL, MQR) +CSL = (JQN, PDS) +LHJ = (BDB, NXM) +TXK = (DHK, KLC) +CDK = (XCX, XCX) +FHT = (NGQ, JHN) +QQJ = (LGH, XLX) +BQJ = (GXH, QGC) +TTA = (QKM, XLR) +TVB = (FLN, LQR) +PPL = (FRL, NCX) +SPS = (XFJ, HBM) +SVH = (JDT, VRL) +QBB = (PXG, MTP) +JSJ = (VVB, NRR) +KKS = (RGL, JQD) +JDT = (NQX, NQX) +GKQ = (LLT, JRH) +VVH = (BPT, KRN) +JCQ = (CRB, PBS) +QXR = (BTV, PSZ) +VQR = (RCX, KKP) +QSM = (SLR, XGV) +JKD = (JDC, JGV) +XLD = (LFS, QVR) +TJK = (NKG, SDJ) +PVV = (HDK, VQV) +BDB = (PVV, KRX) +MPS = (KBN, DPT) +FHP = (PPD, XCF) +HTN = (KCM, PXC) +GHJ = (BHN, FKK) +JCC = (LQM, KVH) +LQR = (HGF, NVL) +LGM = (DDJ, NQF) +NJN = (QCF, NPN) +PRH = (DFF, DFF) +XDM = (FBJ, PJM) +HFN = (KRS, XSB) +GLM = (JXM, RMG) +RQP = (BXM, SDH) +BPG = (QJT, KTP) +JPB = (LNN, PKT) +DKN = (CJD, BGR) +CDG = (GSL, DJJ) +XDN = (CGM, VMG) +NQP = (SKT, JCC) +DNP = (QQG, DMJ) +NNX = (DQN, QLC) +FTB = (JFL, VJJ) +FHQ = (SMJ, XFK) +GGT = (KPK, LNT) +NGF = (LJB, CJM) +QFX = (KCN, TMF) +NKF = (JCQ, QNX) +DBP = (NGV, HLC) +RBV = (RMT, DHJ) +NML = (MBV, VCG) +KXJ = (MXH, FDC) +GFQ = (RDP, HNF) +SHD = (CMG, CTM) +GTX = (LNK, KXJ) +HXF = (KTC, LXS) +CMM = (NQP, SBR) +SDJ = (TBV, XCV) +CHG = (RMJ, RMJ) +DPT = (CMQ, JBG) +BGR = (RLM, NML) +THM = (XQD, NJN) +HJJ = (MCP, VRM) +NRQ = (JHR, GCQ) +KKR = (HSN, NJJ) +KVX = (LVG, NFN) +LTT = (TLD, DPP) +NVL = (QHB, HBF) +CXN = (XRF, BPK) +KLC = (CCX, LJR) +JDC = (DNF, XKX) +MGS = (XLK, CND) +RLM = (VCG, MBV) +VDN = (NMQ, TPR) +HSB = (JFL, VJJ) +HDS = (KLC, DHK) +XSD = (NLV, HBR) +HJD = (NJQ, PBQ) +CGM = (DHX, GVC) +LDQ = (PBL, JKG) +RDR = (XHQ, MGQ) +GPC = (GFJ, SFM) +NQT = (KRS, XSB) +TDH = (RBD, XLP) +QJF = (DFC, DPV) +VNS = (HPK, LBN) +QSD = (NJJ, HSN) +JHR = (QMF, JVH) +SMQ = (FXR, RFM) +CMG = (MFG, GGJ) +NKQ = (VFC, RTC) +VXC = (LHN, RSQ) +DHX = (LCT, XNM) +TCX = (NQT, HFN) +DRV = (TFN, QBM) +JPT = (GQX, XCR) +HRF = (JQH, XNH) +MCS = (BGJ, QTC) +PQG = (NCM, TCF) +XHR = (PJK, VPN) +MLX = (PGH, VND) +MKH = (VPJ, LMD) +TJR = (VQT, MPJ) +VLF = (GLG, QFX) +JNG = (KLR, MPV) +HDK = (BFQ, SFT) +HFX = (MLX, SPL) +BXC = (HFS, LBS) +CCT = (GTX, HPT) +VLK = (HLK, QJF) +NCD = (PJM, FBJ) +VGT = (JNL, DVQ) +LMD = (PSK, GQL) +KRX = (HDK, VQV) +QNX = (CRB, PBS) +NJQ = (GHQ, NDB) +TNV = (FBP, BQJ) +GNR = (XQD, NJN) +KKP = (QTB, PPL) +DBX = (KCQ, CPS) +VRM = (TLM, QLS) +LVG = (BRP, NJV) +NHL = (SPS, LKX) +MNV = (VBL, CHT) +PJK = (HHN, LTT) +VBH = (JQD, RGL) +GRB = (NKQ, CGH) +SKT = (KVH, LQM) +TPR = (RXR, KHV) +VVB = (LCL, MQR) +VKX = (MRM, RQK) +LTB = (PGJ, GQM) +QCJ = (KCM, PXC) +BGQ = (SMJ, SMJ) +RCV = (NQQ, JHP) +DHM = (TQS, BLS) +KRS = (CXC, MRR) +JFL = (BLT, PNM) +TXC = (NRT, LRG) +MVX = (LKL, XRR) +QSK = (JVM, MTF) +BGK = (LDB, NPX) +GJZ = (BFC, QQJ) +PXC = (LTB, PCH) +HMQ = (BGJ, QTC) +RXR = (BVJ, XSD) +BXM = (PRH, BCX) +FJH = (LRG, NRT) +GJH = (DGK, DDS) +BPT = (SBL, PHL) +RQL = (RQK, MRM) +SJB = (RQJ, LDQ) +NFN = (NJV, BRP) +MND = (NQQ, JHP) +NMQ = (KHV, RXR) +XGV = (TXK, HDS) +SPC = (KSS, XQF) +RMJ = (SMR, QRS) +CNX = (LFS, QVR) +KLR = (HJD, XSF) +XLP = (KRM, PNX) +LPM = (CMM, PHF) +FNR = (CCT, VTP) +NGQ = (CMT, JTX) +CCR = (BFM, TNV) +LCN = (FXV, TQL) +HVV = (HSX, KVX) +FSB = (MLX, SPL) +GGJ = (TLQ, VQD) +NHS = (DRG, FVK) +RQJ = (PBL, JKG) +VCC = (MMS, QHV) +HDX = (VVN, HXF) +VQM = (NRR, VVB) +TFN = (GFB, LRH) +QRS = (VQR, MDS) +HBM = (VTQ, SDN) +CCF = (SBS, XFD) +VCG = (HMQ, MCS) +NBF = (DVB, NHS) +DVB = (FVK, DRG) +PGB = (TDH, RFP) +XRF = (KFP, SPH) +KMM = (PDJ, GQN) +KTG = (GGQ, HNR) +BJH = (JBH, QSB) +JJH = (CCT, VTP) +LBH = (JFF, JFF) +GLG = (TMF, KCN) +TQR = (THM, GNR) +MQH = (GQN, PDJ) +MQR = (FMB, MRT) +FNH = (CTM, CMG) +SMR = (VQR, MDS) +GDS = (DNP, MJS) +LCT = (KQK, QFL) +VKB = (GBH, BGK) +VTQ = (CHM, MFP) +TNK = (QJT, KTP) +HNJ = (VVS, GCX) +JKT = (MMD, MGS) +PBP = (TPR, NMQ) +CPS = (KNJ, RFZ) +RNB = (KHX, FQC) +CMF = (LHN, RSQ) +HPK = (CCR, LXJ) +MFN = (NKQ, CGH) +HHB = (QBM, TFN) +DDJ = (QSK, KCC) +DFM = (RQL, VKX) +FKM = (GKQ, VJG) +HSJ = (LGQ, LXK) +HPT = (KXJ, LNK) +BNR = (JBX, DMK) +GJL = (CPC, JNF) +DFF = (KCQ, KCQ) +MCB = (GSS, JVP) +CPC = (JJH, FNR) +XLR = (MJK, DSM) +SBG = (JDG, XFL) +XSF = (NJQ, PBQ) +NGK = (RFM, FXR) +HSN = (GRH, HSJ) +LQM = (PQG, VKD) +VXN = (VMG, CGM) +PSK = (VGT, DTP) +JQH = (KLF, SCQ) +RJM = (SPC, TVP) +VSD = (TLL, TQR) +KCN = (GJH, NMS) +QHB = (GLM, BMP) +FMB = (VLK, XGT) +GBT = (DJJ, GSL) +LGH = (NGJ, LHJ) +SLR = (HDS, TXK) +VVQ = (GCX, VVS) +MDS = (RCX, KKP) +KVQ = (VPN, PJK) +CLF = (NHL, KGK) +XFK = (KQD, PNT) +CJD = (NML, RLM) +MCP = (TLM, QLS) +SPL = (PGH, VND) +GSS = (GPC, DNX) +RPH = (DBP, HHC) +HNR = (XXQ, JKD) +VBV = (VQT, MPJ) +PHF = (NQP, SBR) +BRP = (FJH, TXC) +AAA = (RMT, DHJ) +PBQ = (GHQ, NDB) +PXG = (VVG, SPN) +PNX = (JQV, JNG) +XHQ = (SJB, MBS) +VBL = (VLF, PXS) +VVG = (MTT, XTV) +PXS = (GLG, QFX) +MMQ = (FKM, HNH) +PHG = (HFN, NQT) +MFF = (KFL, LNQ) +PJM = (FHP, SPX) +SMJ = (KQD, KQD) +XGC = (CMM, PHF) +PDJ = (QCK, MHB) +SPN = (MTT, XTV) +BPK = (KFP, SPH) +MVF = (NQC, NKK) +LJB = (LBH, LBH) +GQN = (QCK, MHB) +NCG = (MTP, PXG) +GQL = (VGT, DTP) +NCX = (FNH, SHD) +HGZ = (QRS, SMR) +GMJ = (VSF, SFJ) +RFP = (XLP, RBD) +TXF = (GDC, HKP) +NBA = (SMR, QRS) +QTB = (FRL, NCX) +QLC = (GDN, QMD) +QHV = (SVV, HRM) +XTM = (GRV, THT) +VPN = (HHN, LTT) +RFZ = (XLR, QKM) +CMH = (SXG, CLF) +GFJ = (TCX, PHG) +VTT = (LGM, LFV) +RTC = (GKH, KPS) +XFJ = (VTQ, SDN) +GCX = (PGB, MJD) +MJK = (CLP, VML) +QQL = (RSG, KTG) +NSB = (XHQ, MGQ) +HCQ = (LGM, LFV) +GQX = (GJD, XKT) +RVR = (VVK, BKP) +JBG = (KKS, VBH) +JFF = (BTV, BTV) +BPM = (LNT, KPK) +LNQ = (JJR, HGQ) +FKK = (GLH, GPQ) +SBL = (CDK, BGL) +LNT = (BNH, RNS) +JRH = (JPS, HFG) +VVS = (MJD, PGB) +DPP = (LFR, GFQ) +MNF = (PBP, VDN) +QKM = (DSM, MJK) +JPJ = (CXN, RTJ) +QGC = (RQP, LBX) +CVB = (MND, RCV) +RFC = (CHG, FFQ) +KPS = (BCF, VSD) +XML = (MNV, TXG) +JVH = (JDP, GGF) +CRC = (XTM, LLQ) +VJG = (JRH, LLT) +SPB = (JPT, NDM) +JGV = (XKX, DNF) +GGQ = (XXQ, JKD) +XLK = (PGQ, VKB) +JBX = (NNX, VRP) +RSG = (HNR, GGQ) +GVC = (LCT, XNM) +XDP = (XML, HND) +CXC = (SMQ, NGK) +PXV = (TNK, BPG) +NDM = (XCR, GQX) +CPM = (BJH, QXK) +KGK = (LKX, SPS) +BLT = (NRL, PQR) +BHN = (GLH, GPQ) +BLS = (TKL, MNF) +PHL = (CDK, BGL) +BCX = (DFF, DBX) +HNH = (GKQ, VJG) +VKD = (NCM, TCF) +DSM = (VML, CLP) +DNN = (SLT, KJD) +SBR = (SKT, JCC) +TNL = (BGR, CJD) +DFT = (XFL, JDG) +MPT = (RKT, MFF) +TVQ = (XDP, QBP) +LLT = (JPS, HFG) +DXQ = (XTM, LLQ) +SFM = (PHG, TCX) +BNJ = (MND, RCV) +PBS = (NHQ, QRB) +JXM = (HRF, PKB) +VTP = (HPT, GTX) +SVV = (XXJ, RHB) +MHA = (QQJ, BFC) +MBV = (HMQ, MCS) +VJJ = (BLT, PNM) +QJT = (RVR, CGR) +VVN = (LXS, KTC) +QKS = (TRC, DFM) +MGQ = (MBS, SJB) +NDL = (BPT, KRN) +JPQ = (SVF, HDT) +VDH = (JHR, GCQ) +KCQ = (KNJ, KNJ) +XJJ = (DFT, SBG) +JQV = (MPV, KLR) +VQD = (DXQ, CRC) +JDG = (TJK, QMH) +SPX = (XCF, PPD) +LXJ = (TNV, BFM) +LBL = (NGQ, JHN) +QBN = (QQL, JPP) +LFS = (CVB, BNJ) +LBS = (JFV, NKC) +TLL = (THM, GNR) \ No newline at end of file diff --git a/resources/day8sample.txt b/resources/day8sample.txt new file mode 100644 index 0000000..2f77262 --- /dev/null +++ b/resources/day8sample.txt @@ -0,0 +1,5 @@ +LLLRR + +AAA = (AAA, BBB) +BBB = (BBB, CCC) +CCC = (CCC, ZZZ) diff --git a/src/day8/part1.pas b/src/day8/part1.pas new file mode 100644 index 0000000..ece704d --- /dev/null +++ b/src/day8/part1.pas @@ -0,0 +1,82 @@ +program day8part1; +uses sysutils; + +type + MState = (ReadCards, ReadBet); + +var + file_: text; + + instructions: AnsiString; + str: string; + + count: int32; + + steps: int32; + step: char; + + i: int32; + + { node, left, right } + nodes: array[0..1000, 0..2] of string; + +begin + { open inp.txt for reading } + assign(file_, 'resources/day8.txt'); + reset(file_); + + { read instructions } + readln(file_, instructions); + + { read empty line } + readln(file_, str); + + count := 0; + + { read nodes } + while not EOF(file_) do + begin + + readln(file_, str); + + { start } + nodes[count, 0] := copy(str, 1, 3); + { left } + nodes[count, 1] := copy(str, 8, 3); + { right } + nodes[count, 2] := copy(str, 13, 3); + + count := count + 1; + + end; + + { start at AAA } + steps := 0; + str := 'AAA'; + + { until we reach the end } + while CompareText(str, 'ZZZ') <> 0 do + begin + + { get step } + step := instructions[(steps mod length(instructions)) + 1]; + steps := steps + 1; + + { find node } + for i := 0 to count do + begin + if CompareText(nodes[i, 0], str) = 0 then + break + end; + + { go to next node} + case step of + 'L': str := nodes[i, 1]; + 'R': str := nodes[i, 2]; + end; + + end; + + writeln(steps); +end. +