Compare commits
4 commits
e7f1e50aa6
...
d13125c4ad
Author | SHA1 | Date | |
---|---|---|---|
d13125c4ad | |||
c4268a0093 | |||
5ad4f56771 | |||
f2f3697152 |
6 changed files with 411 additions and 0 deletions
2
2022/data/day3.expected
Normal file
2
2022/data/day3.expected
Normal file
|
@ -0,0 +1,2 @@
|
|||
8252
|
||||
2828
|
300
2022/data/day3.input
Normal file
300
2022/data/day3.input
Normal file
|
@ -0,0 +1,300 @@
|
|||
QJRBMDMtRDCtJzBtJMfjNjhwvmNDvwjLVVgh
|
||||
TPSNNPZGTjgmSmvfjL
|
||||
bPlpZZbpsTlTsWprpGFCJtRtzMNdMMBBcWnJQB
|
||||
tppvbQBhpQQdrzMMcLwhMc
|
||||
gZnWRccRNgFGRGRFRNNgZgJMddddLLLMCPqwLCNPwqPJ
|
||||
nRRmFSnWmlgZlTlTllSlSWWWTsfvfDQpBfBcpQvpVQpTfQQf
|
||||
lRlsVFgTlMgRNsSNTlFgmbWnMPppPnMqWZMWPPWW
|
||||
fDjgBJdCfCHHBnfLWpqnmnpZmf
|
||||
GjQHHcdvJHQBHSSNsFQFslwwRg
|
||||
NPwDLDHNwjLLHWjbdSbDfJJQTZsZDS
|
||||
BcFBcvgFvghnFLrBpvrgcgrJSZJpQdfSTZbCsSdfZZfbCf
|
||||
VrngVFRmrVWHLGVMlL
|
||||
SNBBBDlfZDLqNGmgFjjmBsQgCFtF
|
||||
VPPVbhpbhMhRhncnScRncbrQtCgQQFmjjjsgtRtQHmFQ
|
||||
nhWcPJVhpbvMvwvwllvSlGlD
|
||||
wNlNNqtqHHHPhqCz
|
||||
MMMMcQSWSpQCWFnRRPchLVvPLLzhmhLzhh
|
||||
CrgRSWrnrQpppRQrCTnRTRtGtBDBfbNBllbTJlZtfNBN
|
||||
QNbbNrnNnCwHmNPQmzqQNPsCCfBFFGtsBBddBDtCJDJd
|
||||
gvVgpZWgTWvRvlvLPDDJjGBfdsdpDDJGdd
|
||||
ZRMWWRMVgRZghTggPSMZzQwwnqwmnzhNnNwHcQHm
|
||||
VmPHzBmpmQHbVHSpNHBVQCtRPPCPvFFMqqntZCZqMR
|
||||
dWlDcfcfcjcfDWjlsZfjJhdGvFLGnLsLqsRnvRvRGGRttC
|
||||
wfJhZTllcfdZdfjJfjdmQzHVSzHzgHQTpHpmpV
|
||||
qNnqmzmCBfvmDvBm
|
||||
HcdhtQdttbbhtVcrVVDMfZvdMBTqsWZMBsWZ
|
||||
HQGtctRblwqpNwRN
|
||||
SBtBLBMZzPDDNFFDQnVVVnnDmf
|
||||
dgCjblRdgRvrbwjJGzQQQzwJVJ
|
||||
WpWbCWWvlgrcCHdvvCdvWbSLZzhhZhtLBPPStSPhMSpM
|
||||
PlPnGGGzCqqlrqTRsbTmFRWgDPmR
|
||||
wwpLtjwpzjDwFWRsWTWW
|
||||
NZtJjHNNhHfnCBcJMBlCSz
|
||||
wSrwggPrhJhCdddw
|
||||
tLMNvMTFhDZdhTBh
|
||||
LtMvFttGbNcWRsLFLsccRRgfnSrPjPnfljSfPWlnPhrS
|
||||
TSZlwZSSccSHZLHVcllSvmDLmJhjDDffJmGjQjgQQJ
|
||||
sdBdzsNnBMBstNNMFhNPNbPzgGfDgJrtrfjCjDrCfJmmDQJf
|
||||
BnnBznRsFRFBsspzzbZpSTqVTpHVhpTvlqVW
|
||||
VtVjjhdFmCCfhRRzzSDbDzpmgzmvgb
|
||||
CHJqrswsWvbvJbpD
|
||||
CqCPcZHGHTcsCBQsBrTGHMFnLVQjMjLVVhdhnFQVRL
|
||||
tvlPSrlNNvtglTtPccldQdhbQbZdcqqZ
|
||||
mRmBGHWmDFRsZqHrfbdhqhZZ
|
||||
jjMGjWrJpttNjtgg
|
||||
HPtCMJNjvJLMDZRdBgLSBSfsWBgG
|
||||
VmnrhwwqhbbzrwnDrqpdWBgfdSdfBGgffGWRdh
|
||||
qmnTFbVnpqVzpnvlDFJZDClNZPZN
|
||||
NNRFQfzbNWhLHTVh
|
||||
dGjptnrPqgvqjccvndnnPPhlHrVVTHLWMHlwmrlHMmVTWm
|
||||
tDggGnPqDcPPpPpddjGhggtJCCSssfJbQsDfbZsbsbRZFQ
|
||||
bqZWhbvvvqfvhqvQCChhZlllGwlwGjNRrNGrwGwNRQ
|
||||
PmspSscJVJStzSVzWJlgwlwNlGRLDGrPgNwN
|
||||
pdHmWMVStWJWFBBCCbMhCfbC
|
||||
wtwbctGLwGWhGwfWwhNrnLrlrQFNmPNNVrrl
|
||||
CSdqZRsMStdJMMSZqPnFmVqPQlnjNjqj
|
||||
TMtsTBSSRZBCJStMJSZTHtfvpgvzzWwhbpwhggbzHpbW
|
||||
HncMbCwCncHlcbMDMnMFGsNsJVFJGchVTTcmcG
|
||||
RRfBRNjRLLJTLTThsq
|
||||
zpBRjWRrRvBpNtRWrgwbrwQPDPMDwCnn
|
||||
TDcPLTVRjntFwDwDnb
|
||||
SJJhffHqHZZgHGSFFbdrGTGnGv
|
||||
NQHWZgJQHNHgHQhlLLLBjpRTjLjMNNLM
|
||||
sMNnNRNrlGlsZBrGsrFQpclWlWLfpWjtzTfDtpzj
|
||||
gvhPgwTgdSHtHDtpDPLp
|
||||
gwhSwdvTSTbSgRrZNrrNFFNBGb
|
||||
rtZnDHJrrDtGtGHvGHDWfdfwCjcBhjBCffwwLv
|
||||
lzVlzsTRsmzVNTspVsMMsmwCLcmjmcdbBBChwfBbCW
|
||||
sVTMpTpppsVMsPRPVzMNFqMFwZtQrHZDGqgHZrSQQrQQJDGn
|
||||
wGQQMMQvCTPPQnHPBS
|
||||
FsWdJddszWrrRRJRTmRmpppRHBNPBppNHp
|
||||
rWdFWlFJzbzzMTwcvvMbGMgc
|
||||
WTnnTpqSnCLmjGgSgjztgg
|
||||
rQRHQvbNLwrgtGtrmDglJt
|
||||
PwHRNvQPsvHvPTTpLTcCLVnq
|
||||
qTsqJDJHjjfMCSDj
|
||||
RnGGNFGznzGVnBCWmfSMSLwWRwSj
|
||||
NnBbVQFVCClctHQc
|
||||
BHzmfDHfJLGcQBGgQLDcstNttlZgdlltldshgZZg
|
||||
PwPPSJwPvSNZlvSl
|
||||
CJwwjnJFFnWRMcMzcHMHRzGL
|
||||
rmZpvcZcqccsqmqzzzcBRLBZbBBRLBlRGVdfZR
|
||||
PwjFggwMDgNFwPgTwNFgtFJjfGLhBLsGRGbfBfBLbbTVLbdf
|
||||
DWJwgDWMJJDWCCNHmrnscmqqcnpWSQ
|
||||
bsRlVgMhtzHvhRvpzcLSZcTWLGzTTrGc
|
||||
QJnDjmqjJdmDqqrGWWsZsZTc
|
||||
nQPsnwCJdBDJDDJvhHhpMRCVlhlgRV
|
||||
NBNwMCtNgqCHClHClq
|
||||
JpQmFrQQfHfWjJTfLTjfLRRFRvnvhvnDGDcRcvVGGV
|
||||
HTzzpzzdHgbBZZtdMB
|
||||
SWcVvBFBVBjShWhGQtZnHFDHRGGQsR
|
||||
pMZpmmJPbwbTTQttrDrRrttT
|
||||
mZflqdlbMVcNjdWLSj
|
||||
tvjdccdbLjhvhlcjRMvRTCQJmBPBCFRG
|
||||
qgnqZfHpZDVnCpZzZJQFQBgmmPFJBmRQJQ
|
||||
SHDZDDzpNVpfsNsHqpDSjLwCbbWLChwtwjtCWc
|
||||
FsWTbcwmGfFFFrpl
|
||||
LMhzdfqjLdHQQnSvldGvnS
|
||||
VZjVNzfNLtjzDMhVDNtqDqwJwRmmmZJgmgcbWgRRwCbJ
|
||||
ZJbPwwfJcGlwCrrZrMMddMMMtt
|
||||
pTNvvSSHmmnbpFRp
|
||||
SLSjSLDSQNLHNDbJbcfJclBzjGsz
|
||||
WSQCWQWstCWCCgNNsDCZMZDBjjlLPnHMMLPrHlcrcLHHTjTh
|
||||
bVFJFwfdRFFgjTPgnc
|
||||
GmzRRqvRddbdRRdfJRJfsqsSSsZDsDBQZtCSgpgt
|
||||
FPjprPpPCCFpFPHWsWvqnnllQsdLQMMlLtslLQMc
|
||||
wmzJgzRSRRJghBbwGBBSbtGfLfGlcNnlltdddQtrMd
|
||||
zDmRBmwDrpVFDTVDVp
|
||||
FPGqjsZGlDJmzsHcTcTMMs
|
||||
SQNLSvdbvVbrSbHcftGcrpHGfMmf
|
||||
CNNGSCCdSCZqjqljZF
|
||||
GvqpqrpqdqdsdGshSMhhRsSMhhlSlJ
|
||||
DLCzzjzBwCbQWtQlRRFRRJFptfffgM
|
||||
WzpLbLDbBcLPjWQWDBzzmnvNndHNqZqZNZNvcrNT
|
||||
scHCGfWHsvWHVfGsggHfgvVcSLwLLPRwwDLPLllRPDzlPr
|
||||
tbjqqNNTlPDTTSrD
|
||||
QntmNbNnnddqJqqbFJHZWWHWJWvZHGVJsSsp
|
||||
WZjpjwwGBGZQsqBLBHLHSRLP
|
||||
mJhtdfVtDVJtvVLSmNRSccPPPlNHcH
|
||||
JJLCFDhLCfVGGwbGGCwrGC
|
||||
nBnsGSCrptmsLWGhWRvVRJVJ
|
||||
rllMZZbcWWLJvhTl
|
||||
MHwzczHwwHqZcdzMdbqSmwsssmtNCrBmtrnQNB
|
||||
LzwrZNrNzBMrJBzJsfqqntMlVlSfhnhb
|
||||
HTDPWDHPTgGHWTGcPFRgFpPPtfqmsfqlccmlSmnblbshqnmm
|
||||
jWGgpRGPFRHjzdBBsrBJvj
|
||||
hjNghjlwqjzGhwhGwLrMMrsMdsMfczPfsr
|
||||
ZJQSFZFZpCTQSZHTTFbcWWPbWsWrdLVmrMWMfr
|
||||
tttHSCpFQBQQpJZSJLgBNNDhqhBqvBvvRq
|
||||
hLLJJJLcLPLfLwcJDchfhpSmqGbmdQGmGSdbqdbmqGGGdG
|
||||
zgCCVVvVCNVssdbqmtMWvbnndD
|
||||
rCCZZCVTjVZNzFZJBlflBLccDhBFFB
|
||||
wwPPHfCMHQsrcwPbMPMcvQFJvqWgFTZgDFJltgZt
|
||||
jRBVLhpNqpBmRhhRdNJZJgWTBBtgZWltZJJJ
|
||||
mSjndhSzphjLRVqmhphNShrGMGrcbGbnGCHGwrwGfbbG
|
||||
PVBRhBdlwRtRhRBwtBlVzDcGpVcZnggGzGMMsg
|
||||
fFFWQqbFbLWCWvvFbTjjGnsZMfgsZcZzSZGMpSgD
|
||||
QJTCCLFFLjFqFbHTbbltmhBNwwcNmthNhlHr
|
||||
qwPJJsJdbPdwJddQCRCgCTMTRGGwMG
|
||||
cLFcFBZNWWQLSQRfZjpljTGRCgGR
|
||||
cFvrcNBFJDhzdQzv
|
||||
zTsVTqDqQNtNwwMVmN
|
||||
pHpSzPbRrvbRrGzGMwZwlBJmNtclwJpB
|
||||
SjHRPfRbffPHqzCCCdTsTzqj
|
||||
jnbMBnPjjjFtBtMjFPRtGfvvfzgWWHMfWHTlGgHH
|
||||
dCpdqrVrmdpHfTJTCWGJgG
|
||||
qVdrppqSTddqNwZcDPPPhZRBPBLBRLjF
|
||||
VbHqLlGQlgjLjjQsNvCZTsNjMtCZvT
|
||||
SJtttppwwpwBwdPvsvCvBZrvNrTrvM
|
||||
JDnWJpDSSpmSwmpPzSwznhDlqGqqtqqHGHLlhblGbR
|
||||
RqRJJVMPdRVVpqMdFwmvnSMwZcfCGfDSZc
|
||||
CssQgjssvZvjffmS
|
||||
zNlbbWTBLWCbCPPFPbVH
|
||||
nvQsHSsGvNvnQghTRMrrjpjM
|
||||
ttlLDlzPtGDcRRtpZTFjtgMj
|
||||
PBLBwPPDzzLwblzffzLlVHHsCCHqsfvCCSsGSNWC
|
||||
jHrTrThrtHgttThgHTtfgTgsmZZmBSZGSGsSGfZBZFFmQs
|
||||
qCCPdbcCJddbRcsQSGhFzmZqZGmq
|
||||
VVNNdVvclDcPbMWMwnnlwhphjp
|
||||
ZdBgJqFWNNNqnZZNGsBCCCRvrCwCjCssCB
|
||||
htDPMSPtMPzPTLMzMTMbRRbTbvwRCjfRfsbWWs
|
||||
LhMmtMDWmHlpppplJZJgNd
|
||||
mhtsjtbChcpLqmpmzL
|
||||
DPlPprrfBrpGHHVGNVHRqcNvvLLqLcvJzzTvLc
|
||||
VFfVPrrBQFPlDDwDwBpBtSgQjnghMhCdbSnnhtMM
|
||||
DPDMpbsHPDPNtdtrgMtdnQ
|
||||
WShWlSCJVlzccSBvBvhVZZWlgTNTrNrrQTjQjjjjgDSgSdNt
|
||||
cvmCDvCJCcsRbmpFmqms
|
||||
sSfFssmLnLwPtrrmttsFbDvWgCvddVgfgWdRDWlChD
|
||||
nnGnHBzqHjqBJGChlRClhvghJWDd
|
||||
jNzNcczMcGntPMwwSsSr
|
||||
GGPCThCCvCTVWBCBGMVMsTgZJsrZtHNNtrsHJrgH
|
||||
zjRwcwwfvSjmwznfzQSHDJtgrNrRNrLDsRrHtD
|
||||
fjvzmcfSlSznwcnmnSQnhdlhWBpGpdBqhGhqhVPd
|
||||
sHGGqpRqfNRVbDDtVwwzWf
|
||||
CCLQZllTQLTcSShTQvjhQLnnWrDzVpwtDDwVDnczwMwM
|
||||
vggZLZTldlhpCTlZlZCRRPNRmqdmGBHPFqsGqN
|
||||
wwFDFLMDjjCNgNwNlwwgvR
|
||||
frPbSJMSSPBqrfppSqrBZqMQhHlmNsRZmmslvghsmhsgggtZ
|
||||
TPSPfBQrdJSfTTqSbbBfTfdcGWjFWWFDWnGMjLjGVFCj
|
||||
LZRZbHtqnVztHTTTjMBQjQHH
|
||||
rJcDGpwwgDwCCWFGSFMSffVWfF
|
||||
cNNNgvhNglDnhdzsbLbmVs
|
||||
RwmrGVPmNLzdmVpmrVtHDjjgDHHRqjFtngFt
|
||||
CBlWhQWlTWshsblFGntjHtGbHG
|
||||
WsTSGZSTQZZJpPNdzSrzwvpr
|
||||
CVsggSgdwSwghVSTCgVZjJlRvlQNJHJGZVvjvj
|
||||
qrrnzrrpDFMzbDbbzrMbBcNjRBHHQHGRRllHHPBNBljl
|
||||
rnFppcpWcqnWMLDNsggSmWmsWfggdg
|
||||
wjQzPjJcplwmDDBL
|
||||
vghWhhnfWqzhftWtfnbFBmnGDnLGDbDmmC
|
||||
zZNvZrNsWfgVftNZhQcSdPHPTcPHQQTTJV
|
||||
WjvPVbWnbbFvjfLlcplQvLQvCwCl
|
||||
sJhmrrTRTDDJHhhsmJhmrNDdQwLQQlHllHwwLpCLclBBlcPC
|
||||
RJTRDdmPmmzNTDhnWtzMfMWtqjqqWM
|
||||
vvpjqtllDMlHDtDBsPSSfBJFlSffNS
|
||||
gwTmJrTcJWrNSmsNBBPfmf
|
||||
VzzJzgTnddzWrwngnWqbHqbtLqjqvpvqhbMd
|
||||
TlpzwGZGGFmZJdPpRtpHPrpcPs
|
||||
CMJCMgQjMQvrfMHtMfHv
|
||||
DjnNjCBqCCNnWWgDBQQDnCZwFJwmwwTznmFVwFmzTJJm
|
||||
CcDPppDCFdDrFcFsMsdlLVjjLsMHvM
|
||||
fqSmmtNGqLNffhHHbsMsbjbjNjbv
|
||||
SthSGmLnmfwfWGWhSQGSQRnGpDpJPCDJrBPTcPrDwPzFcpFT
|
||||
FdqjDtPWzqPdnPPtPFbssllqLJlqNppsJGppLp
|
||||
TwfrcvwRgvfTBWRgBssJhspHfffJHlHNGh
|
||||
MMZCQrrRBwQCCZMQwcTMwPztnFZSDWVWPttPSZzdzd
|
||||
prHlrpJbdccllrrPbFdrgPzZfZhZVhRZVScNRNWtSZjWRW
|
||||
LmwCCnvqwGCLMnsWtGRZWVfbfbftRW
|
||||
bwnvBnLBvbsBvszHzpgBlPzHHlzg
|
||||
grSJNTSgBHgpqhvCGbbZddGCGbbT
|
||||
nDLMssQMRLwMtMWRWCZdQfqjfGvZQfCjCc
|
||||
PqsDWPMLnwlRllJzghmgmSNhpgrl
|
||||
TQGcWQBDnSzzsBSL
|
||||
mJJlqJwVJdbSrhlrlhhsLL
|
||||
JPtwMtdPbJbVqVNpPtmbpwZcQDFFcCccFjCQjpQWSWZg
|
||||
JfbfpZJmzffmpZnZZwsrwDFvwHPP
|
||||
RDdQtWTWQQSTGNRhsFsjnvjwrhPjtH
|
||||
QccddTVQQldcGGRdGlgmVmBzfVpDmbgggmpL
|
||||
HVnhVcHvpVFWDpmP
|
||||
QswNZblTTwmqlntDPdqD
|
||||
sGZzNwsGNThhMrhBBhzn
|
||||
fQllBlVQncgwLlfWwWDvppZZggZqGpZgpGdvGG
|
||||
shPTRsFbNFJmvqpGjrpvPDdr
|
||||
RNFDtRRRssRTStRmTlnzwSVQlVVWfWzcQc
|
||||
WmCpPCWTjQPCWWSjSTmrqRLGDRFGrTFDRFDLDD
|
||||
gJnVcnVzdfnZgchvrslMDZGlRRDZLR
|
||||
fdHhfncwfbfzJbnJzJfcczhhSmLCCNBjSpjmpjHjBQjpmpNW
|
||||
BDvDPGRwRvCmLssGLmsL
|
||||
frRjjlldrqtNspLWpqFcCmzm
|
||||
ndSnVNtllldrdfSjfNvgVRHBwbbVMRbVPJgH
|
||||
PpgjhpVLghPZhSgZVVzzcJWccPNCrcJzrFsJ
|
||||
BdBNNMqMdfDnDNTFHHJCqHrJHzrFzF
|
||||
wfMNtMndlBTlmTBndRpgghhjZRjvSZVjRw
|
||||
ZQnQMWMcjHDHrWNF
|
||||
TvtCvvBVgdRdmvBVNzDHlGFjFHjfRfDD
|
||||
dvtCCbdJmhvhhhhbhVBPMwqZswnZqZjjMccsZJ
|
||||
DDMzRBBSzRDTMQRZsbvssCbhZtCDtP
|
||||
dLmwNplnmmwjGvPVCRtVVvVd
|
||||
NNmjLmqWJjFRwFSrgcrSHBzcTz
|
||||
TwTwTMBWcWBJJBtTWHddCmfgzlCzClsvmfsM
|
||||
PPLDnNqPRLQNVnGNVsDQnNmzdhvdddlvdlqgqmdlrfvv
|
||||
SQQsjPPLGLbDSnGLLNnWTFZJHbcpFctHZpwJWB
|
||||
FzMltgtMzFpZtmzdjPpnvRTQTvRWTDfnnTlvwW
|
||||
JcbVcBrqLCVJHJSNCcZVqVqqTRQRWWfNsTfTvDfsWvwTsnwv
|
||||
rcZqVJVhmhgPmhmd
|
||||
ttvSnlWvWWgcScMDsHHMPMjPmH
|
||||
pzLGLfNRpJsvmmfvMDfs
|
||||
GhpzRqqpZppNrhvFgwSlWnnBFn
|
||||
sbQcDJQJJDbQhwchSctVnVnqTMvMWSqTMPSMlP
|
||||
jtjCtNRLNCRgRnlTPPWg
|
||||
pzpHdLtFNdJbDhJHsQhs
|
||||
pSqnfqDnWPHNPCCHCp
|
||||
GdJZQdgZbBvgQLcCZZCCZlPLRH
|
||||
PzBgQggbvBthtMdMvbzvVfFfzTWqDmWDqzqWrfff
|
||||
nnJdrfgfrdMCMdgrqMnWdgwNTTTzFhPSSHfSHhllzjzNFT
|
||||
vBRvmvGZsLZZsHFNFFzTNPzb
|
||||
LZVRmcDRvpQLmvvVGDGmpntJJwCWCnCPJwgJDrPDqM
|
||||
QddMvdzlVfvdSQmGhmwLbGbmzbns
|
||||
JtCCWqqZDsLpGhbGjD
|
||||
FNrhqCTWMSRSrQQg
|
||||
ZsBZJFsZSmmJsJSmrJrJrvsrdGdCQGQphMGwRMGQRGdbBChM
|
||||
FlgfqNNNWnNnHfVnnHdbGwpwGWQhGdRMMdRM
|
||||
LFnggHlDqDLvjDmZPcPmvP
|
||||
CRHJWfvJvrQfrCsDlGGBszQBjjGB
|
||||
LmPHVnMmpLlPssBPlDtd
|
||||
MmMSZmVnncMFcmSVHvfSrffCwSvfbHWv
|
||||
wsrJrpdJLsMCZDWL
|
||||
BbLtGGbNmLQggqgQQtGgMmDCTnWZCZWZTmMmCZnT
|
||||
qNBGNNgQcbbtGbbFBLVjfcfwHvrHHJHJcr
|
||||
pCZCpdjBljhjBlpVccCpbDDwRWDsLhLbwDsDwsDw
|
||||
HNgFSSNvSmdqwsFLFWLGttbw
|
||||
gMMndNrzNHnzJZVlMCMCTcpc
|
||||
CfsFNszCrrGzrsggsPfPVNVlqTdSjSqMTdSVTdLL
|
||||
vRhcHllwJDmnJmDMMdhqSqpVMhdjdp
|
||||
cvHRvwQBPZZlrQgz
|
||||
TsFhCtQtQsBBLtBLPvgz
|
||||
jjWZZjZSMNlNNjljNnlmjjfJLMBGGLvBdzPQpggJJLQzpg
|
||||
wjbcmmlnQZmlrTsCFVwshwTr
|
||||
nRGFnFjcdlwLSHSpNNnBfWHN
|
||||
TgQvPbCMPRhbMPQvtQPvMCRBSHNQHBrQSNfWqpHHrWNWSf
|
||||
PCgMbPvTZVDgtPRggtCCbgmmFJJLmcGFLjdmJFcDwJmm
|
||||
dgWPssfdvQCLPLhL
|
||||
pMtSMtpSmpMpFSMMFZjQCLbLQZZbVbVhNTLblZ
|
||||
mpqcpzncfWwhzfRf
|
||||
vntvVnRCsvpBpMjCpTpj
|
||||
rQdZfhzczNzWcNLTpWgSvjjjpGpMSB
|
||||
ZqNDQhfcNchLchQqcDqRHJtHVwnwbtvHsbVs
|
||||
qtJGQgTrqtqQdQDgbGjPzZHWWzVjslPZlG
|
||||
vBShwRRvvSRSvFvwLSvfcnfBWmHZHVWWHPzlNPWVWjZsWnWV
|
||||
cLBFBFhCBLlwpFccFBFftqJDQdgdTDJJCbJgCCdg
|
||||
wfmsPvPwNfvmfLNFvzzJbRMnllhlnLhRLC
|
||||
gjtqDDTtjgpJcbnMTzCRnCCWhC
|
||||
SDqtpGSStVtdqpgBVjBGZmFPJNJmffvfPsHZPZQd
|
||||
HQMBBWrQQmPBvmBWnvrTnMSsbFfcfwgfCgscsmGgwgcJGg
|
||||
NzzlJLthtlgswGFcwGst
|
||||
JqNNRqpzhVRWTSQrrvSQ
|
||||
mFpDZjvmtPPGvFjmmGTzTcFRbHczHTbzQgRS
|
||||
fNdqhJsNrnnVNhwNVdrdsVczQCcwCMHSTCHgHCRzHgcM
|
||||
JlgnNhsqVqNqNpPlvZvDDDGlZZ
|
8
2022/day3/rust/Cargo.toml
Normal file
8
2022/day3/rust/Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "rust_2022_03"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
96
2022/day3/rust/src/main.rs
Normal file
96
2022/day3/rust/src/main.rs
Normal file
|
@ -0,0 +1,96 @@
|
|||
use std::{
|
||||
io::{stdin, Read},
|
||||
ops::{BitAnd, BitOr},
|
||||
};
|
||||
|
||||
fn item_priority(item: char) -> u32 {
|
||||
match item {
|
||||
'a'..='z' => item as u32 - 'a' as u32 + 1,
|
||||
'A'..='Z' => item as u32 - 'A' as u32 + 27,
|
||||
_ => panic!("invalid item {item}"),
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
struct ItemSet(u64);
|
||||
|
||||
impl ItemSet {
|
||||
pub fn priority_of_single_item(self) -> Option<u32> {
|
||||
if self.0.is_power_of_two() {
|
||||
Some(self.0.trailing_zeros())
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl FromIterator<char> for ItemSet {
|
||||
fn from_iter<T: IntoIterator<Item = char>>(iter: T) -> Self {
|
||||
Self(
|
||||
iter.into_iter()
|
||||
.map(item_priority)
|
||||
.fold(0, |acc, i| acc | (1 << i)),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
impl BitOr for ItemSet {
|
||||
type Output = Self;
|
||||
|
||||
fn bitor(self, rhs: Self) -> Self::Output {
|
||||
Self(BitOr::bitor(self.0, rhs.0))
|
||||
}
|
||||
}
|
||||
|
||||
impl BitAnd for ItemSet {
|
||||
type Output = Self;
|
||||
|
||||
fn bitand(self, rhs: Self) -> Self::Output {
|
||||
Self(BitAnd::bitand(self.0, rhs.0))
|
||||
}
|
||||
}
|
||||
|
||||
struct Rucksack {
|
||||
left: ItemSet,
|
||||
right: ItemSet,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut data = String::new();
|
||||
stdin().read_to_string(&mut data).unwrap();
|
||||
|
||||
let sacks: Vec<_> = data
|
||||
.lines()
|
||||
.map(|line| {
|
||||
let (left, right) = line.split_at(line.len() / 2);
|
||||
assert_eq!(left.len(), right.len());
|
||||
|
||||
let left = left.chars().collect();
|
||||
let right = right.chars().collect();
|
||||
|
||||
Rucksack { left, right }
|
||||
})
|
||||
.collect();
|
||||
|
||||
let sum1: u32 = sacks
|
||||
.iter()
|
||||
.map(|sack| (sack.left & sack.right).priority_of_single_item().unwrap())
|
||||
.sum();
|
||||
|
||||
let sum2: u32 = sacks
|
||||
.chunks(3)
|
||||
.into_iter()
|
||||
.map(|sacks| {
|
||||
sacks
|
||||
.iter()
|
||||
.map(|sack| sack.left | sack.right)
|
||||
.reduce(BitAnd::bitand)
|
||||
.unwrap()
|
||||
.priority_of_single_item()
|
||||
.unwrap()
|
||||
})
|
||||
.sum();
|
||||
|
||||
println!("{}", sum1);
|
||||
println!("{}", sum2);
|
||||
}
|
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -469,6 +469,10 @@ version = "0.1.0"
|
|||
name = "rust_2022_02"
|
||||
version = "0.1.0"
|
||||
|
||||
[[package]]
|
||||
name = "rust_2022_03"
|
||||
version = "0.1.0"
|
||||
|
||||
[[package]]
|
||||
name = "ryu"
|
||||
version = "1.0.11"
|
||||
|
|
|
@ -11,4 +11,5 @@ members = [
|
|||
"2021/day22/rust",
|
||||
"2022/day1/rust",
|
||||
"2022/day2/rust",
|
||||
"2022/day3/rust",
|
||||
]
|
||||
|
|
Loading…
Reference in a new issue