Compare commits
2 Commits
82aa5ccf03
...
a07df912c6
Author | SHA1 | Date | |
---|---|---|---|
a07df912c6 | |||
8f64b8fece |
16
day8/Cargo.lock
generated
Normal file
16
day8/Cargo.lock
generated
Normal file
@ -0,0 +1,16 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.75"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
|
||||
|
||||
[[package]]
|
||||
name = "day8"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
]
|
9
day8/Cargo.toml
Normal file
9
day8/Cargo.toml
Normal file
@ -0,0 +1,9 @@
|
||||
[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]
|
||||
anyhow = "1.0.75"
|
740
day8/input
Normal file
740
day8/input
Normal file
@ -0,0 +1,740 @@
|
||||
LRRRLLRLLRRLRLRRRLRLRRRLRRLLRRRLRRLRLLRLLRRLRLLLLRRLRRLRLLRRLRRRLLLRRLRLRRLRRRLRRRLLRLRRRLLRRLRRRLRRLRLRRLRRLLRLRLRRRLRRLRRLRRRLRRLRRLRLRRRLRRRLRRRLLLRLRRLRLRRRLRRRLRRLRRLLRLRRLLRRLLRLRRLRLRRLRRRLRLRRLRLRRRLLRRLLRLRRRLRRRLRRRLRRRLLLRLRRLRRRLRRRLRLLRRLLRRLRLRLLRRLRRLLRRRLRLRRRLRRRR
|
||||
|
||||
RTF = (TRM, KNP)
|
||||
FNJ = (DRR, MJH)
|
||||
KNM = (CGF, LSP)
|
||||
MDH = (CMN, VKC)
|
||||
VKM = (FLM, SNG)
|
||||
CMK = (JNV, PHR)
|
||||
XJN = (GLC, SXG)
|
||||
MGJ = (GCQ, XFC)
|
||||
VKV = (DCV, QND)
|
||||
HJR = (JMR, TKR)
|
||||
QDR = (NNR, VBQ)
|
||||
NGT = (QPS, JRL)
|
||||
LNP = (XLG, HJN)
|
||||
TRT = (CBR, BGZ)
|
||||
QMP = (NTN, QPC)
|
||||
LMV = (CGS, NGH)
|
||||
FLV = (QMV, QNL)
|
||||
RHV = (BGC, RTF)
|
||||
SLD = (BSP, BNH)
|
||||
SNK = (XCJ, QGG)
|
||||
CPM = (RHJ, TKJ)
|
||||
JGS = (XPM, FRL)
|
||||
MFC = (DFM, HHP)
|
||||
TDP = (FCD, RRJ)
|
||||
JSS = (TQN, PTG)
|
||||
XBD = (RTF, BGC)
|
||||
NLH = (RBF, MKL)
|
||||
MTV = (JCJ, BNV)
|
||||
BSP = (RMB, GLP)
|
||||
RBD = (MGM, RBG)
|
||||
KGT = (BDQ, KBL)
|
||||
SCC = (CXH, PJD)
|
||||
SST = (HCP, HVM)
|
||||
MVK = (JJL, LKV)
|
||||
LLV = (KSH, TSN)
|
||||
CDK = (TDR, GPN)
|
||||
FQL = (HKL, DLZ)
|
||||
XSQ = (NBX, VTC)
|
||||
JGV = (HFL, PSV)
|
||||
PCH = (FXX, QGP)
|
||||
PMJ = (VHS, SMQ)
|
||||
VTC = (CTB, HPS)
|
||||
SPM = (XSD, FFP)
|
||||
BCC = (XGG, VRC)
|
||||
LPP = (SMD, SRF)
|
||||
DDS = (XJN, NNQ)
|
||||
HNH = (DXB, SPC)
|
||||
CNH = (TCP, GCL)
|
||||
XDP = (DPP, CPM)
|
||||
VBX = (XJN, NNQ)
|
||||
HCK = (NRF, LBG)
|
||||
PXX = (HCX, PBL)
|
||||
XKV = (HRB, HGC)
|
||||
CHH = (RHT, KKX)
|
||||
PPN = (NXV, PGP)
|
||||
TKJ = (CSL, VSS)
|
||||
HCP = (HDT, NVR)
|
||||
JMM = (CTM, FXL)
|
||||
XMF = (JVP, BBV)
|
||||
QXD = (XHV, PGF)
|
||||
KNP = (NNC, PHX)
|
||||
NKR = (DTK, DLL)
|
||||
RLJ = (NKB, QQM)
|
||||
FKG = (KSG, RDQ)
|
||||
VKF = (GQH, DJQ)
|
||||
LKB = (FFP, XSD)
|
||||
LGR = (FJT, KHV)
|
||||
HJN = (DXT, VSG)
|
||||
JJR = (GPN, TDR)
|
||||
PKQ = (PBG, XSG)
|
||||
VGT = (RRK, PJT)
|
||||
GJR = (CTH, HML)
|
||||
BKV = (HTL, XKH)
|
||||
PGR = (SPV, LFG)
|
||||
TKX = (FHJ, SJD)
|
||||
RPF = (CML, XXS)
|
||||
DGP = (BDQ, KBL)
|
||||
PPX = (JXH, TKL)
|
||||
VMJ = (HLL, FHX)
|
||||
GDK = (SDR, TBL)
|
||||
RXG = (NNX, JCB)
|
||||
DLN = (RLJ, FPL)
|
||||
MJH = (TXS, PXX)
|
||||
QQD = (THQ, GJN)
|
||||
NQS = (CBF, FQL)
|
||||
SLK = (MLG, MGJ)
|
||||
KVR = (GDB, VTQ)
|
||||
DHC = (GVG, RTQ)
|
||||
FLM = (TRK, NQM)
|
||||
SPC = (RNS, BSB)
|
||||
QMT = (LFB, BSX)
|
||||
GCS = (LMB, QXS)
|
||||
FVK = (TDP, XMK)
|
||||
RTQ = (DSC, HDP)
|
||||
PCG = (DKM, KDJ)
|
||||
DKM = (PKV, RXG)
|
||||
HCX = (MRM, GRM)
|
||||
NLM = (XDX, KNM)
|
||||
PKD = (LVC, QLT)
|
||||
QPD = (MNT, ZZZ)
|
||||
TSN = (RQF, BSG)
|
||||
VLC = (TBH, BNQ)
|
||||
VVD = (MTV, JVT)
|
||||
GXD = (JMM, HSF)
|
||||
TPT = (TLL, HFC)
|
||||
MRM = (VTD, KVR)
|
||||
TFF = (RPF, MSH)
|
||||
PBJ = (BMM, LTG)
|
||||
HGC = (VGT, TRG)
|
||||
BFM = (CDL, KLQ)
|
||||
TRM = (PHX, NNC)
|
||||
CCN = (BGG, MVK)
|
||||
FCK = (KBP, BRX)
|
||||
GDM = (DQR, HRH)
|
||||
PTG = (QDR, JRK)
|
||||
SCN = (MRX, LNJ)
|
||||
HSF = (FXL, CTM)
|
||||
SQN = (HFS, KXS)
|
||||
HCQ = (SCN, CPR)
|
||||
FSK = (RVX, DGG)
|
||||
VTQ = (CGD, QHG)
|
||||
DPP = (RHJ, TKJ)
|
||||
RRK = (BFN, QNH)
|
||||
GTC = (GTP, KGJ)
|
||||
FSN = (DRR, MJH)
|
||||
GKC = (KQX, QSP)
|
||||
CPN = (RVX, DGG)
|
||||
KBL = (BVV, GJR)
|
||||
CTM = (SLD, DRK)
|
||||
LFR = (CHT, PCB)
|
||||
SNG = (NQM, TRK)
|
||||
KSG = (QFM, QCT)
|
||||
DSV = (NKR, VMK)
|
||||
GNB = (CPN, FSK)
|
||||
HKD = (XBB, GFV)
|
||||
NQM = (HNH, CCR)
|
||||
NJS = (GVV, LPP)
|
||||
DCG = (LCN, MGN)
|
||||
SVN = (CBR, CBR)
|
||||
FXX = (FNJ, FSN)
|
||||
DFR = (GDK, RXK)
|
||||
KMQ = (KXJ, LMV)
|
||||
PHX = (QKS, KPF)
|
||||
LKM = (QQD, VGN)
|
||||
JSG = (LGD, VVD)
|
||||
MGM = (BQJ, CTP)
|
||||
PDF = (MJB, CPQ)
|
||||
NGX = (MVS, PBJ)
|
||||
QPC = (LJR, RGZ)
|
||||
MRJ = (GJB, TJG)
|
||||
PCR = (CVR, MSD)
|
||||
SSF = (PFK, TKC)
|
||||
RJP = (LSN, NJS)
|
||||
QMS = (MVS, PBJ)
|
||||
HCV = (LNP, BKR)
|
||||
HXH = (MNT, MNT)
|
||||
DJD = (MMQ, PLB)
|
||||
PKV = (NNX, JCB)
|
||||
LGX = (KBP, BRX)
|
||||
GHT = (XSQ, HSD)
|
||||
BGG = (JJL, LKV)
|
||||
NRF = (SSK, NTV)
|
||||
QSV = (PPV, VJB)
|
||||
LHP = (PTG, TQN)
|
||||
VGN = (GJN, THQ)
|
||||
PBH = (GXD, NNB)
|
||||
MMJ = (JKS, CMK)
|
||||
XVC = (LLV, GRL)
|
||||
RST = (SJS, BRN)
|
||||
BDQ = (BVV, GJR)
|
||||
HVM = (HDT, NVR)
|
||||
DGK = (NGN, VDN)
|
||||
GQN = (KSG, RDQ)
|
||||
MKL = (DCG, QDT)
|
||||
BFL = (MMQ, PLB)
|
||||
MSD = (DNM, MCC)
|
||||
DFM = (NSC, FLV)
|
||||
DJQ = (CBS, VHP)
|
||||
RJD = (MGF, SCR)
|
||||
XQK = (VBX, DDS)
|
||||
PGP = (KGT, DGP)
|
||||
TKL = (LKM, MGV)
|
||||
RVX = (PKD, MNK)
|
||||
GJB = (HDG, XTV)
|
||||
HFG = (RJP, VXB)
|
||||
BSG = (HXH, QPD)
|
||||
KXS = (MKC, CDM)
|
||||
QKV = (XMF, CJX)
|
||||
XKJ = (XQK, RDH)
|
||||
VHS = (SNK, PHP)
|
||||
GRM = (KVR, VTD)
|
||||
GLC = (KJM, QHK)
|
||||
KHC = (LMV, KXJ)
|
||||
NTN = (LJR, LJR)
|
||||
BFN = (BCC, GPK)
|
||||
HML = (RLX, MDH)
|
||||
BTD = (HHQ, XTH)
|
||||
DRR = (PXX, TXS)
|
||||
BBP = (SVN, TRT)
|
||||
FHX = (VRK, JQL)
|
||||
JXH = (LKM, MGV)
|
||||
DNF = (HFS, KXS)
|
||||
MNT = (DCX, FDP)
|
||||
MSH = (XXS, CML)
|
||||
BNV = (JPL, MPG)
|
||||
KGJ = (NSL, QQC)
|
||||
BKR = (HJN, XLG)
|
||||
KJG = (LTM, RNL)
|
||||
QGG = (QDQ, HVT)
|
||||
MNK = (LVC, QLT)
|
||||
NNB = (HSF, JMM)
|
||||
XBF = (GQH, DJQ)
|
||||
GQH = (VHP, CBS)
|
||||
KJM = (FGM, DML)
|
||||
MRX = (BFM, VTN)
|
||||
CPR = (MRX, LNJ)
|
||||
LRP = (MCX, LSD)
|
||||
QHL = (VLP, VLP)
|
||||
VKC = (TGM, DNT)
|
||||
FRN = (LGX, FCK)
|
||||
MRR = (PCG, GTG)
|
||||
QTT = (NRJ, CKC)
|
||||
XVK = (QRQ, MRJ)
|
||||
SJD = (BGN, XKR)
|
||||
CKT = (KPH, MRR)
|
||||
HFB = (JKS, CMK)
|
||||
MJB = (RSX, XVC)
|
||||
HSD = (NBX, VTC)
|
||||
HHQ = (VPR, TNF)
|
||||
KQT = (FHX, HLL)
|
||||
BMX = (GQP, VKM)
|
||||
BKK = (CNH, FNN)
|
||||
CXV = (XMF, CJX)
|
||||
BRX = (FQJ, QMT)
|
||||
MQV = (NRJ, CKC)
|
||||
QBR = (QSV, MTB)
|
||||
CDL = (JHM, QXD)
|
||||
XTH = (VPR, TNF)
|
||||
BBJ = (FJT, KHV)
|
||||
CXS = (MGF, SCR)
|
||||
HBL = (XKB, XKJ)
|
||||
PHT = (BDS, KHF)
|
||||
RJR = (QLS, HCK)
|
||||
THQ = (GCS, GXV)
|
||||
QNB = (BBJ, LGR)
|
||||
XFC = (CFP, XDP)
|
||||
BMM = (DQF, TGS)
|
||||
NVR = (QNB, HVX)
|
||||
QHG = (XRB, DPB)
|
||||
HFS = (MKC, CDM)
|
||||
LCK = (HXR, QPF)
|
||||
GHF = (NQP, RBD)
|
||||
XPM = (RVC, QSX)
|
||||
CFP = (CPM, DPP)
|
||||
GJC = (PPN, FMR)
|
||||
QFM = (XCR, PPX)
|
||||
XCF = (QKV, CXV)
|
||||
TTX = (HTC, HTC)
|
||||
XLG = (DXT, VSG)
|
||||
QNH = (GPK, BCC)
|
||||
FHJ = (XKR, BGN)
|
||||
SPV = (RVF, DFR)
|
||||
FNN = (GCL, TCP)
|
||||
SXG = (QHK, KJM)
|
||||
TSD = (QBR, MLV)
|
||||
PFV = (KXK, NQX)
|
||||
LKS = (LKB, SPM)
|
||||
DQF = (XKV, QKR)
|
||||
HHT = (LHP, JSS)
|
||||
NSH = (MBK, PRM)
|
||||
SRF = (GDM, CPD)
|
||||
BDS = (GDN, RJB)
|
||||
KQX = (HVS, JGS)
|
||||
JHM = (XHV, PGF)
|
||||
KXF = (LNP, BKR)
|
||||
KRB = (MHM, NDN)
|
||||
FHR = (JRL, QPS)
|
||||
GJN = (GCS, GXV)
|
||||
QLT = (DFK, NGQ)
|
||||
GTP = (NSL, QQC)
|
||||
NCM = (PMJ, QTF)
|
||||
JVP = (NVX, KKM)
|
||||
JRK = (NNR, VBQ)
|
||||
CBR = (QGX, QDB)
|
||||
SJS = (PGG, PGG)
|
||||
DML = (NMJ, TKX)
|
||||
GPN = (JDL, DHV)
|
||||
HKL = (FHR, NGT)
|
||||
CVN = (FXX, QGP)
|
||||
TBH = (GJC, SGC)
|
||||
VTM = (LFR, NTZ)
|
||||
JFC = (VVD, LGD)
|
||||
BSB = (VLC, GML)
|
||||
MGV = (QQD, VGN)
|
||||
PGG = (TRJ, TRJ)
|
||||
LGD = (JVT, MTV)
|
||||
TKC = (BFB, QCD)
|
||||
CPX = (HXC, MBP)
|
||||
JGD = (LHP, JSS)
|
||||
CBS = (VVJ, FQR)
|
||||
KMB = (HCK, QLS)
|
||||
VBT = (CXJ, PHT)
|
||||
VPR = (JFC, JSG)
|
||||
TKR = (MVD, HFG)
|
||||
RXK = (SDR, TBL)
|
||||
DRK = (BNH, BSP)
|
||||
SCR = (PCR, SXP)
|
||||
DMN = (VDN, NGN)
|
||||
KTA = (FHR, NGT)
|
||||
PHP = (XCJ, QGG)
|
||||
KPF = (TPV, VBM)
|
||||
MGQ = (DCV, QND)
|
||||
LSN = (GVV, LPP)
|
||||
KPM = (BDK, GTC)
|
||||
QMM = (DJD, BFL)
|
||||
DXT = (PGR, BMQ)
|
||||
MKX = (PKQ, BCN)
|
||||
BFB = (QMM, TXJ)
|
||||
GFD = (LSD, MCX)
|
||||
PFK = (QCD, BFB)
|
||||
LTM = (DLV, DCC)
|
||||
SSK = (SRG, NSB)
|
||||
LHC = (TDJ, FPQ)
|
||||
LFG = (DFR, RVF)
|
||||
RBH = (VKM, GQP)
|
||||
GDN = (DMN, DGK)
|
||||
GTG = (DKM, KDJ)
|
||||
BVK = (KVJ, KGP)
|
||||
QMQ = (TRJ, HMF)
|
||||
NNQ = (GLC, SXG)
|
||||
XTJ = (MXN, MDT)
|
||||
MCP = (HFL, PSV)
|
||||
HTC = (LFR, LFR)
|
||||
DLV = (KRB, KBJ)
|
||||
RBG = (CTP, BQJ)
|
||||
CDD = (XKB, XKJ)
|
||||
RBF = (QDT, DCG)
|
||||
VJL = (MRR, KPH)
|
||||
HRH = (CQC, NSH)
|
||||
FNG = (XBD, RHV)
|
||||
QGM = (FKG, GQN)
|
||||
BDK = (KGJ, GTP)
|
||||
HDG = (DPD, GVF)
|
||||
GFP = (XKH, HTL)
|
||||
NDJ = (CPX, LCR)
|
||||
NGN = (CKT, VJL)
|
||||
QRQ = (TJG, GJB)
|
||||
VSS = (TLF, MKX)
|
||||
DHV = (BKV, GFP)
|
||||
QXS = (MBN, MKK)
|
||||
NBX = (HPS, CTB)
|
||||
LXB = (NCM, RRR)
|
||||
GQL = (GKC, GCC)
|
||||
JCB = (RSG, PDF)
|
||||
JRL = (QMN, NKD)
|
||||
PBL = (MRM, GRM)
|
||||
KHF = (GDN, RJB)
|
||||
MPG = (GFQ, MFC)
|
||||
VTN = (KLQ, CDL)
|
||||
CSN = (HQG, HQG)
|
||||
KSH = (RQF, RQF)
|
||||
BGQ = (CCG, NLH)
|
||||
GVV = (SRF, SMD)
|
||||
JJL = (QMS, NGX)
|
||||
HBT = (CGH, RQJ)
|
||||
RSX = (LLV, GRL)
|
||||
CTH = (RLX, MDH)
|
||||
CXH = (GRV, RLB)
|
||||
QKR = (HGC, HRB)
|
||||
TDR = (DHV, JDL)
|
||||
TBL = (DNF, SQN)
|
||||
BMQ = (SPV, LFG)
|
||||
MVX = (XQS, MKV)
|
||||
RNL = (DLV, DCC)
|
||||
CCG = (RBF, MKL)
|
||||
TRJ = (FLG, FLG)
|
||||
XFP = (NLL, BTD)
|
||||
CHT = (NCJ, BGQ)
|
||||
KMK = (CXV, QKV)
|
||||
MVS = (BMM, LTG)
|
||||
PNM = (HTC, VTM)
|
||||
BSX = (HJR, PXV)
|
||||
RSV = (BTD, NLL)
|
||||
QHK = (FGM, DML)
|
||||
QNG = (RQP, QHB)
|
||||
XRX = (KXF, HCV)
|
||||
DPD = (PCD, GHT)
|
||||
KXJ = (CGS, NGH)
|
||||
VTD = (GDB, VTQ)
|
||||
QND = (BVJ, HKD)
|
||||
VBQ = (PBH, SBT)
|
||||
SGC = (FMR, PPN)
|
||||
NTZ = (PCB, CHT)
|
||||
DQR = (NSH, CQC)
|
||||
KVJ = (SCC, JCN)
|
||||
SXP = (CVR, MSD)
|
||||
RQP = (NNF, DRD)
|
||||
CJX = (JVP, BBV)
|
||||
RQJ = (XCF, KMK)
|
||||
PGF = (SGX, DHC)
|
||||
JLM = (XQS, MKV)
|
||||
KBB = (BML, NSJ)
|
||||
PMD = (HCQ, RQS)
|
||||
VDN = (VJL, CKT)
|
||||
LCR = (HXC, MBP)
|
||||
GFV = (LRP, GFD)
|
||||
PLA = (GFS, XPP)
|
||||
FPQ = (JLD, CJJ)
|
||||
KBP = (FQJ, QMT)
|
||||
BBV = (NVX, KKM)
|
||||
DSC = (RTV, KMV)
|
||||
KKX = (VKF, XBF)
|
||||
MDT = (RQQ, RST)
|
||||
PJT = (QNH, BFN)
|
||||
MGX = (HXR, QPF)
|
||||
RHT = (XBF, VKF)
|
||||
DLZ = (NGT, FHR)
|
||||
RRJ = (JLM, MVX)
|
||||
SXV = (QRQ, MRJ)
|
||||
BJX = (FMC, LXB)
|
||||
CJJ = (GHF, GXQ)
|
||||
HQR = (TTX, TTX)
|
||||
QHB = (NNF, DRD)
|
||||
RGZ = (XPP, GFS)
|
||||
TCP = (CXS, RJD)
|
||||
KRJ = (MLV, QBR)
|
||||
HXC = (NLG, KBB)
|
||||
MGN = (GNB, FCS)
|
||||
GXQ = (RBD, NQP)
|
||||
GPK = (XGG, VRC)
|
||||
LQD = (CVN, PCH)
|
||||
MJV = (VLP, QMP)
|
||||
LNJ = (VTN, BFM)
|
||||
QSX = (FMQ, QNG)
|
||||
GRL = (KSH, TSN)
|
||||
VJB = (HHT, JGD)
|
||||
QGP = (FSN, FNJ)
|
||||
TXT = (PCH, CVN)
|
||||
CML = (TSV, GQL)
|
||||
FQJ = (LFB, BSX)
|
||||
PHR = (LVG, BNJ)
|
||||
PMX = (KXF, HCV)
|
||||
FRL = (QSX, RVC)
|
||||
HDP = (KMV, RTV)
|
||||
SBT = (NNB, GXD)
|
||||
QLS = (NRF, LBG)
|
||||
RDH = (DDS, VBX)
|
||||
TPV = (VHH, KJG)
|
||||
KBJ = (NDN, MHM)
|
||||
MCX = (LCK, MGX)
|
||||
PPT = (XBD, RHV)
|
||||
QMN = (XRX, PMX)
|
||||
DCC = (KBJ, KRB)
|
||||
KPC = (XDX, KNM)
|
||||
MFM = (VRL, MHV)
|
||||
CGD = (DPB, XRB)
|
||||
CGS = (KJF, KPM)
|
||||
XCJ = (QDQ, HVT)
|
||||
XGG = (MCP, JGV)
|
||||
QGX = (VTS, BJX)
|
||||
QSP = (JGS, HVS)
|
||||
RQS = (CPR, SCN)
|
||||
NSJ = (RBK, TPT)
|
||||
DGG = (MNK, PKD)
|
||||
MLG = (GCQ, XFC)
|
||||
BML = (TPT, RBK)
|
||||
KHV = (TSH, BKK)
|
||||
BQJ = (XVK, SXV)
|
||||
GCC = (KQX, QSP)
|
||||
VMK = (DLL, DTK)
|
||||
FMR = (NXV, PGP)
|
||||
GVF = (PCD, GHT)
|
||||
HLL = (JQL, VRK)
|
||||
PCB = (NCJ, BGQ)
|
||||
TSV = (GKC, GCC)
|
||||
GLP = (CCN, LMC)
|
||||
CDM = (NHJ, QGM)
|
||||
MDJ = (KGP, KVJ)
|
||||
LSD = (LCK, MGX)
|
||||
MXN = (RQQ, RST)
|
||||
DFK = (VMJ, KQT)
|
||||
BGN = (BVK, MDJ)
|
||||
LJR = (GFS, XPP)
|
||||
RHJ = (VSS, CSL)
|
||||
VRK = (FRN, LRR)
|
||||
CGF = (RBH, BMX)
|
||||
DLL = (CKP, KMN)
|
||||
LVC = (NGQ, DFK)
|
||||
MVD = (RJP, VXB)
|
||||
TTG = (NKR, VMK)
|
||||
RCV = (RQS, HCQ)
|
||||
NQP = (MGM, RBG)
|
||||
HNT = (FPL, RLJ)
|
||||
JCJ = (JPL, MPG)
|
||||
VHJ = (CDD, HBL)
|
||||
HFL = (QHL, MJV)
|
||||
XMK = (RRJ, FCD)
|
||||
NHJ = (FKG, GQN)
|
||||
VTS = (LXB, FMC)
|
||||
FGM = (NMJ, TKX)
|
||||
JLD = (GHF, GXQ)
|
||||
NSL = (LQD, TXT)
|
||||
HHL = (LKB, SPM)
|
||||
JPL = (GFQ, MFC)
|
||||
XRB = (HBT, KRM)
|
||||
MNM = (MHV, VRL)
|
||||
CCR = (DXB, SPC)
|
||||
CPQ = (RSX, XVC)
|
||||
QQM = (TFL, RJV)
|
||||
XXK = (SLK, JST)
|
||||
LBT = (CBF, CBF)
|
||||
XKR = (MDJ, BVK)
|
||||
QMV = (QTT, MQV)
|
||||
CTP = (SXV, XVK)
|
||||
NVX = (HQR, TNP)
|
||||
HQG = (SVN, SVN)
|
||||
XCR = (JXH, TKL)
|
||||
PJD = (GRV, RLB)
|
||||
CGH = (XCF, KMK)
|
||||
VRC = (MCP, JGV)
|
||||
GCQ = (XDP, CFP)
|
||||
DCV = (BVJ, HKD)
|
||||
SRG = (PSK, QLV)
|
||||
BGC = (KNP, TRM)
|
||||
TDJ = (JLD, CJJ)
|
||||
FBH = (NQX, KXK)
|
||||
TRK = (CCR, HNH)
|
||||
RRR = (PMJ, QTF)
|
||||
LJA = (QGX, QDB)
|
||||
KJF = (GTC, BDK)
|
||||
FFP = (JDS, FVK)
|
||||
GML = (TBH, BNQ)
|
||||
KGP = (JCN, SCC)
|
||||
JMR = (HFG, MVD)
|
||||
MBP = (KBB, NLG)
|
||||
CBF = (HKL, HKL)
|
||||
FDP = (CDK, JJR)
|
||||
SDR = (SQN, DNF)
|
||||
VXB = (LSN, NJS)
|
||||
JDL = (GFP, BKV)
|
||||
XHV = (DHC, SGX)
|
||||
LRR = (FCK, LGX)
|
||||
VVJ = (XTJ, KKJ)
|
||||
HXR = (BGT, LFH)
|
||||
HDT = (QNB, HVX)
|
||||
SMQ = (PHP, SNK)
|
||||
KDJ = (PKV, RXG)
|
||||
GFS = (NDJ, SCX)
|
||||
QQC = (TXT, LQD)
|
||||
QCD = (TXJ, QMM)
|
||||
NGQ = (KQT, VMJ)
|
||||
PRM = (KMQ, KHC)
|
||||
NCJ = (NLH, CCG)
|
||||
FJT = (BKK, TSH)
|
||||
LMB = (MBN, MKK)
|
||||
XQS = (SST, VBD)
|
||||
MGF = (PCR, SXP)
|
||||
TJG = (HDG, XTV)
|
||||
SGX = (GVG, RTQ)
|
||||
CKC = (CSN, JXD)
|
||||
JVT = (JCJ, BNV)
|
||||
QDQ = (PFV, FBH)
|
||||
FQR = (KKJ, XTJ)
|
||||
NXV = (DGP, KGT)
|
||||
BCN = (PBG, XSG)
|
||||
DRD = (LHC, TRB)
|
||||
JDS = (TDP, XMK)
|
||||
MKC = (QGM, NHJ)
|
||||
JST = (MLG, MGJ)
|
||||
TRG = (RRK, PJT)
|
||||
JCN = (PJD, CXH)
|
||||
PXV = (JMR, TKR)
|
||||
MCC = (LBT, NQS)
|
||||
RBK = (HFC, TLL)
|
||||
CKP = (BRH, CHH)
|
||||
BVJ = (XBB, GFV)
|
||||
HRB = (TRG, VGT)
|
||||
NNF = (TRB, LHC)
|
||||
DXB = (RNS, BSB)
|
||||
VBM = (KJG, VHH)
|
||||
PPV = (JGD, HHT)
|
||||
MHV = (TSD, KRJ)
|
||||
BNH = (GLP, RMB)
|
||||
NLG = (NSJ, BML)
|
||||
LBG = (SSK, NTV)
|
||||
NMJ = (SJD, FHJ)
|
||||
PSK = (XCD, SSF)
|
||||
CSL = (MKX, TLF)
|
||||
MKK = (LKS, HHL)
|
||||
VBD = (HVM, HCP)
|
||||
NNX = (RSG, PDF)
|
||||
HGT = (RCV, PMD)
|
||||
PLB = (RSV, XFP)
|
||||
KXK = (VKV, MGQ)
|
||||
MHM = (KFR, CNM)
|
||||
AAA = (DCX, FDP)
|
||||
RMB = (CCN, LMC)
|
||||
BGT = (BBF, TFF)
|
||||
DNT = (RNT, XXK)
|
||||
GVG = (HDP, DSC)
|
||||
MKV = (VBD, SST)
|
||||
HFC = (MMJ, HFB)
|
||||
NDN = (KFR, CNM)
|
||||
RVC = (FMQ, QNG)
|
||||
JNV = (BNJ, LVG)
|
||||
TRB = (FPQ, TDJ)
|
||||
XDX = (LSP, CGF)
|
||||
RJB = (DMN, DGK)
|
||||
CPD = (DQR, HRH)
|
||||
NRJ = (CSN, JXD)
|
||||
XXS = (TSV, GQL)
|
||||
FCD = (JLM, MVX)
|
||||
BNQ = (GJC, SGC)
|
||||
TNP = (TTX, PNM)
|
||||
NSB = (QLV, PSK)
|
||||
HVX = (BBJ, LGR)
|
||||
JQL = (LRR, FRN)
|
||||
GXV = (LMB, QXS)
|
||||
HBZ = (PPT, FNG)
|
||||
NNR = (PBH, SBT)
|
||||
CTB = (RJR, KMB)
|
||||
HTL = (KPC, NLM)
|
||||
RLX = (VKC, CMN)
|
||||
NGH = (KPM, KJF)
|
||||
SMD = (CPD, GDM)
|
||||
LKV = (QMS, NGX)
|
||||
DCX = (JJR, CDK)
|
||||
TNF = (JFC, JSG)
|
||||
XTV = (GVF, DPD)
|
||||
LVG = (DLN, HNT)
|
||||
CVR = (DNM, MCC)
|
||||
JXA = (CHT, PCB)
|
||||
DPB = (HBT, KRM)
|
||||
LFH = (BBF, TFF)
|
||||
VHH = (RNL, LTM)
|
||||
DNM = (LBT, LBT)
|
||||
JXD = (HQG, BBP)
|
||||
RNS = (GML, VLC)
|
||||
KKJ = (MDT, MXN)
|
||||
NFA = (FNG, PPT)
|
||||
XBB = (GFD, LRP)
|
||||
HMF = (FLG, HBZ)
|
||||
LTG = (TGS, DQF)
|
||||
HHP = (NSC, FLV)
|
||||
GFQ = (HHP, DFM)
|
||||
XCD = (TKC, PFK)
|
||||
FXL = (SLD, DRK)
|
||||
LMC = (BGG, MVK)
|
||||
XXL = (PHT, CXJ)
|
||||
FPL = (NKB, QQM)
|
||||
LFB = (PXV, HJR)
|
||||
MBN = (LKS, HHL)
|
||||
QKB = (HBL, CDD)
|
||||
RJV = (VHJ, QKB)
|
||||
KMV = (DSV, TTG)
|
||||
QPF = (BGT, LFH)
|
||||
TFL = (VHJ, QKB)
|
||||
SCX = (CPX, LCR)
|
||||
BRH = (KKX, RHT)
|
||||
XKH = (KPC, NLM)
|
||||
FCS = (CPN, FSK)
|
||||
FMQ = (QHB, RQP)
|
||||
GRV = (MFM, MNM)
|
||||
QPS = (NKD, QMN)
|
||||
NTV = (NSB, SRG)
|
||||
NLL = (XTH, HHQ)
|
||||
QDT = (LCN, MGN)
|
||||
RTV = (DSV, TTG)
|
||||
RLB = (MNM, MFM)
|
||||
QKS = (VBM, TPV)
|
||||
QCT = (XCR, PPX)
|
||||
KMN = (BRH, CHH)
|
||||
TLF = (BCN, PKQ)
|
||||
JKS = (JNV, PHR)
|
||||
PBG = (VBT, XXL)
|
||||
NQX = (VKV, MGQ)
|
||||
FLG = (FNG, PPT)
|
||||
RNT = (SLK, JST)
|
||||
BNJ = (DLN, HNT)
|
||||
QLV = (SSF, XCD)
|
||||
FMC = (RRR, NCM)
|
||||
BRN = (PGG, QMQ)
|
||||
MBK = (KMQ, KHC)
|
||||
TXJ = (DJD, BFL)
|
||||
LCN = (FCS, GNB)
|
||||
TLL = (MMJ, HFB)
|
||||
GDB = (QHG, CGD)
|
||||
XSD = (JDS, FVK)
|
||||
BBF = (RPF, MSH)
|
||||
NSC = (QNL, QMV)
|
||||
GQP = (FLM, SNG)
|
||||
LSP = (BMX, RBH)
|
||||
KPH = (PCG, GTG)
|
||||
XPP = (SCX, NDJ)
|
||||
QNL = (MQV, QTT)
|
||||
TSH = (FNN, CNH)
|
||||
MMQ = (RSV, XFP)
|
||||
XSG = (XXL, VBT)
|
||||
GCL = (RJD, CXS)
|
||||
XHD = (RCV, PMD)
|
||||
TXS = (HCX, PBL)
|
||||
RSG = (CPQ, MJB)
|
||||
CXJ = (KHF, BDS)
|
||||
BGZ = (QDB, QGX)
|
||||
MTB = (VJB, PPV)
|
||||
MLV = (QSV, MTB)
|
||||
NKB = (RJV, TFL)
|
||||
QDB = (VTS, BJX)
|
||||
KLQ = (QXD, JHM)
|
||||
HPS = (RJR, KMB)
|
||||
TQN = (JRK, QDR)
|
||||
VHP = (FQR, VVJ)
|
||||
VRL = (TSD, KRJ)
|
||||
RDQ = (QCT, QFM)
|
||||
BVV = (HML, CTH)
|
||||
QTF = (VHS, SMQ)
|
||||
CMN = (TGM, DNT)
|
||||
TGM = (XXK, RNT)
|
||||
HVS = (FRL, XPM)
|
||||
NKD = (XRX, PMX)
|
||||
VLP = (NTN, NTN)
|
||||
CNM = (HGT, XHD)
|
||||
PSV = (QHL, MJV)
|
||||
RQF = (HXH, HXH)
|
||||
HVT = (FBH, PFV)
|
||||
RVF = (GDK, RXK)
|
||||
PCD = (HSD, XSQ)
|
||||
ZZZ = (FDP, DCX)
|
||||
KKM = (HQR, TNP)
|
||||
KRM = (CGH, RQJ)
|
||||
VSG = (PGR, BMQ)
|
||||
KFR = (HGT, XHD)
|
||||
RQQ = (SJS, BRN)
|
||||
NNC = (QKS, KPF)
|
||||
CQC = (MBK, PRM)
|
||||
XKB = (RDH, XQK)
|
||||
TGS = (XKV, QKR)
|
||||
DTK = (CKP, KMN)
|
10
day8/paratest
Normal file
10
day8/paratest
Normal file
@ -0,0 +1,10 @@
|
||||
LR
|
||||
|
||||
FFA = (FFB, XXX)
|
||||
FFB = (XXX, FFZ)
|
||||
FFZ = (FFB, XXX)
|
||||
GGA = (GGB, XXX)
|
||||
GGB = (GGC, GGC)
|
||||
GGC = (GGZ, GGZ)
|
||||
GGZ = (GGB, GGB)
|
||||
XXX = (XXX, XXX)
|
165
day8/src/main.rs
Normal file
165
day8/src/main.rs
Normal file
@ -0,0 +1,165 @@
|
||||
use std::{fmt::Display, str::FromStr, io::{stdin, Read}, collections::{BTreeMap, BTreeSet}};
|
||||
use anyhow::{anyhow, Error, Result};
|
||||
|
||||
mod pollard;
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
|
||||
enum Direction { L, R }
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
|
||||
struct Node(u16);
|
||||
|
||||
impl FromStr for Node {
|
||||
type Err = Error;
|
||||
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
if !(s.len() == 3 && s.is_ascii()) { return Err(anyhow!("bad string {s}"))}
|
||||
let s = s.as_bytes();
|
||||
let x: u16 = (s[0] - b'A') as u16;
|
||||
let x: u16 = x*26 + (s[1] - b'A') as u16;
|
||||
let x: u16 = x*26 + (s[2] - b'A') as u16;
|
||||
Ok(Node(x))
|
||||
}
|
||||
}
|
||||
|
||||
impl Display for Node {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
let c = (self.0 % 26) as u8 + b'A';
|
||||
let r: u16 = self.0 / 26;
|
||||
let b = (r % 26) as u8 + b'A';
|
||||
let a = (r / 26) as u8 + b'A';
|
||||
|
||||
write!(f, "{}", std::str::from_utf8(&[a,b,c]).map_err(|_| std::fmt::Error)?)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct ArrayMap(Vec<(Node,Node)>);
|
||||
|
||||
impl ArrayMap {
|
||||
fn get(&self, n: Node) -> &(Node,Node) {
|
||||
&self.0[n.0 as usize]
|
||||
}
|
||||
}
|
||||
|
||||
impl FromIterator<(Node, (Node, Node))> for ArrayMap {
|
||||
fn from_iter<T: IntoIterator<Item = (Node, (Node, Node))>>(iter: T) -> Self {
|
||||
let mut map = vec![(Node(0), Node(0)); 26*26*26];
|
||||
for (s, pair) in iter.into_iter() {
|
||||
map[s.0 as usize] = pair;
|
||||
}
|
||||
ArrayMap(map)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Problem {
|
||||
map: BTreeMap<Node, (Node,Node)>,
|
||||
path: Vec<Direction>,
|
||||
}
|
||||
|
||||
fn parse_entry(s: &str) -> Option<(&str, &str, &str)> {
|
||||
let (start, pair) = s.split_once(" = ")?;
|
||||
let (left, right) = pair
|
||||
.strip_prefix("(")?
|
||||
.strip_suffix(")")?
|
||||
.split_once(", ")?;
|
||||
Some((start, left, right))
|
||||
}
|
||||
|
||||
impl FromStr for Problem {
|
||||
type Err = Error;
|
||||
|
||||
fn from_str(s: &str) -> std::prelude::v1::Result<Self, Self::Err> {
|
||||
let mut lines = s.lines();
|
||||
let path = lines.next().ok_or(anyhow!("empty line"))?
|
||||
.chars()
|
||||
.map(|c| match c {
|
||||
'L' => Ok(Direction::L),
|
||||
'R' => Ok(Direction::R),
|
||||
c => Err(anyhow!("Invalid char {c}")),
|
||||
})
|
||||
.collect::<Result<Vec<_>>>()?;
|
||||
|
||||
lines.next().filter(|l| l.is_empty()).ok_or(anyhow!("missing separator line"))?;
|
||||
|
||||
let map = lines
|
||||
.map(|s| {
|
||||
let (start, left, right) = parse_entry(s).ok_or(anyhow!("Bad line {s}"))?;
|
||||
Ok((start.parse()?, (left.parse()?, right.parse()?)))
|
||||
})
|
||||
.collect::<Result<_>>()?;
|
||||
|
||||
Ok(Self { map, path })
|
||||
}
|
||||
}
|
||||
|
||||
impl Problem {
|
||||
|
||||
fn follow(&self, start: Node) -> impl Iterator<Item=Node> + Clone + '_ {
|
||||
self.path.iter().cycle()
|
||||
.scan(start, |node, step| {
|
||||
let next = self.map.get(node)?;
|
||||
Some(match step { Direction::L => next.0, Direction::R => next.1 })
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
fn count_path(&self, start: Node, goal: Node) -> usize {
|
||||
self.follow(start).take_while(|&n| n != goal).count()
|
||||
}
|
||||
|
||||
/*
|
||||
fn count_path(&self, mut start: Node, goal: Node) -> Result<usize> {
|
||||
let mut count = 0;
|
||||
let mut path = self.path.iter().cycle();
|
||||
while start != goal {
|
||||
count += 1;
|
||||
let next = self.map.get(&start).ok_or_else(|| anyhow!{"bad node {start}"})?;
|
||||
let step = path.next().expect("cycled iterator empty");
|
||||
start = match step { Direction::L => next.0, Direction::R => next.1 }
|
||||
}
|
||||
Ok(count)
|
||||
}
|
||||
*/
|
||||
|
||||
fn multi_count(&self) -> Result<usize> {
|
||||
let mut count = 0;
|
||||
let mut path = self.path.iter().cycle().copied();
|
||||
let mut starts: Vec<_> = self.map.keys().copied()
|
||||
.filter(|&Node(n)| n % 26 == 0)
|
||||
.collect();
|
||||
let cache: ArrayMap = self.map.iter()
|
||||
.map(|(s,p)| (*s, *p))
|
||||
.collect();
|
||||
|
||||
while !starts.iter().copied().all(|Node(n)| n % 26 == 25) {
|
||||
count += 1;
|
||||
let step = path.next().expect("cycle iterator empty");
|
||||
|
||||
for node in &mut starts {
|
||||
let next = cache.get(*node);
|
||||
*node = match step { Direction::L => next.0, Direction::R => next.1 }
|
||||
}
|
||||
}
|
||||
Ok(count)
|
||||
}
|
||||
}
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let mut data = String::new();
|
||||
stdin().lock().read_to_string(&mut data)?;
|
||||
|
||||
let pb: Problem = data.parse()?;
|
||||
let start: Node = "AAA".parse()?;
|
||||
let stop: Node = "ZZZ".parse()?;
|
||||
|
||||
let steps = pb.count_path(start, stop);
|
||||
println!("Step 1: {steps} steps.");
|
||||
|
||||
let steps = pb.multi_count()?;
|
||||
println!("Step 2: {steps} steps.");
|
||||
|
||||
Ok(())
|
||||
}
|
17
day8/src/pollard.rs
Normal file
17
day8/src/pollard.rs
Normal file
@ -0,0 +1,17 @@
|
||||
pub struct Rho {
|
||||
lead: usize,
|
||||
cycle: usize,
|
||||
}
|
||||
|
||||
trait Pollard: Iterator + Clone
|
||||
where Self::Item: PartialEq
|
||||
{
|
||||
fn rho(self) -> Rho {
|
||||
let slow = self.clone();
|
||||
let fast = self.clone();
|
||||
|
||||
|
||||
|
||||
todo!();
|
||||
}
|
||||
}
|
9
day8/test
Normal file
9
day8/test
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)
|
16
day9/Cargo.lock
generated
Normal file
16
day9/Cargo.lock
generated
Normal file
@ -0,0 +1,16 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.76"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355"
|
||||
|
||||
[[package]]
|
||||
name = "day9"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
]
|
9
day9/Cargo.toml
Normal file
9
day9/Cargo.toml
Normal file
@ -0,0 +1,9 @@
|
||||
[package]
|
||||
name = "day9"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.76"
|
200
day9/input
Normal file
200
day9/input
Normal file
@ -0,0 +1,200 @@
|
||||
-1 -3 -3 6 51 200 589 1453 3159 6239 11421 19656 32139 50322 75917 110887 157423 217905 294845 390810 508323
|
||||
17 31 45 59 73 87 101 115 129 143 157 171 185 199 213 227 241 255 269 283 297
|
||||
1 15 42 97 219 479 997 1980 3789 7041 12757 22588 39217 67234 115332 202040 370273 722263 1498412 3245087 7152983
|
||||
-4 -9 -3 39 161 434 975 1982 3785 6905 12100 20357 32760 50124 72232 96444 115362 113131 59831 -96733 -442709
|
||||
11 18 19 10 -13 -54 -117 -206 -325 -478 -669 -902 -1181 -1510 -1893 -2334 -2837 -3406 -4045 -4758 -5549
|
||||
11 22 43 77 138 261 512 998 1877 3368 5761 9427 14828 22527 33198 47636 66767 91658 123527 163753 213886
|
||||
17 22 26 29 31 32 32 31 29 26 22 17 11 4 -4 -13 -23 -34 -46 -59 -73
|
||||
3 -2 -10 -28 -57 -68 34 452 1532 3770 7766 14110 23228 35335 50949 73200 115081 219218 507346 1296240 3354429
|
||||
12 30 74 172 366 719 1345 2480 4623 8809 17148 33895 67529 134640 266881 522869 1007750 1904216 3520118 6359502 11225952
|
||||
26 49 77 109 144 185 264 504 1242 3250 8109 18814 40716 82940 160456 297023 529274 912263 1526853 2489387 3964152
|
||||
-1 6 27 85 214 453 840 1416 2254 3533 5682 9624 17155 31498 58077 105561 187233 322744 540317 879471 1394340
|
||||
2 12 28 50 78 112 152 198 250 308 372 442 518 600 688 782 882 988 1100 1218 1342
|
||||
17 23 36 74 178 427 974 2117 4417 8887 17317 32889 61415 113905 211990 399546 767887 1510569 3041952 6250086 13024998
|
||||
15 28 57 106 178 281 448 781 1534 3258 7036 14842 30102 58727 111485 210121 403181 805016 1686411 3673570 8163302
|
||||
17 32 50 69 87 102 112 115 109 92 62 17 -45 -126 -228 -353 -503 -680 -886 -1123 -1393
|
||||
21 38 66 111 188 339 659 1327 2639 5040 9152 15795 25998 40997 62217 91235 129721 179354 241710 318119 409488
|
||||
13 12 7 -7 -35 -82 -153 -253 -387 -560 -777 -1043 -1363 -1742 -2185 -2697 -3283 -3948 -4697 -5535 -6467
|
||||
-3 -8 -18 -35 -45 -1 211 842 2408 5900 13101 27035 52572 97211 172060 293028 482239 769672 1195024 1809785 2679505
|
||||
14 25 39 56 83 144 292 623 1299 2609 5143 10243 21068 44942 98266 216346 472268 1011769 2115335 4305034 8522513
|
||||
11 26 51 91 145 214 327 601 1356 3311 7892 17700 37255 74342 142839 269248 508226 979187 1950442 4026928 8556410
|
||||
8 -1 -5 5 48 170 482 1237 2967 6716 14458 29925 60358 120232 238926 475782 948238 1881993 3696785 7147713 13550552
|
||||
15 21 22 33 93 288 784 1866 3979 7767 14106 24127 39225 61050 91476 132544 186375 255049 340446 444045 566677
|
||||
-7 -4 6 19 42 119 367 1032 2581 5859 12379 24904 48655 93770 180077 345887 663541 1266374 2395840 4486425 8324732
|
||||
14 31 46 57 73 117 223 421 694 890 607 -824 -3907 -7338 -3694 30134 152150 491297 1311836 3124051 6868873
|
||||
22 38 55 70 80 82 73 50 10 -50 -133 -242 -380 -550 -755 -998 -1282 -1610 -1985 -2410 -2888
|
||||
8 15 37 99 251 588 1272 2568 4933 9231 17182 32180 60624 113903 211235 383939 683078 1196179 2087683 3696857 6764433
|
||||
8 14 22 28 22 -1 -15 76 484 1580 3920 8236 15370 26125 41003 59796 80992 100954 112826 105116 59902
|
||||
15 24 33 42 51 60 69 78 87 96 105 114 123 132 141 150 159 168 177 186 195
|
||||
2 17 41 75 135 264 544 1108 2152 3947 6851 11321 17925 27354 40434 58138 81598 112117 151181 200471 261875
|
||||
14 20 33 52 71 75 32 -121 -499 -1291 -2765 -5226 -8894 -13688 -18960 -23341 -25064 -23446 -22675 -39696 -118863
|
||||
15 20 30 66 158 355 752 1537 3061 5934 11150 20244 35484 60101 98560 156875 242971 367096 542286 784886 1115130
|
||||
-1 15 61 160 350 690 1269 2235 3871 6753 12027 21839 39960 72708 130457 230460 402575 701011 1227721 2176962 3916314
|
||||
26 44 68 112 201 380 742 1491 3062 6338 13044 26481 52937 104485 204678 400318 785786 1552636 3088196 6165526 12296977
|
||||
19 39 71 127 239 480 993 2031 4031 7789 14895 28780 57132 117274 247775 532835 1152206 2481069 5286017 11103904 22966726
|
||||
10 9 16 51 147 363 821 1776 3734 7645 15225 29524 56005 104751 195256 367214 705106 1393721 2840590 5937453 12599023
|
||||
17 24 32 40 43 28 -29 -165 -431 -892 -1626 -2722 -4277 -6392 -9167 -12695 -17055 -22304 -28468 -35532 -43429
|
||||
13 28 55 96 164 290 538 1037 2044 4060 8027 15633 29739 54912 97996 168574 279063 444036 678175 992022 1384406
|
||||
23 37 58 101 196 402 828 1677 3354 6714 13582 27772 56987 116217 233582 459998 884569 1658203 3028570 5390095 9353110
|
||||
15 34 68 130 239 424 737 1275 2211 3834 6598 11180 18547 30032 47419 73037 109863 161634 232968 329494 457991
|
||||
10 25 56 121 260 542 1082 2073 3828 6811 11612 18782 28383 39038 46261 40110 3170 -87659 -246764 -433665 -437374
|
||||
2 -1 -9 -16 -11 21 104 301 808 2191 5920 15479 38521 90807 203033 432124 879174 1716951 3230781 5877690 10369933
|
||||
1 14 51 122 249 473 857 1485 2457 3880 5855 8460 11729 15627 20021 24647 29073 32658 34507 33422 27849
|
||||
9 30 60 104 176 313 611 1309 2974 6886 15802 35426 77202 163627 338423 686076 1369195 2699014 5265848 10174832 19461160
|
||||
11 31 77 175 372 744 1404 2510 4273 6965 10927 16577 24418 35046 49158 67560 91175 121051 158369 204451 260768
|
||||
1 13 31 55 85 121 163 211 265 325 391 463 541 625 715 811 913 1021 1135 1255 1381
|
||||
-3 -7 -15 -28 -44 -49 9 272 1059 2997 7205 15540 30914 57691 102173 173184 282761 446961 686793 1029284 1508688
|
||||
28 44 69 107 153 195 232 319 659 1779 4853 12271 28600 62142 127366 248577 465286 839862 1468181 2494139 4129067
|
||||
11 32 76 161 318 608 1155 2210 4282 8418 16800 33968 69189 140788 283653 561637 1087221 2051588 3769204 6742123 11750544
|
||||
9 11 14 30 84 214 471 919 1635 2709 4244 6356 9174 12840 17509 23349 30541 39279 49770 62234 76904
|
||||
4 16 44 98 194 363 666 1214 2191 3878 6682 11191 18309 29579 47882 78811 133166 231204 409512 731656 1304100
|
||||
7 15 37 92 212 455 929 1830 3504 6553 12024 21763 39120 70448 128458 239902 463065 926575 1912447 4026810 8537152
|
||||
13 18 26 47 115 309 794 1895 4217 8824 17490 33035 59759 103987 174738 284531 450341 694718 1047082 1545207 2236907
|
||||
7 5 19 63 154 316 591 1072 1982 3832 7700 15682 31575 61861 117070 213609 376153 640703 1058425 1700393 2663368
|
||||
26 55 99 168 291 533 1021 1977 3751 6839 11854 19389 29680 41989 53806 60594 58424 55463 105557 390742 1403433
|
||||
-1 14 50 114 229 453 906 1809 3539 6711 12334 22187 39770 72581 137210 270169 550218 1143634 2395101 5008646 10404490
|
||||
26 46 78 122 180 264 419 779 1690 3967 9412 21825 48923 105916 222159 453765 908374 1795600 3532170 6961816 13809018
|
||||
-3 -8 -8 7 47 122 242 417 657 972 1372 1867 2467 3182 4022 4997 6117 7392 8832 10447 12247
|
||||
11 21 33 55 120 303 738 1642 3375 6610 12767 24992 50148 102542 210452 426953 847083 1634051 3057981 5551621 9788536
|
||||
8 8 10 14 19 22 17 -6 -62 -172 -364 -674 -1147 -1838 -2813 -4150 -5940 -8288 -11314 -15154 -19961
|
||||
10 30 73 157 318 618 1166 2162 3976 7281 13271 24012 42996 75995 132344 226819 382318 633600 1032389 1654207 2607362
|
||||
2 18 43 77 131 237 456 890 1730 3421 7106 15647 35761 82239 185969 408749 869906 1792856 3584349 6965725 13184631
|
||||
12 37 69 101 136 203 371 770 1647 3521 7567 16483 36341 80423 177018 384937 823525 1728701 3553434 7140003 14001061
|
||||
20 31 55 113 229 441 836 1620 3241 6601 13424 26891 52712 100889 188559 344544 616666 1083651 1874757 3202413 5416551
|
||||
13 38 80 156 306 605 1191 2323 4498 8697 16906 33177 65659 130229 256549 497481 942651 1736308 3098084 5342262 8885920
|
||||
25 43 66 110 212 451 996 2205 4812 10259 21259 42721 83249 157599 290880 526225 939736 1670768 2983713 5391769 9896915
|
||||
10 34 72 133 232 385 614 974 1614 2884 5500 10779 20956 39595 72106 126380 213554 348918 552976 852673 1282800
|
||||
7 17 24 40 100 270 655 1407 2733 4903 8258 13218 20290 30076 43281 60721 83331 112173 148444 193484 248784
|
||||
7 11 21 55 156 402 916 1876 3525 6181 10247 16221 24706 36420 52206 73042 100051 134511 177865 231731 297912
|
||||
2 0 4 31 110 287 628 1216 2138 3458 5172 7141 8998 10025 8996 3982 -7886 -30700 -70108 -133701 -231458
|
||||
-1 10 38 96 211 448 947 1973 3979 7682 14152 24914 42063 68392 107533 164111 243911 354058 503210 701764 962075
|
||||
4 14 52 144 330 674 1286 2371 4342 8082 15542 31056 64091 134703 283849 592078 1212244 2425122 4731692 9003116 16720052
|
||||
19 39 80 160 322 656 1325 2594 4870 8779 15350 26476 46021 82296 153205 296246 586837 1170231 2314708 4496920 8534364
|
||||
-5 -13 -22 -17 31 179 543 1346 2978 6058 11483 20444 34384 54868 83330 120657 166565 218717 271528 314597 330701
|
||||
12 19 33 66 137 272 504 873 1426 2217 3307 4764 6663 9086 12122 15867 20424 25903 32421 40102 49077
|
||||
-4 -9 -24 -52 -91 -120 -71 221 1107 3294 8196 18679 40608 85913 178351 363794 727766 1424137 2720416 5067030 9200399
|
||||
2 11 41 107 224 407 671 1031 1502 2099 2837 3731 4796 6047 7499 9167 11066 13211 15617 18299 21272
|
||||
11 17 20 15 -3 -39 -98 -185 -305 -463 -664 -913 -1215 -1575 -1998 -2489 -3053 -3695 -4420 -5233 -6139
|
||||
23 36 58 102 190 353 631 1073 1737 2690 4008 5776 8088 11047 14765 19363 24971 31728 39782 49290 60418
|
||||
21 46 80 119 166 247 438 915 2048 4571 9882 20589 41590 82411 162547 323802 658368 1371037 2913013 6261452 13487443
|
||||
15 18 28 52 101 209 477 1153 2765 6346 13845 28927 58549 115975 226270 435788 827723 1546386 2833442 5079798 8897053
|
||||
6 0 -10 -28 -63 -117 -161 -92 344 1700 5132 13031 30304 66886 142544 295934 601537 1201039 2360569 4572565 8731070
|
||||
13 21 32 65 155 353 721 1333 2305 3886 6648 11816 21779 40820 76097 138898 246181 422395 701560 1129563 1766603
|
||||
10 1 -12 -29 -50 -75 -104 -137 -174 -215 -260 -309 -362 -419 -480 -545 -614 -687 -764 -845 -930
|
||||
3 8 14 32 91 244 586 1299 2739 5580 11030 21134 39179 70216 121714 204361 333027 527904 815838 1231868 1820987
|
||||
8 8 14 42 124 325 782 1776 3864 8139 16769 34115 68982 138996 278904 556160 1100320 2159190 4207598 8160318 15790908
|
||||
9 2 -15 -43 -73 -69 58 497 1645 4365 10559 24336 54242 117352 246643 504222 1005132 1960479 3756216 7098314 13282104
|
||||
3 7 11 28 81 203 437 836 1463 2391 3703 5492 7861 10923 14801 19628 25547 32711 41283 51436 63353
|
||||
28 42 55 77 137 289 615 1234 2336 4270 7725 14053 25793 47465 86713 155886 274156 470282 786139 1281141 2037697
|
||||
12 36 72 120 180 252 336 432 540 660 792 936 1092 1260 1440 1632 1836 2052 2280 2520 2772
|
||||
-4 -7 -6 11 57 142 269 430 602 743 788 645 191 -732 -2321 -4816 -8504 -13723 -20866 -30385 -42795
|
||||
4 16 39 82 165 333 688 1447 3034 6214 12277 23280 42355 74091 124998 204061 323392 498988 751603 1107742 1600785
|
||||
6 18 47 104 200 346 553 832 1194 1650 2211 2888 3692 4634 5725 6976 8398 10002 11799 13800 16016
|
||||
11 23 60 141 296 571 1035 1798 3059 5217 9107 16501 31220 61692 126848 269392 584659 1281199 2803918 6077237 12972824
|
||||
8 24 54 99 155 213 259 274 234 110 -132 -531 -1131 -1981 -3135 -4652 -6596 -9036 -12046 -15705 -20097
|
||||
10 17 29 41 43 23 -26 -99 -178 -245 -319 -529 -1237 -3227 -7978 -18041 -37542 -72835 -133331 -232531 -389293
|
||||
4 15 27 38 46 49 45 32 8 -29 -81 -150 -238 -347 -479 -636 -820 -1033 -1277 -1554 -1866
|
||||
15 14 9 1 4 54 218 604 1370 2728 4938 8293 13127 19978 30308 48833 89939 193489 460439 1127038 2708540
|
||||
23 26 28 40 84 208 524 1279 2978 6613 14124 29339 59843 120598 240862 477371 939401 1836040 3563940 6866566 13115574
|
||||
5 23 50 86 142 246 449 831 1507 2633 4412 7100 11012 16528 24099 34253 47601 64843 86774 114290 148394
|
||||
18 30 55 98 162 252 382 585 926 1518 2541 4264 7070 11484 18204 28135 42426 62510 90147 127470 177034
|
||||
9 19 29 45 83 177 400 907 2014 4338 9038 18217 35589 67657 126090 233193 435299 835450 1670308 3482785 7491073
|
||||
-8 4 26 59 114 213 387 671 1096 1678 2404 3215 3986 4503 4437 3315 488 -4904 -13970 -28109 -49054
|
||||
24 46 71 94 110 114 101 66 4 -90 -221 -394 -614 -886 -1215 -1606 -2064 -2594 -3201 -3890 -4666
|
||||
14 23 41 88 196 414 823 1578 3019 5935 12138 25632 54879 117014 245398 502686 1002700 1945919 3675423 6762760 12136558
|
||||
-1 -3 -8 -16 -26 -25 37 306 1154 3448 9097 22178 51287 114445 249174 532695 1121385 2326075 4752942 9562832 18941724
|
||||
24 44 86 157 264 419 654 1057 1844 3491 6965 14120 28389 56084 109112 211179 412519 824609 1699279 3601094 7765553
|
||||
2 5 11 17 32 95 297 816 2001 4594 10273 22867 50909 112798 246987 531706 1122380 2320995 4701423 9329781 18141414
|
||||
22 31 40 45 46 56 120 349 969 2391 5339 11143 22423 44557 88519 175836 346440 669907 1259714 2288325 3997612
|
||||
21 46 92 178 349 705 1442 2911 5713 10866 20109 36456 65194 115666 204478 361433 641051 1146218 2079084 3853658 7346377
|
||||
16 18 28 69 177 408 853 1675 3200 6131 12026 24319 50429 106019 223471 468565 972936 1996360 4044216 8084497 15939745
|
||||
22 42 82 146 247 418 734 1374 2777 5991 13394 30103 66613 143582 300330 609835 1205364 2328444 4416506 8264224 15319951
|
||||
12 17 18 22 46 125 330 792 1738 3566 7018 13564 26216 51206 101378 202896 408144 819735 1633666 3214242 6219914
|
||||
21 41 75 138 258 476 846 1435 2323 3603 5381 7776 10920 14958 20048 26361 34081 43405 54543 67718 83166
|
||||
17 40 76 121 163 193 241 450 1215 3438 8989 21526 47924 100702 202021 390050 728745 1322328 2335942 4024027 6767821
|
||||
20 36 58 97 177 334 617 1104 1953 3517 6569 12714 25116 49745 97458 187375 352202 646394 1158348 2028175 3473027
|
||||
19 19 28 62 148 341 749 1566 3113 5887 10618 18334 30434 48769 75731 114350 168399 242507 342280 474430 646912
|
||||
17 25 48 95 189 387 809 1675 3354 6447 11960 21676 38910 69931 126463 229836 417551 753253 1341376 2348037 4030115
|
||||
3 2 4 14 46 140 395 1030 2493 5648 12082 24588 47896 89742 162385 284704 485031 804902 1303936 2066082 3207506
|
||||
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62
|
||||
14 29 56 105 197 370 698 1329 2556 4951 9616 18637 35867 68212 127650 234277 420746 738545 1266648 2123169 3480753
|
||||
20 43 88 176 347 680 1322 2526 4698 8453 14680 24616 39929 62810 96074 143270 208800 298047 417512 574960 779575
|
||||
19 27 35 43 51 59 67 75 83 91 99 107 115 123 131 139 147 155 163 171 179
|
||||
14 20 22 20 14 4 -10 -28 -50 -76 -106 -140 -178 -220 -266 -316 -370 -428 -490 -556 -626
|
||||
2 13 36 84 190 410 818 1503 2592 4337 7318 12828 23520 44410 84344 158051 288918 512637 881888 1472236 2389434
|
||||
23 32 40 47 53 58 62 65 67 68 68 67 65 62 58 53 47 40 32 23 13
|
||||
6 -1 -11 -27 -57 -114 -216 -386 -652 -1047 -1609 -2381 -3411 -4752 -6462 -8604 -11246 -14461 -18327 -22927 -28349
|
||||
-2 3 11 22 38 63 103 166 262 403 603 878 1246 1727 2343 3118 4078 5251 6667 8358 10358
|
||||
21 42 77 142 261 466 814 1444 2713 5472 11570 24710 51850 105522 207924 398826 752010 1410653 2663676 5108209 9988532
|
||||
15 27 55 113 217 387 648 1030 1567 2295 3249 4459 5945 7711 9738 11976 14335 16675 18795 20421 21193
|
||||
-1 -4 3 25 74 190 486 1225 2939 6604 13899 27636 52626 97674 180308 337685 650730 1295535 2649174 5501050 11463057
|
||||
8 15 16 9 -2 14 153 641 1946 4977 11459 24688 51127 103862 210125 427584 879270 1827593 3829180 8054089 16932910
|
||||
10 26 56 108 203 384 726 1345 2401 4092 6666 10572 17083 30138 60904 137892 327797 776319 1785361 3955449 8443968
|
||||
18 37 71 141 293 611 1229 2342 4216 7197 11719 18311 27603 40331 57341 79592 108158 144229 189111 244225 311105
|
||||
27 52 85 118 151 213 388 850 1918 4153 8552 16981 33176 64988 129129 260579 530141 1075498 2153663 4226064 8091829
|
||||
1 0 9 41 126 332 792 1737 3535 6736 12123 20769 34100 53964 82706 123249 179181 254848 355453 487161 657210
|
||||
17 28 53 121 287 655 1418 2920 5745 10838 19663 34403 58207 95489 152284 236666 359233 533664 777353 1112125 1565039
|
||||
11 11 24 67 180 439 966 1938 3609 6395 11144 19836 37153 73663 151863 317246 658408 1344048 2692505 5304602 10318455
|
||||
5 0 -11 -23 -17 48 245 700 1640 3493 7079 13953 26994 51381 96161 176698 318399 562246 972825 1649737 2743505
|
||||
22 48 94 169 293 505 871 1492 2512 4126 6588 10219 15415 22655 32509 45646 62842 84988 113098 148317 191929
|
||||
16 40 76 124 201 364 741 1580 3350 6974 14358 29533 61008 126452 261784 538507 1096286 2203386 4367442 8536184 16457365
|
||||
-2 -6 -1 38 154 425 1000 2169 4491 9021 17709 34098 64531 120196 220500 398475 709188 1242460 2141603 3630366 6050848
|
||||
25 37 49 66 101 194 458 1165 2885 6691 14443 29164 55521 100424 173756 289247 465505 727217 1106533 1644646 2393581
|
||||
14 32 59 85 110 174 406 1098 2827 6687 14776 31246 64517 131744 267391 538910 1074172 2107606 4055161 7632447 14036016
|
||||
2 12 29 56 108 219 443 846 1486 2375 3409 4237 4016 964 -8425 -30703 -77606 -169386 -339835 -643642 -1166892
|
||||
20 22 34 70 144 270 462 734 1100 1574 2170 2902 3784 4830 6054 7470 9092 10934 13010 15334 17920
|
||||
15 36 63 87 105 125 179 361 909 2357 5802 13372 29071 60385 121501 239971 470579 923855 1823834 3624037 7240347
|
||||
20 48 100 199 379 697 1273 2384 4649 9353 18969 37948 73858 138964 252352 442711 751898 1239422 1987994 3110301 4757173
|
||||
21 36 65 116 199 337 587 1070 2009 3774 6933 12308 21035 34627 55039 84734 126749 184760 263145 367044 502415
|
||||
4 23 60 128 249 454 783 1285 2018 3049 4454 6318 8735 11808 15649 20379 26128 33035 41248 50924 62229
|
||||
1 11 34 69 111 152 187 221 273 374 557 853 1395 3037 9727 35840 125933 403123 1179753 3198518 8140105
|
||||
2 9 20 29 33 37 66 199 647 1904 5007 11948 26288 54030 104815 193512 342280 583187 961478 1539591 2402027
|
||||
-4 -13 -11 28 152 453 1101 2403 4912 9623 18305 34030 61972 110561 193089 329877 551124 900571 1440125 2255600 3463744
|
||||
11 12 14 10 -13 -79 -235 -576 -1282 -2650 -5066 -8765 -12997 -13726 1975 68465 267913 783402 2002900 4720048 10520939
|
||||
16 22 38 81 188 433 948 1948 3760 6856 11890 19739 31548 48779 73264 107262 153520 215338 296638 402037 536924
|
||||
11 23 50 91 147 240 447 967 2254 5264 11879 25586 52504 102867 193086 348528 607165 1024261 1678280 2678213 4172537
|
||||
16 32 57 88 132 214 385 730 1376 2500 4337 7188 11428 17514 25993 37510 52816 72776 98377 130736 171108
|
||||
11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51
|
||||
26 36 43 55 92 194 439 991 2216 4922 10791 23074 47624 94387 179647 329785 588297 1029631 1786430 3101472 5422579
|
||||
7 10 16 36 85 182 350 616 1011 1570 2332 3340 4641 6286 8330 10832 13855 17466 21736 26740 32557
|
||||
1 10 24 50 108 236 501 1028 2079 4258 9002 19664 43738 97183 212489 453289 940269 1896334 3724132 7137066 13377112
|
||||
12 12 10 -1 -33 -89 -128 -2 642 2502 6810 15577 31901 60345 107392 181984 296152 465744 711258 1058787 1541083
|
||||
12 11 18 46 109 213 346 484 644 1024 2266 5858 14665 33578 70354 136986 252532 449441 787298 1380894 2454013
|
||||
5 10 21 51 134 341 802 1734 3475 6524 11587 19629 31932 50159 76424 113368 164241 232990 324353 443959 598434
|
||||
7 17 43 100 204 373 628 999 1558 2528 4547 9189 19860 43226 91490 186364 367045 708091 1361139 2651210 5291384
|
||||
6 10 25 60 117 185 229 172 -132 -929 -2572 -5428 -9527 -13670 -13536 1910 56714 198328 513971 1155396 2375181
|
||||
11 22 39 79 184 434 965 1991 3826 6914 11923 20070 34051 60292 113759 227318 468677 969334 1971767 3903409 7488834
|
||||
9 2 8 42 119 254 462 758 1157 1674 2324 3122 4083 5222 6554 8094 9857 11858 14112 16634 19439
|
||||
18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78
|
||||
-5 5 31 87 208 458 953 1920 3814 7519 14674 28199 53157 98184 177858 316568 554693 958217 1633297 2747775 4562190
|
||||
-1 -2 2 31 123 341 783 1597 3003 5324 9028 14783 23527 36555 55625 83085 122023 176442 251462 353551 490787
|
||||
23 45 78 133 230 403 710 1253 2217 3935 6979 12283 21388 37216 66643 128144 272031 629329 1521800 3696473 8804246
|
||||
19 27 32 35 44 80 183 416 863 1617 2755 4298 6159 8113 9958 12504 21420 59683 203477 677255 2088887
|
||||
-5 -9 -13 -17 -21 -25 -29 -33 -37 -41 -45 -49 -53 -57 -61 -65 -69 -73 -77 -81 -85
|
||||
11 23 48 99 193 346 573 908 1477 2689 5652 12964 30059 67286 142841 286529 544071 981251 1686576 2770249 4356077
|
||||
20 31 45 62 82 105 131 160 192 227 265 306 350 397 447 500 556 615 677 742 810
|
||||
17 38 72 117 167 211 241 275 405 887 2290 5714 13104 27825 56139 111454 225920 479315 1065071 2430630 5558488
|
||||
8 7 11 28 68 151 319 661 1386 3031 6986 16673 39948 93633 211603 458733 954644 1914327 3718689 7039014 13058612
|
||||
1 18 57 139 314 682 1420 2815 5303 9514 16323 26907 42808 66002 98974 144799 207229 290786 400861 543819 727110
|
||||
15 22 37 77 187 459 1066 2332 4881 9952 20042 40149 80023 157955 306636 581265 1068919 1895445 3220722 5204077 7909209
|
||||
13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93
|
||||
2 5 25 79 199 439 882 1647 2896 4841 7751 11959 17869 25963 36808 51063 69486 92941 122405 158975 203875
|
||||
26 47 92 182 343 616 1083 1925 3549 6867 13908 29133 62164 133241 283799 596529 1232972 2503665 4999047 9834027 19104471
|
||||
13 18 26 37 51 68 88 111 137 166 198 233 271 312 356 403 453 506 562 621 683
|
||||
13 25 60 141 311 635 1208 2175 3777 6458 11098 19479 35167 65156 122966 234567 449733 863511 1655808 3162145 5996007
|
||||
-8 2 25 59 103 159 234 342 506 760 1151 1741 2609 3853 5592 7968 11148 15326 20725 27599 36235
|
||||
5 18 43 82 146 264 492 922 1691 2990 5073 8266 12976 19700 29034 41682 58465 80330 108359 143778 187966
|
||||
23 35 47 59 71 83 95 107 119 131 143 155 167 179 191 203 215 227 239 251 263
|
||||
9 26 65 139 268 497 929 1778 3447 6636 12485 22757 40066 68155 112229 179348 278885 423054 627513 912047 1301336
|
||||
25 36 47 58 69 80 91 102 113 124 135 146 157 168 179 190 201 212 223 234 245
|
||||
-6 3 35 97 187 295 423 637 1164 2547 5871 13073 27349 53671 99427 175197 295678 480771 756843 1158177 1728623
|
||||
2 9 16 23 30 37 44 51 58 65 72 79 86 93 100 107 114 121 128 135 142
|
||||
7 20 35 54 87 165 371 902 2176 5006 10890 22519 44681 85820 160557 293432 523889 911972 1543161 2529040 3997791
|
||||
8 11 26 73 191 451 983 2044 4182 8593 17826 37071 76383 154391 304412 584664 1095960 2013947 3650778 6577105 11866651
|
||||
12 28 59 105 166 242 333 439 560 696 847 1013 1194 1390 1601 1827 2068 2324 2595 2881 3182
|
||||
-5 -6 6 48 142 313 586 981 1505 2140 2826 3438 3756 3427 1918 -1541 -8025 -18994 -36386 -62724 -101238
|
||||
-5 -2 7 22 43 70 103 142 187 238 295 358 427 502 583 670 763 862 967 1078 1195
|
||||
14 36 66 114 213 441 961 2083 4352 8666 16428 29736 51615 86295 139539 219025 334786 499712 730118 1046382 1473657
|
||||
15 27 37 48 76 176 480 1240 2874 6032 11732 21660 38792 68636 121788 219617 407827 789696 1606507 3425449 7559690
|
||||
13 17 13 -3 -40 -102 -164 -123 310 1846 6098 16480 39771 88673 185787 369538 702699 1284295 2265811 3872783 6433018
|
||||
3 8 16 23 24 22 50 207 716 2044 5199 12460 29039 66579 150052 330664 708953 1474532 2971982 5806213 11004922
|
38
day9/src/main.rs
Normal file
38
day9/src/main.rs
Normal file
@ -0,0 +1,38 @@
|
||||
use std::io::stdin;
|
||||
use anyhow::Result;
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let mut sums = (0, 0);
|
||||
|
||||
for line in stdin().lines() {
|
||||
let line = line?;
|
||||
let sequence: Vec<isize> = line.split_whitespace()
|
||||
.map(str::parse)
|
||||
.collect::<Result<_,_>>()?;
|
||||
|
||||
let preds = predict(&sequence);
|
||||
sums.0 += preds.0;
|
||||
sums.1 += preds.1;
|
||||
}
|
||||
|
||||
println!("Sums are {sums:?}");
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn predict(s: &[isize]) -> (isize,isize) {
|
||||
if s.iter().all(|&x| x == 0) {
|
||||
(0,0)
|
||||
} else {
|
||||
let diff = differentiate(s);
|
||||
let (a,b) = predict(&diff);
|
||||
(s[0] - a, s[s.len()-1] + b)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
fn differentiate(s: &[isize]) -> Vec<isize> {
|
||||
s.iter().skip(1).zip(s).map(|(b,a)| b-a).collect()
|
||||
}
|
Loading…
Reference in New Issue
Block a user