Compare commits
16 Commits
849fc74a15
...
main
Author | SHA1 | Date | |
---|---|---|---|
42aecb2071 | |||
8bbc7bf653 | |||
e0cd4c3f98 | |||
d229aa44d9 | |||
e1cf0cf53f | |||
96fab0b0a7 | |||
0e22e82652 | |||
355f5f6628 | |||
f2caf1d0cb | |||
64fd4e99c4 | |||
1fd835c142 | |||
5bb3392691 | |||
5b3a5d829d | |||
e04df4b548 | |||
577da4ab52 | |||
4bda83476c |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
**/target/
|
16
2022/Cargo.lock
generated
Normal file
16
2022/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 = "aoc2022"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"sorted-vec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sorted-vec"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c6734caf0b6f51addd5eeacca12fb39b2c6c14e8d4f3ac42f3a78955c0467458"
|
9
2022/Cargo.toml
Normal file
9
2022/Cargo.toml
Normal file
@ -0,0 +1,9 @@
|
||||
[package]
|
||||
name = "aoc2022"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
sorted-vec = "0.8.3"
|
2252
2022/input/day01.txt
Normal file
2252
2022/input/day01.txt
Normal file
File diff suppressed because it is too large
Load Diff
2500
2022/input/day02.txt
Normal file
2500
2022/input/day02.txt
Normal file
File diff suppressed because it is too large
Load Diff
300
2022/input/day03.txt
Executable file
300
2022/input/day03.txt
Executable file
@ -0,0 +1,300 @@
|
||||
FzQrhQpJtJMFzlpplrTWjTnTTrjVsVvvTnTs
|
||||
mScqSqqgcfPCqGPZcfGNSvTNsVVNSjNvWSNsNz
|
||||
fPcPGqgCcHgFzQpJJtHtJH
|
||||
DZDqqlrjplDHrNCmnBcHBMCRcJzb
|
||||
RQFLStFvdcBbzdJbJM
|
||||
PThQtwftTPFvtTPhvtFtfFtpZZllwjRNlsqNqqZjwpGlrZ
|
||||
pPwtqgwJZPJLgQqSFlqhFFlqMd
|
||||
DBmCWBBDWTRGvcVRTCCnnfQlFSdlzfhfdMWQfjhhQz
|
||||
drmBVVCRgprPtrZp
|
||||
HznjQjvmzDMVrQnMLJMMlfWgPSlJGWWJPl
|
||||
BdcqqhcdBRpFhhZBthhctdJSJJWfgGFlJCSFgbWPCDJS
|
||||
NdRTZdNqBwqtthpRBTTRqdtZrsLQVzrrzjzDwDsnmrQrnsrr
|
||||
HZFZCFzZWszqsRTBZTNMhmthVTmhDppmMQVPpm
|
||||
wjvSbJddvrvlrvnJSJJvlJmhPlhVPVtGVpQDBVMpphQP
|
||||
frbrfrcvvnvjfwbcJgrrCBRsCFsNzRgRCHCqssRH
|
||||
dDFNqNqZqPLNqvqTTvCLSPdZssGHClJQJcRHJGHHcHBcsMsQ
|
||||
lrjmWgWWrhjgrppQHHMQrsQRJGcBJc
|
||||
lVlmnwjmdTTSvVFN
|
||||
FWNFHvQPmLGwwwSHtswwln
|
||||
RfMJcDdfdcfdddfZjdchrtZmSmCZVtqVnZmrnrtC
|
||||
JMmJcfjjphcghpgjhRGzGzBBGPFGNBvPTpFL
|
||||
cVPVwStmmcQPBQPpSCppwhHZNNqHszNBhsNRNjqHzj
|
||||
MfWdDgvdbnvgMTWgvgZfzmsZJHzNhqjqjRhJ
|
||||
MDWMWGndMgFDnFLDwQrPPCSrCSVrlmGS
|
||||
QLZmPdRdWmMsMDWZmsLWWrhMHcHGzHvGzFcvrvzNrc
|
||||
tplSbLVBlvHHcFNnSr
|
||||
VqfgwLlCJWmWQTfW
|
||||
nRWvlvRbtLvdMCPFGL
|
||||
wrfsJNNGhNzGrTgDMDLgPMLPfq
|
||||
wcVhJQhwhrrBpmVblBRGSG
|
||||
HHHcggrZLcQQcQll
|
||||
GzfzTRTzmmFMwSNSwdSJQtNLNB
|
||||
TGbmLMFTzVVVTMzmFMfFPMHPZhnjZCpHnhgnZnPWCPZZ
|
||||
MRwwpVMHRspqVqwmccDlDrcHBBZgBl
|
||||
jQfQQQjWWFBgmcgDfcZg
|
||||
hvvSQzSnQQSWWQWSjTZVTRMshwVCssppwV
|
||||
pvrTvCvtFppCHMMZcdDFdcZM
|
||||
wLjTQnqljjSnlwjqjRgLcHHHMBDMZhBMHgHcbBDh
|
||||
mqjqlSNqRqwSRrWCvzGmtfTfzs
|
||||
TWScDCqCQQVBWDqWHsHswwBgRJzRhhHp
|
||||
dPttGrvFfGjMjnjvshsJgsJLgghRgH
|
||||
rFMlGdtjPffNnnrffSNcVCDqQqCQRqQRRN
|
||||
GmBRbVpPbmJcwggBBgWW
|
||||
LjsTCNNtddjHqLLgWwccqgfq
|
||||
nsjNjntNtjHCsDwZmwZZVmmGSvSD
|
||||
bwDDgNFtMMDbFsMbFwWWVcRcSpcgjgQWhWSp
|
||||
lfTJJlvdfCffccWppRjRlcSc
|
||||
RnzGdJJmsMNnMFtM
|
||||
bsBTFsqqTTmFZTsQBWWznWCRshlJNJlCVh
|
||||
GjGnDvDjvjPppHwwpwgrPPClJhNVRCzhhzJWlWlhNlvJ
|
||||
ffdgLrgdLrDjdfHPbbZbttcBbcbLmntn
|
||||
TNTwwvTTHNtTHNLLVqtqTSZBJnrnhhbrFJjZjnVZgghF
|
||||
cplWfRlzcWfRCZZhFrGjBfjZjn
|
||||
pddzDsRpDcclzCQMWBvNSmTTSqdvPPvqwqtT
|
||||
DQTttwwLtQtVSDMJDRmmSS
|
||||
ffsWfvrBWrPvwJhPhPSMPMVn
|
||||
WsvsggFvwNLgHtNQ
|
||||
llBbVDMTlFVdFDTbVggSVsqZqZZZqqvNJZJRNRWgtv
|
||||
HhpjcHHvjPsqCsWcNcsq
|
||||
GfpvnPvwFDTTFFDw
|
||||
GMmFGMGFFgVwQHQwwM
|
||||
cJtZNtZTbThcZtcZJJtTZWJPllgNgpPvVgpjHvQpRpHQNg
|
||||
hWcJZcnhcJznbcBZLqSLDfCmHqnqCLsD
|
||||
zQpjLpnhnsHTnlQLrMCCHPFrvvCMPcHm
|
||||
ZfgdSBtNqBwlgSDfZDwtqSFvJCvrPrVvFmwCJFvrmmFV
|
||||
dfbRNZBqDtgRNBNNNljLLjhGRGGWGLGTRhjz
|
||||
hhrnfBzhtzZgDgDnBfrfDZsRpMNCNNWjwCCfGQGGNGCGQC
|
||||
lcdPmHLSPDSdFDpQMLjCQQQCRGpN
|
||||
lJSSbmPdVdVvdHbvSDFHHPlZqgBnttzgTsssTrqgbZbsTT
|
||||
FsdsShrgggLDdbSDsgrGrlWHTpfRpTjjfFTzRTRjBWWp
|
||||
mPvqCmJCqJNnPvPNPCvvLTTVjHjzNWHHTWRBRVTWVz
|
||||
wJLvqPZmJtccncvZmJqqrghDGQwbdSGdsgGgQgQr
|
||||
zFwtNJGtNFlpnwHccZjZbcpprsmc
|
||||
PWQfBWhBgQgTWQRLThBqMSVDSbbDRsVDmsmZsSZDjr
|
||||
fvQfWBfLqfTqhLhCvNFttJlCwGrrCC
|
||||
fNrGLNrfNrGjllRRRPmWVL
|
||||
tbJdcFbSSssZSmmpFcsSbwDWVWBlllVPDnnjBFjDRnBF
|
||||
ZZJcvZctgNmmvMGhQm
|
||||
HhhjFRhgrcRTFLvWVJVQWJVHDHQJPP
|
||||
GwCmwBfGzfSCzCfwtmtzzJVWSVJJZrbWQQQqJJDZVJ
|
||||
mtfzpGdststtBmfmCwrGRFcTcvjngjFnRcLnpLLn
|
||||
rrwjdwLgVmVwHrfPCJPQBCBGmPtt
|
||||
ccNZqbNnMMblNpTlNpnhhBPSJsQhJtJtChPJqS
|
||||
vTWvNcWNWTFvnnvcgjzDLVQLgHVwWDrW
|
||||
jNPgbNHbfLJgLzfz
|
||||
ShvhhFVVDShFVqMSSSvZfffvPLtBBBBJJlpfLJJv
|
||||
DqhnShhMnZZwCSDCMhChrRnNrNdNQbHNNPmjmdHN
|
||||
VQVZGQFnzFTSsBfgzgfs
|
||||
rjlpjtDrtMLZPMtPtpPZPwCsgSHgMHCCmCTWsgBWSBmg
|
||||
pjvDqLwrlDtwqtqNLvtjpPPwRNbQRncQVQddZhRhJQbJncbG
|
||||
PsBSqnSdQsFhmmmnppFc
|
||||
TRhNvrTCvNTHVcfHbJVTpc
|
||||
rhtWvGWLrjRqdSqqLLqdld
|
||||
vPhfqPJvrMrnffDDhvpMjdzGMLdLLQpllLGQ
|
||||
mbmcFSScGbSCcQlzwQQlclsg
|
||||
BSGVCmCTZWCGGvnvfZHqqrDhHN
|
||||
GSRfrzGRhzsGChjTBBlqBgjgCTCn
|
||||
wHQwtDVDHwHHDJcDWJZwzHZBqTnnBFlvjFgBqnljjvBdBZ
|
||||
JNmVJpVmNtDHJWHrbfPLhbGhrzRbpr
|
||||
WcWcbzNPbDwBNvWBwRMPQmJZQRQZftRZGP
|
||||
LhVHFgggTHCFHhfMQQSMMGQRMLLM
|
||||
qnrqppFVHphqfDsNbzjrzbrN
|
||||
cwgDrdLSrBrvvhDzCljjTW
|
||||
VHtVZpspQtMQsVRQppFVQVHtCdPTPTzdjvhTzTTPRvjjvWhn
|
||||
QQZpMdJsQFJHtMHdScwLwLJGrSScSwqw
|
||||
ZsjNflGfRfRPrZNRFcffLwJdwcLdDBnwzzzDznVn
|
||||
CTGvhhTqbtbgTqLJWdDntzWWdnLw
|
||||
phCMgmQGvvHCvMhbTQQFsNsNFPZSfZjffmNsll
|
||||
CNpCJHLNhhSSHZPgrFlFFWgpFpmzjj
|
||||
qQttDVDwQGdQGvqDQfwbcVrrlljjzzmzrVJgrr
|
||||
nvMDsqqqQvfvsqDnRSZHJPPZHhLHLS
|
||||
RNNrrPfDNRQwQhjscghMqs
|
||||
WVZlHvnZqtlLVLvwjwhsggTstMhwTw
|
||||
vGHWLJlVWlmLVqRCGCFFNfqqGf
|
||||
MNzqCnvqvqvCVLBvvCVCpVcRssncrPSTWGrPSPdGTcrP
|
||||
hmHwFmQjFlhtZmHwtZjjddSSGcsdPrrGcQQQRGPW
|
||||
fHbbFjlhZwmtwhfjmmwmmLbpLqzqvBzLzCvLNRMbNB
|
||||
tQfLrtQPrrfDSSCVlDfLSrmbBjGvWjjLmWWWpWNNppmv
|
||||
wdHhRTTndnRThdvnBFGpNBMnpvvp
|
||||
JdqTHTHHRdqzsJRRzTRHscJdDSGCfDlqQZqlfZrZZCffqSSQ
|
||||
hQMWLsgGJMMhsCHggQWhgspDWFPzZvPvptDvzvmtdtdF
|
||||
BrBlrTBrNRbfnjNQlZDztPvpmpppmzvfdd
|
||||
jQlQlqQVbVcsMgMgChhJVs
|
||||
MtFMCTWRFRRtCRTTRTMGJddjLdstHvBzBHzHVVpL
|
||||
lZSDnbDlnZPrbHpzJJsdSVJpBL
|
||||
nNghhPrlZlgDTFhCfMFJRMQF
|
||||
RGpPFZPRQZPFRGvpPQPpjvpmhnnCMjhmhgBgVgMVWBVgVM
|
||||
wLtfNdNHmrNthCBgCbhnngWd
|
||||
srSfwHfszsNmtswlrqQDGQFDRPJGDvzRppRJ
|
||||
GVFFGvVWZLFsmssFRNfVvmGGJPpJTTqDBvTpqlpDvqbBtTPl
|
||||
gQhzzChzrMQhjpzlzWzJpPpBJb
|
||||
ghgWjcCjMgCHWdQMhdjChCmfwmRRGZZGVHLZHRfmNwVs
|
||||
DnDVhdnrfSfpcGGjQQGdJddJ
|
||||
bPWPRbRsRMsHNzDqTZcGBcqZqmmN
|
||||
HvwPvvzMPwDCChDVwS
|
||||
vTCCvTfWFDTtRPMvfWFlDFHBqGLpLzbwBgWwqzGqbBbB
|
||||
cQcSNchSJSZShVJNnZrhSqBpgwGHHtGwqtbwLbqpbr
|
||||
JNnJVsJscNstNhQsjnVVNlFfMmTMFfCTfjFvfPRPPF
|
||||
VLFBsgffNFNqRvbz
|
||||
ChltjTdjDhHpHZvdpjjZhwCpbNrbSzzbrNGMTMMNSMbWWNSN
|
||||
vQjpttQhHnLsBQVLsQ
|
||||
mbzQgTzRVVbsVdQgzzVRddmztFGWNGNNWnGtFSGBsrCNWCrC
|
||||
jfJjvPPwLDcHDPvDDPDppLCWCFBGWntCBnrtFcrFWTGn
|
||||
wpJPLjvpTTDpwhfgzmVMbqhdhVRgzl
|
||||
PlcqbWClLmnqZVLq
|
||||
THwdrrhddhhfJJhwLJhpQnDVnznnmZQQnSpfpD
|
||||
vrFdvGsGHhhhwHjFGrFGJHdMCCcNgbWMPccRRccMFLNPPP
|
||||
tbppJqcNtJnZzRJbPFsFPHfZrrshFDjj
|
||||
GdwgwlLgGCndsDFrhDHHFF
|
||||
SSlLnmmvqWNqmcqb
|
||||
ZPFPPTZpZSWzCMMSzPBsFvhtlQvJQQtJhsVs
|
||||
dmNbmgbrwDNmbcDgwNdcwdLsnhlJlnvtsBJnhVQqqnstLB
|
||||
bNGfDGgHHVwbwNwVfgmRMzCzzCSHjSRZSZCTRS
|
||||
dDTffQdqQQLBLnVLLQvL
|
||||
rrBHZZcgJcrLvNLtLgRLbN
|
||||
cjjJhrFlhZwFFzwJzmTBBdmTsDPzDsBP
|
||||
ClGrJJMNCrGQqlcPvWgnDP
|
||||
ZBvbjHpSwBVVVcWjjjqQ
|
||||
BLSbbwsHSTBHwmLHHLbBsSTFdrfvCrtmdzfGJzrdzGJddGfh
|
||||
gljWRwmSjtJWjJtJjgjSZfVSTVVHGZSVHcVchZ
|
||||
pBzLFQpPsFBGcGBTThfB
|
||||
pFpQzFLPLpvQFQnLbsqqGddgjbmwRldwtWmlGWwj
|
||||
PDQDMFQBMfWPvjdLLndLjrmsMj
|
||||
qZqVzTRRqHtvZGGtVqTTzVjLLsrmJCddnLjrjHsrhdCr
|
||||
GzwcZtqNzqvNqwzZVGRwSzbpWfFbWPlWFpNDBfQfFNNf
|
||||
dfRszdzVdsjwdhLwCCqwGllHvPGPwG
|
||||
SpJtBLFgcGqHQClqZF
|
||||
JrttrtcTmSSLrmtBTrNgnBJjbNhhbhzRdsVdMhNjhMMhVd
|
||||
MPFSCfSMqVSBGrtzlvccfQctzbzl
|
||||
hZNjTHWWTZwshbLvmlWpBzmbmm
|
||||
dRTTJNDNhjsJqBBMMgrJPVVr
|
||||
WnVzDMjlDVWwwHgwhmgNhNNsJh
|
||||
qfvrLNCcbLdvpcvbrPPqCsGhSJGTTBspTshBpTBBms
|
||||
ZLvvZfrPfPCLbCFFzjVQzRnNNMVzDQ
|
||||
nllbFTTpTFTBcnCjQPqQdZRQZhCb
|
||||
tvWszrrztvSmzQQvrDmZRjjjPPDVqPRdZRdCPd
|
||||
gfzvSsftgQHQHgQl
|
||||
GVbHRRGRLpdmGWTm
|
||||
gSPPltPlrlvccFccPlcJNCTpnnmpMCLMMmWfdRmMSS
|
||||
FzNJRhhvPFRvQwzqjqzBHZZj
|
||||
PhZSpFBPBFsNmjBVllltBj
|
||||
JMGLnrrnbfffrdqRqPHnnqLDVTDDjgmRgwtmjDljlDVlwl
|
||||
LHMqPqPnnqGLWJPMnndrGfSWppzvvFSChFFFvvzQSQZz
|
||||
RSWWssbvnnCqZnWsRCnssWrTggNhgbNHBgQjhhQBgjNT
|
||||
mcpzcppzczcDGVcPcDLLGLjmrMNTNtQNHhMHrQBQNTgN
|
||||
LVpPfcjjWvsFFnFf
|
||||
MpddpdCpJdJlbdMvBHMnnsHqSRvG
|
||||
PWvZfFmZrrfmwWwFznBnqRRSGcsBVmVBRG
|
||||
zjzzhQPQvzjLPQzwffrwrtlTCDtJDlgJLltpTTJlTl
|
||||
TvTWjjzpznGttFFZccrrPrSZllcB
|
||||
gNNSqHMqsMHQJHNZCDDCZDqLZdlZBD
|
||||
SMQNSRNbRRHwhwhsRmtnvWVmmnbGnjmpGn
|
||||
ccSVQjCQddTsFJcH
|
||||
gLppBfgfmvCRFdsddTJJgb
|
||||
WMLMmWGGBZWZLCtvDhlSSDGlwhSPSzSP
|
||||
TpqVGVHFQGmqSqPZdccNCzzhdwCjNG
|
||||
fffbbvftMrBMDDcCccCZCjlvhCCd
|
||||
RLWMnbftDhnMRtfBftRJMtLMgFgHmmpmPmSmmQFPPLHHVTQS
|
||||
nRvwQSDNcpVJJcJR
|
||||
qZMjBhjhZMMBzLBGLGrjJbTPVTpbdPPdVbVb
|
||||
ZZpmFFZlfGqfmmGMzlfmMmnWQDtHtSvnWWNSHSSstFtS
|
||||
bFDGZjGDbbRSgLtN
|
||||
CphJVfJWCTBgvfLHNRcwnt
|
||||
WVhPWBTzzChzhhhBmrpPPCJZDQtdMlrjFQdrFqsjdrQsFG
|
||||
ZBpVQHHVMMWWdmmLWw
|
||||
lQhhrjcRttrqbvQLNwdDWzmNSDmStz
|
||||
QbGqhcbvcsqvCCHnsCZHCnTn
|
||||
tlWtQTTTJjTQtVnmrbnPWVShVC
|
||||
MDMGGzsHcwFgGZBqrmmPSnbqVmNVGC
|
||||
sZFPwHcMZDBRTlvQQJttTQTR
|
||||
FhVRfGptMGMnZhRFBNRBCCNHHNvTNTRC
|
||||
zmwrLLSjrbzmNlcvvrHvDPCN
|
||||
JLwjQdSbjdbSdqJQFGVqFVMgnGHMfGVV
|
||||
fffZWrJqZSHWTWHqSvrgDhggzRjttsDhpDgs
|
||||
PGlBLcBBbnnbLLFbGLBjRgjFTFVzshtzpgsppz
|
||||
TGCPnMPQlGnPmclPlnnQmbmHJvNvfHdqwddwvvZfCNHCfW
|
||||
ClLwpspTPrTFZCdzFbZdbQ
|
||||
RRMWfRgWVRMRQBZZScVczVGFbjNb
|
||||
MfnvMqWmslvDhQPw
|
||||
hdndSdqsTddBhdcmmNHFDcqHttPF
|
||||
JjMzzMZQGwZGZJzMzZJQzGJFvPvNPtFmvmNmDvcFtvDHMv
|
||||
gZwzQwJfGVJQJbGLBsSTSTdTbCWDBSnd
|
||||
ZZCHZRzMZGRMhMMVVFNThrdd
|
||||
SgsccSPmmgqssSlqsgcmscSqlhpFdVThjphNrdrhjdwdhFJN
|
||||
vmttqTcqvLqqmPccmqSBbRWnWzQZZZZBHnQCzHDH
|
||||
GgPnGdSPBpGsLTBL
|
||||
rVNJjmwZqtZZshltFTtvRFsL
|
||||
mqmWrZVqWjrqZMNwPMQQbsddgdsbsgPz
|
||||
LZLVvjZrggHLJggSZDgrnPnQnRnppVRllntRdPFz
|
||||
chMCzbqGmhNhhbBCMBdFnpfqFnltRRQnlPpQ
|
||||
TChmWcMMTmBswJzZZrWrvzgg
|
||||
gngRNBNRBsNFFBgfgbLLLnqdSLvLTcbLbd
|
||||
GWtlChlVMllcZSDWSLbdZL
|
||||
lljjGlhMGrGJpsFdRJfsfzfz
|
||||
jVTdrnGQcQtTTTFQqBqsgHHFgsqf
|
||||
ZZLbPLzDzPZCmsgqsBHt
|
||||
wDzDlPblRDPLPvhvwtdnnhdrnrMGWMVGMThj
|
||||
spjjpjvjpjmQjrpCMfSlfzrPBl
|
||||
dHFntHWnnbRVFtnbcqHFzBCCCPzfPMlcCSlgllzc
|
||||
RLbVWHnnSWtnHFbdbVRdNNtQsjsQTjDLwmGTmTssQwmLGJ
|
||||
JbJJSLMhRMSLhNqqwFDwFNcFqL
|
||||
GcpnGnznnpzpzGpffNTNTwTfwdDNNdTFdD
|
||||
nllnlPGWQWHcGpzzQGGzGvHGJbVVtJSChQVbmtmVJrmrmbRm
|
||||
GFsFrzwrflmtdtbltG
|
||||
ggLPDngCJncNLJRDwgnllmJqjWMjhjhjWWmWjj
|
||||
nBNRNPgpRgDLTgNwfsSHVBQHVHwsZr
|
||||
WwvnvWvcFtwtSFSF
|
||||
zBZZZRQSzMBSgSVJGjGTPTGFzCzmmj
|
||||
fZDrpZZfRfMgSQDDBhgQghDHsnbrcNlWnnLWHLrHsWnllc
|
||||
ZVncdPPwVPdhZngnqHWHNNvTHvlMvn
|
||||
fSLjjLSGGBjTTHqvBqrMNT
|
||||
RSSSDGRtSGZthTTctmtg
|
||||
rtzrfJbgJHRfGRZLPR
|
||||
hdVhlllmFlFPLwHmsRGGZP
|
||||
nTWhRjTBTWlvNQgnJSSbrJtz
|
||||
JgVTpBpfvgpTDDJFJvTgggtlFlNNMRLNNzNNZRNHMRCLlF
|
||||
wbPWcSGbGqWDlnNWMMMCLMWZ
|
||||
wrsGcbrcbcqwDwbcmGvQBQgTTsdVJgJsVdQf
|
||||
mztrhgJtDrhgcrZmnhbnzbhcMTMPlBCPBGVGTMVGslCCPGDs
|
||||
FLRQmjjFSQpQwLlPsMsCpvslvPCB
|
||||
fNLLwSdSwWSWjwmrtczZhhrJzdzh
|
||||
HHwCwJFmHZttZCfCSffSMHcVDMcPBRPcPRDhPghM
|
||||
nvQLsTnLslnLvpzGTssnsRPDMhPgVPVgtcVMRPgVQQ
|
||||
vnsTGWlTLsWTLLvNsGWlsZrwmZCJddjFmtJJNZFftj
|
||||
hbjSTvSJTfcSwcPSPfTbfHszVVFpGnpJpsHFnHVVls
|
||||
rtZrcQrRZZQrmZBQlCGppnppHzpVFCGR
|
||||
WmLqmgNtcLNQWTbPvfPwbbdb
|
||||
HzZgsdHglHlzdHsFtsNNJSlNcSpjcjlrrNVv
|
||||
wqqWRPPqwmbcqPjQVvSPJJrVpv
|
||||
qqBBqmWRhqRLqcBnhzzztgnTdDHnHsFsHn
|
||||
rJPFVwwsrJwmdVrLWJvvRBWBvbzWlb
|
||||
nDZcNGNpjTpHncvpZCDnTNZGhlWzQhWbpRRQlQhpWWSWLlQb
|
||||
CDNntnCCHnvmqPfwtFdVqd
|
||||
gqBwgBjCswwgqNBNCVDDTVdhlSDTDcZc
|
||||
HvRRFMzRRRRMpHrtTllfhZHHSShHTf
|
||||
PmlGLPrppMrrmFFmLMWRjbsjnsjwQNJWnbQjWgBN
|
||||
pDggpFgRghZjBFPPnPPFrt
|
||||
cwTfLwBVwCWbLcVTVVvrdndGjMHrnGJtnttdMC
|
||||
NTVcWNvcBSpgNqspRQlN
|
||||
DLDgFlDmNZfjfnJZSF
|
||||
tctvttzvGGzvrHqtVVdwnJGSSnnjjZdWTdwW
|
||||
zvpcrbpHpqJJsPbPlLlhmhglPQ
|
||||
pvHHvssFCFZQNCftttdQdd
|
||||
VgTGTTVGgLjDjlLGzgPVMTNwmcwQmMQfQtmdcmwMJwNm
|
||||
TPjTDjfGWTLLljgzrWpZZbsqrFqhqbps
|
||||
ppVLcfcwSLgpSLVLgWwtfshDNDqvWvGvlQZvDNHQHjqq
|
||||
MPrzmdRrPPrCJFnMnMRRFRPdqqZQNQvjvZDGDlHhQvGNDG
|
||||
BmBMBBJTMmPBJMMFCCFJRmrsTlVpVbpwLSVwLsgcwTVlVc
|
||||
SSGzmFRzmRGLgSSmGMJFnvfvJnJVnJQnMl
|
||||
cBpjHtjwNfcpNZtppHtCMlMPMlJBVlVQlvJPvJ
|
||||
dNtNZwqWfqtqZWtHttsqHqrRrrdRTLbmmzSLmTGGmbrg
|
||||
RrrddnrgnRbbgWdGrfnwgQwjDjDpvTpBQTwBPP
|
||||
MHCStZJzSwvPjWQD
|
||||
mcJWVHCCLcGLbdcn
|
||||
PlMsdjPdGMjdPSrSjgddbLbmHHTszHZzpHmsTFvmpzZzmN
|
||||
ntRJQVRfcQhcQWhnchBJWntTFTTTNTSpFtztmZFDTpDZ
|
||||
hQfcfCBSwCccVJhSJnrPPGLqPlbPLCrqldgb
|
||||
vgvWDMZvGpcqgqsP
|
||||
tSdtjLHLQLHjdFdDddQSQhwlsGqwQlqqqhQsPhGc
|
||||
tbRjtTLFRvTZDBrMrV
|
1000
2022/input/day04.txt
Executable file
1000
2022/input/day04.txt
Executable file
File diff suppressed because it is too large
Load Diff
512
2022/input/day05.txt
Executable file
512
2022/input/day05.txt
Executable file
@ -0,0 +1,512 @@
|
||||
[B] [L] [J]
|
||||
[B] [Q] [R] [D] [T]
|
||||
[G] [H] [H] [M] [N] [F]
|
||||
[J] [N] [D] [F] [J] [H] [B]
|
||||
[Q] [F] [W] [S] [V] [N] [F] [N]
|
||||
[W] [N] [H] [M] [L] [B] [R] [T] [Q]
|
||||
[L] [T] [C] [R] [R] [J] [W] [Z] [L]
|
||||
[S] [J] [S] [T] [T] [M] [D] [B] [H]
|
||||
1 2 3 4 5 6 7 8 9
|
||||
|
||||
move 5 from 4 to 5
|
||||
move 2 from 5 to 8
|
||||
move 2 from 9 to 1
|
||||
move 2 from 9 to 1
|
||||
move 1 from 5 to 3
|
||||
move 10 from 5 to 8
|
||||
move 1 from 4 to 7
|
||||
move 1 from 1 to 2
|
||||
move 5 from 3 to 7
|
||||
move 1 from 2 to 8
|
||||
move 21 from 8 to 5
|
||||
move 13 from 5 to 7
|
||||
move 2 from 9 to 4
|
||||
move 1 from 7 to 4
|
||||
move 5 from 1 to 4
|
||||
move 1 from 5 to 7
|
||||
move 2 from 2 to 7
|
||||
move 1 from 3 to 2
|
||||
move 1 from 1 to 6
|
||||
move 7 from 5 to 9
|
||||
move 16 from 7 to 4
|
||||
move 7 from 9 to 3
|
||||
move 1 from 7 to 5
|
||||
move 1 from 3 to 8
|
||||
move 3 from 2 to 7
|
||||
move 1 from 8 to 9
|
||||
move 3 from 3 to 6
|
||||
move 21 from 4 to 9
|
||||
move 1 from 5 to 7
|
||||
move 4 from 4 to 9
|
||||
move 8 from 6 to 3
|
||||
move 6 from 7 to 1
|
||||
move 12 from 9 to 8
|
||||
move 6 from 7 to 2
|
||||
move 3 from 6 to 5
|
||||
move 1 from 6 to 9
|
||||
move 4 from 8 to 6
|
||||
move 3 from 8 to 5
|
||||
move 4 from 1 to 8
|
||||
move 4 from 6 to 1
|
||||
move 2 from 1 to 3
|
||||
move 1 from 5 to 8
|
||||
move 2 from 2 to 8
|
||||
move 5 from 8 to 3
|
||||
move 4 from 2 to 7
|
||||
move 5 from 8 to 1
|
||||
move 2 from 1 to 7
|
||||
move 1 from 8 to 2
|
||||
move 2 from 1 to 7
|
||||
move 11 from 9 to 2
|
||||
move 1 from 8 to 5
|
||||
move 2 from 9 to 4
|
||||
move 3 from 9 to 5
|
||||
move 2 from 5 to 1
|
||||
move 6 from 5 to 8
|
||||
move 2 from 4 to 2
|
||||
move 1 from 5 to 6
|
||||
move 7 from 1 to 8
|
||||
move 2 from 2 to 7
|
||||
move 13 from 8 to 1
|
||||
move 16 from 3 to 1
|
||||
move 3 from 2 to 1
|
||||
move 12 from 7 to 6
|
||||
move 15 from 1 to 8
|
||||
move 2 from 3 to 8
|
||||
move 16 from 1 to 2
|
||||
move 24 from 2 to 8
|
||||
move 1 from 1 to 5
|
||||
move 1 from 5 to 8
|
||||
move 3 from 6 to 7
|
||||
move 26 from 8 to 3
|
||||
move 20 from 3 to 9
|
||||
move 1 from 2 to 9
|
||||
move 16 from 9 to 3
|
||||
move 14 from 3 to 1
|
||||
move 13 from 1 to 6
|
||||
move 3 from 3 to 4
|
||||
move 3 from 9 to 4
|
||||
move 1 from 7 to 8
|
||||
move 5 from 8 to 2
|
||||
move 8 from 8 to 5
|
||||
move 18 from 6 to 1
|
||||
move 4 from 8 to 5
|
||||
move 6 from 4 to 1
|
||||
move 2 from 2 to 5
|
||||
move 5 from 3 to 8
|
||||
move 5 from 8 to 7
|
||||
move 2 from 5 to 8
|
||||
move 5 from 5 to 4
|
||||
move 3 from 2 to 8
|
||||
move 22 from 1 to 2
|
||||
move 1 from 1 to 2
|
||||
move 5 from 8 to 2
|
||||
move 2 from 5 to 2
|
||||
move 1 from 1 to 6
|
||||
move 5 from 5 to 2
|
||||
move 1 from 9 to 8
|
||||
move 5 from 4 to 1
|
||||
move 6 from 6 to 9
|
||||
move 3 from 1 to 9
|
||||
move 1 from 1 to 7
|
||||
move 8 from 9 to 6
|
||||
move 6 from 7 to 1
|
||||
move 5 from 6 to 5
|
||||
move 27 from 2 to 1
|
||||
move 4 from 5 to 7
|
||||
move 9 from 1 to 5
|
||||
move 1 from 9 to 1
|
||||
move 3 from 6 to 2
|
||||
move 9 from 2 to 1
|
||||
move 2 from 7 to 2
|
||||
move 1 from 8 to 7
|
||||
move 10 from 5 to 9
|
||||
move 1 from 9 to 7
|
||||
move 25 from 1 to 8
|
||||
move 6 from 7 to 4
|
||||
move 11 from 1 to 7
|
||||
move 3 from 8 to 1
|
||||
move 3 from 2 to 6
|
||||
move 3 from 8 to 9
|
||||
move 11 from 8 to 6
|
||||
move 1 from 2 to 6
|
||||
move 12 from 6 to 4
|
||||
move 13 from 4 to 5
|
||||
move 1 from 6 to 1
|
||||
move 3 from 7 to 5
|
||||
move 5 from 8 to 7
|
||||
move 1 from 7 to 1
|
||||
move 5 from 1 to 6
|
||||
move 3 from 6 to 4
|
||||
move 3 from 8 to 6
|
||||
move 2 from 5 to 2
|
||||
move 12 from 5 to 9
|
||||
move 5 from 6 to 2
|
||||
move 2 from 5 to 9
|
||||
move 6 from 4 to 9
|
||||
move 11 from 7 to 3
|
||||
move 1 from 2 to 5
|
||||
move 1 from 7 to 8
|
||||
move 1 from 5 to 7
|
||||
move 1 from 7 to 1
|
||||
move 1 from 8 to 1
|
||||
move 2 from 4 to 7
|
||||
move 2 from 6 to 8
|
||||
move 5 from 3 to 6
|
||||
move 2 from 7 to 2
|
||||
move 2 from 2 to 9
|
||||
move 1 from 2 to 9
|
||||
move 1 from 1 to 6
|
||||
move 35 from 9 to 7
|
||||
move 2 from 8 to 7
|
||||
move 3 from 3 to 8
|
||||
move 5 from 2 to 4
|
||||
move 3 from 3 to 7
|
||||
move 2 from 4 to 7
|
||||
move 4 from 6 to 5
|
||||
move 4 from 5 to 9
|
||||
move 3 from 4 to 5
|
||||
move 1 from 8 to 3
|
||||
move 4 from 9 to 8
|
||||
move 1 from 9 to 6
|
||||
move 38 from 7 to 2
|
||||
move 1 from 3 to 5
|
||||
move 1 from 1 to 7
|
||||
move 4 from 7 to 3
|
||||
move 3 from 6 to 1
|
||||
move 22 from 2 to 7
|
||||
move 1 from 5 to 8
|
||||
move 7 from 8 to 4
|
||||
move 8 from 2 to 8
|
||||
move 3 from 5 to 1
|
||||
move 4 from 3 to 9
|
||||
move 1 from 8 to 3
|
||||
move 1 from 3 to 7
|
||||
move 2 from 2 to 3
|
||||
move 5 from 8 to 9
|
||||
move 3 from 9 to 1
|
||||
move 2 from 1 to 7
|
||||
move 6 from 2 to 3
|
||||
move 6 from 3 to 1
|
||||
move 2 from 3 to 6
|
||||
move 1 from 6 to 1
|
||||
move 14 from 7 to 2
|
||||
move 4 from 1 to 6
|
||||
move 8 from 1 to 3
|
||||
move 4 from 3 to 6
|
||||
move 3 from 9 to 5
|
||||
move 1 from 8 to 6
|
||||
move 1 from 8 to 4
|
||||
move 9 from 7 to 1
|
||||
move 8 from 2 to 4
|
||||
move 4 from 2 to 9
|
||||
move 2 from 2 to 1
|
||||
move 3 from 5 to 8
|
||||
move 1 from 8 to 6
|
||||
move 1 from 7 to 8
|
||||
move 1 from 6 to 5
|
||||
move 3 from 9 to 5
|
||||
move 2 from 9 to 5
|
||||
move 4 from 3 to 9
|
||||
move 3 from 6 to 3
|
||||
move 3 from 6 to 9
|
||||
move 9 from 4 to 1
|
||||
move 1 from 9 to 8
|
||||
move 3 from 3 to 6
|
||||
move 2 from 7 to 4
|
||||
move 4 from 8 to 5
|
||||
move 7 from 5 to 6
|
||||
move 19 from 1 to 9
|
||||
move 5 from 9 to 3
|
||||
move 2 from 1 to 6
|
||||
move 1 from 4 to 6
|
||||
move 4 from 3 to 2
|
||||
move 21 from 9 to 7
|
||||
move 1 from 1 to 2
|
||||
move 1 from 9 to 1
|
||||
move 1 from 1 to 8
|
||||
move 16 from 7 to 6
|
||||
move 24 from 6 to 5
|
||||
move 7 from 4 to 5
|
||||
move 1 from 8 to 3
|
||||
move 2 from 2 to 8
|
||||
move 31 from 5 to 8
|
||||
move 1 from 4 to 6
|
||||
move 2 from 6 to 9
|
||||
move 1 from 7 to 4
|
||||
move 3 from 7 to 9
|
||||
move 1 from 4 to 8
|
||||
move 2 from 3 to 5
|
||||
move 1 from 2 to 3
|
||||
move 1 from 3 to 7
|
||||
move 1 from 7 to 9
|
||||
move 24 from 8 to 6
|
||||
move 1 from 8 to 1
|
||||
move 30 from 6 to 1
|
||||
move 2 from 5 to 2
|
||||
move 1 from 6 to 9
|
||||
move 6 from 9 to 7
|
||||
move 1 from 6 to 4
|
||||
move 1 from 4 to 6
|
||||
move 23 from 1 to 3
|
||||
move 21 from 3 to 4
|
||||
move 4 from 2 to 6
|
||||
move 3 from 6 to 1
|
||||
move 1 from 5 to 1
|
||||
move 4 from 1 to 9
|
||||
move 3 from 9 to 6
|
||||
move 8 from 1 to 6
|
||||
move 4 from 8 to 5
|
||||
move 2 from 7 to 5
|
||||
move 7 from 4 to 3
|
||||
move 3 from 4 to 9
|
||||
move 9 from 3 to 9
|
||||
move 1 from 7 to 6
|
||||
move 6 from 5 to 8
|
||||
move 14 from 6 to 2
|
||||
move 4 from 8 to 4
|
||||
move 7 from 4 to 5
|
||||
move 1 from 7 to 9
|
||||
move 6 from 4 to 3
|
||||
move 13 from 2 to 6
|
||||
move 5 from 3 to 7
|
||||
move 1 from 3 to 8
|
||||
move 1 from 8 to 2
|
||||
move 4 from 8 to 3
|
||||
move 6 from 6 to 4
|
||||
move 2 from 2 to 8
|
||||
move 5 from 4 to 7
|
||||
move 3 from 7 to 5
|
||||
move 1 from 7 to 9
|
||||
move 2 from 3 to 9
|
||||
move 3 from 7 to 3
|
||||
move 1 from 7 to 9
|
||||
move 1 from 7 to 9
|
||||
move 3 from 4 to 1
|
||||
move 6 from 6 to 1
|
||||
move 2 from 7 to 5
|
||||
move 1 from 3 to 5
|
||||
move 11 from 9 to 4
|
||||
move 9 from 4 to 5
|
||||
move 3 from 3 to 4
|
||||
move 1 from 3 to 9
|
||||
move 2 from 8 to 1
|
||||
move 9 from 1 to 8
|
||||
move 22 from 5 to 8
|
||||
move 2 from 1 to 3
|
||||
move 3 from 4 to 6
|
||||
move 14 from 8 to 9
|
||||
move 1 from 3 to 9
|
||||
move 19 from 9 to 3
|
||||
move 3 from 9 to 4
|
||||
move 2 from 7 to 2
|
||||
move 1 from 4 to 6
|
||||
move 1 from 3 to 8
|
||||
move 8 from 3 to 1
|
||||
move 2 from 9 to 6
|
||||
move 1 from 2 to 5
|
||||
move 3 from 4 to 9
|
||||
move 1 from 2 to 3
|
||||
move 20 from 8 to 3
|
||||
move 4 from 9 to 5
|
||||
move 1 from 4 to 2
|
||||
move 26 from 3 to 5
|
||||
move 1 from 8 to 3
|
||||
move 8 from 1 to 4
|
||||
move 1 from 3 to 7
|
||||
move 1 from 2 to 1
|
||||
move 1 from 1 to 6
|
||||
move 1 from 6 to 7
|
||||
move 4 from 5 to 3
|
||||
move 3 from 4 to 2
|
||||
move 5 from 5 to 3
|
||||
move 2 from 2 to 6
|
||||
move 3 from 3 to 5
|
||||
move 2 from 4 to 8
|
||||
move 5 from 3 to 9
|
||||
move 5 from 9 to 8
|
||||
move 19 from 5 to 9
|
||||
move 1 from 5 to 2
|
||||
move 2 from 7 to 1
|
||||
move 1 from 1 to 7
|
||||
move 1 from 7 to 4
|
||||
move 13 from 9 to 3
|
||||
move 8 from 6 to 2
|
||||
move 10 from 3 to 5
|
||||
move 14 from 5 to 4
|
||||
move 7 from 8 to 4
|
||||
move 1 from 6 to 2
|
||||
move 6 from 3 to 8
|
||||
move 4 from 9 to 7
|
||||
move 2 from 9 to 8
|
||||
move 1 from 7 to 1
|
||||
move 3 from 2 to 7
|
||||
move 1 from 5 to 3
|
||||
move 7 from 8 to 6
|
||||
move 5 from 6 to 2
|
||||
move 8 from 4 to 5
|
||||
move 3 from 5 to 8
|
||||
move 3 from 8 to 6
|
||||
move 5 from 7 to 9
|
||||
move 5 from 3 to 6
|
||||
move 1 from 9 to 4
|
||||
move 17 from 4 to 7
|
||||
move 1 from 8 to 1
|
||||
move 12 from 7 to 8
|
||||
move 3 from 1 to 4
|
||||
move 2 from 4 to 6
|
||||
move 8 from 6 to 1
|
||||
move 4 from 6 to 3
|
||||
move 1 from 7 to 8
|
||||
move 5 from 5 to 8
|
||||
move 4 from 7 to 1
|
||||
move 3 from 2 to 6
|
||||
move 2 from 5 to 1
|
||||
move 6 from 1 to 6
|
||||
move 4 from 3 to 5
|
||||
move 4 from 5 to 3
|
||||
move 1 from 4 to 8
|
||||
move 3 from 3 to 2
|
||||
move 17 from 8 to 4
|
||||
move 6 from 6 to 3
|
||||
move 14 from 4 to 9
|
||||
move 1 from 3 to 8
|
||||
move 1 from 7 to 4
|
||||
move 3 from 8 to 3
|
||||
move 5 from 2 to 5
|
||||
move 6 from 1 to 7
|
||||
move 2 from 6 to 4
|
||||
move 4 from 5 to 7
|
||||
move 1 from 1 to 5
|
||||
move 1 from 6 to 3
|
||||
move 10 from 7 to 4
|
||||
move 1 from 5 to 4
|
||||
move 1 from 2 to 3
|
||||
move 15 from 4 to 5
|
||||
move 3 from 3 to 1
|
||||
move 6 from 2 to 6
|
||||
move 1 from 2 to 3
|
||||
move 2 from 4 to 7
|
||||
move 2 from 7 to 8
|
||||
move 1 from 4 to 2
|
||||
move 2 from 1 to 7
|
||||
move 1 from 7 to 2
|
||||
move 12 from 9 to 1
|
||||
move 4 from 9 to 5
|
||||
move 4 from 6 to 2
|
||||
move 1 from 7 to 3
|
||||
move 6 from 2 to 4
|
||||
move 1 from 8 to 5
|
||||
move 2 from 4 to 2
|
||||
move 11 from 1 to 7
|
||||
move 3 from 1 to 4
|
||||
move 17 from 5 to 6
|
||||
move 15 from 6 to 4
|
||||
move 1 from 8 to 9
|
||||
move 10 from 4 to 1
|
||||
move 1 from 3 to 9
|
||||
move 2 from 6 to 5
|
||||
move 1 from 2 to 6
|
||||
move 4 from 5 to 6
|
||||
move 4 from 1 to 2
|
||||
move 6 from 6 to 7
|
||||
move 2 from 2 to 6
|
||||
move 9 from 4 to 9
|
||||
move 6 from 1 to 2
|
||||
move 3 from 4 to 1
|
||||
move 10 from 9 to 8
|
||||
move 4 from 2 to 1
|
||||
move 1 from 1 to 2
|
||||
move 5 from 8 to 6
|
||||
move 1 from 2 to 7
|
||||
move 1 from 9 to 4
|
||||
move 2 from 6 to 9
|
||||
move 13 from 7 to 2
|
||||
move 5 from 7 to 5
|
||||
move 2 from 5 to 2
|
||||
move 1 from 4 to 5
|
||||
move 4 from 8 to 4
|
||||
move 17 from 2 to 6
|
||||
move 3 from 4 to 6
|
||||
move 2 from 9 to 1
|
||||
move 7 from 6 to 8
|
||||
move 1 from 5 to 2
|
||||
move 1 from 4 to 1
|
||||
move 2 from 9 to 4
|
||||
move 1 from 3 to 9
|
||||
move 4 from 3 to 7
|
||||
move 2 from 8 to 5
|
||||
move 3 from 7 to 5
|
||||
move 10 from 5 to 8
|
||||
move 2 from 2 to 4
|
||||
move 6 from 1 to 2
|
||||
move 4 from 6 to 3
|
||||
move 8 from 2 to 6
|
||||
move 1 from 7 to 4
|
||||
move 5 from 4 to 5
|
||||
move 7 from 6 to 7
|
||||
move 5 from 3 to 5
|
||||
move 5 from 5 to 2
|
||||
move 4 from 8 to 1
|
||||
move 6 from 1 to 6
|
||||
move 3 from 3 to 2
|
||||
move 22 from 6 to 2
|
||||
move 1 from 9 to 7
|
||||
move 8 from 8 to 6
|
||||
move 1 from 7 to 6
|
||||
move 2 from 5 to 7
|
||||
move 4 from 8 to 5
|
||||
move 7 from 6 to 7
|
||||
move 2 from 6 to 4
|
||||
move 14 from 2 to 1
|
||||
move 7 from 1 to 3
|
||||
move 12 from 7 to 3
|
||||
move 1 from 4 to 3
|
||||
move 2 from 5 to 8
|
||||
move 2 from 8 to 1
|
||||
move 1 from 4 to 3
|
||||
move 6 from 2 to 9
|
||||
move 6 from 9 to 2
|
||||
move 2 from 2 to 7
|
||||
move 6 from 7 to 5
|
||||
move 13 from 3 to 5
|
||||
move 5 from 2 to 6
|
||||
move 5 from 6 to 1
|
||||
move 2 from 3 to 6
|
||||
move 1 from 6 to 5
|
||||
move 1 from 6 to 1
|
||||
move 3 from 1 to 9
|
||||
move 6 from 2 to 7
|
||||
move 1 from 2 to 3
|
||||
move 24 from 5 to 2
|
||||
move 7 from 3 to 7
|
||||
move 13 from 7 to 9
|
||||
move 4 from 1 to 9
|
||||
move 4 from 1 to 6
|
||||
move 1 from 5 to 6
|
||||
move 16 from 9 to 5
|
||||
move 1 from 6 to 4
|
||||
move 1 from 5 to 2
|
||||
move 5 from 1 to 3
|
||||
move 11 from 2 to 1
|
||||
move 4 from 9 to 6
|
||||
move 1 from 4 to 7
|
||||
move 2 from 3 to 4
|
||||
move 6 from 6 to 9
|
||||
move 1 from 1 to 3
|
||||
move 2 from 9 to 4
|
||||
move 1 from 7 to 9
|
||||
move 4 from 2 to 9
|
||||
move 8 from 9 to 2
|
||||
move 3 from 3 to 2
|
||||
move 1 from 9 to 4
|
||||
move 5 from 1 to 7
|
||||
move 1 from 4 to 8
|
||||
move 2 from 1 to 9
|
||||
move 1 from 8 to 7
|
||||
move 6 from 5 to 3
|
||||
move 1 from 5 to 1
|
||||
move 5 from 2 to 3
|
||||
move 4 from 1 to 5
|
||||
move 4 from 7 to 1
|
||||
move 8 from 5 to 8
|
1
2022/input/day06.txt
Executable file
1
2022/input/day06.txt
Executable file
@ -0,0 +1 @@
|
||||
rnttlvtttmnmpmhpmmzvmmhpmmnrntnnsnrnndvnddmbbtptssjcczmmbwmbmwwmmflfggwzzhjjgppwrwdwqwbbbmwbwgggqccmlmdmgdgqgpqgpgzzndddgdbbsvvfsfppwjwzjjcnjccwrwrprgppbpddnccjggfrggqngqgdqgddvsshqhmqqfvqvlvwvnwwmccrpcczvcczzgsgwwlggqsggmdgglblpblltbbzrbzzcscgccwssbddsmddzzvvhjjwjwrjwrwfftmttplldnllqttdhddmvdmmhsmsmqsqwqpqbpqppqdppbnpnhhppjbbrzrbrggdbddnrdrzrdrpdppzzfzrzgzllwlwzlllwtltslttlmtmqqbbzmzhmmjjwrjrrnzrzhzmmtbbrppmmfddjhdjdsdllrbbpfphpzpwwjvwwdpwpzwwzrrfnfwwfbbpttzjtjptpvvsfvvljjrzzmdmsddpvpgvvdcdwcwhwghwggrjjhdjhddzhhwbhwbwwbrwwrfrmfrfvrfftzzqrzqrqtrqtrqtrqttgctclcwlwwvqqnlnqlnnndmnmggznzhzqzggzrzbbrwbrwrvvscvvmvhmvvbsbjsjfjpfpqpbbbbjtjptpprnndpnnrsswffmnnjhhpqhqwhhbwhbhgbbfrbrjjpmjmzzdzjdjffcvvtwttrrcscvcncqcfcwwpgpfptpcpspllcfcssgbglgdllcdcmcpcqclctcvtvvbhbbdhhczhzshzhbhchzchchlcllwswqqmpmbbqwwzgzhggczgzffsgggjjlcjjpnjjfqjfjvfvrfrlrvvpfpcfcbffnmfmbmbgggplldblddvcvjcvvmbmmmrvrvvnhhqttgdgvdgdqgddcsclljplpbbsvbsbfsffshsgslsllzztggttfccctwtswwrvwvnnfbnnvjnvvlgvvfppmvpmmvpmmcttjffgsffcllncntcncfclcgcppvdvpvrvbrrnnvrvhrvrzvrvnrvrdrnrqrnngsshqhcqqbfqqzmmmzjzqztznttjffqzfqfbqqsggclgclcddtqqdppbjppqvpqvvmqmqnqcnqcqcqvqjqzqbzzbrrgfgddgtgnnpjjbzjjbbtstzszwswggfffmnnpllfvvnwnpwpqwqwlllqlmmzcmcrcmrcmrcrffnrnssjjrdjjwwqgwqgqdggwzwjzzbfbpptctchthbbbqsqggrllldwdffvwwlrwwljwjnncmmjmvjmmqnnmrrgjgvvpqqbppqlpqllqnqdndwwlppcjcdjjcnnmddffgjjrwjrwjjhvhqvhhfssrtsrsgrrwjwhhbqqpzzrdrhrqhrqrprqqmllsszhzllcdllpmpbbmsmjjmwmssvlslwwmtwmmgvgcvggzcgzgddsjsjfsssftfcchhfmfcmcpcpvcppqggjddljjbttwrrhghqggpghgngzngznnzqnnssqlqmqbmmmqdqqhttnqqjhhphrhccbggmjjpwpbwpprdrvvjzvvtctzzmpphwpwdpdvvhbvvdvsdsjdjbdjdljjstswttnhhbfffmnngddlglqggvzvlzvzqqvbqbvbjbnjjsvjjwpjjzshrdtrjttvqnbltrfpvnztrwzrtgjpzgqdjfglqgjrgdzbhqpghdbfhlfjhbfjfjppfgljmgwljlsbmltgztthnzvdrgqlgddvqhzctdgcphfqvnpjjgzwqfvnhvzdrwtpgfdjpqnfshslqmplcprdntnhqqbqptwzvdddhcjcqrfhjqnjvpnhttblwgjwlfwntdchgfjmdbgtqtdgnzbqwzzcltwtmtqtdbvjtfvlzpcvgmrfqwfhwqmhvwhftzgmhshffnjwqbvztszsrrglqvhfpqmbnqjsfnwdwgdtmztbvqrmztfctmvptbwnfzfgdztjgnqsrsqqqnrpgzsqszzwwwgqnnnrdzhzdbqjgbvncprzcjqchzfgnclbrmphbsdwwpvwjwlbshhgjfbhjjtdqrmrcjfnrrhqrpsbglthzpvfglqspttdpwlljhnlrjpzchbrqcgtmcscjnwvpztfjdcwbnbgmbpgdthgnhbrtwftnscbsrndghbslflpcpjwbcjnhzcwdcslmzqbtrlnzmntlpjcsctnsqwtbffqlhfgcsflvfwnmczvsbflnnnzpfjfrcwhhcbtbjcbghtcwcgdbrwrgfgvpwtcwlwcmnmrtcrjbwtwlrfstztsghfvrfjzzpswpqfqpvqstvbhqfjlgmtdlhqrhwzqpnqpllnlgzwptbgftmblqcwfcllbwfzdhrndfrvdvwzqvhnghlzvhldnnvrgqvlpfdnpmcgddjmstzsqfvzwftflrwtzqwjbbqhjpfbdztdfsgsztvvrvslgspgpdcmwszdfsddqhpzpsjgqmgzqvhchlgrmcmzwzbtwfphvgcdmhfdczhffgmqpncdjszzgwfvwsqddvbcgngbjwhmphjsmjthvbthhfwdtqmjctcmdpqpsdrnrzdgzgzctbhwsgvtjgwjbsnnjmpmqgwrnqfqbpnrpddjsrsvmcshhthwfrwmqsrjhlsrgfzvwmdzhwrvchppqldghgzflrnwqnvntmtdwmrpgbdbzvcmnqstzntvllcgzsnvrhqzsfncznhgrggmvrmgsqmhbdsjbsqqhzppfcwdrgdvfjdscrvpwtsdmcnczwbbjhvddprwtzfwslcfdcrqfszcgmhtdfvlqzqtvwngzvmmqcrqpzwzhggjnphsrmnctnfhtppglspnvzrsqfgzdfrrwbzbqwvbvbnzgmdrqrnsvdpvlgcmnggsbmbtfwrvdjrtgtgcqscnfpgswgsngdqnnscffdcnlrcpdpcbpzvqcrtjhlwvgnfhhqmprthrtcvcjjwgprqqdwfbgmzlwttjpvcjzfwbdhvngsjpgtqsvbldbcvhjhzbjzblqtqhlnbzzqfcpnzdhbplztcgvzhbgshqbccgwzhftqvtwzbwmnfrsgphhhgtsmwlqhlcchtbtggqwmbdthhmqqjtfdvfpddfdrtfjbpmwtcbfnrhwcnpdqrdtsfdmjfzdwwgnftnwpssgqtlpdbwhnzcnfmppclsswbhcdghpnslwjznqszgdtrnpncsqsnbrplrfwpbnfnvttlzcjtvhzcpzmhfsfzfjlzqqnprpdvwbfthmrswqrcqqwrnwzmgjqqsnqdblssmhngjjvprmqbswtgzzvprwhrgjqshvmwzgrgfmzlgrtzbmdlzncwqdftfsndvdfmmplswdbjtbcbvcvtpjvrqpghczpqvvpqwfbfhllbpvrrfsmsjhqbldcrwvzvcvzfffqvplbfbdbwctbjsljlfwtbcnpsbtpmcqgdvltmztvrcfsprbnvwplwhncgsdnrdmqnmcvpvvrlmlwtgvrnwvzsfctdlcfvtgqmpnbwcbwvfpmqnbjvwffpjtvvgflhrnlngrzhhttdtdbvscftsqtvbrgzfgsjvwhzjcbsqcttlgwmhhvjhwhgmmdtflfdbvnhgcblqmwjfsqnngjqfbvdnsfbgwjfhpgdgvhpbvlrtpcpvhrbtqpbffzcqrvbqwvqmmrcwtnvcgwvsqzvrwdbcnjshbnbftmmvrmjvgfdwbsjvqfdwnnvqqhbmshcrclrwhfhbtnwqvmrrvdwgcwcsrhdbqndsthmrmbjhttjtzmlflbrmhlcgsbdjcjcvwcjffnqrntpflrgfcngpchtrzpnflwjvcgbwtsnjfqsggwmwhdvbzdpjmtwlmrslnjsndjtgjmmwmdgtnfrztppzqvqhbfzqpsdhvsshddlzwcmsndrpqhndsrjnngnmgmzrvchwlqgdnbssbhpbpgwpsrcnbphpslvqplhpgdhmrnwwjmhvnsfjmrfwtvjjrmgptvjffhbgpmfgmgrcjrwqhccssrqjpljbpwcvsfdtmbhzsmsjsgblgpcqszsttfclrjcnsslmngmbmwqfhddbvmbvwmrmvglsl
|
5
2022/readme.md
Normal file
5
2022/readme.md
Normal file
@ -0,0 +1,5 @@
|
||||
## Advent of Code 2022
|
||||
|
||||
These problems were actually solved in early 2024 as part of a Rust study group.
|
||||
|
||||
For the most part, each day's solution was left "as-is" and feedback from the study group was not incorporated until subsequent days, in an attempt to document my attempt to learn the language.
|
42
2022/src/day01.rs
Normal file
42
2022/src/day01.rs
Normal file
@ -0,0 +1,42 @@
|
||||
use std::io;
|
||||
use std::io::prelude::*;
|
||||
use std::fs::File;
|
||||
use sorted_vec::SortedVec;
|
||||
|
||||
fn read_lines(filename: &str) -> io::Result<io::Lines<io::BufReader<File>>> {
|
||||
let file = File::open(filename)?;
|
||||
Ok(io::BufReader::new(file).lines())
|
||||
}
|
||||
|
||||
fn update_max(max: &mut SortedVec<i32>, current: i32) {
|
||||
if max.is_empty() {
|
||||
max.insert(current);
|
||||
return
|
||||
}
|
||||
if current <= max[0] { return }
|
||||
|
||||
max.insert(current);
|
||||
if max.len() > 3 { max.remove_index(0); }
|
||||
}
|
||||
|
||||
pub fn execute() -> Result<(), io::Error> {
|
||||
let mut max: SortedVec<i32> = SortedVec::new();
|
||||
let mut current = 0;
|
||||
|
||||
for line in read_lines("input/day01.txt")? {
|
||||
let text = line?;
|
||||
current = match text.parse::<i32>() {
|
||||
Ok(value) => current + value,
|
||||
Err(_) => {
|
||||
update_max(&mut max, current);
|
||||
0
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(x) = max.iter().last() {
|
||||
println!("Step 1 solution: {x}");
|
||||
}
|
||||
println!("Step 2 solution: {}", max.iter().fold(0i32, |sum, i| sum + (*i as i32)));
|
||||
Ok(())
|
||||
}
|
58
2022/src/day02.rs
Normal file
58
2022/src/day02.rs
Normal file
@ -0,0 +1,58 @@
|
||||
use std::io;
|
||||
use std::io::prelude::*;
|
||||
use std::fs::File;
|
||||
|
||||
fn read_lines(filename: &str) -> io::Result<io::Lines<io::BufReader<File>>> {
|
||||
let file = File::open(filename)?;
|
||||
Ok(io::BufReader::new(file).lines())
|
||||
}
|
||||
|
||||
fn print_step(step: i8, value: u64) {
|
||||
println!("Step {} solution: {}", step, value);
|
||||
}
|
||||
|
||||
pub fn execute() -> Result<(), io::Error> {
|
||||
let mut score1: u64 = 0;
|
||||
let mut score2: u64 = 0;
|
||||
|
||||
for line in read_lines("input/day02.txt")? {
|
||||
let text = line?;
|
||||
let opp = parse_move(text.chars().nth(0).unwrap());
|
||||
|
||||
score1 += step1(opp, text.chars().nth(2).unwrap());
|
||||
score2 += step2(opp, text.chars().nth(2).unwrap());
|
||||
}
|
||||
|
||||
print_step(1, score1);
|
||||
print_step(2, score2);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn step1(opp: i8, text: char) -> u64 {
|
||||
let me = parse_move(text);
|
||||
return match me - opp {
|
||||
1 | -2 => me + 6,
|
||||
0 => me + 3,
|
||||
-1 | 2 => me,
|
||||
_ => panic!("Received impossible result in a match."),
|
||||
} as u64;
|
||||
}
|
||||
|
||||
fn step2(opp: i8, text: char) -> u64 {
|
||||
return match text {
|
||||
'X' => ((opp + 4) % 3) + 1,
|
||||
'Y' => opp + 3,
|
||||
'Z' => (opp % 3) + 7,
|
||||
_ => panic!("Received impossible strategy code."),
|
||||
} as u64;
|
||||
}
|
||||
|
||||
// Parses the second command in the input incorrectly.
|
||||
fn parse_move(x: char) -> i8 {
|
||||
return match x {
|
||||
'A' | 'X' => 1,
|
||||
'B' | 'Y' => 2,
|
||||
'C' | 'Z' => 3,
|
||||
_ => 0,
|
||||
};
|
||||
}
|
53
2022/src/day03.rs
Normal file
53
2022/src/day03.rs
Normal file
@ -0,0 +1,53 @@
|
||||
use std::io;
|
||||
use std::vec::Vec;
|
||||
use std::collections::HashSet;
|
||||
|
||||
use crate::utils;
|
||||
|
||||
pub fn execute() -> Result<(), io::Error> {
|
||||
let mut score = 0;
|
||||
let mut sacks: Vec<HashSet<u8>> = Vec::new();
|
||||
|
||||
for line in utils::read_lines("input/day03.txt")? {
|
||||
let text = line?;
|
||||
let (text1, text2) = text.split_at(text.len() / 2);
|
||||
let mut pouch1 = HashSet::new();
|
||||
let mut pouch2 = HashSet::new();
|
||||
for i in 0..text1.len() {
|
||||
pouch1.insert(text1.as_bytes()[i]);
|
||||
pouch2.insert(text2.as_bytes()[i]);
|
||||
}
|
||||
|
||||
let intersect: HashSet<_> = pouch1.intersection(&pouch2).cloned().collect();
|
||||
score += get_score(&intersect);
|
||||
|
||||
sacks.push(pouch1.union(&pouch2).cloned().collect());
|
||||
}
|
||||
|
||||
let mut score2 = 0;
|
||||
for group in sacks.chunks(3) {
|
||||
let mut intersect: HashSet<u8> = group[0].intersection(&group[1]).cloned().collect();
|
||||
intersect = intersect.intersection(&group[2]).cloned().collect();
|
||||
score2 += get_score(&intersect);
|
||||
}
|
||||
|
||||
utils::print_step(1, &score);
|
||||
utils::print_step(2, &score2);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn get_score(intersect: &HashSet<u8>) -> u64 {
|
||||
if intersect.len() > 1 {
|
||||
panic!("More than one overlapping item.");
|
||||
}
|
||||
|
||||
if let Some(item) = intersect.iter().next() {
|
||||
if *item > 0x60 {
|
||||
return (*item - 0x60) as u64;
|
||||
}
|
||||
|
||||
return ((*item - 0x40) + 26) as u64;
|
||||
}
|
||||
|
||||
panic!("No items in intersection.");
|
||||
}
|
52
2022/src/day04.rs
Normal file
52
2022/src/day04.rs
Normal file
@ -0,0 +1,52 @@
|
||||
use std::io;
|
||||
use std::vec::Vec;
|
||||
|
||||
use crate::utils;
|
||||
|
||||
struct Assignment {
|
||||
min: u32,
|
||||
max: u32,
|
||||
}
|
||||
|
||||
pub fn execute() -> Result<(), io::Error> {
|
||||
let mut subsets = 0;
|
||||
let mut overlaps = 0;
|
||||
|
||||
for line in utils::read_lines("input/day04.txt")? {
|
||||
let text = line?;
|
||||
let inputs: Vec<_> = text.split(',').collect();
|
||||
let ass1 = parse_assignment(inputs[0]);
|
||||
let ass2 = parse_assignment(inputs[1]);
|
||||
|
||||
if (ass2.max >= ass1.max && ass2.min <= ass1.min) ||
|
||||
(ass1.max >= ass2.max && ass1.min <= ass2.min) {
|
||||
subsets += 1;
|
||||
}
|
||||
|
||||
if (ass2.max >= ass1.min && ass2.min <= ass1.max) ||
|
||||
(ass1.max >= ass2.min && ass1.min <= ass2.max) {
|
||||
overlaps += 1;
|
||||
}
|
||||
}
|
||||
|
||||
utils::print_step(1, &subsets);
|
||||
utils::print_step(2, &overlaps);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn parse_assignment(input: &str) -> Assignment {
|
||||
let values: Vec<_> = input.split('-').collect();
|
||||
|
||||
let Ok(min) = values[0].parse::<u32>() else {
|
||||
panic!("Min value {} is non-numeric.", values[0])
|
||||
};
|
||||
|
||||
let Ok(max) = values[1].parse::<u32>() else {
|
||||
panic!("Max value {} is non-numeric.", values[1])
|
||||
};
|
||||
|
||||
Assignment {
|
||||
min: min,
|
||||
max: max,
|
||||
}
|
||||
}
|
63
2022/src/day05.rs
Normal file
63
2022/src/day05.rs
Normal file
@ -0,0 +1,63 @@
|
||||
use std::io;
|
||||
use std::vec::Vec;
|
||||
|
||||
use crate::utils;
|
||||
|
||||
pub fn execute() -> Result<(), io::Error> {
|
||||
let mut stacks1: [Vec<char>; 9] = Default::default();
|
||||
let mut stacks2: [Vec<char>; 9] = Default::default();
|
||||
|
||||
for line in utils::read_lines("input/day05.txt")? {
|
||||
let text = line?;
|
||||
|
||||
match text {
|
||||
x if x.contains("[") => {
|
||||
initialize_stacks(&mut stacks1, &x);
|
||||
initialize_stacks(&mut stacks2, &x);
|
||||
},
|
||||
x if x.contains("move") => {
|
||||
move_stacks(&mut stacks1, &x, 1);
|
||||
move_stacks(&mut stacks2, &x, 2);
|
||||
},
|
||||
_ => {},
|
||||
};
|
||||
}
|
||||
|
||||
utils::print_step(1, &stacks1.iter().map(|x| x.last().unwrap()).collect::<String>());
|
||||
utils::print_step(1, &stacks2.iter().map(|x| x.last().unwrap()).collect::<String>());
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn initialize_stacks(stacks: &mut [Vec<char>], text: &str) {
|
||||
let mut iter = text.chars();
|
||||
iter.next(); // discard the first value
|
||||
for (i, stack) in iter.step_by(4).zip(stacks) {
|
||||
if i.is_alphabetic() { stack.insert(0, i); }
|
||||
}
|
||||
}
|
||||
|
||||
fn move_stacks(stacks: &mut [Vec<char>], text: &str, step: u8) {
|
||||
let fields = text.split(' ').collect::<Vec<_>>();
|
||||
let count = fields[1].parse::<usize>().unwrap();
|
||||
let start = fields[3].parse::<usize>().unwrap();
|
||||
let end = fields[5].parse::<usize>().unwrap();
|
||||
let mut crane = vec![];
|
||||
|
||||
for _ in 0..count {
|
||||
let item = stacks[start-1].pop().unwrap();
|
||||
match step {
|
||||
1 => stacks[end-1].push(item),
|
||||
2 => crane.push(item),
|
||||
_ => panic!("Bad step provided to function."),
|
||||
}
|
||||
}
|
||||
|
||||
// if we're doing step 1, we're done
|
||||
if crane.is_empty() { return; }
|
||||
|
||||
// step 2 logic
|
||||
while let Some(item) = crane.pop() {
|
||||
stacks[end-1].push(item);
|
||||
}
|
||||
}
|
30
2022/src/day06.rs
Normal file
30
2022/src/day06.rs
Normal file
@ -0,0 +1,30 @@
|
||||
use std::io;
|
||||
use std::fs;
|
||||
use std::collections::HashSet;
|
||||
|
||||
use crate::utils;
|
||||
|
||||
pub fn execute() -> Result<(), io::Error> {
|
||||
let data = fs::read_to_string("input/day06.txt")?;
|
||||
|
||||
let packet_marker = find_uniq_index(&data, 4);
|
||||
let message_marker = find_uniq_index(&data, 14);
|
||||
|
||||
utils::print_step(1, &packet_marker);
|
||||
utils::print_step(2, &message_marker);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// Returns the (1-indexed) position where the first sequence of unique characters of `length`
|
||||
// ends in `data`
|
||||
fn find_uniq_index(data: &str, length: usize) -> usize {
|
||||
for (i, substr) in data.as_bytes().windows(length).enumerate() {
|
||||
let mut uniq = HashSet::new();
|
||||
if substr.iter().all(|x| uniq.insert(x)) {
|
||||
return i+length;
|
||||
}
|
||||
}
|
||||
|
||||
panic!("No unique string of length '{length}' found.")
|
||||
}
|
74
2022/src/main.rs
Normal file
74
2022/src/main.rs
Normal file
@ -0,0 +1,74 @@
|
||||
use std::env;
|
||||
use std::io;
|
||||
mod utils;
|
||||
|
||||
const LATEST: u8 = 6;
|
||||
|
||||
mod day01;
|
||||
mod day02;
|
||||
mod day03;
|
||||
mod day04;
|
||||
mod day05;
|
||||
mod day06;
|
||||
// mod day07;
|
||||
// mod day08;
|
||||
// mod day09;
|
||||
// mod day10;
|
||||
// mod day11;
|
||||
// mod day12;
|
||||
// mod day13;
|
||||
// mod day14;
|
||||
// mod day15;
|
||||
// mod day16;
|
||||
// mod day17;
|
||||
// mod day18;
|
||||
// mod day19;
|
||||
// mod day20;
|
||||
// mod day21;
|
||||
// mod day22;
|
||||
// mod day23;
|
||||
// mod day24;
|
||||
// mod day25;
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
let day = determine_day(LATEST);
|
||||
match day {
|
||||
1 => day01::execute(),
|
||||
2 => day02::execute(),
|
||||
3 => day03::execute(),
|
||||
4 => day04::execute(),
|
||||
5 => day05::execute(),
|
||||
6 => day06::execute(),
|
||||
// 7 => day07::execute(),
|
||||
// 8 => day08::execute(),
|
||||
// 9 => day09::execute(),
|
||||
// 10 => day10::execute(),
|
||||
// 11 => day11::execute(),
|
||||
// 12 => day12::execute(),
|
||||
// 13 => day13::execute(),
|
||||
// 14 => day14::execute(),
|
||||
// 15 => day15::execute(),
|
||||
// 16 => day16::execute(),
|
||||
// 17 => day17::execute(),
|
||||
// 18 => day18::execute(),
|
||||
// 19 => day19::execute(),
|
||||
// 20 => day20::execute(),
|
||||
// 21 => day21::execute(),
|
||||
// 22 => day22::execute(),
|
||||
// 23 => day23::execute(),
|
||||
// 24 => day24::execute(),
|
||||
// 25 => day25::execute(),
|
||||
_ => panic!("Couldn't execute day {day}")
|
||||
}
|
||||
}
|
||||
|
||||
fn determine_day(latest: u8) -> u8 {
|
||||
let mut day = latest;
|
||||
for arg in env::args() {
|
||||
if let Ok(x) = arg.parse::<u8>() {
|
||||
day = x;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return day;
|
||||
}
|
11
2022/src/template.rs
Normal file
11
2022/src/template.rs
Normal file
@ -0,0 +1,11 @@
|
||||
use std::io;
|
||||
|
||||
use crate::utils;
|
||||
|
||||
pub fn execute() -> Result<(), io::Error> {
|
||||
for line in utils::read_lines("input/dayXX.txt")? {
|
||||
let text = line?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
14
2022/src/utils.rs
Normal file
14
2022/src/utils.rs
Normal file
@ -0,0 +1,14 @@
|
||||
use std::io;
|
||||
use std::io::prelude::*;
|
||||
use std::fs::File;
|
||||
use std::fmt::Display;
|
||||
|
||||
// Returns the contents of a file as an iterator over strings.
|
||||
pub fn read_lines(filename: &str) -> io::Result<impl Iterator<Item = io::Result<String>>> {
|
||||
let file = File::open(filename)?;
|
||||
Ok(io::BufReader::new(file).lines())
|
||||
}
|
||||
|
||||
pub fn print_step<T: Display>(step: i8, value: &T) {
|
||||
println!("Step {step} solution: {value}");
|
||||
}
|
Reference in New Issue
Block a user