Initial Solution
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
.idea
|
||||||
|
/target
|
||||||
7
Cargo.lock
generated
Normal file
7
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 = "day3"
|
||||||
|
version = "0.1.0"
|
||||||
8
Cargo.toml
Normal file
8
Cargo.toml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "day3"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
300
src/input.txt
Normal file
300
src/input.txt
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
shzsFcPssFhjFssBzdpRcNHNZrpdJdJVJZ
|
||||||
|
fwvMCntfCCbSbSbtDgDNrDtDtJHZVH
|
||||||
|
GbCwwbwwnGrLhBzjFFFsWPhL
|
||||||
|
PpCqRsqqmmtCwMJC
|
||||||
|
LHFrLLHDSNHlfWNhDzmjzzJlJzPJMvPJjQ
|
||||||
|
SGSWDNrhZhPDSWDZLgVVRgbRppgpGVnpnn
|
||||||
|
GRRjbVjmJZlgMRzzrN
|
||||||
|
FpDptHpfHfnpPTvDFTWpFPnPcMfNCClNrzcVcrMMzVsCZlsZ
|
||||||
|
TFTQDnvLHPFDtVbLwbjdGjdwwJ
|
||||||
|
lhljvvhCjjzhjszzBPmnmGVZMGzG
|
||||||
|
FbTcTwbtSFdtcMPnTBPQVnnBZT
|
||||||
|
SFMpHDtNDSSbSdwppvgJWjJCJJgWgvlJHH
|
||||||
|
wzNCWpzCzJnWWpRRNdJrgHLhjfbLrHrchV
|
||||||
|
lBMStmPmmLQDPQZlshrdhgrfrcrrddgHgs
|
||||||
|
mvGDGQSvDPBlGMLGCvCWpNvpzRWFwqRw
|
||||||
|
stBttBThtDZqPWssPWZp
|
||||||
|
gRggwwggCGFSBBvPRpHZZrHdZLZq
|
||||||
|
ccFJGCNJmmGQzbTDhnQhBBnB
|
||||||
|
HJqMqtZbJMmJTqtLtVMqhpfphNdQfhfzzjhhlHll
|
||||||
|
rWSBrnwFwWCvwWCwBgPgCgzjQccQhhgRzcdQzjfcNfzR
|
||||||
|
CWBCwCvCvvwssWLMtJJGMdMZJsGV
|
||||||
|
nFwSFQwsNrrsssSwCrhrCNnfcCRgJRMJTJcMfRzMCMCRvW
|
||||||
|
DdbGdLZLttllWWvTzgzzgR
|
||||||
|
ZqGzPdLtDjBjDZGPZVmnhQFwqrFQhVFnss
|
||||||
|
sNNpCjttjsJjSpgpWjslCTnqqSVffrnhSfDhmhrhfm
|
||||||
|
dBwcGzbPBHbbwZcwJbcTTFDFFFDVrdVmFdnDqf
|
||||||
|
HzGcczQPHGwzPzGHRctWlvRgtvJlvNlJvRNj
|
||||||
|
cFNCFdvcCHvFBCZcwBfRSpttGhDmCghGShmSRt
|
||||||
|
QjLnTTzQVzTTnLMqhDgPhGDDSjGPrgSh
|
||||||
|
TTJGnJJlLQdNWZWJNBJZ
|
||||||
|
WHBpHcMDZHLDbHLtGCnmRmLNGmRqvsCC
|
||||||
|
PzTFzPPTJzrSbGsvnmqfsqfqRz
|
||||||
|
dJSQQdVFQgjTrjQPWcWHbBVcZVccZtWp
|
||||||
|
JDtnRtJzNzTTNlHc
|
||||||
|
rQPJFrLPGMMwrGPFwjFMVLjSTWHdWBTdSWdWZlcWTHlZ
|
||||||
|
MGFrCvLLwrwPFVVhvLMGGtnqfsmRJgDnqbRgfbqmfC
|
||||||
|
jnTtFjcSSvctJjznzvFmpqqPMqQDRVpRqPzqQzVQ
|
||||||
|
bhHBfrWpfHsfGNllRrRCPqDCqPqq
|
||||||
|
gsGZZpbWgbwHWGNgfZNjvLSTTjtnTgjSSSSJmL
|
||||||
|
RLQNdVNnRQdQHVVLGpspNqvtsqptqpTtsp
|
||||||
|
MlRWwbRBBFMFjCTFTTFDvj
|
||||||
|
WmlWBmBwwmrndnmLRHRQ
|
||||||
|
WnftJWlfnWSHGCjWWWSCFqFGBDqBwMcDmmMmGmqD
|
||||||
|
pTNhpTrPhhhRPzbhrppLhThLgqDmwccwqPBmMMqnFBcwwmBB
|
||||||
|
ZrhQTpzdjSVVtnvZ
|
||||||
|
jgtnJtBjtlTdJBZJVQBngQGDCGWpPGCcPWCbWdWMbcpP
|
||||||
|
wHstNNttSHPDmHcMCp
|
||||||
|
rrFFSvLLNfsFtNSqrtfrhsNjjVTBVgVvnTBvTQvjTgjVZz
|
||||||
|
qhZwlqFqFwlJwrDHqHcDvgcNzv
|
||||||
|
RCCTQmjCbQTBtRTbjJRDpBrgDHPPpPDvHccDPc
|
||||||
|
VmjVWstQJhlJlGVJ
|
||||||
|
GggpGwZmgvgJMvbJFQQDbDFbBbFCQDCW
|
||||||
|
rtrLzNLtNSPnNqDSQDcQCWlqBQ
|
||||||
|
VtzdRPtztLtVRtZmmMTRwCGZpMwp
|
||||||
|
vtvqjsCqtshfjcWFHWGjGFJj
|
||||||
|
zGrnzDDMpPcTHcSTVTJP
|
||||||
|
DbDwMbZRDrZdBBnMznZMGZDfwtlgQhsqCttClsqvsLfCff
|
||||||
|
JLzLtLsrzsQdvrWRwMHwcc
|
||||||
|
qPmCTzlPjljjFTZmWwcwwvHMMRWwHvMm
|
||||||
|
PFqZnVCqTCNjCzNgQsbGBLzLQQ
|
||||||
|
CBnppDHllVpPCBshBHpjDTSmZcSrfwvmJcDDTJfw
|
||||||
|
dFRLdLFQzNSTBTSNmBJv
|
||||||
|
FzFFzRMBFWtQlPlsjjPVMnhC
|
||||||
|
CVCfwnfdVvBdBbTNTT
|
||||||
|
LNzsHPNWsDjTZqDHqT
|
||||||
|
PtLgQsGQLSzWLstPgGWcgQLSNrpplffrnrNhpVCwlGVlrwMn
|
||||||
|
jPPVqPsHffzVnHzvSgMcCJGGMSVCll
|
||||||
|
pdbpDpBLNmNNppJgcvgSllGjDSGQ
|
||||||
|
hrbBwLpjLhhhNZLhNrhZZLHzfsztFzzsrtHfRFnFfRHf
|
||||||
|
tdjBdbmSfdHBdHHmZlWjFrnlWQlqvMFvFn
|
||||||
|
pDNDJhLhPVPLLLJphJLwNcwnQTcWWTqTrqMWTZvqMrlvFM
|
||||||
|
gpVLhNwpgZJCghCLDNwphgmsBdzHHHmSstmfggzdbR
|
||||||
|
TfMpfMBVftLMDBSjWDHgzHbgwLgHHvdzggzs
|
||||||
|
QJnZcFFnZRHdHjJvwgdg
|
||||||
|
RjjRRnmNmmZNjZqZnQcVffBrWqVTqrtffTSTVV
|
||||||
|
fZTdTVcVjrjdBzdTnGtgnnGSHHNFGn
|
||||||
|
thMWPtPMslmGnWnNnS
|
||||||
|
thvbMvQMRphhLCjrzBjZVdcQfC
|
||||||
|
MpmgZFgMGdrFrBCVnJ
|
||||||
|
JsbJlTTlvLQbVffRRvBBRVjd
|
||||||
|
LWlbhHlJhLTJmmGcMMHNmNgN
|
||||||
|
bhvmhPrbhqNqQRRGzQjVvvRL
|
||||||
|
wTwBZDBTwwggfnngcDfdsVVFQCdzCzDVRsFdQs
|
||||||
|
pngWMcgzMgpZWncnMpWNrbNHrNbmHhltWlbl
|
||||||
|
nPndBjLPscWSccBVGnScsSzMdhMppMthdMgpMgrzvhhp
|
||||||
|
CCFTFDwqZqCCJmhvpDzztVzDNztp
|
||||||
|
qQFJTbRVbmCfwTwfmnnssWBGnLnWlRLSGn
|
||||||
|
JRlJDSvLRRCdvmDSvdlbZNVBSWZGNgWsZGNgZBVs
|
||||||
|
QrjPMqMnLzzjLjFnNNgBpsgtgGGGVZ
|
||||||
|
hrjrFqjqFrQfMHPhQzDvvCLJdwwwmvbJbwDH
|
||||||
|
HDGrDDDpNsGQNdZQ
|
||||||
|
jpjgtgjSjpjllfZZtZsvNdtshqqq
|
||||||
|
cbgMfjclWTJcMwjWJfpfmVPLPBnVBHnmVbnmLBbD
|
||||||
|
rPrMZNsNrsvrwqvFFFdgQWNzLJJzRW
|
||||||
|
pStppStHmcmHpgVSllVcbVbWWDdLFhdbzdRRFhJFLLRF
|
||||||
|
cltCHmCBmtSlgjpllgGvTwPZPMfZvPsCMCwZvC
|
||||||
|
FRQQMdlFMDWRFQRQMQQDWdFbSSSVJSBbJSlBVVBnPJnzJL
|
||||||
|
rsftPfhsrgwznSzzHSLgJG
|
||||||
|
fhNsjrjhvsTTvdjcCRMRMRPcCW
|
||||||
|
tRtJttHFrjtDQHHBQMMBgMBSghhZQb
|
||||||
|
vqWPLpLvqrmPdmqwvqfmPhNBBBlSnbwbgnlnlhNSZZ
|
||||||
|
pGpdfzLLspddmqsqPvfvvPpGTVcJJCDRjHrccRtDjcRDFD
|
||||||
|
GJMHCdTMWJRhSTlhhSPllt
|
||||||
|
fVvqpfBFrqvqNzzgVDFrpDPmSVtQSlSmhjwltlRtmVhn
|
||||||
|
pzpBNDBzfDrsNsDRJJRdCssMLdLZWZ
|
||||||
|
hFfvWWvdpCwwcwFhphpcZCMmllHLfmbQlbrQLBJmGgQrQm
|
||||||
|
nVSNGjGzzSVNTsjzSJrbSrHBSHlrrmQHJB
|
||||||
|
PttTNsTRVnNjNqRnzRzRWCCCcpMCWGPMwwFZvFwW
|
||||||
|
DvZbFnDDsqDBwwRQgNBm
|
||||||
|
HhWpWWRMWChlChdHLlGlGtQtggSNPSSpgPmNgPJQtw
|
||||||
|
CMlWGMhhCVHlLCdHTHdrGHdbzjVqnzcvqqjRjFbbzbFFqR
|
||||||
|
ZZgCNqqBmjZsNgZCqJgNBdrLFHbBrWlPdHWFbPnHPW
|
||||||
|
TVwTDfzDwSDzmcSTcrzdbllnHPHdFlLzbF
|
||||||
|
tvDQwVtVvDVmtRsNMgRpJg
|
||||||
|
BBpDCpNJnmnpnDDmDGGmtTzqHcGTvTTjTbGjHLVcLb
|
||||||
|
swNNhPwwHzTVwwHw
|
||||||
|
rPRlPRhSQmmBDpnNfl
|
||||||
|
pbRhffPzcPDmfcNTpVBLpBjMGBGjZLLg
|
||||||
|
ssrCsqrszgJjZMqZLQ
|
||||||
|
SzCwnsllCrssvdrvwzPmDmPPbFRbSThPTPDD
|
||||||
|
QWLfcfczQQpcDTpLPfdZRRvRRVqbFWvZbvtqvv
|
||||||
|
NsGGJBhCmNdZVqsbdssZ
|
||||||
|
rMwwwBBJMrdzPfQMpzMnLQ
|
||||||
|
rdtCQhrCtQQprtTWQCHFjPgGBPdFPgvBqRRPqB
|
||||||
|
lsVsSnVSbLmmgBcgTLTFGgvq
|
||||||
|
wTTDTszsbzMDppJrJhDQ
|
||||||
|
ZlmsGLBVCBBZFCFFHqcHVvQhqVQSSHpH
|
||||||
|
dbbTRMrRwwzDfrTbFtMvcptvHFQQpqtc
|
||||||
|
gdJTDWgfwDwTwmgmNPnNsgFBlZ
|
||||||
|
PWhWhGFzzzrLdHCPccbJQJcHPD
|
||||||
|
NRpVTpTgRWVlHJNHMcHQMb
|
||||||
|
pSRSpVSZWRSTZjgTRTWnFLdZLrrndhdzZvtvzn
|
||||||
|
LgctLgVBVLhlPjqRhBLVcVlhbDDcGnNGfwCrbNDnrGbGCJNw
|
||||||
|
HmppHMWWmQmMqZZHWQrDDfDCffJrDGJrCb
|
||||||
|
qpWZsZZZMZWTLPhTRgTtThRP
|
||||||
|
hfhQfFQWzBfhfTQdmzdLDtDjtvHLjt
|
||||||
|
qsgpcqMNRmgpqsCwpCmZDvjwvdddHZHvZDtrrd
|
||||||
|
SgmNmqScbTSJbhJQ
|
||||||
|
dvMTQvTnZJsrQdbbSvMVZMblDwlflfDGgwwHcfGjPfjjrG
|
||||||
|
FqBLpBpFpFzRzqNFmgjGlDRHcwPPGwgcgs
|
||||||
|
tLNtWshsLLqWMJhTQVVbhvJd
|
||||||
|
bgZLMZgzbbLCcPCbMZbcNMgBqSTqSWVtSzvvTTBTqBvRBW
|
||||||
|
FhQpJQnGrlhGlrnTqRtTRJqSwDwtVR
|
||||||
|
FqlnnFnqFHnGHHdNZdbZbCNMdPLMPb
|
||||||
|
HHFnbftcfnfbbTbTnHTNVZZzJlPQlFrFzVJFZsdr
|
||||||
|
mvpGCBgwqCvLCqvMQWWzsQQWlPzwzsrV
|
||||||
|
hpGSGgqSvqbHcnhfVfct
|
||||||
|
lGVrnHsGcnVHzscrlGjHcrHqqWPlJCPJClTLLqCSPLPdqS
|
||||||
|
fRbwbtMQZtMMRFMSqfJTTWCTJPJCmd
|
||||||
|
ggdvtvdbVVGnpDGg
|
||||||
|
BnBjTcbnvhjjlMnNJJfnDnQDGdNDfP
|
||||||
|
qwFqVSWwqLpWFmFVCSqFpDDCJNJRQTRfRDGPfdfDQN
|
||||||
|
zwHwWVVWWFSqqwWTLqzzztHMvBhlcghblMlcttMllh
|
||||||
|
PFFNPNPmlFllbctNLmcjBstrsVrQHJSSHHSnnB
|
||||||
|
fddfDhdwGhTWWTDMwMggssjsjndsBsjsnSrVqSVV
|
||||||
|
MCvvTWvRMwCvGPpzCcmbplpCVC
|
||||||
|
thTqlPPTNbGNhGdqRRhRrNtFWnDnvvFZDpnFvfQDZtvWvv
|
||||||
|
HcMzVcVVcHrgHzcMcmmgfQvFQnMjnWDjfnvjQFfQ
|
||||||
|
VSmHJLHBJrTrJTlT
|
||||||
|
NjnsHjLLjNRddNdBFBSR
|
||||||
|
ftsbqfDcDqsrDtqsfSVBhJVFJgdBRVFS
|
||||||
|
wvDqwtDlsDDczjzjHvLzLQQM
|
||||||
|
qDwstwDtRfpJfVhBVZBMvnlRvv
|
||||||
|
zSFzQHFWdgZBVTZhTzrp
|
||||||
|
NHdggjGjWHQFPWHNPPbpJfPDtCwCtqDqJfbt
|
||||||
|
pvnbqHvnTvlCCpjsBsMGBGWWPp
|
||||||
|
RJSJhJCRVJmJwScrhSJdfwFsBGhZBjhGFFFFGgFPGhZW
|
||||||
|
cdRrdmwtfcdSmLtcSCQlvQNqQTlqqvtTlv
|
||||||
|
rnSlSrgWjVGpTTRhSffpRd
|
||||||
|
HtgHPsNNgNHszPcTBphMdhHhBcTc
|
||||||
|
JNNbZPZZsszNmtDbPgsmJlwFvWVnCwrlmWlnjnGvCC
|
||||||
|
WrVBVgVGGQCrSTTqvVjDqDjv
|
||||||
|
FmwRRwwRQhhLFMjFMzdqSSzS
|
||||||
|
RcJtbnnLtQWrGHcfrP
|
||||||
|
vpzssjmVjVZWNZzzQwtQwccpQhgtQCct
|
||||||
|
qDdfLMnMrrTbBLqTqltlTfbGQnghgRwggGgRnhhccCJJcG
|
||||||
|
MtdLfSSSddMftlrjjzsSWVSjFvjNvs
|
||||||
|
qTRPpRPzJglzGJzpGRHWHljwDtbwffjtbhjfwNfHmwwf
|
||||||
|
SZLVdsvrrdFdBcdZvsBdDCNtbmftNwfNbNhCNvtz
|
||||||
|
MLzzddLsQRppRlQGPq
|
||||||
|
PDDpdJgtpppGgttgdGdgJFzLjVcvVnnCTrVrRPTLvwnTTC
|
||||||
|
ZSbHBsSNlZcsfNnnvRrnVjrHwvCC
|
||||||
|
NmSmsfsfhmzcDmctJW
|
||||||
|
NbrLfrrLqpqWQHtBzbFttJgcgB
|
||||||
|
CmwjPPjjjShPvljwvwwjPBFttBtcHzFJcHTRHJRRmT
|
||||||
|
CCljjDGhvPCVdVSCdPvrrNfnnQsGqMpqqMqnFW
|
||||||
|
bdPdbcDZlddsZbHjrrgrmZmCZhCGjv
|
||||||
|
BffLfLVFVMMBRfwMpfzhFGFhGWvWvrhNvvNj
|
||||||
|
RMBpRSnffBJjSbJqdPHsDcbqtl
|
||||||
|
BgwGwDDZttDDTNND
|
||||||
|
WzNNnFRWFtTFlFsh
|
||||||
|
WJjPpPqqzWRbrqnNqvVvgvvdcBwgdrVBZG
|
||||||
|
FFbMVMFPvJppgvcvrZMjHlCJWHmHHBlqhCmqChCl
|
||||||
|
RGQVdVVLnLsQnQnnqWBlBmDRBDWWlhBD
|
||||||
|
SftLzQndGfVgFfjvvM
|
||||||
|
npvLlFLTWWqdLnJCmBmmpjQjjmjB
|
||||||
|
tfgDwzwVVVVtgtrsJtrbjSPQjQmjNBCNBNhPHDHC
|
||||||
|
ggVzVtMRgzMrvJLqFnnRnnRT
|
||||||
|
gZFZssWgNZTDwHDWzsFwWDQMMpqqpBPMjFtMPSQFqqqM
|
||||||
|
vrmvhdnVvQpftStnMN
|
||||||
|
JCdLddhhdJdcCdrrmCGhlgNsWDWDwWsgwHgHLZHW
|
||||||
|
vSsSGjSPvjvRSGpFprFbqFpppRfp
|
||||||
|
ZdmlndtBZbwrwfpWFn
|
||||||
|
JmdHdBBHtgllZldBhJZldLLBjPVQTfvGPNzQQSjjzPgTGNTs
|
||||||
|
TjTjBjVrTsLRRrMBsMMgzLqGGqgQHQdCQGgpgd
|
||||||
|
nbZcmNnPNcbNftvhlhZpgQgCqdSpgCHCqPFzSH
|
||||||
|
WfcNvtmmNmQlvNcbsWWjMwMVMRDVMDJM
|
||||||
|
hHHnfZSwHDgHcfclSGSnvrnvBCvWWntvzvzbWWVq
|
||||||
|
dTJTmspFTsFdRRLvtvLzvvVqtPVtrb
|
||||||
|
VFMNFpRJNTppTpsJVRcMGgfGfgZwghgGfcGh
|
||||||
|
lLGvwsMJLCMVnTrCrVdHRd
|
||||||
|
tbzqtDNNBpNWBtqzfRrFFnrVTTdrQVSVGp
|
||||||
|
tztfzmfzzPDzgWNNBbhGMlJLsvhJJjGJhGmM
|
||||||
|
rHrVJQVQVJLggDQQLbTvdCCSTdWLLLbCbS
|
||||||
|
pNtnwPthmZGRpmPFtqbMSzqffFSdTvbSzW
|
||||||
|
GpvvshwtmwsZDljjssHjVBVj
|
||||||
|
SmhJdtJhhzQSrzVhtQbtBRNfnFNSnDNGRfFGGMgR
|
||||||
|
lHwqPjqwTjLHCWLvPpvNrNMvnNGNfNGNBffGRN
|
||||||
|
lCrPTrwpPZWlqPlqpWWqZjsmJzbzVtVhhdsJcQdddZVJ
|
||||||
|
QqpCWHdQdVQlWcQCqcfRjnZZZPDnSPqPhhqZ
|
||||||
|
tmmzgWGgwJwwStSZZDRnZssR
|
||||||
|
GbFbLLvgmMMwGgmLCrppQrWVlWrFTHHd
|
||||||
|
qdqCgSVdVSVqfwsdZhpJspZsph
|
||||||
|
RjZBbmRlrlmmJwLNNNhLpwhB
|
||||||
|
vZlRrtTZCzCMfSPT
|
||||||
|
JBjhCNwjrlJlHJJRsscZrTcvLLgTsLPP
|
||||||
|
dDztmntCSgbLgqTzgc
|
||||||
|
fGVWnSMFtVGMNNNQllBjWHJC
|
||||||
|
dSDhVVdVZtnSgHQGThQvFNQQqF
|
||||||
|
LcfLRpMpcBpbrJfsbsscBNWRNPRGHvqPdTGPGqPWFH
|
||||||
|
spmrCcrdJJpLLmcmLLLDlzSzCCjVwZVtgnSZzn
|
||||||
|
ZJtgPTHtZPZQGbtNzzprVWWVrbrpCD
|
||||||
|
BRlfcRmBhSMVBqSVfBvNWrDrjWCjjzprCDCl
|
||||||
|
LfMRSmfqfSLcnnMqVSfccnhZwJFHZFTGZQGFLggwZTZGPJ
|
||||||
|
BChWddRRRcfmDbfhDP
|
||||||
|
MgpMFFsvMfGwvLgPjQPzPPmDcztDtw
|
||||||
|
NFgJpqvpLgqFnWWVNSfnNSCR
|
||||||
|
zMMMRmMfJpfhpzQJLMVtjtjPntgBtlZlVgJP
|
||||||
|
SdNbZvZbvbHTNbZbSWTdrTVBglBDlWBjDPDgntPqBDPt
|
||||||
|
rrNcrFwNdSrfzwMzZMLQQs
|
||||||
|
JPmCSfHTGJdTCbHgpgqLgRhghhffhg
|
||||||
|
ZWSSFVSVFQghQvwpphgh
|
||||||
|
lsDtZjVMMSdCNdbGCbjb
|
||||||
|
PBQPvDvVVRvQDqLDzJTlzwjz
|
||||||
|
tGcZTcdgGcncdrFrsTjzJSJqJqqwHSzzSZwq
|
||||||
|
CgtgdFgcFCMnMgsGFGGQWPQpQTCBvbNpNVVWVT
|
||||||
|
FHVFWMHMgVhnLWWMpnppfcdZNcPplnfn
|
||||||
|
RSvSCBSqGgDRjqCpPlPpppTpPjlcNP
|
||||||
|
zRzsGgJDqJwLVWVFwM
|
||||||
|
ThhWhNthVWTWqbWbFWbTdBtWSdMlHSlGlCGCdsCMClmnSlMn
|
||||||
|
DPPpvvfDHfLgDHvzpvPDsssMsmmzsMcClScMMcGG
|
||||||
|
rgPLHHJJHgZfvvZQQZfrpfFqBBwFBTNTBNBwtthQwVqt
|
||||||
|
JJgSWDSmSDQCFrhbRLSwLS
|
||||||
|
VznqzVNsMsZLdqslbRChtbHdHRrwHb
|
||||||
|
LVfNLMsLTmWDpBpf
|
||||||
|
cbTsnNpcnnchllFQlMRgJhRP
|
||||||
|
WddmdMVSBMWSBWjwCJVCPRwPFCQRRC
|
||||||
|
DWSSfjdSrTpDnHHMbZ
|
||||||
|
fgsVqqwQQtHhCrDfJH
|
||||||
|
pvbnBZWBbvWbTdthrJbDmqrmHq
|
||||||
|
TvZSNSNNSvFMBpqpnLnTBZBFGQwlQFggcFzcVGRlswsRll
|
||||||
|
zfMcQHzPtRNvlllc
|
||||||
|
BLnMhbZMLJLNNVtCdNgZgt
|
||||||
|
BJGFpqMBhBLLMqnwBhbrbhLssjFzssjfDzsmFmjmQFQPjT
|
||||||
|
JPBJPnpBFrqBJHtjlCjHJcCthM
|
||||||
|
wQZggQWQGfZFVmmGfDRjlvvNcvlNDhcNttlctt
|
||||||
|
SfmWfwVFwVGZWQVGSTdTbBpTPSqBbLnnrn
|
||||||
|
RJqBRJbqpqqJGvqHMmcfczfcjvHQfm
|
||||||
|
llgVnSWSlsssTnlWjhTcsZMcZcZMZMcccMNmcH
|
||||||
|
TnFhhllnWCnVCTllLnhhVSrbDDPrdpjRRqjBPRBBpbFJ
|
||||||
|
mRwRRNDjNTqwDNjNnNRTsQLcQWpQWZJLlLpQWs
|
||||||
|
PMFGCSzzgbBVzCGShVQZcgWsQLLftttQtlZZ
|
||||||
|
SlGVldCGGbBPMhPCVSBrNNdjRqjDrNmDnmrRwN
|
||||||
|
mqGGqGHnqGBCMrnGCbbbLgTTFFNNghHNTj
|
||||||
|
SdRfcsDPPcDdRzWPWltSlscwTSbShhgpQhgbFLbTQFjwhN
|
||||||
|
DPWWZzzztsDDtfzlscsPdcWZnVMNVqqGJnBrVqCrMrVvZnBJ
|
||||||
|
ZgglFCrrrlrWCJswHmwRVmFSwSsP
|
||||||
|
zhzqBLcjjnpzMzjhTtcqnVGbwssVRmqbHNPbwPsVNH
|
||||||
|
ftBjzLtptRWdvZlQQZQf
|
||||||
|
nGpsMncVRMGSnfsBllZdppwrTljZrQ
|
||||||
|
gcgHmtbCthHWhwBFBWZBlWlWrd
|
||||||
|
bCDDqHhcqbbtqcqtvJMzsGRsvVfPsfnzJV
|
||||||
|
TclPvSGZsPZRjhjWDgjp
|
||||||
|
JtnwHFtJqtwfQfgWgRWhdhjtgdRM
|
||||||
|
JBwnHwgFFqVJrsGmPvNTPsVvSN
|
||||||
|
ZJnfZNnDNZJLzNntDtDNNzNWTVBPrrvRRGdBcVRfPPcvfdMr
|
||||||
|
CFgjFmggQSQQmSggVMMvRdTvBVRjrdrc
|
||||||
|
mbsqQFqFgwwmgmSbwQWWLDWzpLcLnzZzLbLL
|
||||||
|
PnwSFSLSTwbbHdtstW
|
||||||
|
RrDZVVfJNZCmDCfVDVlblZHbddtHScbWbMjt
|
||||||
|
NmzqhzCCqmzffhCCqrhhLLnPvpnTPPgpGTTBSL
|
||||||
|
ShhfLSDDFMPQddpMrDgNbjzffqqqzgcjbqZR
|
||||||
|
sCstmwJwVBtmTltVmTVbRbcbcRvqvrZvBRvZbR
|
||||||
|
VwCnwnVrrrWShWPHHDdQFL
|
||||||
|
pbpDpWjZMmFCmmmb
|
||||||
|
jTjtJLJgJncCFmnJFC
|
||||||
|
LvhvhTQhBSdRNtLNsSszlGrHSGjZDlGf
|
||||||
|
JrhvTNJJhhCrtVtcrNLwDBSBwqzDwQVbBLQS
|
||||||
|
RnCgHmHHGMdPsGMfDlDqlSQbQnQQDbzD
|
||||||
|
RdPMPsmWHmjfMffPcCWrptcprpFTFrFp
|
||||||
96
src/main.rs
Normal file
96
src/main.rs
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
use std::fs::File;
|
||||||
|
use std::io;
|
||||||
|
use std::io::BufRead;
|
||||||
|
use std::path::Path;
|
||||||
|
|
||||||
|
fn mark<F>(c: char, mut f: F)
|
||||||
|
where
|
||||||
|
F: FnMut(usize),
|
||||||
|
{
|
||||||
|
let p = match c {
|
||||||
|
'a'..='z' => Some(c as usize - 'a' as usize),
|
||||||
|
'A'..='Z' => Some(c as usize - 'A' as usize + 26),
|
||||||
|
_ => None,
|
||||||
|
};
|
||||||
|
|
||||||
|
if let Some(p) = p {
|
||||||
|
f(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let path = Path::new("input.txt");
|
||||||
|
let file = File::open(&path).expect("Could not find file");
|
||||||
|
let lines = io::BufReader::new(file).lines();
|
||||||
|
|
||||||
|
const COUNT: usize = 52;
|
||||||
|
|
||||||
|
let mut doubles = [0; COUNT + 1];
|
||||||
|
|
||||||
|
let mut badges = Vec::new();
|
||||||
|
let mut triads_items = [[0; 3]; COUNT];
|
||||||
|
let mut elf = 0;
|
||||||
|
|
||||||
|
for line in lines {
|
||||||
|
if let Ok(line) = line {
|
||||||
|
let mut flags_1 = [0; COUNT];
|
||||||
|
let mut flags_2 = [0; COUNT];
|
||||||
|
|
||||||
|
let line = line.as_bytes();
|
||||||
|
let end = line.len();
|
||||||
|
let middle = end >> 1;
|
||||||
|
|
||||||
|
for c in 0..middle {
|
||||||
|
mark(line[c] as char, |p| flags_1[p] += 1);
|
||||||
|
mark(line[end - 1 - c] as char, |p| flags_2[p] += 1);
|
||||||
|
|
||||||
|
// Look for the presence of an item in each backpack of
|
||||||
|
// the triads' elf
|
||||||
|
mark(line[c] as char, |p| triads_items[p][elf % 3] = 1);
|
||||||
|
mark(line[end - 1 - c] as char, |p| triads_items[p][elf % 3] = 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in 0..COUNT {
|
||||||
|
if flags_1[i] > 0 && flags_2[i] > 0 {
|
||||||
|
// We have an item present two times
|
||||||
|
// 'a' == 1, so let's update the COUNT at that position
|
||||||
|
doubles[i + 1] += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
elf += 1;
|
||||||
|
if 0 == elf % 3 {
|
||||||
|
// for each item, sum the three elves' backpack
|
||||||
|
// presence marker. If it is 3, then this is the
|
||||||
|
// badge. Add this badge to the list of badges.
|
||||||
|
let badge = triads_items
|
||||||
|
.into_iter()
|
||||||
|
.enumerate()
|
||||||
|
.filter_map(|(p, v)| {
|
||||||
|
if v.iter().sum::<i32>() == 3 {
|
||||||
|
Some(p + 1) // 'a' == 1
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.take(1)
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
|
badges.push(badge[0]);
|
||||||
|
|
||||||
|
// reset the presence vector
|
||||||
|
triads_items = [[0; 3]; COUNT];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!(
|
||||||
|
"first answer {}",
|
||||||
|
doubles
|
||||||
|
.iter()
|
||||||
|
.enumerate()
|
||||||
|
.map(|(p, c)| p * c)
|
||||||
|
.sum::<usize>()
|
||||||
|
);
|
||||||
|
println!("second answer {:?}", badges.iter().sum::<usize>());
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user