mirror of
https://github.com/danbulant/adventOfCode
synced 2026-06-14 03:41:05 +00:00
day 8
This commit is contained in:
parent
77a3778b23
commit
5a88d559b5
10 changed files with 940 additions and 0 deletions
1
2023/8/.gitignore
vendored
Normal file
1
2023/8/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
target
|
||||
7
2023/8/Cargo.lock
generated
Normal file
7
2023/8/Cargo.lock
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "eight"
|
||||
version = "0.1.0"
|
||||
8
2023/8/Cargo.toml
Normal file
8
2023/8/Cargo.toml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "eight"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
9
2023/8/input1
Normal file
9
2023/8/input1
Normal file
|
|
@ -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)
|
||||
5
2023/8/input1a
Normal file
5
2023/8/input1a
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
LLR
|
||||
|
||||
AAA = (BBB, BBB)
|
||||
BBB = (AAA, ZZZ)
|
||||
ZZZ = (ZZZ, ZZZ)
|
||||
10
2023/8/input1b
Normal file
10
2023/8/input1b
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)
|
||||
704
2023/8/input2
Normal file
704
2023/8/input2
Normal file
|
|
@ -0,0 +1,704 @@
|
|||
LRRRLRRRLRRLRLRRLRLRRLRRLRLLRRRLRLRLRRRLRRRLRLRLRLLRRLLRRLRRRLLRLRRRLRLRLRRRLLRLRRLRRRLRLRRRLLRLRRLRRRLRRLRRLRLRRLRRRLRLRRRLRRLLRRLRRLRLRRRLRRLRRRLRRRLRLRRLRLRRRLRLRRLRRLRRRLRRRLRRRLLRRLRRRLRLRLRLRRRLRLRLRRLRRRLRRRLRRLRRLLRLRRLLRLRRLRRLLRLLRRRLLRRLLRRLRRLRLRLRRRLLRRLRRRR
|
||||
|
||||
DBQ = (RTP, NBX)
|
||||
NFX = (PXX, PLG)
|
||||
VBK = (BRV, DKG)
|
||||
BRS = (HLR, VBX)
|
||||
DDK = (SPR, TCR)
|
||||
FTS = (LJB, MDJ)
|
||||
BLH = (DFM, GGG)
|
||||
PCC = (GQR, RHD)
|
||||
QKN = (VVR, GBL)
|
||||
KHN = (FNB, LLT)
|
||||
HTD = (NPJ, BTL)
|
||||
FPL = (BRX, XQD)
|
||||
RCJ = (QKN, XPD)
|
||||
XRN = (RMQ, LQB)
|
||||
HGM = (VPV, SVR)
|
||||
RFG = (TLM, KPH)
|
||||
SSG = (QGC, KJV)
|
||||
LPA = (QQN, GNF)
|
||||
SVN = (VLM, BDX)
|
||||
VPF = (TTR, RNQ)
|
||||
VNK = (DSX, MCZ)
|
||||
KMS = (XNN, MTB)
|
||||
RLS = (NHX, CRT)
|
||||
VRS = (VBX, HLR)
|
||||
TVK = (MKG, NKB)
|
||||
CKH = (DFF, XPV)
|
||||
KBS = (LJC, PRS)
|
||||
JMT = (FPT, DLX)
|
||||
LRV = (QCD, RLF)
|
||||
TMM = (VPF, GKD)
|
||||
HKH = (PRS, LJC)
|
||||
GSM = (SVH, KRP)
|
||||
SLG = (PTL, SNJ)
|
||||
GVS = (DSN, CKH)
|
||||
QGC = (HKS, DFP)
|
||||
RFT = (VVQ, GMF)
|
||||
FDF = (JKV, JKV)
|
||||
MRL = (PKS, TKS)
|
||||
HBN = (BDX, VLM)
|
||||
CFB = (PPV, QVS)
|
||||
TFJ = (KGN, JND)
|
||||
HLB = (PFV, JXR)
|
||||
RFJ = (SKL, QCN)
|
||||
PQH = (KGN, JND)
|
||||
HGR = (FKL, XHR)
|
||||
CTB = (HNQ, HNQ)
|
||||
XMN = (CJV, LKQ)
|
||||
JVX = (FSS, CRC)
|
||||
SFH = (MXD, RHN)
|
||||
BRK = (QPL, DJB)
|
||||
HBX = (DSN, CKH)
|
||||
RFL = (VXB, FNF)
|
||||
GXP = (LHR, SMV)
|
||||
CHK = (NLQ, VCR)
|
||||
QPG = (HHL, KHB)
|
||||
VBC = (NFV, FST)
|
||||
QJF = (JXL, JJC)
|
||||
XKQ = (PCS, BSH)
|
||||
SKS = (SNN, QSN)
|
||||
GJJ = (VVG, XPR)
|
||||
DJP = (SJM, DNR)
|
||||
DQF = (MHG, BKZ)
|
||||
MSB = (BRX, XQD)
|
||||
PQR = (TLL, RVS)
|
||||
XGB = (RMT, HGF)
|
||||
HBD = (PFD, FDN)
|
||||
NSN = (RFJ, NJT)
|
||||
SNJ = (MVG, DBQ)
|
||||
NMV = (SKG, TDJ)
|
||||
PTN = (TNR, SSG)
|
||||
SBG = (CVH, LMJ)
|
||||
RDT = (SVQ, JTT)
|
||||
MRC = (BKF, QMJ)
|
||||
JKV = (CTB, CTB)
|
||||
CTX = (QHL, BDV)
|
||||
SQM = (DNR, SJM)
|
||||
MVG = (RTP, NBX)
|
||||
KKJ = (TQP, PST)
|
||||
QKX = (BRD, SFT)
|
||||
VFV = (NTL, VMQ)
|
||||
LXK = (SSL, MFR)
|
||||
HDH = (VPS, MJH)
|
||||
RTP = (CGJ, XJC)
|
||||
BXQ = (FLN, FLN)
|
||||
GKD = (TTR, RNQ)
|
||||
GPP = (SNN, QSN)
|
||||
GDQ = (JLS, TND)
|
||||
LTF = (GXP, TVB)
|
||||
GVB = (LSV, FRL)
|
||||
JCF = (HGR, GMX)
|
||||
VCR = (JTR, MCM)
|
||||
XJC = (DGP, XML)
|
||||
XKA = (SFC, CHQ)
|
||||
LJL = (VPX, PMS)
|
||||
CPH = (PCQ, QKX)
|
||||
VPV = (TFP, NJN)
|
||||
TDJ = (PRV, DBK)
|
||||
JGQ = (TPX, NMV)
|
||||
LJS = (GDQ, QPV)
|
||||
VHN = (CBJ, PFQ)
|
||||
JHT = (XHM, NRK)
|
||||
ZZZ = (HJS, LRV)
|
||||
KJV = (HKS, DFP)
|
||||
HNT = (XXT, KJT)
|
||||
RHD = (KQH, TMD)
|
||||
JKG = (HXJ, MGF)
|
||||
SPL = (TTB, STB)
|
||||
MBD = (CQK, NHH)
|
||||
TPX = (TDJ, SKG)
|
||||
HRC = (LBB, JLR)
|
||||
QHN = (JHT, THC)
|
||||
SPM = (DDG, MBK)
|
||||
MFG = (JBD, GSM)
|
||||
MHR = (PTN, HVB)
|
||||
RLF = (GMG, TDQ)
|
||||
XBQ = (KKN, QTN)
|
||||
GLB = (DHS, SXC)
|
||||
PRV = (PGC, NSK)
|
||||
SJD = (BXQ, GHF)
|
||||
THC = (XHM, NRK)
|
||||
GBL = (GGR, HTK)
|
||||
MDK = (JXX, DBD)
|
||||
NJT = (QCN, SKL)
|
||||
LLG = (KBL, LXK)
|
||||
RVS = (DDB, QRV)
|
||||
LHR = (LPL, TGJ)
|
||||
TBD = (NNB, CQH)
|
||||
DSN = (DFF, XPV)
|
||||
QQN = (HRV, PTT)
|
||||
XPP = (GSJ, RDT)
|
||||
CBJ = (JQL, RBX)
|
||||
RBX = (CNV, NKQ)
|
||||
DDG = (NBS, KTV)
|
||||
XNN = (TMC, GCG)
|
||||
DSX = (CGR, SGM)
|
||||
DFB = (RCJ, KJK)
|
||||
XTG = (RFG, XSD)
|
||||
PKQ = (DBD, JXX)
|
||||
XPD = (GBL, VVR)
|
||||
FFC = (JLR, LBB)
|
||||
GMG = (KFH, PTP)
|
||||
QHJ = (SHM, FKM)
|
||||
MXD = (XGB, LTX)
|
||||
SGM = (FTS, GXX)
|
||||
LTX = (RMT, HGF)
|
||||
RNQ = (SPL, DKH)
|
||||
NHF = (VXC, HRS)
|
||||
KFR = (JXR, PFV)
|
||||
NRP = (XNN, MTB)
|
||||
VDR = (LDL, JCP)
|
||||
FSS = (KXJ, GKL)
|
||||
QVS = (MKN, BLH)
|
||||
SNN = (SBM, PNH)
|
||||
VXB = (LLG, BHP)
|
||||
BPK = (QVS, PPV)
|
||||
SMV = (TGJ, LPL)
|
||||
CXF = (XKV, PVR)
|
||||
PGC = (NBJ, KCK)
|
||||
VLG = (DDG, MBK)
|
||||
FKL = (HFC, XPP)
|
||||
KFC = (XNM, CNR)
|
||||
FCC = (BRK, GLT)
|
||||
HQC = (JKV, JHQ)
|
||||
QQV = (CPG, HQD)
|
||||
VVG = (XGJ, XGJ)
|
||||
SVK = (HVH, HNJ)
|
||||
XQT = (LQX, HNT)
|
||||
JDB = (PXM, THR)
|
||||
JHR = (XRF, DHN)
|
||||
HRS = (TFJ, PQH)
|
||||
SVQ = (XHX, QNG)
|
||||
KGN = (FCV, SBH)
|
||||
GJX = (MFG, LMS)
|
||||
NBJ = (GVB, RMS)
|
||||
VQJ = (JPB, PDF)
|
||||
TKX = (JMT, LGM)
|
||||
FLL = (GTX, HKP)
|
||||
MFT = (FKM, SHM)
|
||||
JCP = (SSP, VMD)
|
||||
LPC = (KCD, JDB)
|
||||
XHR = (XPP, HFC)
|
||||
FKM = (DLL, XBQ)
|
||||
MGF = (NFX, MQS)
|
||||
JXJ = (MMP, CBT)
|
||||
DFP = (TGM, RHV)
|
||||
SSM = (NTC, TMT)
|
||||
DLX = (PXF, SBG)
|
||||
NNB = (TNT, MMF)
|
||||
QNG = (RHP, QBT)
|
||||
FLR = (CJK, QRL)
|
||||
RCP = (KKG, NTD)
|
||||
GJV = (SLG, DGN)
|
||||
FDN = (TBR, QDT)
|
||||
JTG = (RFT, PRC)
|
||||
LGM = (DLX, FPT)
|
||||
QDT = (CXV, SGD)
|
||||
HKP = (BLB, PCL)
|
||||
GXB = (MNH, GXT)
|
||||
QDS = (LTF, FDX)
|
||||
LMJ = (GJV, HVV)
|
||||
TDQ = (PTP, KFH)
|
||||
SGD = (HTT, PNR)
|
||||
XPV = (BPM, CPH)
|
||||
PTP = (MKL, KSP)
|
||||
DKG = (DKK, KNQ)
|
||||
QCN = (XTD, GQM)
|
||||
LSV = (GDK, VVD)
|
||||
MLG = (RLS, RKG)
|
||||
GMX = (FKL, XHR)
|
||||
QSN = (PNH, SBM)
|
||||
CHQ = (KSB, CXF)
|
||||
RHN = (LTX, XGB)
|
||||
LVX = (JSF, MLT)
|
||||
XHM = (FLR, QVK)
|
||||
NCJ = (CPG, HQD)
|
||||
MQV = (HBD, LDK)
|
||||
VVD = (QBV, FKF)
|
||||
QCD = (GMG, TDQ)
|
||||
GTH = (DLJ, DQF)
|
||||
KFH = (KSP, MKL)
|
||||
NFC = (PKQ, MDK)
|
||||
NCD = (FNB, LLT)
|
||||
MKG = (HNS, DDK)
|
||||
BTV = (KBS, HKH)
|
||||
QGL = (QTF, CVS)
|
||||
DDB = (DVF, HXV)
|
||||
PXF = (CVH, LMJ)
|
||||
NFV = (XMN, BQR)
|
||||
DGN = (SNJ, PTL)
|
||||
HHL = (PHC, QQJ)
|
||||
XPR = (XGJ, LVQ)
|
||||
PCQ = (BRD, SFT)
|
||||
MMT = (RDS, SRS)
|
||||
DMR = (GJM, BQS)
|
||||
QPL = (XNQ, CMN)
|
||||
PDF = (JBH, CTX)
|
||||
CVR = (STX, MBQ)
|
||||
LPL = (SFL, PHQ)
|
||||
FXX = (PNX, PQL)
|
||||
KLS = (NHG, CHF)
|
||||
NHX = (TMN, JLJ)
|
||||
NND = (QHN, XBR)
|
||||
JTT = (QNG, XHX)
|
||||
LML = (FDX, LTF)
|
||||
PCS = (LKV, LXX)
|
||||
SRV = (KCD, JDB)
|
||||
NSK = (NBJ, KCK)
|
||||
MRF = (NKP, JKG)
|
||||
VPX = (NSN, SMB)
|
||||
GFT = (FPL, MSB)
|
||||
DFM = (XKQ, PPQ)
|
||||
PPQ = (PCS, BSH)
|
||||
JJC = (JHR, RQG)
|
||||
JBH = (BDV, QHL)
|
||||
KNQ = (KNP, MRL)
|
||||
TBS = (NTD, KKG)
|
||||
JXL = (RQG, JHR)
|
||||
GKL = (MJC, QBM)
|
||||
BQR = (LKQ, CJV)
|
||||
DGP = (VNT, JRB)
|
||||
DKR = (VBJ, GVF)
|
||||
JXN = (BXD, XLT)
|
||||
TVG = (HGR, GMX)
|
||||
XSD = (TLM, KPH)
|
||||
RMT = (GXB, DPT)
|
||||
FRL = (VVD, GDK)
|
||||
PNX = (NCD, KHN)
|
||||
VGK = (CNR, XNM)
|
||||
MQB = (KSF, LJS)
|
||||
KDC = (MSB, FPL)
|
||||
GCD = (CXS, PCC)
|
||||
XML = (VNT, JRB)
|
||||
TBL = (GCV, HDH)
|
||||
BRV = (DKK, KNQ)
|
||||
JKS = (XXB, ZZZ)
|
||||
TMC = (MDQ, QJF)
|
||||
TNT = (NQJ, SSM)
|
||||
FLF = (XSD, RFG)
|
||||
JRB = (FDF, HQC)
|
||||
PTL = (DBQ, MVG)
|
||||
BGQ = (KFR, HLB)
|
||||
XTD = (VRS, BRS)
|
||||
QXX = (SJD, CSH)
|
||||
FRX = (BQS, GJM)
|
||||
PQL = (NCD, KHN)
|
||||
LKV = (PNK, DKR)
|
||||
HQS = (VVG, XPR)
|
||||
VPQ = (NTL, VMQ)
|
||||
THR = (CBV, CVR)
|
||||
FST = (BQR, XMN)
|
||||
DMD = (CVS, QTF)
|
||||
HXV = (RCP, TBS)
|
||||
STM = (RFX, BFR)
|
||||
JTR = (JTL, JXN)
|
||||
FLG = (PFQ, CBJ)
|
||||
CKM = (KFB, HTP)
|
||||
NCT = (KJK, RCJ)
|
||||
DKH = (STB, TTB)
|
||||
QGA = (CGR, SGM)
|
||||
XNQ = (HJM, MLG)
|
||||
RGF = (LFN, FGC)
|
||||
QBV = (VPJ, RMN)
|
||||
QKJ = (KFC, VGK)
|
||||
CSB = (FDL, FDL)
|
||||
HFK = (DHS, SXC)
|
||||
SVP = (NPJ, BTL)
|
||||
GGR = (XTG, FLF)
|
||||
XKV = (NDH, JXJ)
|
||||
BMR = (FRX, DMR)
|
||||
VVQ = (BFN, TVK)
|
||||
HJM = (RKG, RLS)
|
||||
RLK = (PDF, JPB)
|
||||
DCX = (HNQ, BRZ)
|
||||
TBG = (RTL, SML)
|
||||
RMS = (FRL, LSV)
|
||||
FCV = (STM, HTC)
|
||||
SPR = (TBL, JGG)
|
||||
BHP = (LXK, KBL)
|
||||
NPJ = (XLV, PQR)
|
||||
NKF = (TBD, DKP)
|
||||
PDK = (JTK, JTK)
|
||||
PFQ = (RBX, JQL)
|
||||
LBB = (SVP, HTD)
|
||||
GTX = (BLB, PCL)
|
||||
SBH = (HTC, STM)
|
||||
BFR = (RJN, BTN)
|
||||
TCR = (TBL, JGG)
|
||||
MQS = (PXX, PLG)
|
||||
FRG = (XXB, XXB)
|
||||
STX = (XQL, HGM)
|
||||
HNJ = (HBN, SVN)
|
||||
SSL = (RDL, NST)
|
||||
HJS = (QCD, RLF)
|
||||
KBL = (SSL, MFR)
|
||||
CXS = (RHD, GQR)
|
||||
DFD = (NFP, FCC)
|
||||
VBJ = (HFK, GLB)
|
||||
DKP = (NNB, CQH)
|
||||
QSK = (TKX, CQT)
|
||||
BNV = (JTK, GTH)
|
||||
NBH = (LVX, GQB)
|
||||
QBM = (VNC, VPK)
|
||||
DBD = (HHR, RVQ)
|
||||
DFF = (BPM, CPH)
|
||||
LQX = (KJT, XXT)
|
||||
FGC = (QKQ, QSK)
|
||||
PXM = (CBV, CVR)
|
||||
JHQ = (CTB, DCX)
|
||||
NJN = (BGQ, FBP)
|
||||
TLL = (DDB, QRV)
|
||||
XSN = (THS, KJQ)
|
||||
KXJ = (QBM, MJC)
|
||||
GSC = (TQG, QXX)
|
||||
QJP = (PQL, PNX)
|
||||
PHH = (MXD, RHN)
|
||||
SSC = (NQX, FCH)
|
||||
XDF = (NLQ, VCR)
|
||||
BRD = (MQV, FRQ)
|
||||
AAA = (LRV, HJS)
|
||||
PTT = (FFC, HRC)
|
||||
VKF = (BFG, TGQ)
|
||||
HHA = (FLG, VHN)
|
||||
CNR = (TQX, VDV)
|
||||
TGM = (FLL, TNV)
|
||||
GLT = (DJB, QPL)
|
||||
MBK = (NBS, KTV)
|
||||
JPB = (JBH, CTX)
|
||||
RHP = (SQM, DJP)
|
||||
CHF = (CLQ, JGQ)
|
||||
FTL = (PRC, RFT)
|
||||
SKL = (XTD, GQM)
|
||||
RBN = (SPM, VLG)
|
||||
HGF = (GXB, DPT)
|
||||
BQS = (NSP, BTV)
|
||||
XHX = (RHP, QBT)
|
||||
CGR = (GXX, FTS)
|
||||
BLB = (QJP, FXX)
|
||||
CRT = (JLJ, TMN)
|
||||
PLG = (SLC, PDD)
|
||||
HRV = (FFC, HRC)
|
||||
MCM = (JXN, JTL)
|
||||
JGH = (MFG, LMS)
|
||||
NSP = (KBS, HKH)
|
||||
MFR = (NST, RDL)
|
||||
GMF = (TVK, BFN)
|
||||
SML = (LJL, XFP)
|
||||
MPL = (RDS, SRS)
|
||||
QHP = (SPM, VLG)
|
||||
FCH = (GDC, XRN)
|
||||
NRQ = (FTL, JTG)
|
||||
HMB = (CRC, FSS)
|
||||
KPH = (BNH, SLK)
|
||||
SRS = (MQB, GCN)
|
||||
RQM = (TGQ, BFG)
|
||||
FLN = (CSB, CSB)
|
||||
BSH = (LKV, LXX)
|
||||
CRC = (KXJ, GKL)
|
||||
CJV = (XDF, CHK)
|
||||
CGJ = (DGP, XML)
|
||||
SFL = (GJJ, HQS)
|
||||
PMR = (VPF, GKD)
|
||||
QTN = (MMT, MPL)
|
||||
KJQ = (RLK, VQJ)
|
||||
PBJ = (LFN, FGC)
|
||||
BTL = (PQR, XLV)
|
||||
SBX = (KFC, VGK)
|
||||
QQJ = (PDK, BNV)
|
||||
BRZ = (GNF, QQN)
|
||||
JTL = (XLT, BXD)
|
||||
SKG = (PRV, DBK)
|
||||
RQG = (DHN, XRF)
|
||||
DRC = (SFC, CHQ)
|
||||
TJQ = (NQX, FCH)
|
||||
PKS = (TMM, PMR)
|
||||
TRP = (GVD, FBL)
|
||||
LKQ = (XDF, CHK)
|
||||
RTL = (XFP, LJL)
|
||||
PPV = (MKN, BLH)
|
||||
MTB = (GCG, TMC)
|
||||
FPT = (PXF, SBG)
|
||||
LDK = (FDN, PFD)
|
||||
TND = (PPX, SVK)
|
||||
VPK = (NHF, JDX)
|
||||
HTP = (NKF, RPV)
|
||||
PMS = (SMB, NSN)
|
||||
GGG = (XKQ, PPQ)
|
||||
DLL = (KKN, QTN)
|
||||
JXX = (HHR, RVQ)
|
||||
KSF = (QPV, GDQ)
|
||||
XQD = (FGK, BNJ)
|
||||
RJF = (CSB, KTM)
|
||||
GCN = (KSF, LJS)
|
||||
JKP = (LML, QDS)
|
||||
XFP = (VPX, PMS)
|
||||
DPT = (GXT, MNH)
|
||||
DKK = (KNP, MRL)
|
||||
NKB = (DDK, HNS)
|
||||
CJK = (GSC, GBQ)
|
||||
NLM = (LDL, JCP)
|
||||
VMD = (DFD, XFM)
|
||||
NBX = (XJC, CGJ)
|
||||
PRS = (NLM, VDR)
|
||||
RMQ = (FRG, FRG)
|
||||
XNM = (TQX, VDV)
|
||||
LJC = (VDR, NLM)
|
||||
PHQ = (GJJ, HQS)
|
||||
KXN = (KHB, HHL)
|
||||
BXD = (CKM, XVL)
|
||||
KFB = (NKF, RPV)
|
||||
NFS = (PRL, RFL)
|
||||
RJN = (SFV, RRG)
|
||||
GQM = (VRS, BRS)
|
||||
KQH = (VBC, BSJ)
|
||||
DNR = (BMR, LJQ)
|
||||
HHR = (LPC, SRV)
|
||||
DLJ = (MHG, MHG)
|
||||
SMB = (RFJ, NJT)
|
||||
RHV = (FLL, TNV)
|
||||
NTD = (HBX, GVS)
|
||||
VNT = (FDF, HQC)
|
||||
PRC = (GMF, VVQ)
|
||||
FBP = (HLB, KFR)
|
||||
KTM = (FDL, LRZ)
|
||||
TQP = (QGL, DMD)
|
||||
SBM = (QPG, KXN)
|
||||
QVK = (CJK, QRL)
|
||||
XRF = (RGF, PBJ)
|
||||
NDH = (CBT, MMP)
|
||||
GVL = (RTL, SML)
|
||||
LRZ = (VHN, FLG)
|
||||
CQH = (MMF, TNT)
|
||||
SLK = (TJQ, SSC)
|
||||
QBT = (SQM, DJP)
|
||||
FNF = (LLG, BHP)
|
||||
STB = (KMS, NRP)
|
||||
HVV = (SLG, DGN)
|
||||
RFX = (BTN, RJN)
|
||||
MKL = (GVM, LVP)
|
||||
VDV = (BPK, CFB)
|
||||
CBT = (GJX, JGH)
|
||||
PPX = (HVH, HNJ)
|
||||
NQJ = (TMT, NTC)
|
||||
MJH = (MHP, XQT)
|
||||
LTA = (KLS, BFV)
|
||||
CSH = (BXQ, GHF)
|
||||
HTK = (XTG, FLF)
|
||||
VNC = (JDX, NHF)
|
||||
BFG = (MRC, NKK)
|
||||
KKG = (GVS, HBX)
|
||||
PNK = (GVF, VBJ)
|
||||
XXB = (LRV, HJS)
|
||||
DVF = (TBS, RCP)
|
||||
PNR = (NCJ, QQV)
|
||||
QKQ = (CQT, TKX)
|
||||
TTR = (SPL, DKH)
|
||||
BTN = (RRG, SFV)
|
||||
VLM = (PHH, SFH)
|
||||
TQG = (SJD, CSH)
|
||||
MHP = (LQX, HNT)
|
||||
NQX = (GDC, XRN)
|
||||
TQX = (BPK, CFB)
|
||||
TVB = (LHR, SMV)
|
||||
MBQ = (XQL, HGM)
|
||||
HXJ = (MQS, NFX)
|
||||
DHN = (PBJ, RGF)
|
||||
BFN = (MKG, NKB)
|
||||
PVR = (JXJ, NDH)
|
||||
QRL = (GBQ, GSC)
|
||||
GJM = (NSP, BTV)
|
||||
KQV = (NHH, CQK)
|
||||
KNP = (TKS, PKS)
|
||||
PDD = (FND, JKP)
|
||||
GXT = (VKF, RQM)
|
||||
XDC = (FTL, JTG)
|
||||
MMF = (SSM, NQJ)
|
||||
BFV = (CHF, NHG)
|
||||
DHS = (PHX, PHX)
|
||||
VXC = (PQH, TFJ)
|
||||
XLV = (TLL, RVS)
|
||||
PXX = (SLC, PDD)
|
||||
GVD = (DRC, DRC)
|
||||
THS = (VQJ, RLK)
|
||||
DBK = (PGC, NSK)
|
||||
KHB = (PHC, QQJ)
|
||||
TKS = (PMR, TMM)
|
||||
SVR = (NJN, TFP)
|
||||
HNQ = (QQN, GNF)
|
||||
MKN = (GGG, DFM)
|
||||
KRP = (NFM, NFC)
|
||||
SHM = (XBQ, DLL)
|
||||
NTL = (NCT, DFB)
|
||||
NRK = (QVK, FLR)
|
||||
HXL = (DSX, DSX)
|
||||
KSB = (XKV, PVR)
|
||||
NKK = (BKF, QMJ)
|
||||
MHG = (KLS, BFV)
|
||||
PNP = (XBR, QHN)
|
||||
CLQ = (TPX, NMV)
|
||||
RSG = (XDC, NRQ)
|
||||
BPM = (PCQ, QKX)
|
||||
PHC = (PDK, BNV)
|
||||
TNR = (KJV, QGC)
|
||||
XQL = (VPV, SVR)
|
||||
MHV = (QTS, RSG)
|
||||
XBR = (THC, JHT)
|
||||
BDX = (PHH, SFH)
|
||||
TBR = (CXV, SGD)
|
||||
RVQ = (SRV, LPC)
|
||||
NFM = (PKQ, MDK)
|
||||
FBL = (DRC, QSZ)
|
||||
TLM = (BNH, SLK)
|
||||
NHH = (SKS, GPP)
|
||||
FKF = (RMN, VPJ)
|
||||
XVL = (HTP, KFB)
|
||||
NHG = (CLQ, JGQ)
|
||||
FGK = (NBH, KBX)
|
||||
VMQ = (DFB, NCT)
|
||||
LXX = (DKR, PNK)
|
||||
SMJ = (QGB, NFS)
|
||||
LVP = (KDC, GFT)
|
||||
QGB = (PRL, RFL)
|
||||
BRX = (BNJ, FGK)
|
||||
BDV = (MRF, RXX)
|
||||
SJM = (BMR, LJQ)
|
||||
GBQ = (TQG, QXX)
|
||||
JXR = (XJT, CVX)
|
||||
TMN = (XSN, PQM)
|
||||
CQT = (LGM, JMT)
|
||||
CPG = (QHP, RBN)
|
||||
BKZ = (BFV, KLS)
|
||||
VVR = (HTK, GGR)
|
||||
XFM = (NFP, FCC)
|
||||
CVH = (GJV, HVV)
|
||||
VPS = (XQT, MHP)
|
||||
MDJ = (QHJ, MFT)
|
||||
SNF = (QTS, RSG)
|
||||
NKQ = (HMB, JVX)
|
||||
PRL = (FNF, VXB)
|
||||
CMN = (MLG, HJM)
|
||||
JQL = (NKQ, CNV)
|
||||
QSZ = (CHQ, SFC)
|
||||
HLR = (MHV, SNF)
|
||||
RDL = (TBG, GVL)
|
||||
GVM = (KDC, GFT)
|
||||
KTV = (CKK, VBK)
|
||||
SLC = (JKP, FND)
|
||||
QHL = (MRF, RXX)
|
||||
KKN = (MPL, MMT)
|
||||
TNV = (HKP, GTX)
|
||||
QMJ = (TVG, JCF)
|
||||
BSJ = (NFV, FST)
|
||||
BNJ = (NBH, KBX)
|
||||
XXQ = (GCD, CMQ)
|
||||
TGQ = (NKK, MRC)
|
||||
SVH = (NFC, NFM)
|
||||
LQB = (FRG, JKS)
|
||||
GNF = (HRV, PTT)
|
||||
PFV = (CVX, XJT)
|
||||
JTK = (DLJ, DLJ)
|
||||
KSP = (LVP, GVM)
|
||||
PFD = (TBR, QDT)
|
||||
MLT = (KSQ, KKJ)
|
||||
GVF = (HFK, GLB)
|
||||
JLS = (PPX, SVK)
|
||||
TBK = (CMQ, GCD)
|
||||
LJB = (QHJ, MFT)
|
||||
KSQ = (PST, TQP)
|
||||
SXC = (PHX, TRP)
|
||||
TTB = (NRP, KMS)
|
||||
VBX = (MHV, SNF)
|
||||
CXV = (PNR, HTT)
|
||||
XCT = (NFS, QGB)
|
||||
JBD = (KRP, SVH)
|
||||
JDX = (HRS, VXC)
|
||||
BNH = (TJQ, SSC)
|
||||
HQD = (RBN, QHP)
|
||||
RXX = (NKP, JKG)
|
||||
NTC = (NND, PNP)
|
||||
QTF = (TVQ, MHR)
|
||||
JND = (FCV, SBH)
|
||||
RDS = (MQB, GCN)
|
||||
FDL = (FLG, VHN)
|
||||
TGJ = (SFL, PHQ)
|
||||
KBX = (GQB, LVX)
|
||||
GQR = (TMD, KQH)
|
||||
LMS = (JBD, GSM)
|
||||
VPJ = (SMJ, XCT)
|
||||
LVQ = (HXL, VNK)
|
||||
GDK = (QBV, FKF)
|
||||
KCD = (PXM, THR)
|
||||
JGG = (GCV, HDH)
|
||||
NFP = (BRK, GLT)
|
||||
SFV = (TBK, XXQ)
|
||||
KJK = (QKN, XPD)
|
||||
CVX = (SBX, QKJ)
|
||||
GCG = (QJF, MDQ)
|
||||
FNB = (VFV, VPQ)
|
||||
CBV = (STX, MBQ)
|
||||
PNH = (QPG, KXN)
|
||||
HFC = (GSJ, RDT)
|
||||
GHF = (FLN, RJF)
|
||||
CKK = (BRV, DKG)
|
||||
LFN = (QKQ, QSK)
|
||||
MNH = (VKF, RQM)
|
||||
MMP = (GJX, JGH)
|
||||
HVB = (SSG, TNR)
|
||||
TMD = (BSJ, VBC)
|
||||
QTS = (NRQ, XDC)
|
||||
TVQ = (PTN, HVB)
|
||||
HTT = (QQV, NCJ)
|
||||
PQM = (KJQ, THS)
|
||||
XJT = (QKJ, SBX)
|
||||
PST = (QGL, DMD)
|
||||
XXT = (MBD, KQV)
|
||||
PCL = (QJP, FXX)
|
||||
MJC = (VPK, VNC)
|
||||
QPV = (JLS, TND)
|
||||
JLJ = (PQM, XSN)
|
||||
BKF = (TVG, JCF)
|
||||
SFT = (FRQ, MQV)
|
||||
XGJ = (HXL, HXL)
|
||||
JSF = (KKJ, KSQ)
|
||||
RMN = (XCT, SMJ)
|
||||
RPV = (TBD, DKP)
|
||||
XLT = (CKM, XVL)
|
||||
DJB = (CMN, XNQ)
|
||||
KCK = (GVB, RMS)
|
||||
LLT = (VFV, VPQ)
|
||||
CVS = (MHR, TVQ)
|
||||
NBS = (VBK, CKK)
|
||||
LJQ = (DMR, FRX)
|
||||
HKS = (TGM, RHV)
|
||||
HTC = (BFR, RFX)
|
||||
LDL = (VMD, SSP)
|
||||
QRV = (HXV, DVF)
|
||||
NST = (TBG, GVL)
|
||||
GQB = (JSF, MLT)
|
||||
KJT = (MBD, KQV)
|
||||
GSJ = (SVQ, JTT)
|
||||
FDX = (TVB, GXP)
|
||||
SSP = (XFM, DFD)
|
||||
FRQ = (LDK, HBD)
|
||||
JLR = (HTD, SVP)
|
||||
HNS = (SPR, TCR)
|
||||
MCZ = (SGM, CGR)
|
||||
GCV = (VPS, MJH)
|
||||
MDQ = (JJC, JXL)
|
||||
RKG = (NHX, CRT)
|
||||
TMT = (NND, PNP)
|
||||
SFC = (KSB, CXF)
|
||||
CQK = (SKS, GPP)
|
||||
FND = (LML, QDS)
|
||||
HVH = (HBN, SVN)
|
||||
CNV = (HMB, JVX)
|
||||
CMQ = (CXS, PCC)
|
||||
NLQ = (JTR, MCM)
|
||||
GDC = (RMQ, RMQ)
|
||||
PHX = (GVD, GVD)
|
||||
NKP = (HXJ, MGF)
|
||||
RRG = (XXQ, TBK)
|
||||
TFP = (BGQ, FBP)
|
||||
GXX = (LJB, MDJ)
|
||||
23
2023/8/part1.py
Normal file
23
2023/8/part1.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
instructions = []
|
||||
nodes = {}
|
||||
|
||||
for line in open("./input2"):
|
||||
if not instructions:
|
||||
instructions = [x for x in line.strip()]
|
||||
continue
|
||||
if line == "\n": continue
|
||||
name = line.split(" ")[0].strip()
|
||||
leftnode = line.split("(")[1].split(",")[0].strip()
|
||||
rightnode = line.split("(")[1].split(",")[1].split(")")[0].strip()
|
||||
nodes[name] = (leftnode, rightnode)
|
||||
|
||||
node = "AAA"
|
||||
count = 0
|
||||
|
||||
while node != "ZZZ":
|
||||
node = nodes[node][1 if instructions[0] == "R" else 0]
|
||||
instructions = instructions[1:] + instructions[:1]
|
||||
count += 1
|
||||
|
||||
print(count)
|
||||
51
2023/8/part2.py
Normal file
51
2023/8/part2.py
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import math
|
||||
from itertools import cycle
|
||||
|
||||
instructions = []
|
||||
nodes = {}
|
||||
|
||||
for line in open("./input2"):
|
||||
if not instructions:
|
||||
instructions = [(0 if x == "L" else 1) for x in line.strip()]
|
||||
continue
|
||||
if line == "\n": continue
|
||||
name = line.split(" ")[0].strip()
|
||||
leftnode = line.split("(")[1].split(",")[0].strip()
|
||||
rightnode = line.split("(")[1].split(",")[1].split(")")[0].strip()
|
||||
nodes[name] = (leftnode, rightnode)
|
||||
|
||||
# count = 0
|
||||
current = [(node, []) for node in nodes.keys() if node.endswith("A")]
|
||||
|
||||
for i, node in enumerate(current):
|
||||
instructionsc = cycle(instructions)
|
||||
instruction_offset = 0
|
||||
nnode = node[0]
|
||||
zets = []
|
||||
steps = 0
|
||||
while not nnode.endswith("Z"):
|
||||
nnode = nodes[nnode][next(instructionsc)]
|
||||
steps += 1
|
||||
# if not steps - 1 in zets:
|
||||
# zets.append(steps - 1)
|
||||
current[i] = (node[0], steps)
|
||||
print(node[0], steps)
|
||||
|
||||
print(current)
|
||||
|
||||
values = [node[1] for node in current]
|
||||
|
||||
print(values)
|
||||
|
||||
# num = 0
|
||||
# lowest_value = min(value[1] for value in values)
|
||||
# print("low", lowest_value)
|
||||
|
||||
# while True:
|
||||
# num += lowest_value
|
||||
# # print(num)
|
||||
# if all([num % value[1] == value[0] for value in values]):
|
||||
# print("Found", num)
|
||||
# break
|
||||
|
||||
print(math.lcm(*[node for node in values]))
|
||||
122
2023/8/src/main.rs
Normal file
122
2023/8/src/main.rs
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
use std::{io::{BufReader, BufRead}, fs::File, ops::Index};
|
||||
use std::collections::HashMap;
|
||||
use std::sync::mpsc;
|
||||
|
||||
struct Node {
|
||||
left: String,
|
||||
right: String
|
||||
}
|
||||
enum Instruction {
|
||||
Left,
|
||||
Right
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let values = [[18156, 36313], [11652, 23305], [21408, 42817], [12736, 25473], [14362, 28725], [15988, 31977]];
|
||||
let lowest_value = values.iter().map(|v| v[1]).min().unwrap();
|
||||
let mut num: i64 = values[1][0];
|
||||
let mut printcount = 0;
|
||||
dbg!(lowest_value);
|
||||
|
||||
'main: loop {
|
||||
num += lowest_value;
|
||||
for value in &values {
|
||||
if num % value[1] != value[0] {
|
||||
printcount += 1;
|
||||
if printcount % 100000000 == 0 {
|
||||
dbg!(num);
|
||||
}
|
||||
// if value[0] != 18156 {
|
||||
// dbg!(num, value[1], value[0], num % value[1]);
|
||||
// }
|
||||
continue 'main;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
dbg!(num);
|
||||
|
||||
// let file = BufReader::new(File::open("./input2").unwrap());
|
||||
// let mut instructions = vec![];
|
||||
// let mut nodes = HashMap::new();
|
||||
|
||||
// for line in file.lines() {
|
||||
// let line = line.unwrap();
|
||||
// if instructions.is_empty() {
|
||||
// let chars = line.chars().collect::<Vec<char>>();
|
||||
// // L = Left, R = Right
|
||||
// for c in chars {
|
||||
// match c {
|
||||
// 'L' => instructions.push(Instruction::Left),
|
||||
// 'R' => instructions.push(Instruction::Right),
|
||||
// _ => ()
|
||||
// }
|
||||
// }
|
||||
// continue;
|
||||
// }
|
||||
// if line.is_empty() {
|
||||
// continue;
|
||||
// }
|
||||
// let name = line.split(" ").next().unwrap();
|
||||
// let left = line.split("(").nth(1).unwrap().split(",").next().unwrap();
|
||||
// let right = line.split("(").nth(1).unwrap().split(",").nth(1).unwrap().strip_suffix(")").unwrap().trim();
|
||||
|
||||
// nodes.insert(name.to_string(), Node { left: left.to_string(), right: right.to_string() });
|
||||
// }
|
||||
|
||||
// let mut instruction_pointer = 0;
|
||||
// let mut current_nodes = nodes.keys().filter(|k| k.ends_with("A")).collect::<Vec<&String>>();
|
||||
// /// Array of arrays corresponding to current_nodes, with each value in the array being the step in which the node reaches Z node
|
||||
// let mut z_values = Arc::new(RwLock::new(vec![Mutex::new(vec![]); current_nodes.len()]));
|
||||
|
||||
// dbg!(¤t_nodes);
|
||||
|
||||
// let mut count = 0;
|
||||
|
||||
// let z_values2 = z_values.clone();
|
||||
// let main_join_thread = thread::spawn(move || {
|
||||
// // If there's a common number between z_values, stop and return
|
||||
// loop {
|
||||
// let z_values = z_values2.read().unwrap();
|
||||
// let mut common_values = z_values.get(0).unwrap().lock().unwrap().clone();
|
||||
// for i in 1..z_values.len() {
|
||||
// let values = z_values.get(i).unwrap().lock().unwrap().clone();
|
||||
// common_values = common_values.iter().filter(|v| values.contains(v)).collect::<Vec<&usize>>();
|
||||
// }
|
||||
// if !common_values.is_empty() {
|
||||
// return common_values[0].clone();
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
// let mut offset = 0;
|
||||
// for node in current_nodes {
|
||||
// thread::spawn(move || {
|
||||
// let mut node = node;
|
||||
// let offset = offset;
|
||||
// });
|
||||
// offset += 1;
|
||||
// }
|
||||
|
||||
// let val = main_join_thread.join().unwrap();
|
||||
// dbg!(val);
|
||||
|
||||
// while !current_nodes.iter().all(|n| n.ends_with("Z")) {
|
||||
// let mut next_nodes = vec![];
|
||||
// for node in current_nodes {
|
||||
// let node = nodes.get(node).unwrap();
|
||||
// match instructions[instruction_pointer] {
|
||||
// Instruction::Left => next_nodes.push(&node.left),
|
||||
// Instruction::Right => next_nodes.push(&node.right)
|
||||
// }
|
||||
// }
|
||||
// instruction_pointer += 1;
|
||||
// instruction_pointer %= instructions.len();
|
||||
// count += 1;
|
||||
// current_nodes = next_nodes;
|
||||
// }
|
||||
|
||||
// dbg!(count);
|
||||
// println!("{count}");
|
||||
}
|
||||
Loading…
Reference in a new issue