2022: day03
This commit is contained in:
parent
5e6ffb470e
commit
aa6fb34f44
300
aoc2022/input/day03.txt
Normal file
300
aoc2022/input/day03.txt
Normal file
|
@ -0,0 +1,300 @@
|
||||||
|
vvMQnwwvrwWNfrtZJfppmSfJSmSg
|
||||||
|
BzGqjlBqBBmztHNFzDHg
|
||||||
|
llRCPlTPPqBjPhqhlBRBClhqWcTWrWNcMbQbdrdLccccrnvM
|
||||||
|
wMhwbTWpQjbpWHMQppzTHhjtlCjPSSJCCtlqRlJVFJFt
|
||||||
|
ggdvvnvDgdDmNcBrrcDntFRFqHJJtSJqvlVSRlJq
|
||||||
|
fggNNffGmcBrmBfcDzzzpHbsGTpszwwTbp
|
||||||
|
BPdPPBggrPtrpbtvPBBdgrFmhhQThGGlbbTZnzZQzZfn
|
||||||
|
ccjWRJVNcTGmnWWFmh
|
||||||
|
DMNmsMHwRNBrggdPDPdt
|
||||||
|
TfsfHLQbBtBFQbQsBmPwwlnPGZFwwdwWFZZw
|
||||||
|
MRpcvJMJVSMrVMpVSvhhnclwgWwDZgWgWgWglwcG
|
||||||
|
GCzjRJjVjSSrvfNQtLmQNsQbjB
|
||||||
|
FrSPFjtVvwsqSwcG
|
||||||
|
hDHdWDngpgZTDgHzzHwNNqlwNvZJlGqcQGsl
|
||||||
|
wDzLTDHgFffLtRft
|
||||||
|
CnCJNVqvCBJBNZmfPcPMcFLVcwmd
|
||||||
|
HgzjHFghSFtrLfwPchPM
|
||||||
|
QDpjgDSQlHHlDQQRzRzsBRRvWnWvJvZnqWBJNF
|
||||||
|
mGHcFPFqzPtcfPwDGVVpgLgSlgBl
|
||||||
|
rCvddTrnsbDLVSDwjSjd
|
||||||
|
QWhWQThswssMQMMMvhTzPqJzmzftHccJfHFhFm
|
||||||
|
cPbNpLVFTPbbFrpTLQBzqqmgnnBhgLMM
|
||||||
|
vvSwWCZCRZCDZtGwzdgWdQmzqgnQddJn
|
||||||
|
vCltGltCGmRRmCvDjjtHFpbcFfbbfssbpNPpHFpH
|
||||||
|
WLLQMWZLSPMPWmrwhnjhZZhpHJHljBDB
|
||||||
|
csbtCfFgCftGljHwHcBnpnJR
|
||||||
|
tsvgszNtfMwPzWqPrS
|
||||||
|
NbDZrbrFQQqqQtQqQDtTcBvCLBLswsZhscCGBZ
|
||||||
|
ljmWRzVRpbndMWmmfdsTsCBsGwTVVVCGCGws
|
||||||
|
ffRpnllHRMfdWzdnmRNQNNSFQQFNbrFHHrNH
|
||||||
|
LccGzWNjcvNLGTmHNsNLMlMwMpMPGlMCwFwDDGCw
|
||||||
|
fZZtfrZgrfQSnnnSnJRCglHpCwwHwpglDClFMw
|
||||||
|
SqJQnffJRnfQQVRhrQtrhnThcLhzNzHdTjhsTWzjdmcm
|
||||||
|
QJQwJMSbtbRgMQMQVZpCZsrrhpZBwrLLvs
|
||||||
|
qCNPGWdqhpphsWrB
|
||||||
|
DcNPNnqjdGDqjmPGGJRFMQmgtlQmQJCSgb
|
||||||
|
blTRbDnHRGGBwnGPCtFPWzVCDvFWtL
|
||||||
|
pdSJprqhhZSdqSdZNhVzZWtzLVgVPvzjLzWv
|
||||||
|
rrsqsmrMpPHlwTsRHn
|
||||||
|
mbNhgbRSLmTwswFm
|
||||||
|
vHjHBWMHBzMqWZVZBzHzcwwwdcFLcpLspdzwpwQd
|
||||||
|
HfMWMfvjWtZHqWDlhSnnnJNnbhslDb
|
||||||
|
lwsvPPnqlwwwsPcHTgqcRcSccmgQ
|
||||||
|
CVWBWCFpFzWfFjWjhNSQJJmcVcHRZJNTSc
|
||||||
|
zdhfzBtfLLtfFClbrDvsPvtPbnmv
|
||||||
|
PntVQbDnQHcDVvhtbtDhcbPcFTrrNfjqmmPTTZqMLZZMjFZm
|
||||||
|
lgJCpCFCSCGCpllWMfZqTNNZrMjrJTTM
|
||||||
|
CSzSwgFlzsGBzQcQhsnnDbVdtc
|
||||||
|
THzqvrVrWzhqhWwqhTbNNDRtFRmmpFDDVsFLLsdddF
|
||||||
|
MbZSSScZSGCJCjZlCjdPmpRmFLDtctdmFRsp
|
||||||
|
GfJQlnZjSMnllbJCQbClnZQrhNwwqhBzTNhrffqhqWhTqz
|
||||||
|
BdBdmDZHFFbrHHStPSRtPCzSRNDS
|
||||||
|
JGGpwqLJGMTLpLlMpqLhJtzCCSGQSPzNNczVVPVzSV
|
||||||
|
WwpllfslqfhffLwhfJpJlqlwdBmZnrdFHBFBBmNHFsFmdZmn
|
||||||
|
jZfQZnZfnbRfjCnfbSSmVpqmNmVpCqlhCqqPpP
|
||||||
|
MdJMwMvvLDssLtFMsMtLDsvvDRmmmPhWzWzphpmqDVzPDWNp
|
||||||
|
TsLdMrvRtLJtGdtGRRtFTBjSBrScnSZjnbcgQgHfnB
|
||||||
|
RZfmlRlWJmWLLRscrslJqvvMdVwmddvPddQPVDdDwz
|
||||||
|
GStFbFCbntbjNnjFhFvdHfhzHfzzQdMHwPdD
|
||||||
|
BSGpFbbjbNjnNNFSbRsLlWqgrZrfRgsBlg
|
||||||
|
ztHczmrmcNNzHsPSTwsPHSQPQT
|
||||||
|
CFCRjlvbClCjBdPDFQdwBsqn
|
||||||
|
llbRgjClJCVVMMCssfmNZWszrNgzGL
|
||||||
|
mmFldllVlmtdWFvPPFBcSSBW
|
||||||
|
DZzZGzZswQZHwQZjZzWWTSSvjSdvPvvWjJTS
|
||||||
|
DpQQggwzZGdmbCldgVgf
|
||||||
|
PJJvhqzVGbTFqzqbbGTlLmrtrZMnnZnntlJnrD
|
||||||
|
fNwRcQBCRNddNgLtgDnttqrMMtlr
|
||||||
|
RfRdNWQHcqHscdfRdGPFbFPpvpVWWzPzVS
|
||||||
|
DRgjZRRDggTfjfRvwWzHGGHPWDswvv
|
||||||
|
dhbmpcCmchgCpsGzWPdVGvWHwP
|
||||||
|
hpMMMpCQMnChFgNRQffTRrSN
|
||||||
|
gfqPCHWtPMMjCtffgjQWGLvGdZcdLLGZcLFGZBWG
|
||||||
|
pJTDsnnnvBjnFwvj
|
||||||
|
zJRpTbNrTSppRVblgbljMgMfCfbC
|
||||||
|
fGrGwqggtbVmtzbf
|
||||||
|
CTMjNQcJjJTBNCjMNZFNBcCZHbmWZHVLZDDWVtDzzbVmlV
|
||||||
|
hMvTcNMFMhQjTTBFBNMhwpspwgnGtvtnSgdwrRpG
|
||||||
|
RfFdqPdMMGPVgWmNVN
|
||||||
|
QwrTsbnSsSQpwlSSbNNWDmGLVjjmLWwNVB
|
||||||
|
rpcclTCprmZQSbprSTpRRRfqMfHHCHfhMhvFJM
|
||||||
|
LnJJsMtLbzsPPVPJbrTBlTWlfRfqnTrrlr
|
||||||
|
VDHVQNFGgNTrSjSBjq
|
||||||
|
CHFHGmvDGdZZGCQZVDgDHVbwLLwtMwwmJLJbLPPMbczt
|
||||||
|
qNNNBllFBzFjjzwGqGgLrWgrtQjdmmtQmQpp
|
||||||
|
ZMHJCPhMZRsRCsCPsSJZLmQdQgrtQwQwQZwdWg
|
||||||
|
CnMPbbRbsPhCnbfhMPRPllnFGqwTTFzTzNvBGBGc
|
||||||
|
wZWlBFZQgBzTzpZwBlVpzWBWnNMmnMvMcMJMmLGnVmqLqGMq
|
||||||
|
PdSDfJbCHsHHdJjsRRhjjPjmLqnnrLMLcrnLvdLMNccvGn
|
||||||
|
tSJtSCtbJhDhtzlFQZlTZTFp
|
||||||
|
TNqZDqmMDZNMFSGHjSGBRBdN
|
||||||
|
CrrwVwsPjjBHddPf
|
||||||
|
rpWggQVspQWcgtLwcHZZzDDMLDvvnnMzDM
|
||||||
|
lWrWmPwmGlZwZjdLZLzV
|
||||||
|
cFcDJhJnmqBqDCRpZzVLNsFLjLzdds
|
||||||
|
qJchTDCBHDWglmrfWPHH
|
||||||
|
RgLRnTJWnfHDcQQBfg
|
||||||
|
bZpNwdwbdMvVPsHHJMQfSSfP
|
||||||
|
mVbdNNdrbCzZbdZvbWTGrhqjTJtRWttRjq
|
||||||
|
TMtqqBJLrwqrZPlHHGhGnlBhzv
|
||||||
|
bFgNcpDRnpgggjCzvWDWhQhQWQHHvz
|
||||||
|
jnnVgjcgcTZMJqJVtT
|
||||||
|
dVSjmdHrfGPddrQgstFgzsQfsMFQ
|
||||||
|
hvJJCCJDcCtwBVFQzzBD
|
||||||
|
RWCnTvWTLRnJJLJllWhTLSprVdNZVGHGNGGnrdGSZH
|
||||||
|
gvMSHFZtBBMBMFZHzjnqLsLGMCzRWWMn
|
||||||
|
QJmDrhbNDbJfPQhDmQPRLszRlnjCzzWqrRnlsL
|
||||||
|
PcJVhJbJJNcNDmfDmjJmbhTfBvpwVSdggtgvgSFZwgvtgpdZ
|
||||||
|
PBClRHHClRlFljllZSBBBllppVGDLpZVVVsGpmGcNDpGLL
|
||||||
|
MvNwnbMwccVsswDG
|
||||||
|
MqnNbzMMrQfnqtttqfQWQQnRdCSHgHPglRFBRWlHjWRlCW
|
||||||
|
lldwdfSBWphHBggZghFs
|
||||||
|
DjDbDVRzDmLRzRLGJjPssrLZPhdshFHrssTZ
|
||||||
|
mvddMzvmmDDvvwQqWftCfqWqfM
|
||||||
|
gpTTwNWGWMSMgJjnvpvvJbJppn
|
||||||
|
lQvmLFdfrQzRFctlrLdRLVPnhPPbVDPDfjnVbfhJjV
|
||||||
|
FLFqccvmmtcQtrmQccRFLlRLSSWBSgTWNwsggqMBsqWGHMNG
|
||||||
|
PjPtVQrPVjrVPLLDQVFLTTWWqbSZwRwzqwSbSbbbwFSq
|
||||||
|
lBnGJBnfflRRNZwbqb
|
||||||
|
HJMGgmfpRMHGGdgncJHLDjjtVDQctLCvQCjTtr
|
||||||
|
VvmvjRGwRwvhmhRvvvVCCTTJjfWqfDMMcJlcCD
|
||||||
|
NpNbPfpSnngZbbLMFJWTMlLFqJJDMD
|
||||||
|
bNSfdSHQZgVQzwhhvRmQ
|
||||||
|
MhmHcDhChhcPVMDPDPQdFhQHnbNpZbZnprnrmNnjNbsllbnp
|
||||||
|
WWqGCWSCzsGbbGNgjN
|
||||||
|
LzwqBLSvwJCLPVMVDLdhMP
|
||||||
|
mNVLLffSLVWdZCcFZCZrSbGr
|
||||||
|
glvcwszTlsRDrHQCZFCvGH
|
||||||
|
gTBRlJnwhzgTgsTnggslsJRTpLNmjmNNcdVLdhfpLpdLVmLc
|
||||||
|
pCgfDrDrgccfppmDnhHMGqGbpHHSqzGLlqHS
|
||||||
|
tFtjQRPFFZRVNRcQGbLzLFMSGzSbWLqH
|
||||||
|
QRNTZjvjTTwtwNfmcTgfnCgnnBhm
|
||||||
|
hcPBhqPzqWPccHWHHWqnPdssPVfFFmZDnVDDms
|
||||||
|
NSLNCTRQZndRmDfnRD
|
||||||
|
QSGTGbjTSTJHBlbZZBbh
|
||||||
|
dgcWgVgWdvZSbbRtjLRZZZ
|
||||||
|
MMDPPfTnPTQrFDMpHzmmLztLnsszRtwbtS
|
||||||
|
rDfDqfHTpCSJqlCCGq
|
||||||
|
bjsgllstBbpNpslBpdBgqljgGwzJzDzwLGGrwLQQdJDwGhQh
|
||||||
|
nncmnmHHnmWRWmPfJCnvPRMrzvDhZZLGQwhDLhhMzZZZ
|
||||||
|
mffccVHRRPTTNlpNbNjJVslJ
|
||||||
|
DgPstgPtgPNNcjQQrtPJJCRSZTwSGJZZCZCJGD
|
||||||
|
dHVvpzdBBhVqzWqvhvHdzGSZlTRCSRJrwSSCwJCWGT
|
||||||
|
zpvVVqMBrzqrhFBvjbNPcPLnjcQtMcnj
|
||||||
|
gBcmTCFghhCCBnBhWWwFbwLdwHFMLMdp
|
||||||
|
LVzlZzPPMMzWWrwH
|
||||||
|
ljqjsGlZPPqqlVsPqDVqjQQctNTnRcNLtCNmmnRTRthBGG
|
||||||
|
LPRrrBNNjLBRJNdrGPRBfBrLwFqmDbdbTbTgmmgwmttFwtmH
|
||||||
|
QQcVvnQphlWsCQCCVpnvptTJgbtqwHDwbJtJHFsTHw
|
||||||
|
ppcJVQvpvMVMCvQZQVVZCCSRZPSjNRRZBPPPPzLjSLGf
|
||||||
|
MLtRnjQsRMJcDQJnSrsfqVVvGwbbbqgggg
|
||||||
|
WBFCNlFFFhFBlCHbplFWdpWZfVqPPwqTGdqTGvwrPVvTqvTr
|
||||||
|
HClCHzFzFBhmnjtQzMMSMnbD
|
||||||
|
sVnMCsdlMRcMFBGz
|
||||||
|
JvwwgrJDfgDmmggQrhNfhQQftjFrGRRtZFGBRZFHzjGcjrcj
|
||||||
|
PBJJvgDPNllPddVCPl
|
||||||
|
fmmRSnfnMnFSmMmmzTDSBFHtlJJqHJJqdHQdTCdtCCdt
|
||||||
|
WggGpNVVgWdwwHQtlGlC
|
||||||
|
hjbWppbLbLZLjVPPjPLSRRMvDlmSzDzBSnBFZf
|
||||||
|
nVttMPnPLjnJLjcnPVCjJJLcssfggBNlffgcNsWTcGcgNsBF
|
||||||
|
HQbwhmDrRrgFsWlQGNls
|
||||||
|
pZdbGzGrGpVttPLttv
|
||||||
|
LLbMrMHLDdWhmgbqqt
|
||||||
|
jGSQZQTpQGVVRSlQMQRljZmgmJBSvggvBWhJmJWvddmt
|
||||||
|
VjlQFGMVrFFrDrPw
|
||||||
|
DZVDwGZlJlVlwZVDzNdqfjMDnjqzNnWf
|
||||||
|
pmtpLRQFhSFpmpRgRtHNFznNdqWBjzWfnBjMWf
|
||||||
|
rHRrhStppHdJcGJrrssCsV
|
||||||
|
pgQqHwgPcPCddCjdWtdp
|
||||||
|
VfZGVFfNVhZhzjjjLz
|
||||||
|
fNNBBnGVNfBfRSRjBRQHJQTwJcJTgHPwTngr
|
||||||
|
MZdlzWzthMgrwmGmqZNqNs
|
||||||
|
VvJQJPVDBJQThwwNsRqsvRsHHm
|
||||||
|
BDQQPTnDDBQQBVfTBQPdFctzzdtztMMtnhcWcd
|
||||||
|
LjWjDShflZRRcZzfHH
|
||||||
|
srNwQPBsrVRhNmRGHzmM
|
||||||
|
rBdgQTrhdPndQTrsQQsrPwnTpLLCWDpSCLtCnvtSWpJjDCvl
|
||||||
|
gSlvDwCvcmcTQTFtRMjWHFVVHwtj
|
||||||
|
rbsphZZzBshGZssMffTVRFfFpWpfTH
|
||||||
|
GZNhZBhPBzTPNLDcDlCDCJNmlg
|
||||||
|
smZjGfvjbWWffQtf
|
||||||
|
dwRrdlVdDdgDbNtgcgQSNStQ
|
||||||
|
FdFVwdblFlzVrlwrTlndZHHZGhmLhhssjHhMjnjq
|
||||||
|
QFvQVFLLgVrFLBVgGhTtllPvmHRRGbTm
|
||||||
|
hDCCNCNCJNzWDZnqJDzSNCTnbRttHGRnccbPRtmmlmHc
|
||||||
|
qJshNMCNdVFVfsLB
|
||||||
|
FcLZZPFjdZcZMPcRjcRTgbpJlwbbTlmdTlGlwD
|
||||||
|
nrrNrHWBNSWvBqvvrhBqzStrgGnnmbwsbbJbwwJnmwmgJTlD
|
||||||
|
BCrrNvqWvSQPcCGZZRQQ
|
||||||
|
vPwcJblJzJbJcJFcwBSvJNdWRLtdsddGWWddWRWsMF
|
||||||
|
mDZmmDZDHVhfmjZgjVDfhTZHtsNptRsMntnWdsMnGtRntG
|
||||||
|
mhQrQDDhgqTTNfhmVQVBrPlBczSJbbCbCCPPvb
|
||||||
|
ZjbjLlbZjGqsgJTfHggrVvlB
|
||||||
|
tFDRFRnMFnnWtDdMdDRhzHfTJhJhffHvHTBHTgcfJV
|
||||||
|
nztDtdWzCCMSptSdFRRswZjsLbjwZmwqwGqpQV
|
||||||
|
vnvmmVnmVbrBJlzgWQWVNFzNHV
|
||||||
|
MwSjZhSwPjMwfDRzgWlNpWvHlgNNNP
|
||||||
|
CfSZjSfftwZDChDRSnccnrvBbbGrtBvctr
|
||||||
|
LCBRQRBQwRrCVLVWSrCSwCptzvhthvGGhdHzwppTTddv
|
||||||
|
mFnJJmnmFFFfPLNNmqqNJDpGnGtbHTtHvhnHbzvHvpGv
|
||||||
|
lMMPLqDmNMVSjjgMCS
|
||||||
|
zzPzbLjHLjfQPQHwwjddFNsNSJjDMsdNMFsC
|
||||||
|
BqqtmgDhcqdSFCdsqddF
|
||||||
|
GtcmrvhgcZlvZtBhtVgrvrvtnWzDnQbfnwlfWWRHWbbwzHRL
|
||||||
|
JfWHWZcMMdDLMPjRnCJjRbFgnblF
|
||||||
|
ShtBTSmBhTtqtfmqSTNvmjVjnFbFnnlrlqgCnrFnVg
|
||||||
|
vfzTTthppmdzPLHLWdGZ
|
||||||
|
tdvrvGgGTSScnHcjcg
|
||||||
|
zLLVfzPPcDZnPjSPpD
|
||||||
|
LfffNFLNlNbJwrctthWqNdNq
|
||||||
|
NdjJtfVNZnnFFdtfGfFNcvpbMDbzdcTbbzpvmcDR
|
||||||
|
PHMSHCHHWrRCvzDzDChT
|
||||||
|
BqPWSHwllSQWrLHQHPqlBBNfttZMjFQfjGtZtNjJJjnN
|
||||||
|
CpZtMCMQQpCVWjMDVjPVQsWWqJJhbTcddPlfhTRqchcJblhh
|
||||||
|
NwDSGNmGRccqNJfT
|
||||||
|
SBSSmgrrgGHnvSzwGVWDCzMCpLZtMsstLM
|
||||||
|
sbjHQsBlBQrrGjQjBqCRSnSCpnfngLnFhJngFfSP
|
||||||
|
zHVctHDcZtdJffnPpcSpFn
|
||||||
|
ZdwNMztdvzVdrqblvWsqHvBR
|
||||||
|
jPdjFPSbVDMMbqZzQWzQ
|
||||||
|
hFRrJlpprGhtlJGQzmCRmZBWQCHRQR
|
||||||
|
vThNplJpNhltNNlvcGDvwVFgnPwvSgPSSfjS
|
||||||
|
DhDTPQpTDmQbDQrrrWtWPJNNrrsJ
|
||||||
|
qqGjgwCgVRjMSRwMMGRGqjwvsNJJBZtrstvNBvHWHJvL
|
||||||
|
VqqgfjzfgfFGVjRggCGznhlbTpQchcshpdFlnDbn
|
||||||
|
DpTQTBbCZQVJQZJjrFllGdlvMPlMLqGBGvLl
|
||||||
|
hmnWHWWNzzmHsmWRlGGpdLgLHGlqvgqg
|
||||||
|
RzcWRhRnRnfmswfwtzzRWrDTrrFCQTCpQpcCrjjQCp
|
||||||
|
HLvpHvGcBTDFznvfqT
|
||||||
|
hCPQbPZPbjSbwwjCPChSClJJfzqTggTFDfsJngDg
|
||||||
|
StqmmZbdqrQmhQrrhZWcRcGBpBHWVcLctMWp
|
||||||
|
dNnRNbRdbRJMBMBVVThn
|
||||||
|
rNrsLNscFsCDjpwTMgBGWMGjJjWBVJ
|
||||||
|
wNcLpqHNsCprsfLFsHwRvPSSPRZRtRQSqtQPmP
|
||||||
|
PPhGfbthhBDVsTDtDqRR
|
||||||
|
mCmSNmqpcqjjrCScWRsZDpHsDQRZQDZDss
|
||||||
|
CcWzNmccrjjvqBGzzdPGnv
|
||||||
|
SDRmCSFfcSFFcfDmDBFSCfdVJhpzZjNJTNzRTvjzjhzNjTtZ
|
||||||
|
ngGsltrMWrblNpNTJJplJN
|
||||||
|
PGGnGsWngrGLQHHtHHHgWsHSBLqqfLcqBdVdcCDDBFdCDm
|
||||||
|
VPjGwhwVPhrnqhzJmQvQTQvmzBzw
|
||||||
|
ZBDBRbLLdtfRLlddLlCLCZMgmFJQFDcvzMQmgMzzJJFJ
|
||||||
|
LHLWltHlRZCtBVhVVHPjGSpphp
|
||||||
|
JqhlhdnnmfRVVSpzWLjzVLGpvB
|
||||||
|
stQtFTTrsZQPFQNNDtQgLzzSLvjvLGLBGSZGGWJv
|
||||||
|
DDDFFgDPbTwbTTJMCMcbCqqmmRRCnb
|
||||||
|
JbDWPDPPJJDMDjHPZHGbHGVZTBhrzBpdzszdTTphdNdWdrpv
|
||||||
|
RmRRqllqffwFtqwLCsqTNvpCsqCNqvdN
|
||||||
|
fmfLmStlnnfnRtfcnQbbjPjPPggZGVsMQMbb
|
||||||
|
WJggvGDJSwWgSfgvfSMGqqQHBcPjcHChcQBCssDHCTTQ
|
||||||
|
mlRnbrnbnltblwdnnpbLRdCCjCTHTjPTTsQcTrHHhCcj
|
||||||
|
bFLbdmzRpvSwfFFNWN
|
||||||
|
BHnDnQHnHMWLwzWPzD
|
||||||
|
dmlZCrdqLZzZVZJM
|
||||||
|
tRRtdlLCjLmqCRsrSLrvvRQNFQnbgRTQQNHTBbGQQh
|
||||||
|
ZrQPQWCrJnPdQSNTmBJNTHGHJN
|
||||||
|
zhFRfswjwhhsFttfsfvQftRtLTzmBTHGTBmzMLHHLmGHNTTS
|
||||||
|
hQhwqVjQwsdggrZZCWVl
|
||||||
|
VjfnQgVQjblChfjVJlbzLtrSLlTGtztHTtsTGH
|
||||||
|
DDqWQDQMWmDwWNwcqdWvpSrtLpLsptMprMStstMz
|
||||||
|
vQcddRdRvWcwWRmmmmddZmmfVnnngJJbZnCBnBhhFbhCgJ
|
||||||
|
gVgDnnmJdQVdJJgtgDjBsBhsBSPRSRRSSwccSbSqwPcCPcSC
|
||||||
|
HrQHlHFpQfTHzzWzwScPPCRfLbPSfCSR
|
||||||
|
TTQlZNTzlZNMWvrZMlpnhnVtnDDnVNtVJnjmhg
|
||||||
|
MCmmssFnZJcNNszfpvvrpvJzvwpp
|
||||||
|
BRRRWQWbSRGGRTTtZHWSqTrvDfgfdfrrwrDgfbvfzfrd
|
||||||
|
jRBhWRWTSRttQBZMNchNCsmFMchP
|
||||||
|
GBDncllqcSlNFZWBFWPjHVbw
|
||||||
|
LQphJlJzLCwPjHbpHZvV
|
||||||
|
hzCMJLMzTsrdrszQCCCTCQCDlqqnNmggqfGmgdmGgcmSNt
|
||||||
|
hFVVbqJsqhcnBRTRGBTh
|
||||||
|
lwdDpmzdNznzZBgGRRjR
|
||||||
|
HdmvNvSCmDmwNDFrMJMqJFCRfsbq
|
||||||
|
ctnbTcFTnbwSSfrrMLRhpJLMRdpwdJJR
|
||||||
|
vdGCVBmGVHPLBRWhpRLJJZ
|
||||||
|
VmQPHqvsPdlQsVHDftnlFTbffnbttfTF
|
||||||
|
LBJZHrhLThHddcMLVtcMcL
|
||||||
|
CPMNFDDMpGqFjjSPDPDqdvmdtQgVQQcQWcQgQQsj
|
||||||
|
DzFDFMRSFPSGTJJTJBwwRhBw
|
||||||
|
dpldqlqlRppFTHpbjbnLRLVnnGfjtG
|
||||||
|
NNJTcmhzvJQNgMJBwcGtjtGbttfhtsGGnhnt
|
||||||
|
rzcwmgvcvrBNvvmMgvcBzwHPCTWWprqPHqTFWdPCWDTF
|
||||||
|
BNllDRTNqDNvNDDLBcDvBCLVJrVdJdtrnrCHggtrdd
|
||||||
|
mppFMFjpMFZQZQGjFCdgrCrCdrvVGtJJCC
|
||||||
|
PZsQmfPphvPjSsjmPjfZllBwcNRDNcDqNNWbTclS
|
||||||
|
fjqZBSDSDwwsQwCDND
|
||||||
|
rrdMdjVWtTTPslsslFLTLCsJ
|
||||||
|
rvPWbvcmHjmdPbHvrvBHgqRRgqHGgfZGfHRS
|
||||||
|
ggTQgsgwFrTrggbMTvSdmjfCmmQDcmqjDjmc
|
||||||
|
nLZnRhNZnnNHZhZVStCcDqjcqmjSjH
|
||||||
|
RWGNnhzBnJJRRWNRBNZNLZhFMTFPvrTrTlsggPwSlFMWTw
|
||||||
|
RNmnPRnLGcQmzBQpHHjTltjtlfgspbsq
|
||||||
|
CZvCJwZMMCCMdFVcwJJsgTTHfsTlbfbgbT
|
||||||
|
SSVFhWCZdSCcWCcWdrvhzmnnnLNGDRDNzzLNGz
|
||||||
|
jPwfPwNfFpFNQpDjdMcjcrdddDHD
|
||||||
|
tzsRsGRLzhLhvqvhHMlqqV
|
||||||
|
LRBnRBGSnBSGsGSGmGtBJCmnNWZpPpTNPMwQMPNJFZTTNwWT
|
||||||
|
PCrStRPSPvZQcZPvqvfjSRWFFNFJFLZTTJTTVZFFGLFF
|
||||||
|
DlpBzBntHDzhlpGJVHLwTMFLVLTL
|
||||||
|
gptBBdgzpsBbpQvvPQPRqrdcCC
|
6
aoc2022/input/day03_provided.txt
Normal file
6
aoc2022/input/day03_provided.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||||
|
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||||
|
PmmdzqPrVvPwwTWBwg
|
||||||
|
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||||
|
ttgJtRGJQctTZtZT
|
||||||
|
CrZsJsPPZsGzwwsLwLmpwMDw
|
164
aoc2022/src/day03.rs
Normal file
164
aoc2022/src/day03.rs
Normal file
|
@ -0,0 +1,164 @@
|
||||||
|
use std::{collections::BTreeSet, fmt::Write, str::FromStr};
|
||||||
|
|
||||||
|
use anyhow::{bail, Context, Result};
|
||||||
|
|
||||||
|
const INPUT: &str = include_str!("../input/day03.txt");
|
||||||
|
|
||||||
|
pub fn run() -> Result<String> {
|
||||||
|
let mut res = String::with_capacity(128);
|
||||||
|
|
||||||
|
writeln!(res, "part 1: {}", part1(INPUT)?)?;
|
||||||
|
writeln!(res, "part 2: {}", part2(INPUT)?)?;
|
||||||
|
|
||||||
|
Ok(res)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part1(input: &str) -> Result<u64> {
|
||||||
|
let mut priorities = 0;
|
||||||
|
for line in input.lines() {
|
||||||
|
let rucksack = RucksackSplit::from_str(line)?;
|
||||||
|
let item = rucksack
|
||||||
|
.find_duplicate()
|
||||||
|
.context("rucksack didn't have any duplicate!")?;
|
||||||
|
priorities += item.priority();
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(priorities)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part2(input: &str) -> Result<u64> {
|
||||||
|
let mut priorities = 0;
|
||||||
|
let mut lines = input.lines();
|
||||||
|
while let (Some(first), Some(second), Some(third)) = (lines.next(), lines.next(), lines.next())
|
||||||
|
{
|
||||||
|
let first = Rucksack::from_str(first)?;
|
||||||
|
let second = Rucksack::from_str(second)?;
|
||||||
|
let third = Rucksack::from_str(third)?;
|
||||||
|
|
||||||
|
let priority = first
|
||||||
|
.items
|
||||||
|
.intersection(&second.items)
|
||||||
|
.copied()
|
||||||
|
.collect::<BTreeSet<_>>()
|
||||||
|
.intersection(&third.items)
|
||||||
|
.next()
|
||||||
|
.context("the three elves didn't have any item in common!")?
|
||||||
|
.priority();
|
||||||
|
|
||||||
|
priorities += priority;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(priorities)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
|
||||||
|
struct Item(u8);
|
||||||
|
|
||||||
|
impl TryFrom<u8> for Item {
|
||||||
|
type Error = anyhow::Error;
|
||||||
|
|
||||||
|
fn try_from(value: u8) -> Result<Self, Self::Error> {
|
||||||
|
match value {
|
||||||
|
b'A'..=b'Z' | b'a'..=b'z' => Ok(Self(value)),
|
||||||
|
_ => bail!("unsupported item kind: `{}'", value),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Item {
|
||||||
|
fn priority(self) -> u64 {
|
||||||
|
match self.0 {
|
||||||
|
b'A'..=b'Z' => (self.0 - b'A' + 27).into(),
|
||||||
|
b'a'..=b'z' => (self.0 - b'a' + 1).into(),
|
||||||
|
_ => unreachable!("shouldn't happen if Item is constructed from TryFrom"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct RucksackSplit {
|
||||||
|
first_half: BTreeSet<Item>,
|
||||||
|
second_half: BTreeSet<Item>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl std::str::FromStr for RucksackSplit {
|
||||||
|
type Err = anyhow::Error;
|
||||||
|
|
||||||
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
|
if s.len() % 2 != 0 {
|
||||||
|
bail!(
|
||||||
|
"rucksack should contain an even number of items, this one contained {}",
|
||||||
|
s.len()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
let half = s.len() / 2;
|
||||||
|
let mut bytes = s.bytes();
|
||||||
|
let first_half = (&mut bytes)
|
||||||
|
.take(half)
|
||||||
|
.map(Item::try_from)
|
||||||
|
.collect::<Result<_>>()?;
|
||||||
|
|
||||||
|
let second_half = (&mut bytes)
|
||||||
|
.take(half)
|
||||||
|
.map(Item::try_from)
|
||||||
|
.collect::<Result<_>>()?;
|
||||||
|
|
||||||
|
debug_assert!(bytes.count() == 0, "something went terribly wrong!");
|
||||||
|
|
||||||
|
Ok(Self {
|
||||||
|
first_half,
|
||||||
|
second_half,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl RucksackSplit {
|
||||||
|
fn find_duplicate(&self) -> Option<Item> {
|
||||||
|
self.first_half
|
||||||
|
.intersection(&self.second_half)
|
||||||
|
.next()
|
||||||
|
.copied()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Rucksack {
|
||||||
|
items: BTreeSet<Item>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl std::str::FromStr for Rucksack {
|
||||||
|
type Err = anyhow::Error;
|
||||||
|
|
||||||
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
|
let mut bytes = s.bytes();
|
||||||
|
let items = (&mut bytes).map(Item::try_from).collect::<Result<_>>()?;
|
||||||
|
|
||||||
|
Ok(Self { items })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
const PROVIDED: &str = include_str!("../input/day03_provided.txt");
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn part1_provided() {
|
||||||
|
assert_eq!(part1(PROVIDED).unwrap(), 157);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn part1_real() {
|
||||||
|
assert_eq!(part1(INPUT).unwrap(), 8018);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn part2_provided() {
|
||||||
|
assert_eq!(part2(PROVIDED).unwrap(), 70);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn part2_real() {
|
||||||
|
assert_eq!(part2(INPUT).unwrap(), 2518);
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,3 +2,4 @@
|
||||||
|
|
||||||
pub mod day01;
|
pub mod day01;
|
||||||
pub mod day02;
|
pub mod day02;
|
||||||
|
pub mod day03;
|
||||||
|
|
|
@ -4,9 +4,10 @@ use aoc::DayFunc;
|
||||||
|
|
||||||
use aoc2022::day01;
|
use aoc2022::day01;
|
||||||
use aoc2022::day02;
|
use aoc2022::day02;
|
||||||
|
use aoc2022::day03;
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
let days: &[DayFunc] = &[day01::run, day02::run];
|
let days: &[DayFunc] = &[day01::run, day02::run, day03::run];
|
||||||
|
|
||||||
aoc::run(days)
|
aoc::run(days)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue