diff options
author | Santo Cariotti <santo@dcariotti.me> | 2024-02-09 11:42:04 +0100 |
---|---|---|
committer | Santo Cariotti <santo@dcariotti.me> | 2024-02-09 11:42:04 +0100 |
commit | db2686c798378738020a0951a521358586e21aa0 (patch) | |
tree | 8d585ceb9bdc302ae10a2458cc343be40d60acb7 /2023/day8 | |
parent | 67dff579e91c13ef40ecb17d14497d145861c5e7 (diff) |
Add day2 in OCaml
Diffstat (limited to '2023/day8')
-rw-r--r-- | 2023/day8/Cargo.toml | 8 | ||||
-rw-r--r-- | 2023/day8/example.txt | 9 | ||||
-rw-r--r-- | 2023/day8/example2.txt | 10 | ||||
-rw-r--r-- | 2023/day8/input.txt | 796 | ||||
-rw-r--r-- | 2023/day8/src/lib.rs | 115 |
5 files changed, 0 insertions, 938 deletions
diff --git a/2023/day8/Cargo.toml b/2023/day8/Cargo.toml deleted file mode 100644 index 4879259..0000000 --- a/2023/day8/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "day8" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/2023/day8/example.txt b/2023/day8/example.txt deleted file mode 100644 index 9029a1b..0000000 --- a/2023/day8/example.txt +++ /dev/null @@ -1,9 +0,0 @@ -RL - -AAA = (BBB, CCC) -BBB = (DDD, EEE) -CCC = (ZZZ, GGG) -DDD = (DDD, DDD) -EEE = (EEE, EEE) -GGG = (GGG, GGG) -ZZZ = (ZZZ, ZZZ) diff --git a/2023/day8/example2.txt b/2023/day8/example2.txt deleted file mode 100644 index 5b3fa58..0000000 --- a/2023/day8/example2.txt +++ /dev/null @@ -1,10 +0,0 @@ -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) diff --git a/2023/day8/input.txt b/2023/day8/input.txt deleted file mode 100644 index ac178d0..0000000 --- a/2023/day8/input.txt +++ /dev/null @@ -1,796 +0,0 @@ -LRRLRLRRRLLRLRRRLRLLRLRLRRLRLRRLRRLRLRLLRRRLRRLLRRRLRRLRRRLRRLRLRLLRRLRLRRLLRRRLLLRRRLLLRRLRLRRLRLLRRRLRRLRRRLRRLLRRRLRRRLRRRLRLRRLRLRRRLRRRLRRLRLRRLLRRRLRRLLRRLRRLRLRLRRRLRLLRRRLRRLRRRLLRRLLLLLRRRLRRLLLRRRLRRRLRRLRLLLLLRLRRRLRRRLRLRRLLLLRLRRRLLRRRLRRRLRLRLRRLRRLRRLRLRLLLRLRRLRRLRRRLRRRLLRRRR - -RBX = (TMF, KTP) -RBP = (MKS, MKS) -CGR = (XDR, VDX) -KBX = (DGP, JKM) -BNJ = (NJC, QRL) -BXQ = (DKX, CJQ) -NDX = (PHJ, TRQ) -KFQ = (KXN, GBQ) -LRF = (CTS, MTT) -RTN = (VMK, JTK) -QKP = (FDS, SFG) -BVB = (BHS, VRQ) -NBT = (BPJ, DFF) -HQM = (QMV, XVG) -XMR = (RKH, NJQ) -PHC = (XHP, DKM) -HTX = (BXK, BQP) -TPJ = (TNQ, QDX) -RDJ = (KHB, MFG) -XTF = (PPR, FHG) -DVA = (DBM, MVD) -HFP = (CXV, VCD) -HPS = (GTD, NBL) -LBK = (FVN, LHX) -KKS = (FKM, LHN) -FJV = (LVN, PLP) -MLH = (SFR, RJK) -SVQ = (RCS, FFD) -PTB = (TMC, QCR) -RFL = (RXP, VRL) -PTH = (XTS, GFG) -QNM = (TJR, MHX) -BJT = (PJG, SHG) -JJD = (FMJ, QVV) -GMX = (CLD, QRM) -DGZ = (BSL, BRS) -BVM = (SFC, JGD) -GNQ = (PLP, LVN) -XPG = (VLH, BCM) -PND = (RXV, VGM) -RNV = (GVL, MTB) -JSG = (QVP, XCX) -QHP = (KQG, BML) -XBK = (NPP, CRN) -QRL = (RQH, BGH) -HDJ = (VRQ, BHS) -XPD = (HSB, LRC) -KJK = (XCV, MDG) -NJB = (RKL, SHQ) -MCQ = (XFT, MRQ) -QRC = (XVS, CSN) -FCT = (DFF, BPJ) -MTF = (PQT, CNQ) -RXG = (QVP, XCX) -MVZ = (QRC, GHJ) -RKL = (QQM, BFT) -VRT = (GMJ, BDK) -BNS = (HQV, HPS) -JSQ = (HTC, PGD) -BHB = (VGQ, BTM) -NLP = (RKB, XQB) -FGF = (CVK, VRT) -FPM = (GDS, LTG) -BCX = (NDX, GSL) -GVL = (VCX, PSP) -KRM = (MHK, JCX) -GLJ = (XNX, RKP) -LBV = (FDC, TPJ) -GSP = (KMC, LQR) -TFR = (HXJ, MFJ) -DLX = (FNK, GLJ) -DKX = (XSR, LHP) -SVR = (KPX, QTM) -JMT = (GXV, RTX) -XSX = (HHD, HHD) -RJF = (BRH, HGP) -BDK = (TGX, HKP) -TFF = (DSX, DSX) -TJR = (BKB, LCB) -BDQ = (CLD, QRM) -NTC = (BQL, BQL) -CVS = (RQC, FFV) -BML = (VNT, JRH) -CBK = (TGB, RTN) -HQV = (GTD, NBL) -PDT = (SRQ, MLD) -RXV = (KJK, FCD) -XTS = (SCG, KQJ) -PXG = (LKG, MTQ) -PCX = (FKJ, FCV) -HKR = (LMK, BJR) -CKK = (XSX, XSX) -TNP = (TDH, JPR) -PCH = (RBP, PQH) -KHB = (RQR, BXQ) -CJZ = (CNC, HJX) -JPN = (FRP, QTB) -RKP = (NKH, FQC) -BDP = (GCM, VKT) -HQX = (TQF, NJB) -PFV = (FPM, VNP) -NFQ = (GFX, GXH) -STX = (MCQ, DNS) -CKX = (CFS, BNS) -NRJ = (SBG, TLK) -DHS = (VBH, VMT) -TVL = (BPQ, NBM) -QTF = (MPS, RJB) -FHV = (LMK, BJR) -JCV = (JSQ, STQ) -RGX = (GVL, MTB) -CTS = (PCB, GJV) -RCS = (TNT, XTF) -PCS = (NJH, RLX) -KNG = (CHP, FNN) -FJL = (KKH, QGQ) -CPK = (KTX, CGR) -BLF = (PCQ, TKN) -FCR = (STF, SVQ) -BSL = (GFJ, CDL) -FKS = (GRG, JSB) -FCM = (LFX, RJF) -XLK = (CDP, CBD) -KNB = (VGQ, BTM) -KGC = (TJR, MHX) -JHM = (JSP, XDN) -HFN = (STF, SVQ) -GCM = (CKX, KPS) -CGV = (MHK, JCX) -TQP = (JRM, XSB) -GSM = (FJV, GNQ) -KBL = (DLX, BGD) -CBC = (MQK, RRF) -NJM = (KLQ, BVL) -THG = (CPG, PND) -DXP = (HDJ, BVB) -DTT = (XDN, JSP) -PLP = (BKF, FGP) -MSZ = (MVD, DBM) -BQC = (NPL, VXF) -CGB = (LRM, MTH) -RLX = (DBT, RJN) -RXP = (HFP, JNS) -TTH = (QNF, KNG) -LHS = (QFR, GTN) -NBL = (THT, VTQ) -DRS = (PJH, STX) -PSP = (CPK, QKF) -PPR = (LQK, VSN) -QHT = (RLG, TDG) -FVM = (MLR, HXF) -DHB = (CQC, BKK) -MVP = (GHJ, QRC) -TDG = (RVX, CDB) -LKN = (HXF, MLR) -CNR = (KCV, CDR) -SMC = (BBR, BMS) -QDP = (LXV, VPS) -LLD = (CGC, NGQ) -KXN = (PRR, PSR) -LRC = (SHB, PBK) -SQD = (LBV, CRP) -QTB = (KNS, JTS) -MTT = (GJV, PCB) -GMV = (JNH, MJF) -DTG = (SQD, KVV) -RTV = (DSB, SJB) -CDL = (FTQ, CPN) -JHR = (JRM, XSB) -BFP = (PFG, MTD) -DTB = (NDX, GSL) -SQM = (CXL, NBD) -NBP = (KBN, LQH) -BTC = (LJT, TCV) -PQT = (PXG, BSF) -QDH = (FPM, VNP) -VPT = (PRT, VHJ) -VKC = (GXK, QSB) -NXB = (QKP, TGK) -FDF = (VRT, CVK) -NTG = (FRV, BQR) -RKB = (PHC, JSD) -MHV = (XXL, THG) -PHV = (SNM, TFR) -XRK = (JNN, LKR) -XVS = (CBK, NNM) -GDQ = (BDQ, GMX) -TKR = (CKJ, LVQ) -XCX = (LSP, FNB) -JCX = (FGF, FDF) -MFJ = (DBB, HBH) -BQP = (HRT, DQD) -VNC = (BDQ, GMX) -SSC = (LQH, KBN) -TJD = (QFV, KRS) -NKL = (CKK, DDC) -NTM = (QHG, MCC) -JBQ = (HXV, JPN) -DGP = (FVM, LKN) -SJB = (LRQ, DMG) -LJT = (MMT, MDL) -RFC = (MVM, JXP) -FFV = (TPG, QMD) -PJH = (DNS, MCQ) -VCD = (FHV, HKR) -MPS = (DHH, LPT) -VHJ = (RGX, RNV) -FLT = (FRF, NHG) -DSF = (SDV, VKC) -HJQ = (CDR, KCV) -BQR = (PDX, PMX) -CRJ = (BPN, KKS) -MQN = (PNN, DHB) -KCC = (KMC, LQR) -BTH = (VLH, BCM) -KNS = (GGM, SJS) -SCG = (MBF, RDR) -VDQ = (JNN, LKR) -XFT = (VPT, FLH) -RDR = (GTF, GJR) -CXS = (RRF, MQK) -XDN = (SSF, VGC) -JPR = (VGX, TCF) -BTF = (LKM, GBG) -GCJ = (VPS, LXV) -FGJ = (XVG, QMV) -MBF = (GJR, GTF) -TPG = (TND, QSF) -BNR = (BHG, SMC) -GJV = (FLB, PCX) -LQF = (BJT, KTN) -VSB = (JVB, FVK) -NHB = (HQX, LLQ) -CKC = (PJD, TRS) -JVB = (QQV, NRS) -BKK = (LSR, LJN) -SBV = (GTN, QFR) -JMK = (MFG, KHB) -LPX = (NBP, SSC) -KLJ = (CDX, VTL) -KQJ = (RDR, MBF) -VMK = (JXJ, BMT) -TRS = (LQM, JJD) -KCM = (XBD, XMH) -JCT = (NFQ, NDJ) -FGM = (HMK, PGQ) -QKK = (RLS, LPX) -QJD = (PDT, RPQ) -LHP = (PLN, MQN) -NPL = (TFF, TFF) -XHP = (PJQ, KBL) -HMK = (JNV, XPS) -KMC = (VCG, NTG) -QDX = (TMM, HHM) -VNP = (LTG, GDS) -PDR = (CDX, VTL) -HVK = (BQC, SCN) -QMV = (BNJ, CRL) -DDR = (KRS, QFV) -RDG = (QHP, QXN) -CRL = (NJC, QRL) -SHB = (SQX, JVV) -TSP = (BPX, FVC) -RRF = (KJB, PTB) -CSG = (FRX, RTP) -RPQ = (SRQ, MLD) -VXS = (MTN, DJQ) -PJK = (NGD, NTM) -QHG = (NXT, DHS) -LSP = (MTR, GGH) -SHN = (JJS, RVC) -TNQ = (TMM, HHM) -NPK = (GCM, VKT) -MJF = (NBT, FCT) -JNN = (PTH, HFK) -NRS = (CLT, HGV) -HSX = (BPX, FVC) -MVM = (DSF, NQS) -PBK = (SQX, JVV) -HHD = (DBM, MVD) -MTD = (DVB, BTX) -PXP = (NPP, CRN) -TMF = (LPF, QPD) -BRT = (FJV, GNQ) -MFQ = (BHG, SMC) -DJQ = (MVP, MVZ) -LKR = (PTH, HFK) -STQ = (HTC, PGD) -DXF = (JBX, TRT) -RJN = (PDR, KLJ) -CGC = (KKL, RJV) -SRG = (QKK, LND) -MCC = (DHS, NXT) -JMG = (RLX, NJH) -NKH = (DGF, FJL) -JXP = (DSF, NQS) -GXX = (CKC, MFL) -MXD = (KBC, FGK) -SCH = (XPG, BTH) -XSR = (MQN, PLN) -KKD = (NBD, CXL) -CLJ = (GCN, GCN) -QVV = (THK, LQV) -VLH = (FFB, STD) -RTP = (CBC, CXS) -RVX = (BLF, PTM) -KBN = (JNF, BTC) -PFX = (JHM, DTT) -NVL = (KCM, DLK) -QRM = (CQK, RBB) -HKP = (SHN, TMV) -VXF = (TFF, JRP) -LDL = (LHM, JMT) -BQL = (DRS, VQQ) -FDC = (TNQ, QDX) -MMT = (MSL, JCT) -CXV = (HKR, FHV) -BKB = (FCM, QTC) -HRQ = (RXG, JSG) -RKH = (JFF, TKR) -VQR = (JGD, SFC) -KCV = (LNG, NCV) -XSB = (DTG, DFK) -JGD = (HLP, FNS) -VCK = (RXP, VRL) -GTN = (BCP, CKB) -QDK = (CBD, CDP) -SNF = (JNH, MJF) -FVK = (QQV, NRS) -HHM = (VXK, PJK) -JRM = (DTG, DFK) -QPL = (XLK, QDK) -SCV = (QHP, QXN) -RQC = (QMD, TPG) -LFX = (BRH, HGP) -FRX = (CXS, CBC) -BTM = (FPK, JVF) -BPN = (LHN, FKM) -LRQ = (LSQ, PMP) -TPV = (LQF, KDN) -XBN = (QDS, DXP) -RBB = (FCR, HFN) -XSM = (LNT, STB) -SBR = (PQT, CNQ) -LVM = (SBV, LHS) -KBC = (JHR, TQP) -DLJ = (FGK, KBC) -LKG = (VJX, HLQ) -NXT = (VMT, VBH) -CBD = (HGN, HBG) -BHS = (VTF, MRV) -BTP = (GBG, LKM) -DSM = (CKK, CKK) -LSR = (CMB, NLP) -NPP = (BCX, DTB) -XCV = (SMS, QJD) -PNM = (BPQ, NBM) -VPS = (JJB, XMR) -JNH = (FCT, NBT) -KTN = (SHG, PJG) -FMJ = (LQV, THK) -GFX = (NBB, NBB) -SRQ = (GNS, QGB) -FQC = (DGF, FJL) -MPA = (BRS, BSL) -BMS = (FKS, SKF) -BMT = (JMG, PCS) -QFV = (SCH, FDJ) -STF = (RCS, FFD) -JTS = (GGM, SJS) -NJQ = (TKR, JFF) -MTQ = (HLQ, VJX) -FGK = (TQP, JHR) -JNF = (TCV, LJT) -LKM = (KGC, QNM) -MXV = (BQP, BXK) -FRF = (LVM, HGK) -GGH = (BHB, KNB) -BGH = (KBX, FDN) -LQH = (JNF, BTC) -JVF = (LDS, DCD) -CLT = (QPL, LFV) -HRV = (TRD, RXH) -NBD = (PXP, XBK) -PJD = (JJD, LQM) -XMV = (BBF, LKX) -BCN = (PBH, HPL) -XMH = (JNG, GCX) -HFK = (GFG, XTS) -VTL = (RFC, VPF) -MSL = (NFQ, NDJ) -THH = (KNG, QNF) -PCB = (PCX, FLB) -GBQ = (PRR, PSR) -NMS = (BQC, SCN) -PDX = (BGP, SFH) -LDS = (TLJ, LLD) -HGV = (QPL, LFV) -LMK = (VKX, JCV) -NBM = (PKR, QCS) -NLR = (LKJ, DGZ) -QDN = (TRT, JBX) -MTH = (HMT, NJM) -CKF = (LKJ, LKJ) -FDN = (DGP, JKM) -CDR = (NCV, LNG) -SGJ = (GBQ, KXN) -TMM = (VXK, PJK) -JSL = (CTS, MTT) -QGB = (TBK, NHB) -TDA = (GHJ, QRC) -GTF = (QDP, GCJ) -TCG = (FVK, JVB) -LXJ = (FVN, LHX) -TQF = (RKL, SHQ) -ZZZ = (VQQ, DRS) -NCV = (CRJ, GBL) -BKF = (CJP, PRL) -QPD = (DQN, JBQ) -MFL = (PJD, TRS) -NHG = (HGK, LVM) -MRV = (MLH, TBV) -XHS = (PSN, HRQ) -JJB = (NJQ, RKH) -TGK = (SFG, FDS) -CGS = (TRD, RXH) -GCN = (NCN, CVS) -PNN = (BKK, CQC) -LSQ = (KCC, GSP) -LND = (RLS, LPX) -CPG = (VGM, RXV) -GSF = (HMJ, RMH) -JRH = (VQR, BVM) -FJB = (DTT, JHM) -FKM = (BFK, XCQ) -LPT = (PRD, CGB) -XVG = (CRL, BNJ) -KRS = (FDJ, SCH) -BNL = (BQL, ZZZ) -JMB = (XVD, MBH) -KKH = (RLN, PHV) -MTB = (PSP, VCX) -NCN = (FFV, RQC) -FVC = (QJC, SRG) -FTS = (THG, XXL) -SFG = (BCN, DBN) -RXH = (XQT, SDR) -MLR = (GDQ, VNC) -TRD = (XQT, SDR) -BGD = (GLJ, FNK) -XDJ = (MPS, RJB) -JMJ = (MDJ, RTV) -RVC = (PXQ, NRJ) -QQV = (CLT, HGV) -MLD = (QGB, GNS) -KPH = (HRQ, PSN) -RLN = (TFR, SNM) -JRP = (DSX, HPD) -SJS = (DSM, NKL) -PGD = (CGS, HRV) -HPL = (GKH, CVN) -MQK = (PTB, KJB) -QCR = (MHV, FTS) -VCG = (BQR, FRV) -LXV = (XMR, JJB) -PKR = (QSH, XMV) -JSB = (DLJ, MXD) -VRL = (JNS, HFP) -PHJ = (BTF, BTP) -CXL = (XBK, PXP) -FNN = (TSP, HSX) -XQT = (VHH, QHT) -LQV = (DQK, JMB) -RLS = (NBP, SSC) -TCV = (MDL, MMT) -QTC = (LFX, RJF) -LRK = (MFL, CKC) -MHK = (FGF, FDF) -RLJ = (HJX, CNC) -TLK = (RFL, VCK) -CNC = (HJQ, CNR) -LQL = (FRX, RTP) -QQM = (MFQ, BNR) -VBH = (HLB, JMJ) -GKX = (TGK, QKP) -KQG = (JRH, VNT) -XDR = (DNF, KJV) -GMJ = (HKP, TGX) -VRQ = (VTF, MRV) -HGP = (VNB, LDL) -LNG = (GBL, CRJ) -BSF = (LKG, MTQ) -BRH = (VNB, LDL) -PJQ = (BGD, DLX) -QKF = (CGR, KTX) -QMD = (TND, QSF) -PQH = (MKS, STP) -FRV = (PDX, PMX) -LPF = (JBQ, DQN) -CQM = (TDH, JPR) -HJX = (CNR, HJQ) -AAA = (DRS, VQQ) -TDH = (VGX, TCF) -TGX = (TMV, SHN) -BDH = (XFV, GSF) -GXK = (BFP, TFH) -BFT = (MFQ, BNR) -NGD = (QHG, MCC) -FPK = (DCD, LDS) -MTR = (KNB, BHB) -SNM = (MFJ, HXJ) -HLP = (RHQ, SVR) -JSP = (VGC, SSF) -NJH = (RJN, DBT) -SKF = (GRG, JSB) -PTM = (TKN, PCQ) -QGQ = (PHV, RLN) -SSF = (NVL, JPB) -PCQ = (LTC, PCH) -KJV = (GMS, XGF) -JSD = (XHP, DKM) -RRB = (LQF, KDN) -GJJ = (FLT, BNV) -FJA = (HJX, CNC) -HLQ = (XRK, VDQ) -KTP = (LPF, QPD) -PRD = (LRM, MTH) -QNF = (CHP, FNN) -DQK = (MBH, XVD) -TMS = (CLJ, XML) -QVP = (FNB, LSP) -BPX = (QJC, SRG) -QXN = (KQG, BML) -VGQ = (JVF, FPK) -BRS = (CDL, GFJ) -NQS = (VKC, SDV) -LFV = (XLK, QDK) -SMS = (RPQ, PDT) -BBF = (CGV, KRM) -VMT = (HLB, JMJ) -QSF = (JSL, LRF) -CJQ = (XSR, LHP) -RDF = (KKD, SQM) -MKS = (CKF, CKF) -STD = (MNM, TMS) -DNS = (MRQ, XFT) -MFG = (RQR, BXQ) -GBG = (QNM, KGC) -JNG = (RDG, SCV) -CVN = (GJJ, QVC) -HMT = (BVL, KLQ) -VTQ = (NTC, BNL) -TGB = (JTK, VMK) -PSR = (NPK, BDP) -MDJ = (DSB, SJB) -CKB = (VSB, TCG) -DNF = (GMS, XGF) -LQK = (XFR, RDF) -RHQ = (KPX, QTM) -VKX = (STQ, JSQ) -BRX = (DDR, TJD) -LJN = (NLP, CMB) -DJR = (HMK, PGQ) -VNB = (JMT, LHM) -DBM = (SBR, MTF) -KLQ = (XBN, MNH) -MDL = (MSL, JCT) -SQX = (TPV, RRB) -CLD = (CQK, RBB) -HPD = (RLJ, CJZ) -LHN = (BFK, XCQ) -KJB = (TMC, QCR) -RLG = (RVX, CDB) -PBH = (GKH, CVN) -DMB = (HHD, MSZ) -SDV = (GXK, QSB) -KPX = (XDJ, QTF) -NBB = (MTN, MTN) -BTX = (BRT, GSM) -HGN = (HJT, RBX) -GDS = (XSM, BGG) -KDN = (KTN, BJT) -GSL = (TRQ, PHJ) -SFR = (XHS, KPH) -JNV = (TVL, PNM) -JNS = (VCD, CXV) -LHM = (GXV, RTX) -TFH = (MTD, PFG) -GHJ = (CSN, XVS) -KNQ = (LRK, GXX) -PRT = (RNV, RGX) -JTK = (BMT, JXJ) -MRQ = (VPT, FLH) -TKN = (LTC, PCH) -VSN = (XFR, RDF) -HXJ = (DBB, HBH) -PRL = (THH, TTH) -GCX = (RDG, SCV) -MNH = (DXP, QDS) -CMB = (XQB, RKB) -CHP = (TSP, HSX) -BCP = (TCG, VSB) -LNT = (HQM, FGJ) -FNK = (XNX, RKP) -HRT = (FJB, PFX) -HTC = (CGS, HRV) -SDR = (QHT, VHH) -CQK = (FCR, HFN) -LVN = (FGP, BKF) -FDS = (DBN, BCN) -QCS = (QSH, XMV) -TRT = (KFQ, SGJ) -RQH = (FDN, KBX) -QJC = (QKK, LND) -MVD = (SBR, MTF) -SBG = (RFL, VCK) -DSX = (RLJ, RLJ) -JBX = (KFQ, SGJ) -JVV = (RRB, TPV) -BBR = (FKS, SKF) -KTX = (VDX, XDR) -CSN = (NNM, CBK) -NNM = (RTN, TGB) -VXK = (NGD, NTM) -DQD = (FJB, PFX) -CDB = (BLF, PTM) -GBL = (BPN, KKS) -BGP = (SNT, BRX) -CRP = (FDC, TPJ) -DFK = (KVV, SQD) -LVQ = (KNQ, FBX) -HSB = (PBK, SHB) -PJG = (TNP, CQM) -JPB = (KCM, DLK) -JJS = (PXQ, NRJ) -XGF = (QDH, PFV) -DKM = (KBL, PJQ) -DVB = (GSM, BRT) -TMC = (MHV, FTS) -TRQ = (BTP, BTF) -FLB = (FCV, FKJ) -BVL = (MNH, XBN) -XPA = (NCN, CVS) -XPS = (PNM, TVL) -CPN = (RDJ, JMK) -RQR = (DKX, CJQ) -SFH = (SNT, BRX) -DBT = (KLJ, PDR) -MBH = (XCS, XPD) -DLK = (XMH, XBD) -HBG = (HJT, RBX) -THK = (DQK, JMB) -DGF = (KKH, QGQ) -BPJ = (GKX, NXB) -MTN = (MVP, MVP) -TMV = (RVC, JJS) -GMS = (PFV, QDH) -FDJ = (BTH, XPG) -FFB = (MNM, MNM) -RTX = (LBK, LXJ) -BGG = (LNT, STB) -LRM = (HMT, NJM) -XVD = (XPD, XCS) -THT = (NTC, NTC) -GXH = (NBB, VXS) -LTG = (XSM, BGG) -GKH = (GJJ, QVC) -TNT = (FHG, PPR) -CDP = (HGN, HBG) -DQN = (HXV, JPN) -FNS = (SVR, RHQ) -DSB = (DMG, LRQ) -DCD = (TLJ, LLD) -FTQ = (JMK, RDJ) -VGX = (SFN, BDH) -VDX = (KJV, DNF) -PMX = (SFH, BGP) -VTF = (TBV, MLH) -LQM = (FMJ, QVV) -VNT = (VQR, BVM) -XML = (GCN, QFZ) -VPF = (MVM, JXP) -TBK = (LLQ, HQX) -PXQ = (TLK, SBG) -LKX = (CGV, KRM) -DBN = (PBH, HPL) -XXL = (CPG, PND) -BHG = (BBR, BMS) -VQQ = (STX, PJH) -VHH = (RLG, TDG) -RJK = (KPH, XHS) -BFK = (MXV, HTX) -VJX = (XRK, VDQ) -GFJ = (CPN, FTQ) -GRG = (MXD, DLJ) -CQC = (LJN, LSR) -RJB = (DHH, LPT) -FGP = (CJP, PRL) -BCM = (FFB, STD) -FBX = (GXX, LRK) -FLH = (VHJ, PRT) -GTD = (THT, THT) -GNS = (NHB, TBK) -QTM = (XDJ, QTF) -VGM = (KJK, FCD) -XBD = (JNG, GCX) -QVC = (BNV, FLT) -FCV = (LQL, CSG) -SCN = (NPL, VXF) -KKL = (HVK, NMS) -MDG = (QJD, SMS) -QSB = (BFP, TFH) -LKJ = (BRS, BSL) -XCS = (HSB, LRC) -HLB = (MDJ, RTV) -TLJ = (NGQ, CGC) -MNM = (CLJ, CLJ) -STB = (HQM, FGJ) -HJT = (TMF, KTP) -TND = (LRF, JSL) -FVN = (QDN, DXF) -SNT = (TJD, DDR) -JKM = (LKN, FVM) -LTC = (RBP, PQH) -STP = (CKF, NLR) -DMG = (LSQ, PMP) -CDX = (RFC, VPF) -CNQ = (PXG, BSF) -PMP = (KCC, GSP) -VKT = (CKX, KPS) -CKJ = (FBX, KNQ) -VGC = (JPB, NVL) -LCB = (QTC, FCM) -TCF = (BDH, SFN) -DDC = (XSX, DMB) -SFN = (XFV, GSF) -HXF = (GDQ, VNC) -BPQ = (QCS, PKR) -FFD = (TNT, XTF) -TBV = (SFR, RJK) -DBB = (FGM, DJR) -FHG = (VSN, LQK) -GGM = (DSM, NKL) -RJV = (NMS, HVK) -NGQ = (RJV, KKL) -CFS = (HQV, HPS) -PFG = (BTX, DVB) -VCX = (QKF, CPK) -XCQ = (MXV, HTX) -DHH = (PRD, CGB) -HBH = (DJR, FGM) -RMH = (GMV, SNF) -HXV = (QTB, FRP) -QFZ = (CVS, NCN) -CVK = (BDK, GMJ) -SHQ = (QQM, BFT) -PGQ = (XPS, JNV) -LQR = (NTG, VCG) -QDS = (BVB, HDJ) -CJP = (THH, TTH) -FNB = (GGH, MTR) -PSN = (RXG, JSG) -LHX = (QDN, DXF) -GFG = (SCG, KQJ) -PRR = (NPK, BDP) -QSH = (LKX, BBF) -KVV = (LBV, CRP) -DFF = (NXB, GKX) -JFF = (CKJ, LVQ) -FCD = (MDG, XCV) -SFC = (FNS, HLP) -KPS = (BNS, CFS) -PLN = (PNN, DHB) -SHG = (CQM, TNP) -GJR = (QDP, GCJ) -NDJ = (GFX, GXH) -XQB = (PHC, JSD) -FKJ = (CSG, LQL) -FRP = (KNS, JTS) -MHX = (BKB, LCB) -HGK = (LHS, SBV) -JXJ = (JMG, PCS) -NJC = (RQH, BGH) -LLQ = (TQF, NJB) -QFR = (BCP, CKB) -BXK = (DQD, HRT) -XFR = (KKD, SQM) -XFV = (HMJ, RMH) -HMJ = (GMV, SNF) -BNV = (NHG, FRF) -GXV = (LBK, LXJ) -XNX = (NKH, FQC) -BJR = (VKX, JCV) -CRN = (BCX, DTB) diff --git a/2023/day8/src/lib.rs b/2023/day8/src/lib.rs deleted file mode 100644 index 31f2e2c..0000000 --- a/2023/day8/src/lib.rs +++ /dev/null @@ -1,115 +0,0 @@ -use std::collections::HashMap; - -pub fn part1(input: &str) -> u32 { - let mut res: u32 = 0; - - let lines: Vec<String> = input - .trim_end() - .split('\n') - .map(|x| x.to_string()) - .collect(); - let ltype = &lines[0]; - let mut hm: HashMap<String, (String, String)> = HashMap::new(); - for play in &lines[2..] { - hm.insert( - play[..3].to_string(), - (play[7..10].to_string(), play[12..15].to_string()), - ); - } - - let mut current = "AAA".to_string(); - for i in ltype.chars().cycle() { - current = match i { - 'R' => hm.get(¤t).unwrap().1.clone(), - 'L' => hm.get(¤t).unwrap().0.clone(), - _ => panic!("wtf is this?"), - }; - res += 1; - - if current == "ZZZ".to_string() { - break; - } - } - - res -} - -pub fn part2(input: &str) -> u32 { - let mut res: u32 = 0; - - let lines: Vec<String> = input - .trim_end() - .split('\n') - .map(|x| x.to_string()) - .collect(); - let ltype = &lines[0]; - let mut hm: HashMap<String, (String, String)> = HashMap::new(); - - for play in &lines[2..] { - hm.insert( - play[..3].to_string(), - (play[7..10].to_string(), play[12..15].to_string()), - ); - } - - let mut currents: Vec<String> = hm - .keys() - .filter(|x| x.ends_with("A")) - .into_iter() - .map(|x| x.to_string()) - .collect::<Vec<String>>(); - - dbg!("{currents:?}"); - 'o: for i in ltype.chars().cycle() { - for k in 0..currents.len() { - currents[k] = match i { - 'R' => hm.get(¤ts[k]).unwrap().1.clone(), - 'L' => hm.get(¤ts[k]).unwrap().0.clone(), - _ => panic!("wtf is this?"), - }; - res += 1; - } - - for current in ¤ts { - if !current.ends_with("Z") { - continue 'o; - } - } - break; - } - - res -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn example_part1() { - let input = include_str!("../example.txt"); - let result = part1(input); - assert_eq!(result, 2); - } - - #[test] - fn input_part1() { - let input = include_str!("../input.txt"); - let result = part1(input); - assert_eq!(result, 21389); - } - - #[test] - fn example_part2() { - let input = include_str!("../example2.txt"); - let result = part2(input); - assert_eq!(result, 12); - } - - // #[test] - // fn input_part2() { - // let input = include_str!("../input.txt"); - // let result = part2(input); - // assert_eq!(result, 248179786); - // } -} |