Initial commit
This commit is contained in:
commit
41b1b887b3
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
/target
|
||||||
|
.idea
|
||||||
|
.fleet
|
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 = "aoc22"
|
||||||
|
version = "0.1.0"
|
36
Cargo.toml
Normal file
36
Cargo.toml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
[package]
|
||||||
|
name = "aoc22"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
name = "base"
|
||||||
|
path = "src/lib.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "day1"
|
||||||
|
path = "src/day1/main.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "day2"
|
||||||
|
path = "src/day2/main.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "day3"
|
||||||
|
path = "src/day3/main.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "day4"
|
||||||
|
path = "src/day4/main.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "day5"
|
||||||
|
path = "src/day5/main.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "day6"
|
||||||
|
path = "src/day6/main.rs"
|
||||||
|
|
||||||
|
[dependencies]
|
300
day3.txt
Normal file
300
day3.txt
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
hqBqJsqHhHvhHHqlBvlfpHQQwLVzVwtVzjzttjQVSjMjwL
|
||||||
|
gRTRnCRsFNGbTzLjwcSTMmSz
|
||||||
|
dGgsRWPGdWgZJqBBqhfpPq
|
||||||
|
HNCNJHCWJRRLqNJWlfrrrwsmlwGmmf
|
||||||
|
dddvLdLjdDvjvswlmGwlZQtjrt
|
||||||
|
dvcpbLVcvNJJHNPHSp
|
||||||
|
QDprSpLQRLQrQDmQcQFZjbbhZwdRsRFbbBss
|
||||||
|
gWGGPgNvJlgJzDlNGHCGPNZZgFBbsjbFFBwZwfhdZbZB
|
||||||
|
lHTlGMHlGCPNvClzGzJHvGcrMcVtLqMLcrrQVcVDrqrm
|
||||||
|
SrBpJFfldlFNslFJBZwsmwgVGGsCCVmZZD
|
||||||
|
jLtjvzLQMtWjbbQvDZZwGRJGgwggGZgv
|
||||||
|
MzqqjznQPqnnjznnctnFlSddPfHflhfBJFNdHd
|
||||||
|
mPNNGVCRngnSbgNw
|
||||||
|
WqsqlTssgvqvZWZzhsTzWhScdHtfJJnfbtSJwfczdtSS
|
||||||
|
sqTvhpqQvWZQLmDpDGMDGrgL
|
||||||
|
DQRcLQVLbbcbrFPcRtTBBBJnTZrrnmZTrMgJ
|
||||||
|
slGjjjdlhMfvdMQTvg
|
||||||
|
jlzNhWHhhWjHlwwwGLDSDtPQVtRzRbSzpp
|
||||||
|
DzDgfvzfDczfHCHSlgHLCmWG
|
||||||
|
PrpNPJtpPMBssmmVdmSVVr
|
||||||
|
PSRMwPnMpBNtNBTnnZwDqzQFfwhjZZqfhh
|
||||||
|
fzfBwhBJFbCwbwwg
|
||||||
|
strtgtrPgmPgFRsMdRnZRMFn
|
||||||
|
mrmLPDvGmmtSLDgmSqvHchhcHQzcQQJHBfBh
|
||||||
|
NsgwPPDgsPHqsTqqmLbLrDRhmrRVrbVW
|
||||||
|
lFpGFtfFlvSFplGFzptSGSSlhZbhjhfrmWbhLhmLbCZVZjWr
|
||||||
|
ccplJQSGcSSpVFvNqqsqPNqPQPTwqd
|
||||||
|
HFhPNNZGqSZrCDBVZBCB
|
||||||
|
RJTtwczTzCRVQrRHpR
|
||||||
|
mfgblfltwgwwmlJgcHNnGhSbFNnFsFjFqG
|
||||||
|
tSRqNRHpHnMSTqpcmrWWfqfmrCQCrW
|
||||||
|
lhGDtbgVVgDsDbhfldfwrzrfcdzwcr
|
||||||
|
vtDDhsgFBTNZFBHS
|
||||||
|
LcNpLLBNgdmHGmsBCrRBQDDwnwRj
|
||||||
|
hSWfZVhfPJJhfVWbhzbnQqQnRRRqPvCCrjvjwj
|
||||||
|
ztJSSJhzzSTJrZSbzzJTfzbZmLmggdmNMFNpmtmMGFFGNpmt
|
||||||
|
TRdFfLbTnLvZVlZvznQV
|
||||||
|
pgJGprJNhghhNjjPgPNrhNqqlVVlQVVQqQjfzBfQvZzB
|
||||||
|
rmGmSwJPwJprrNDbsfMRsdTDcDWHfM
|
||||||
|
QMpZZTtwMBttJMMbVqPpqLqbVlbqqN
|
||||||
|
rjCFGrdGRwdDHSnqflPVLqqVNllrfl
|
||||||
|
DHGDRvhvwTZhJWBQ
|
||||||
|
LcQCCpLQVhrdcFQCJrmmmwDwvDtJJnnw
|
||||||
|
TsZqqTzMRqZjfsjTTDjsNJnmnStRSHnnSJmnJSNH
|
||||||
|
sMMZZbDjZFdbVCFphV
|
||||||
|
FCcdFFGBsdDrbMNSmSdmQR
|
||||||
|
tVttHVLhvVgfTTtffNSMQRMZSRmMQNmHSb
|
||||||
|
gngvvwJtVVTvVvvvfwvJThhCzGcnsCjmCDmscPcGCsGsmz
|
||||||
|
fsnzRNZswZszPRZSLflPpDhlhvgWHmjWvJjh
|
||||||
|
bVcCqjbdjbcMdBrddrQphvHHmHWlggpWpppqJJ
|
||||||
|
FBTdFQGrTjLNsNtL
|
||||||
|
MSWWgMdgdbWbbfdgsPmddgCmSLZvSFvLQvnLrFNZvZFLlLLl
|
||||||
|
hjpJjGthjRNRptwJJqVBllnvrrlTTQFZqnTZnn
|
||||||
|
tjDGHwhHHjwjjJGpwjwjjJpwsdgffmbgMsmbDNcMcdmCPdsm
|
||||||
|
MlDrrgnTDLlCCmCRFgRSCR
|
||||||
|
HHhbbNQMccQFSNBmmpJNSJ
|
||||||
|
MwbMbshsswVbHQsbcVMcrtDllTlLqfTGVzLGrTlT
|
||||||
|
gSFzqQTpmVpQVpLFLrzJJRthlsQBlPsZsBhZst
|
||||||
|
rwrNDdbHdBhRhZbsjB
|
||||||
|
vvvMHwHcwGCwwNfMVSrqffWpSfSFzLmT
|
||||||
|
RNgMgRCCgCfPNfvNgVQmhPVWWjWjLLdLBj
|
||||||
|
JhJqqqwGDchsBVbdjldmBLmG
|
||||||
|
schZzDwTJzFTsctHFMtfftgMttpM
|
||||||
|
GHHWqWFWfWHqbRWsFZFmqZbhNjNDNppNjrjDcQdbpddhjr
|
||||||
|
wCLCVPfwgVSnPNrQhnDcjcNpDD
|
||||||
|
TPgLlggJLVwPVVPPwgTwvtSCFmzGGqzGZsGRqWBGfFRFJFRB
|
||||||
|
LfFLmGTPHBfpHmzBLdZfBfZTbWWttWSDJtWVDJDtSWJzVCCV
|
||||||
|
RssRRRhrRwQqMQQwnPngQrwvVSjttjJSjSVtWWCWjbVb
|
||||||
|
hQPnnRnQgNcQqqQQcsZTNTLpdZZfpZFHNpBp
|
||||||
|
VTCVVnwfFTvFmTCvWwJHdlhHWBJhJBRWNHgh
|
||||||
|
ZbSMZbctGtScQSZsSpZpPpplhBhtdJDRDJjhdtlRJRjNRj
|
||||||
|
rLsbBQSMBGspPGcMPQvnqmwzwmCVLmqVmwTF
|
||||||
|
GVrrQVHHHQGTllQjPHGrlCQpZZpJFWZFzzjBssDJghzhFZ
|
||||||
|
NSMmWmtqMWqSNbcctdLcdghpgpppssZgbgzpFzJJFs
|
||||||
|
cfLqLwMRdtNLMlQrvflWTQPffQ
|
||||||
|
FjtGflGsbNqjsmjGGGbmqQQQBQBTjdpTpJTWvJBddj
|
||||||
|
CPrVRMnvvLSRHLnBpwdWTRBQwQzBzR
|
||||||
|
SnZMZPcHMlqchsvGGb
|
||||||
|
nnJnswzPCtmZDCpmhphD
|
||||||
|
rSVVLQQQGQjwpdmdNmpS
|
||||||
|
VvBcQvGcQgGLBgWrwznfJsncltJsJnssPM
|
||||||
|
dhbwLStzSGmmmzJJvFgJNvnrgvhv
|
||||||
|
VTsTsRscRsVBMRVTTsjZVPCnDNvfrPfDvNCfBrPNDJ
|
||||||
|
scHHQTpJZjHwzLSHHtqHSt
|
||||||
|
MHmFsBDmGpGTBfmCfWCffhzgvf
|
||||||
|
wcjwnRLPZRVbtCjtNttGCh
|
||||||
|
ZLGVJRrnPPPwQwPppqDHFpBFTpqFDr
|
||||||
|
GzMgVfGRdRVngDjhqcjctrtrzzzs
|
||||||
|
QbQSHwHSLbWwJJFwJPLPSWTQjrhqtjflThccsclCcscCCmmj
|
||||||
|
JFbNSbLvHHLQFLvwQJFWSBVgMNGdBBnBMVfddpGngB
|
||||||
|
sZHNJwMsvHswwvMWqBzhChWPMBzd
|
||||||
|
bHQQQRDHRcRcDljttBldlPBdggBCqB
|
||||||
|
QjnDbDjjjncRjbQnfZpvssZNHnppFNpvvp
|
||||||
|
NdmfPNMHMdNMHcffHBCwwsvsRRllvwlcqjwscw
|
||||||
|
VLhVGLpLShgvrjwFhjqfls
|
||||||
|
pppnnQtVpGZVWtzGgVzgSSfnCCDmdPBMDbmmDMmdNMBmWNmm
|
||||||
|
rrfgCrrMllfnBhBrdCFfWLFmmVFVWQvWwtwV
|
||||||
|
TmSGSqNzvwwTFVvj
|
||||||
|
NSGSmNbDzpmSpbHmSJqqlMgdMndcgdccdpgllRRh
|
||||||
|
bbPtLnLcLJzTjcJbbTcttLcSgwmvWfVvfVvBgfmWVJMJMJMW
|
||||||
|
ZsDNNGDRsrHzpNRwMlgRlgmMWvffWM
|
||||||
|
FGzQpZGGLFjnSFbF
|
||||||
|
DQZVDdWWNBtgWnJCnL
|
||||||
|
SSHSmbHRFqGrmqJrbbGzjmzCwrvgvwnBwnCvprwvpwwPvv
|
||||||
|
qFFFSmsRRzzFjcFsSsjmzJzflhlZTTThdhVflZlVDDhMcN
|
||||||
|
cdvrFddqDtDvqgCDtFtrvvvFSmShPShJVJmMJSJbVBgTlmbM
|
||||||
|
GzjpHzGHHfQNfJSlPQbJBSTJBM
|
||||||
|
HWpspsWjNsGRHfpwNszzLfGqnCnZtdvvcZvwqFCcZqMZCv
|
||||||
|
rhHhDhhDrRNwDRhNRLRqNPHjHSpVpVlljSSMnlHnjS
|
||||||
|
sVVBsFBJBtBSPSjtjPPZZS
|
||||||
|
JmddVTzsffcGNwzCqNqR
|
||||||
|
nQfqFtZWFZnFJWfpGqhDsGLLPLVbrPhr
|
||||||
|
CzjwMTgBgTNSGLVVDPbjbS
|
||||||
|
wMCmgNNdgvzGdRQcFGFdfJ
|
||||||
|
CbqCDnwFpDpCVfBPmPffPfRfpB
|
||||||
|
svcsjlGJGnlnvjvzgQQgGzsZPhBRcRPhWfBZBhPhWRRhPN
|
||||||
|
sJngnjSGGTGzgJGrrbCqLHrCLwSFqV
|
||||||
|
hnRnJrwMHnQRRRwMhRrnJRBLZtBPdPSdtZZjjstsLHBP
|
||||||
|
pBBzzcbTbzCcFzTvlSCZLCtSvvttdZ
|
||||||
|
FWmNzBFNDnRqNRDM
|
||||||
|
lvzlSPRDSpDJmNwNGgFpfsFN
|
||||||
|
WBHrtrLBbhWHtdrFwFFsjzwfFjsdsF
|
||||||
|
HWnrHnTWhWTCTzTBnRZqDDDCqZcclRvSJR
|
||||||
|
qcdVbpcMFQcdMGcMFjjpbCnCGmCnJHDHDGJChzCJCJ
|
||||||
|
wWwlSfBRgRNBDPJnCgCrgzms
|
||||||
|
tBTfTRwlwRLNwTRmWtNwQFZtqcjcdcqpbdQMqMdd
|
||||||
|
jJRzwDdwFdJddcjjFCFvQLvNlBhSBhCC
|
||||||
|
gMMpbHpmnHpWfnlCSBQCPmPllQSs
|
||||||
|
nHWHVfTGdTSjZzDT
|
||||||
|
sCVTsBPltgDSbLvRMMDT
|
||||||
|
WNrjNmWZwmZwfVLvLRbRNvMp
|
||||||
|
mrHGrmnjqVzjGqdmCltlhFFllgsHBPCg
|
||||||
|
wbglgTFRblnMRltJBNrDDWQbtdbN
|
||||||
|
dqCpcjPLGfHZQBJNGGvQDZ
|
||||||
|
SPssjVSqPCLpScfCgFRVmTlRwndlRwTR
|
||||||
|
hWMWMhTTDgWMzGMszQShGWJPCQmPVCNPffPfVJftqNQC
|
||||||
|
nbnHHwLrnswwPVCPZV
|
||||||
|
nsRvFHLsvplvrcsSWDDDddjjDlMTjT
|
||||||
|
HRCnhWZhCddgwRcwhdWZHHQLJzSLsSzjJwSjztsmtzsmLF
|
||||||
|
VlVVNNVqTlMVbTVVMqvqvrDTjQfFtjstJmzftfzsSbtStJQb
|
||||||
|
pQvvPpBqNBccPWWhcWWc
|
||||||
|
glJTndVWCTDDVFvnVndVlCvwmBmqBBwQmwPwmMPggGsPGm
|
||||||
|
NhcSrhNZHhZzRtHcNRrSMSMSFBMGmsQQGLMPPF
|
||||||
|
hcpRzbcHjRhRbZRzZRztzRpJVdCdnfCnlFvdDTnJCVDjWd
|
||||||
|
dqWvjjBdWWqMjdvvMJjWWjMGgcfchhzrhwbrwShwgzSqNb
|
||||||
|
mmmmsVTlVlsLQmnpsNcfgfwNLgczhcGhzw
|
||||||
|
RslpsnGGGlWdCZFMMRWR
|
||||||
|
pfSpZSrdSMVDVVLMMDDZpdgRWMPGqqPGqmqqGGhGHNRN
|
||||||
|
wwQBwtjvvJlvsnbTbvBRHgPmlqhlqWWHqZZgNm
|
||||||
|
JnQwJvjTtzTZwJnbzzfCrfLCfdfdddfD
|
||||||
|
PZcnljZFTVmQdlQh
|
||||||
|
JCLLqBBCSNCCqzJNzStBpStBmsdhVTdmVWsWmdhfLhWVdfrR
|
||||||
|
BpMzzqSzppMMqpJqqgzPFcjZjnTjgcjbPjPDPZ
|
||||||
|
HLHWmqBHHqWbMHFtbgWcdhspPcPchndPpn
|
||||||
|
ZRVSQZRfVZGRgnfsdhLgLndL
|
||||||
|
jzJRwJRSJJvSlZQGRVwlSGZDMqmmCCCmtNbCmtCMzFNLbF
|
||||||
|
fDhlBhhZmQRRfHwLdjHFFWQQjQ
|
||||||
|
ZMTssVVzvbCqJddsLwwH
|
||||||
|
TzgTbgGGzztMbbvzvVbGvSPBrlShRrfnNrnBDlNcRDZRZB
|
||||||
|
bjfqGfvFfcHvRwGFRHjbgQtddlQljWpWnQgdWWll
|
||||||
|
TSPVVSVwSzSDTDlntDndnlWddt
|
||||||
|
hTrrNCBCVrCrrVshThHHbZvFGscwbfFGRJcZ
|
||||||
|
jNhMjcgvMNgWggvttcFtchvPFFzdPPrQrrGGQQszRPQrRG
|
||||||
|
wSCqCmmppbTwPnGHrQdrGCCD
|
||||||
|
LlqwGmGScLcVthVt
|
||||||
|
dGGrWWDqmCnwCCQMQrMbFHbMHsPFgPVZbgFPgg
|
||||||
|
tLRTBwfvTBJcZFNFZRHSHPVN
|
||||||
|
zjJLTvjcwDzqqhGD
|
||||||
|
DzrWszFFrtBBhnhNCClHlnHbSbmlSn
|
||||||
|
ZLwLcVVZcLVpvRwLgMLpLJgPmmQSNSTNbtTvQmCHQCClCHCt
|
||||||
|
cfgZJwwVLJZPPVpRwzhzrrfGGBrGtDrBsf
|
||||||
|
BTsdCQsQnwwdcCqqdCnsFvGFpFBvGzrLLmmzpvfG
|
||||||
|
pjZjgPVlJVMVtgJSWLPvfFFFbNNmNbvbmL
|
||||||
|
ggVplgJtHSSggdCHsscChhdnnR
|
||||||
|
JddZcSlvvGFJNWVWFgQgVtFWhg
|
||||||
|
nDqsHqCszwjCCPMnfhfBhtdWggfg
|
||||||
|
bqppHqqHHbPLjLCppbwDdRNvdmcTmlNZGGbTTcNv
|
||||||
|
lcZDSvztcHHcMSZVHVvMZBqBNNFNhBNTTmssBqBcFB
|
||||||
|
bbGJQdQPpGfQJQdJfLFhmznhzLLNTFhNhf
|
||||||
|
JGpWpPJddbPpPwpjbtZSzltDgWDSgvtrVv
|
||||||
|
lJcNlNjPcmtFzHtHBJFg
|
||||||
|
VPZdwGGWVrsdPWhWwhzzCzzFppDFMBtttFCr
|
||||||
|
wshsLVfWTnGswdhwcmRjRmScqTcjlPNq
|
||||||
|
BsBshRZQQsVdsZQZSdsPDwJDHNNHBztNNFMGGwMF
|
||||||
|
nSTpLjcvHppzwwNt
|
||||||
|
jcqncjjvfmgrCfvqrnZbmdmSsdbVWlsmhRdW
|
||||||
|
FjjqRZjZFZWFqPvNvvPQpmbPDCmt
|
||||||
|
GSnHSnrScncHhrtncGshVbmTmbpVvppCmpCTmTCmCC
|
||||||
|
rHfnddwdfctlzFFgwqlj
|
||||||
|
wBwlBmmhwRVThVBmFHnvHMnfsmFfHq
|
||||||
|
jzwGSGJNZCCssHfsCPfv
|
||||||
|
GJbzbZdbwJdtdQphRVWQ
|
||||||
|
ztFZccVHFWHHLSDBpSBPhhZw
|
||||||
|
fmjsCmqnNTJnvbTvLRPDlCpBSPBpRShl
|
||||||
|
JqsGTSNJGqvqvNvttGQQGdFrQctrrF
|
||||||
|
mNZqjTFrZqrTNTTGSSSbrhrhRFRHcnLCzcCdHcLBdccHLzRC
|
||||||
|
JDDfJswJDWsvgVgwpWnRBlBzGCnlCLBlcCDl
|
||||||
|
vVGpfQWJpsPQMVgvppVwgWPJrqSZTrZqhTQTrhjbjqSSjZqt
|
||||||
|
fMSDzDHzpDDVsStdDgwwFZFrrMPCNngCZP
|
||||||
|
WmLnbWmvvWTTLWWQWRGQvLvrPFZJcgJFCZNrCgGCFCPNPF
|
||||||
|
QLhlqhljWvRQbbqlqnfStnHdBqVVfzpq
|
||||||
|
qWZtSQTSvJJvBfJVBBVFNDNHbbdRVPdpNFRF
|
||||||
|
fGcwwmCgsLhgwLchbpHdrrrphdPRPh
|
||||||
|
gMjllmcjwsLMgcwlMnSWzSqjSZJqZqZfjQWv
|
||||||
|
cdRHPjRFRdFVHGcFfFTHQTHVLSQBsbsqSCLqllBJqqbSqLJC
|
||||||
|
WwWppWgtNrnzzWDmrrmNvWJClJSSbqLJJCGbsCgJbLLg
|
||||||
|
MnvWpmwvWnvtGPjVRcHRRHMj
|
||||||
|
dLMDhdHGrcLTvvvstB
|
||||||
|
nPqgGGNPqRgRSjgmlWjbbTTPPBvpvpTcswwsTF
|
||||||
|
NRGmgjRnWgnZJqllmSqjnqSDhQzVrdQHDfDrDJQDMHDJzM
|
||||||
|
RgmcPmGNQwwNmSRwPPgfmrBlCDlGbvFFvtrCsvlrBB
|
||||||
|
nfdVnjHdMWnTqflFtbjrllrlsCDl
|
||||||
|
TZJVMhnfMnVMHnpRRNRzgJRzSzgwPR
|
||||||
|
nTbsblzlnGllmsNnbDwbcWQWwWBFJBQcWQvPWFJM
|
||||||
|
HRZRdSRdCdLdRftrHHZfSQBMWJMgMzQPFWMJCFWgvQ
|
||||||
|
HVzrLrrjRjLGnlTnlDlsjj
|
||||||
|
RQdTdZhWqlZhTdWTqblhNmTMVnnrQsnnpvgMVMHMgHMrgP
|
||||||
|
fjSSfjcCzGNBjCjsnpMVpnpzvpzsHp
|
||||||
|
GGwLGSccwjwLwBcGLGSqZWmmdLZLWThmRNZmWR
|
||||||
|
ncmBrmfdfcVcfGnQdVWRBRvgqNvDvWqzLRqg
|
||||||
|
PlpPbSbLFPLpFstsbqRqZMqWZqMWSDRzvq
|
||||||
|
sjtjHCwJwlHfdfjccmmLLQ
|
||||||
|
tGMtLHQGWzLHFVQtVfQtMWtbgrZNbdfSbccggrcTjTrfbm
|
||||||
|
swRChnwqhBCCCmSjcNSdcd
|
||||||
|
vnlnqDRlsRnJJqswJvGMFVMMdWtpVJFMQQFL
|
||||||
|
ffcHLzGmfvqqfWfF
|
||||||
|
rJrrRSPCPMCrPRQMNNWJQjJCnqFVVVTStqVnSBdqppBVtpqd
|
||||||
|
jNQQPjQMCRQwwQbRQbjMgwbNhwWZHHmzmlchlHHHDcLmWzhD
|
||||||
|
JzvrRHHJvCRZFPFnPgsQVVQNzQTQDttVsB
|
||||||
|
GSMjpqdbGNppBtDhPN
|
||||||
|
MbmqMwGbZPmPHJmv
|
||||||
|
ggVSVWzCNbbNCbRM
|
||||||
|
DfVhVsVQcQDmpmQTTQLjPjMjbDGNlbRMlNGG
|
||||||
|
sftTFJJccnphcfncTsfBvwZvrzgzZzZvBrVnzq
|
||||||
|
qqlClBNSCNSRQMvdrwFvnBrr
|
||||||
|
GDfhDtszhhsThpTDzsfpprMrFvQvrnnfvQrwHFbfFH
|
||||||
|
VtggWhpsmGVTGJWMjWjNjPWjLL
|
||||||
|
NSnShnjsswSsRPNsrnwcwMHfFwGqbvqCbFfg
|
||||||
|
LDJtzzmgVVlvqGbzvFfzff
|
||||||
|
mlJmQQpmJpZpBJJdjBNhrnnRdTTgNN
|
||||||
|
RtRRvbhDFPHHlhtPhRvPRtqjmzqzzwLjHQHLLLQVmVjq
|
||||||
|
WNNBBZfgfWnqVQwNqzmQcm
|
||||||
|
MZGfzSrTTnWrrWsTWnfSGbGllPCbGlJRvlPllCtt
|
||||||
|
phgcNfqgfpZsjjpdsS
|
||||||
|
brHHnWPbDPDbTPlDJJvJJPrMVVzRSdFzwdZZzFnsdzzVdVZs
|
||||||
|
SbStvJMDQgNmmtgg
|
||||||
|
lzDMDhfFRlfMFTfMGPMbFTlMpBHrmpjjCFjmBmrqBjtCmjjq
|
||||||
|
VvVswLLHZnJJwdndNsSSNBpCpjqjmNgrmCNtmmqm
|
||||||
|
nHcZWcSVsScTDlPPlTPb
|
||||||
|
DFMQSlMDpSpFDtDFccHvmqzvbHZjJmvzmmQH
|
||||||
|
CSgffrPssdgqRbqzzRqZ
|
||||||
|
dsdsfGsrBPsTVcMctMVNNhtStW
|
||||||
|
MDWRDWpgDvWpNptvNMnJCHJHMwHCndJfZn
|
||||||
|
blcrqTFmmcbhLTTTmlBZbjBJdBfBnCbQBdfn
|
||||||
|
TzlnhcnzTmhLRvSDsRzDPzWR
|
||||||
|
nwmmPnnPDjclhhjfFzzzwqbFFNHwVqVq
|
||||||
|
vSQrbpWCvMWQQWQMLgFJVHqzBzJVNqzBFL
|
||||||
|
CvCvQtWWQmcbtntPcb
|
||||||
|
qzvtzCCtLsLLzmQCHqpSsHSmfrnNrTrNWWMNGnWZTMZGBvWn
|
||||||
|
PglVFJwPhbcghVTBpBnWWhWnTMhB
|
||||||
|
FgjcJccVpwDcwFgVDsqzddqLqSDSCQQL
|
||||||
|
PLHsSVGGPvSLTffjMJWJJBjfBL
|
||||||
|
gNhwgTqDcqwpDqNhFpDFhFWfnndjcMJjMWzzBtntJBnW
|
||||||
|
DFhhQRRwbCbwRQChppmTHCVGTlslrsvrrSVZ
|
||||||
|
hHnRfSMmsSVrFvQqrmDPgr
|
||||||
|
jjcBzjZLpWccJLczBjZjWGwCnNzDvrgPCgQvFggvqrQFnr
|
||||||
|
jtZGpLwjWBpBWcfMTttfbHRnHTbT
|
||||||
|
swSHffFTVrJlHFSWrTpMZMPhMNBqBhTvhhqZ
|
||||||
|
bQbLQGGjQLdRCcQjGZBzpzBZqMBBBVdBqh
|
||||||
|
RjQDQGmgmVVbVcjjmjgcnWtJfrwsfrtHlwswnfHSFw
|
||||||
|
bVHbbMFDcbDbcmbbHVRbMRFgzSmdzSSTBtTjBdQTzlSldQjT
|
||||||
|
nqpqCMwJffqQSzTBQlqd
|
||||||
|
wvJhnnfrfsJrCNffvspRrPPFMbPMRRPPMZgZHR
|
||||||
|
FnJZnssHvMdJWJpW
|
||||||
|
mlDlllGrSGmttwlGvZgrzZNWgggzTzdT
|
||||||
|
bCltZCthtRcbcFbjFL
|
||||||
|
JGmHrJwGzzpllRZdzZLRcW
|
||||||
|
htbPSbVtFbbgjhffgPSfTVSDcHDDDLWscRdsZjdZcRssWc
|
||||||
|
vhfFbFvVHbtTVgFPhmJBCvBNrqBBrGCqQB
|
||||||
|
BcNQcvcBchSQNccLLvhTqbJZTrHrrrzzqTZMZMFZ
|
||||||
|
tpHDsnDRslllCCHtwnpsfjRgrJrVMfMmMrFrzVJFzrVZbZrr
|
||||||
|
tnDpjCwPLNSPdhPH
|
||||||
|
qnjvvBwBhSSFPgDQLVVDqgLr
|
||||||
|
WbszTbHTbsbHJWHLLMVZmJPQDrvmZL
|
||||||
|
ctlRbtCWWtvlSfjljjhBnBNB
|
||||||
|
TsnvssDDQlRbzMzjDMqHwq
|
||||||
|
tSGjZCfFZtCFLtVGWGZFbcqwHbhWdbzbwHbdwbdw
|
||||||
|
ZGBFJFZVBLjStZPBBZLRvlmsPTvsgrrnrTllvs
|
||||||
|
PgQdNsQFsdNwWqQBsQrTrTLpbrnTpGngnbTG
|
||||||
|
hCzzMJVDmfzmBDMCfSfhTMGcnpnTcjGrpjbMGjbL
|
||||||
|
CVVfvCflSHNHvPdBHW
|
||||||
|
DwlMjMNjStgmthMghg
|
||||||
|
PTlpHnJJTcZvTTbHZWZTvpqdHhmLgrgdfrhLLsmshmsLts
|
||||||
|
vncqTbPqcpCnbCPvccZbDBCGzzNBwjDlVVGFjjVR
|
||||||
|
QsdGGCztZVRddPgndf
|
||||||
|
DrNNBbwNHNwlbjFbbCNjNwDWWDPPVfDMgfmVMfnMWmmP
|
||||||
|
rvJBbbBNcLCtJZQL
|
||||||
|
NfLlqLhbNPddLPqLhpgHwFFwFHHTwRHWwPFTrT
|
||||||
|
MSMSCnjBnBjCscjVDVljTvHmmWnrwTrwFTrvTWTT
|
||||||
|
JCMMBzDMJcZZCjDzSBDNJgdfdQlqlLNdhgGLhp
|
513
day5.txt
Normal file
513
day5.txt
Normal file
@ -0,0 +1,513 @@
|
|||||||
|
[N] [Q] [N]
|
||||||
|
[R] [F] [Q] [G] [M]
|
||||||
|
[J] [Z] [T] [R] [H] [J]
|
||||||
|
[T] [H] [G] [R] [B] [N] [T]
|
||||||
|
[Z] [J] [J] [G] [F] [Z] [S] [M]
|
||||||
|
[B] [N] [N] [N] [Q] [W] [L] [Q] [S]
|
||||||
|
[D] [S] [R] [V] [T] [C] [C] [N] [G]
|
||||||
|
[F] [R] [C] [F] [L] [Q] [F] [D] [P]
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 8 from 1 to 9
|
||||||
|
move 4 from 7 to 1
|
||||||
|
move 5 from 3 to 8
|
||||||
|
move 3 from 3 to 7
|
||||||
|
move 11 from 8 to 3
|
||||||
|
move 7 from 3 to 6
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 3 from 1 to 6
|
||||||
|
move 6 from 2 to 4
|
||||||
|
move 6 from 7 to 5
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 16 from 4 to 9
|
||||||
|
move 2 from 1 to 2
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 2 from 2 to 4
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 22 from 9 to 8
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 18 from 8 to 5
|
||||||
|
move 3 from 8 to 2
|
||||||
|
move 3 from 2 to 9
|
||||||
|
move 13 from 6 to 7
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 4 from 3 to 6
|
||||||
|
move 2 from 6 to 3
|
||||||
|
move 2 from 3 to 8
|
||||||
|
move 3 from 7 to 8
|
||||||
|
move 14 from 5 to 2
|
||||||
|
move 3 from 2 to 5
|
||||||
|
move 2 from 8 to 4
|
||||||
|
move 4 from 8 to 6
|
||||||
|
move 4 from 6 to 4
|
||||||
|
move 11 from 5 to 2
|
||||||
|
move 3 from 9 to 2
|
||||||
|
move 7 from 2 to 3
|
||||||
|
move 11 from 7 to 2
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 5 from 6 to 8
|
||||||
|
move 30 from 2 to 7
|
||||||
|
move 23 from 7 to 2
|
||||||
|
move 4 from 3 to 4
|
||||||
|
move 3 from 9 to 6
|
||||||
|
move 4 from 8 to 2
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 2 from 7 to 9
|
||||||
|
move 4 from 2 to 3
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 6 from 4 to 7
|
||||||
|
move 5 from 3 to 6
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 16 from 2 to 5
|
||||||
|
move 7 from 7 to 6
|
||||||
|
move 9 from 2 to 1
|
||||||
|
move 2 from 1 to 4
|
||||||
|
move 8 from 5 to 3
|
||||||
|
move 5 from 7 to 4
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 9 from 3 to 6
|
||||||
|
move 25 from 6 to 8
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 3 from 4 to 2
|
||||||
|
move 7 from 4 to 1
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 6 from 5 to 2
|
||||||
|
move 11 from 8 to 5
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 10 from 1 to 2
|
||||||
|
move 6 from 5 to 1
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 13 from 8 to 1
|
||||||
|
move 17 from 1 to 2
|
||||||
|
move 5 from 1 to 9
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 8 from 5 to 7
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 7 from 7 to 6
|
||||||
|
move 2 from 1 to 2
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 8 from 2 to 1
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 2 from 7 to 3
|
||||||
|
move 2 from 3 to 7
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 3 from 9 to 2
|
||||||
|
move 2 from 8 to 9
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 6 from 6 to 5
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 2 from 6 to 8
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 2 from 8 to 4
|
||||||
|
move 11 from 2 to 5
|
||||||
|
move 18 from 5 to 6
|
||||||
|
move 6 from 2 to 6
|
||||||
|
move 10 from 2 to 7
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 7 from 2 to 8
|
||||||
|
move 7 from 1 to 4
|
||||||
|
move 6 from 7 to 8
|
||||||
|
move 2 from 7 to 3
|
||||||
|
move 8 from 4 to 7
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 4 from 7 to 1
|
||||||
|
move 4 from 1 to 3
|
||||||
|
move 2 from 3 to 9
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 5 from 7 to 4
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 10 from 8 to 1
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 3 from 8 to 7
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 3 from 7 to 1
|
||||||
|
move 5 from 1 to 4
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 22 from 6 to 3
|
||||||
|
move 2 from 6 to 2
|
||||||
|
move 19 from 3 to 4
|
||||||
|
move 15 from 4 to 8
|
||||||
|
move 9 from 8 to 4
|
||||||
|
move 5 from 6 to 8
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 2 from 9 to 4
|
||||||
|
move 7 from 1 to 5
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 5 from 8 to 3
|
||||||
|
move 4 from 8 to 1
|
||||||
|
move 5 from 1 to 5
|
||||||
|
move 10 from 4 to 3
|
||||||
|
move 3 from 4 to 2
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 12 from 4 to 8
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 3 from 2 to 9
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 5 from 3 to 7
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 15 from 3 to 8
|
||||||
|
move 10 from 5 to 6
|
||||||
|
move 3 from 7 to 8
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 7 from 6 to 1
|
||||||
|
move 3 from 5 to 3
|
||||||
|
move 5 from 3 to 5
|
||||||
|
move 3 from 5 to 4
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 2 from 3 to 5
|
||||||
|
move 14 from 8 to 5
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 16 from 5 to 3
|
||||||
|
move 16 from 3 to 6
|
||||||
|
move 2 from 9 to 8
|
||||||
|
move 21 from 6 to 7
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 4 from 1 to 7
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 16 from 8 to 5
|
||||||
|
move 20 from 7 to 4
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 3 from 8 to 6
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 2 from 1 to 4
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 5 from 4 to 7
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 11 from 7 to 6
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 12 from 6 to 2
|
||||||
|
move 13 from 2 to 1
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 6 from 4 to 1
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 7 from 4 to 9
|
||||||
|
move 8 from 9 to 3
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 10 from 5 to 4
|
||||||
|
move 11 from 1 to 8
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 5 from 1 to 8
|
||||||
|
move 8 from 5 to 6
|
||||||
|
move 13 from 8 to 9
|
||||||
|
move 12 from 3 to 5
|
||||||
|
move 12 from 5 to 9
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 3 from 8 to 5
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 5 from 6 to 3
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 13 from 4 to 7
|
||||||
|
move 3 from 7 to 6
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 4 from 4 to 2
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 6 from 9 to 4
|
||||||
|
move 22 from 9 to 2
|
||||||
|
move 8 from 7 to 4
|
||||||
|
move 7 from 2 to 1
|
||||||
|
move 3 from 3 to 8
|
||||||
|
move 2 from 6 to 7
|
||||||
|
move 14 from 4 to 2
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 3 from 3 to 9
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 3 from 1 to 9
|
||||||
|
move 3 from 9 to 3
|
||||||
|
move 31 from 2 to 8
|
||||||
|
move 8 from 8 to 4
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 9 from 4 to 5
|
||||||
|
move 7 from 5 to 6
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 4 from 7 to 4
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 6 from 4 to 1
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 2 from 2 to 4
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 17 from 1 to 9
|
||||||
|
move 4 from 6 to 2
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 4 from 9 to 7
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 3 from 7 to 6
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 10 from 8 to 5
|
||||||
|
move 6 from 6 to 5
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 9 from 8 to 3
|
||||||
|
move 4 from 3 to 9
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 2 from 3 to 8
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 3 from 8 to 9
|
||||||
|
move 5 from 2 to 9
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 5 from 8 to 7
|
||||||
|
move 3 from 8 to 4
|
||||||
|
move 2 from 8 to 5
|
||||||
|
move 24 from 9 to 7
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 2 from 9 to 4
|
||||||
|
move 22 from 7 to 9
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 6 from 4 to 6
|
||||||
|
move 4 from 6 to 7
|
||||||
|
move 10 from 5 to 3
|
||||||
|
move 8 from 3 to 5
|
||||||
|
move 2 from 3 to 4
|
||||||
|
move 2 from 4 to 6
|
||||||
|
move 10 from 7 to 3
|
||||||
|
move 21 from 9 to 1
|
||||||
|
move 2 from 3 to 4
|
||||||
|
move 4 from 3 to 8
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 4 from 6 to 8
|
||||||
|
move 3 from 5 to 4
|
||||||
|
move 8 from 8 to 2
|
||||||
|
move 18 from 1 to 6
|
||||||
|
move 3 from 4 to 1
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 5 from 1 to 8
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 3 from 2 to 9
|
||||||
|
move 3 from 8 to 1
|
||||||
|
move 11 from 5 to 2
|
||||||
|
move 3 from 8 to 7
|
||||||
|
move 10 from 2 to 9
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 3 from 8 to 1
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 6 from 9 to 5
|
||||||
|
move 4 from 2 to 8
|
||||||
|
move 8 from 5 to 8
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 3 from 1 to 6
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 9 from 6 to 9
|
||||||
|
move 16 from 6 to 9
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 5 from 8 to 5
|
||||||
|
move 4 from 5 to 1
|
||||||
|
move 6 from 1 to 7
|
||||||
|
move 12 from 8 to 4
|
||||||
|
move 5 from 8 to 1
|
||||||
|
move 6 from 9 to 3
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 2 from 5 to 8
|
||||||
|
move 12 from 4 to 7
|
||||||
|
move 2 from 8 to 4
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 14 from 7 to 1
|
||||||
|
move 3 from 3 to 2
|
||||||
|
move 7 from 9 to 7
|
||||||
|
move 3 from 3 to 5
|
||||||
|
move 15 from 1 to 2
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 16 from 9 to 1
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 5 from 6 to 2
|
||||||
|
move 12 from 7 to 2
|
||||||
|
move 20 from 2 to 6
|
||||||
|
move 10 from 2 to 6
|
||||||
|
move 11 from 1 to 7
|
||||||
|
move 2 from 7 to 4
|
||||||
|
move 2 from 2 to 5
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 25 from 6 to 7
|
||||||
|
move 25 from 7 to 6
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 33 from 6 to 3
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 2 from 3 to 5
|
||||||
|
move 28 from 3 to 9
|
||||||
|
move 5 from 1 to 9
|
||||||
|
move 4 from 1 to 8
|
||||||
|
move 2 from 3 to 2
|
||||||
|
move 2 from 8 to 1
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 3 from 5 to 3
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 30 from 9 to 2
|
||||||
|
move 7 from 2 to 6
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 5 from 7 to 4
|
||||||
|
move 4 from 7 to 3
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 3 from 8 to 7
|
||||||
|
move 8 from 3 to 1
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 3 from 9 to 8
|
||||||
|
move 8 from 6 to 2
|
||||||
|
move 18 from 2 to 6
|
||||||
|
move 6 from 7 to 2
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 3 from 4 to 7
|
||||||
|
move 5 from 4 to 8
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 7 from 2 to 5
|
||||||
|
move 5 from 2 to 7
|
||||||
|
move 10 from 7 to 9
|
||||||
|
move 5 from 5 to 9
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 5 from 2 to 6
|
||||||
|
move 3 from 7 to 9
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 2 from 2 to 9
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 8 from 9 to 2
|
||||||
|
move 5 from 6 to 7
|
||||||
|
move 4 from 9 to 1
|
||||||
|
move 4 from 8 to 9
|
||||||
|
move 12 from 9 to 1
|
||||||
|
move 16 from 1 to 4
|
||||||
|
move 12 from 6 to 2
|
||||||
|
move 3 from 7 to 6
|
||||||
|
move 3 from 7 to 3
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 12 from 4 to 5
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 4 from 4 to 3
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 6 from 3 to 1
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 7 from 2 to 5
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 4 from 5 to 4
|
||||||
|
move 5 from 5 to 9
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 4 from 5 to 6
|
||||||
|
move 5 from 5 to 9
|
||||||
|
move 7 from 9 to 5
|
||||||
|
move 11 from 6 to 4
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 9 from 4 to 3
|
||||||
|
move 5 from 1 to 9
|
||||||
|
move 3 from 5 to 1
|
||||||
|
move 5 from 9 to 8
|
||||||
|
move 8 from 3 to 1
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 7 from 2 to 5
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 3 from 5 to 9
|
||||||
|
move 3 from 6 to 9
|
||||||
|
move 3 from 2 to 9
|
||||||
|
move 5 from 3 to 6
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 4 from 8 to 3
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 8 from 1 to 3
|
||||||
|
move 12 from 3 to 7
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 3 from 2 to 8
|
||||||
|
move 6 from 7 to 6
|
||||||
|
move 4 from 5 to 7
|
||||||
|
move 5 from 9 to 7
|
||||||
|
move 2 from 9 to 2
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 4 from 5 to 1
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 14 from 7 to 6
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 10 from 4 to 5
|
||||||
|
move 4 from 1 to 2
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 17 from 6 to 8
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 10 from 5 to 4
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 4 from 2 to 6
|
||||||
|
move 13 from 6 to 1
|
||||||
|
move 9 from 4 to 3
|
||||||
|
move 2 from 2 to 4
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 8 from 3 to 5
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 17 from 1 to 3
|
||||||
|
move 15 from 3 to 7
|
||||||
|
move 3 from 4 to 1
|
||||||
|
move 6 from 8 to 9
|
||||||
|
move 6 from 9 to 1
|
||||||
|
move 2 from 3 to 1
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 6 from 7 to 6
|
||||||
|
move 3 from 6 to 9
|
9
day5_test.txt
Normal file
9
day5_test.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[D]
|
||||||
|
[N] [C]
|
||||||
|
[Z] [M] [P]
|
||||||
|
1 2 3
|
||||||
|
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 2 from 2 to 1
|
||||||
|
move 1 from 1 to 2
|
1
day6.txt
Normal file
1
day6.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
pqffvllhrhthvhshhpnhpnpqpvpvrpvpwvwjjdssmcsmccjvjmjjwnjwjwhjwwwzswwhvhwwlvvlbvbtbzbfbzbtbqbgbpbggwzggvjjdpdffbmffntncchtccbcffcjfjnjfnntssvtstzssmnnhrhlhbbwfwjfwjfwwbhhfhmmpsssbnssssfzzfpffdrdpdqqvnncjjgrjjmhhpqqcjqcjjzdzzpvvprrlglrrcmcqqtltdltddswsrrzzwgzzgssczcmzzmgmwgmggwwzttpccmcsmmvfvnvppzlzvzllgclggpfggfnfrfvrvwwvhwwvgwwrbbgfglflblzblzbznzhzffplffnrrcqqsgsvshvhlldhhvnhhmdddnssdvdwdwccggmddsmswwtctdtqqjsshhjzzdpdmpdmppjtjwjswjsjjjsdjjtrtbrbjjwwvnvppqphqhwhcwhwbbpgbbnhbnhhswwdswwlcczdztzbbbnwwtmmpvvgjjqgqdqzzdjdpjjnnffhccscvvchhbmbcbffpdpggvdvttpvpqqhggdtdhtdhhmghmgggzwgwrgwggwlggvpggcfcttzmtmgmvgmmpqmqlmqllsqqjbjwjsszczlzrzgrzzhshlhjjwttwnntbtjtjpplccqrqhrhssbmbttrddfvfwwjcwcvwcwwvpvggqwgwjgwgccvqqcmqqtqnqpnqnffdqfqhhqnhnmhmvhmhwwfrwrggnmmmcnmmgsszmzlmzmddcwwthtssgjsgjjgpgnppdqqcgqggzjgjngnrnggvffgddvtvctcftcftfnnnnhssbgsgwwthtqtltftqtnqttsrtrggwcgwcwmwgmgvmmzrmzrzjzmmcclmmtjmjhmmlhlwlppnpccbbrlrqrcrjrdrlrnngmnmvmcmzczztbblglccvzvppzspsddrzzlsllfzfsspnpdnpnvvvgmmpccmpcpgcpcwcddtmddgwgngqqcpqqlhqqczqqbvqqgdqgqmgmlmmvrrgfgzffbccldcdmmcmcgcngnghngngdngdndcncbbpqbbphbphpccpcwwjswwfttbqbsszccrbbdndsdrdqrqjrjjbmbtbdbbgbvgvcggwdwcccttqccnffjpjqqzpzlzvlljhhschhzlhhfhcfhchvcvtvtgvgzvzrvrdrgrwrjwjljhljlssszsqzsswhhmlhlrhlhzzgghjhzjjcllwrwtrrbdbrbnrnprnrffjvvphhvbbqbbscstsmslmlvmvrmmvvngnlnzzwqzzjqqsqbqrrtmrtmmfgmgrgjjtmjmrrddmrrqmrrjmjqmqnqmmcmlmfmffcgcclplffzvzwvzzjtztftqftqffjjpwjjbpjjggzdgzgwzzfrfvvhfvvwcvvbccfcvffpcpgpbbqhbbhmmzfmfvvnjvnjjhzhqqmffndndmmzhmmqnnlglvvjhjddvggqwgwdgwdggqbqgqrqlrrtptsswlssqwssbdsdrsddjsszjszjjpnjnvnjvnnmznmnddccpwwhshzzcfcqcwcddsjjmnjmjljwwgmglllqlhhctcvvqrvrrhfrrbcrrfbrfbrfrqffbwbqwbbjggsjjjnqqrqsqhhwnhnshnhhdjjqfqpqmmqgqgqggzmmnncrrpgglgqlqclqlsqqwnnfntnzttrnnmtmvvfppbrprzpzzdzvvtctnncpclpccsbbswwcscjssvhvhhqggzmgmqgmgwwgcwgccrllzhzzlzlbljbllmqqpjqqhrhqhjhbbjmjmhmddmwmcmvvmbbmvbmmznnwvwlwtllhwlwgwpgplgpgmgngjgglbglgmllvvlttgrrrlsrllghlggjdjwwfjwfjfvhjmgqnwhwpbdtzrphsqbmmvscslhbdzffsfshgsdjbqbwlgmrtschcnfhdlnndsvpwmwttfglpghhznmgfcjsdlwhnmfqvmpvhgpnnwtjfztbmtprqhsqtjwzhwcqjtjbtqwlcldnvggrwddmpllwnrqwdljwzfzqwcdwgqwvnthnrpcsfwrmqvbzjvzqnmdnfgtbzgtnrvblfwmhdsddgbffnjzvjzfpwglctpqhnqdvtblcchrlmndzhlsczgnsmnbwgnjngnjtlrdpfhqjrwcrqvcpspbtwcvgvvmpnwqjjpdpnslmcrcjnjmhqmrmfbcmrcmpbcbhpcvwqwflljfpgdvqhgdwgcphjqfnqzjjpsqnbtfzhftjtfcbhhcmmlwcfznsflfpphprrgvqwfgjcwfgjfsghzcbqrldwrjlzlbjhpgrbmgdpgzmfsqsphqbbslwwpzspccrhcfrgcjlfwhlcmzdcltbbpcrzglqgqntpwtmgstqlmcsqqbsqgmsmfznwcrfdgvsmnfqmwtsvqvlhwwjlrlhnsvcnrtwwmrjcgfncvlrcqrllndlvmrjpfjpgrrjcwhsqvlbtnlqgwjjqzwcvtvlnfnmqqshbcnqtcbvnwtwbfdgqmvnpmjhlsfdntfwwntvsrrsmspzqmglfnprjtdbmbgnplzzclsjpnzwdhcbhpfnqrgmgqtpfhgnfbqhrpmznbrshjhntzctslwhtgtjvpqhntmchhtncfjmbzcgnpcbpmldrtnpvrzqfftbjjcjlpwwgvmnstjghftcczjzfsftgzpfhbspqmrbfhcdfmqbrgrbsmjvgpbrnvbblwwvqzzpmqrspzvzppjfbgfftdvsdvmrjzhfslptzmgndnqqgmrrfnbbpvbmvpngwjhzvfbwfnzlrgwffvjsfdldfgchfjmnzfnzhwrwttrzlrhmnwvjjdqfmbpfllhrgmddjgnwjnbqwjnslcrdjrmnldcpsgzjpdhrpdfwhbvwhwnhcsmwcwstvqrcrqsnvjrzljfgbljfszchbsqnldgntvcscwqqmpnlwtlfmswtmvrlpzgbrjhtgjgpnhggnprpvwfqpjffqhtfvpnrptgrtwzzlvplgnfjmqphgmnssccrdndqgpljtwtntshrpgsjcdrpmccjnjdgmpmzbfhqjzphcswtwvvqcrwsjhtdqgrhqjmjjcrblpswcblnpzvfztqtbpgjcgngqmwrjtlmhvlsbmrdzwlgqlfqcqnsnjcnddssqbftjvnlgcwwfcgdpdmqrdsjmcnzrfrpnvjmbsltpzwjhjzqqvbgrltczbgvcpwdzqsvhddsbjgjgcmnldrfhnhddlvjcvsnghprjwlghhtghldcqsdcdgnmbcjglvjjvvlbhzczlmjsdqtdpzdtvfztgsdfjsdtfchvzcgvhjnnncmsrfvvmcsjjdftmlpczgvtwngssqmzlmsrrsrbhhhrnwqhmpcdvqmdsvvtsgsqfdcpgsdgzvmbzpbpgtcbshnvdzlmpnwmqrvnmrjprmvppjwfbjhlhzsfhqqzmpbclqvsvfrcqwprrcvqcbbwvnqfwnrgjhlwmgzpfspqrvqrhmqnwvzjrhvvgdgswlvzjjhjtdctlthlpzqhjvwwbpsclpgflcnsdshrqbhmczcwljqlndfnfrcdgmptpsltrcjccnpdchgnswdcpsslcslcjznzpgfhznhbgqhdqvddmqzdnmpshhdcjrsmfjllhfvjvmzzhzrvlbpzqngwmlwcmqnppqzncvjshfrpjlptvnqfrfcrfnbhwhpdqqvjhsqvsmprtgfrddwzjzlwhhqvjpfrwgwvwpszzsfzwjtwngdjfllhjrmqjtmvwsvggnswpqpjbtcrnhhhlzbrvhjdstnpctjlgsffrrbfdvjzhwsgthgfsqnvqdcjffsttlrjnhtqqdpfqpjtdgfwcdwzmwfvqgglsrmmqwbszclpzwldwcswpwfwldrfmmdndcptjbmnvgcpntqcdrcffvgnlpjmcqjpfmbmwjfpqzbzhqtqbzsghbnfvhphfzzhfznttpfrqwpmzjchpzzrdclhdltlqbjmjdfdjqlqbwptsghcnvtdscwgpqnlhhvsvglplhlrwpnzmdbsbrlhmpczzfz
|
1
day6_test.txt
Normal file
1
day6_test.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
bvwbjplbgvbhsrlpgdmjqwftvncz
|
20
src/day1/main.rs
Normal file
20
src/day1/main.rs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
use base::*;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let lines = read_file("day1.txt");
|
||||||
|
|
||||||
|
let mut sums: Vec<u32> = vec![];
|
||||||
|
lines.split(|line|line.is_empty()).for_each(|sub|
|
||||||
|
sums.push(sub.iter().map(|line|line.parse::<u32>().expect("Error while parsing")).sum())
|
||||||
|
);
|
||||||
|
sums.sort();
|
||||||
|
sums.reverse();
|
||||||
|
let top = &sums[0..=2];
|
||||||
|
|
||||||
|
top.iter().enumerate().for_each(|(index, cal)|
|
||||||
|
println!("{}. with value {cal}", index + 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
let sum = top.iter().sum::<u32>();
|
||||||
|
println!("Sums of top three: {sum}");
|
||||||
|
}
|
140
src/day2/main.rs
Normal file
140
src/day2/main.rs
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
use base::*;
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Clone, Copy)]
|
||||||
|
enum Move {
|
||||||
|
Rock,
|
||||||
|
Paper,
|
||||||
|
Scissors
|
||||||
|
}
|
||||||
|
|
||||||
|
enum GameResult {
|
||||||
|
Win,
|
||||||
|
Draw,
|
||||||
|
Lose
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GameResult {
|
||||||
|
pub fn from_str(c: &str) -> GameResult {
|
||||||
|
return match c {
|
||||||
|
"X" => {GameResult::Lose}
|
||||||
|
"Y" => {GameResult::Draw}
|
||||||
|
"Z" | _ => {GameResult::Win}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Move {
|
||||||
|
pub fn from_str(c: &str) -> Move {
|
||||||
|
return match c {
|
||||||
|
"A" | "X" => {
|
||||||
|
Move::Rock
|
||||||
|
}
|
||||||
|
"B" | "Y" => {
|
||||||
|
Move::Paper
|
||||||
|
}
|
||||||
|
"C" | "Z" | _ => {
|
||||||
|
Move::Scissors
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn score(self) -> u32 {
|
||||||
|
return match self {
|
||||||
|
Move::Rock => {1}
|
||||||
|
Move::Paper => {2}
|
||||||
|
Move::Scissors => {3}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn result(self, other: Move) -> GameResult {
|
||||||
|
if self == other {
|
||||||
|
return GameResult::Draw;
|
||||||
|
}
|
||||||
|
match self {
|
||||||
|
Move::Rock => {
|
||||||
|
if other == Move::Scissors {
|
||||||
|
return GameResult::Win
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Move::Paper => {
|
||||||
|
if other == Move::Rock {
|
||||||
|
return GameResult::Win
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Move::Scissors => {
|
||||||
|
if other == Move::Paper {
|
||||||
|
return GameResult::Win
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GameResult::Lose
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct GameMove(Move, Move);
|
||||||
|
|
||||||
|
impl GameMove {
|
||||||
|
fn calc_score(&self) -> u32 {
|
||||||
|
let result = self.1.result(self.0);
|
||||||
|
let score = self.1.score();
|
||||||
|
return match result {
|
||||||
|
GameResult::Win => {
|
||||||
|
score + 6
|
||||||
|
}
|
||||||
|
GameResult::Draw => {
|
||||||
|
score + 3
|
||||||
|
}
|
||||||
|
GameResult::Lose => {
|
||||||
|
score
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn from_opponent_move(opponent_move: Move, result: GameResult) -> GameMove {
|
||||||
|
return match result {
|
||||||
|
GameResult::Draw => {
|
||||||
|
GameMove(opponent_move, opponent_move)
|
||||||
|
}
|
||||||
|
GameResult::Win => {
|
||||||
|
let our_move = match opponent_move {
|
||||||
|
Move::Rock => {Move::Paper}
|
||||||
|
Move::Paper => {Move::Scissors}
|
||||||
|
Move::Scissors => {Move::Rock}
|
||||||
|
};
|
||||||
|
GameMove(opponent_move, our_move)
|
||||||
|
}
|
||||||
|
GameResult::Lose => {
|
||||||
|
let our_move = match opponent_move {
|
||||||
|
Move::Rock => {Move::Scissors}
|
||||||
|
Move::Paper => {Move::Rock}
|
||||||
|
Move::Scissors => {Move::Paper}
|
||||||
|
};
|
||||||
|
GameMove(opponent_move, our_move)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let lines = read_file("day2.txt");
|
||||||
|
|
||||||
|
let sum = lines.iter().map(|line| {
|
||||||
|
let symbols_per_move = line.split(" ");
|
||||||
|
let mut symbols_iter = symbols_per_move.map(|symbol| Move::from_str(symbol)).take(2);
|
||||||
|
|
||||||
|
GameMove(symbols_iter.next().unwrap(), symbols_iter.next().unwrap())
|
||||||
|
}).map(|game_move|game_move.calc_score()).sum::<u32>();
|
||||||
|
|
||||||
|
println!("Task 1: Got sum: {sum}");
|
||||||
|
|
||||||
|
let sum = lines.iter().map(|line| {
|
||||||
|
let mut symbols_per_move = line.split(" ");
|
||||||
|
|
||||||
|
GameMove::from_opponent_move(Move::from_str(symbols_per_move.next().unwrap()), GameResult::from_str(symbols_per_move.next().unwrap()))
|
||||||
|
}).map(|game_move|game_move.calc_score()).sum::<u32>();
|
||||||
|
|
||||||
|
|
||||||
|
println!("Task 2: Got sum: {sum}");
|
||||||
|
|
||||||
|
}
|
58
src/day3/main.rs
Normal file
58
src/day3/main.rs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
use base::*;
|
||||||
|
|
||||||
|
fn calc_prio(item: char) -> u32{
|
||||||
|
if item.is_lowercase() {
|
||||||
|
item as u32 - ('a' as u32) + 1
|
||||||
|
} else {
|
||||||
|
item as u32 - ('A' as u32) + 27
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let lines = read_file("day3.txt");
|
||||||
|
|
||||||
|
let sum = lines.iter()
|
||||||
|
.map(|line|line.split_at(line.len() / 2))
|
||||||
|
.map(|(first_half, second_half)| {
|
||||||
|
for char_0 in first_half.chars() {
|
||||||
|
for char_1 in second_half.chars() {
|
||||||
|
if char_0 == char_1 {
|
||||||
|
return Some(char_0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None
|
||||||
|
})
|
||||||
|
.map(|item| {
|
||||||
|
match item{
|
||||||
|
None => 0,
|
||||||
|
Some(item) => calc_prio(item)
|
||||||
|
}
|
||||||
|
}).sum::<u32>();
|
||||||
|
|
||||||
|
println!("Task 1: {sum}");
|
||||||
|
|
||||||
|
let sum = lines.chunks_exact(3).map(|chunk| {
|
||||||
|
|
||||||
|
for char_0 in chunk[0].chars() {
|
||||||
|
for char_1 in chunk[1].chars() {
|
||||||
|
if char_0 == char_1 {
|
||||||
|
for char_2 in chunk[2].chars() {
|
||||||
|
if char_1 == char_2 {
|
||||||
|
return Some(char_0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
None
|
||||||
|
}).map(|item|{
|
||||||
|
match item {
|
||||||
|
None => 0,
|
||||||
|
Some(item) => calc_prio(item)
|
||||||
|
}
|
||||||
|
}).sum::<u32>();
|
||||||
|
|
||||||
|
println!("Task 2: {sum}");
|
||||||
|
}
|
68
src/day4/main.rs
Normal file
68
src/day4/main.rs
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
use std::fs::read_to_string;
|
||||||
|
|
||||||
|
struct Range {
|
||||||
|
start: u32,
|
||||||
|
end: u32
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Range {
|
||||||
|
fn new(start: u32 , end: u32) -> Self{
|
||||||
|
Range {start, end}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn contains(&self, number: u32) -> bool {
|
||||||
|
number >= self.start && number <= self.end
|
||||||
|
}
|
||||||
|
|
||||||
|
fn fully_overlap(&self, other: &Range) -> bool {
|
||||||
|
self.contains(other.start) && self.contains(other.end)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn partly_overlap(&self, other: &Range) -> bool {
|
||||||
|
self.contains(other.start) || self.contains(other.end)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let input = read_to_string("day4.txt").unwrap();
|
||||||
|
|
||||||
|
let count = input
|
||||||
|
.split_whitespace()
|
||||||
|
.flat_map(|line| line.split(","))
|
||||||
|
.flat_map(|line_range| line_range.split("-"))
|
||||||
|
.map(|number| number.parse::<u32>().unwrap())
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.chunks_exact(2)
|
||||||
|
.map(|chunk| Range::new(chunk[0], chunk[1]))
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.chunks_exact(2)
|
||||||
|
.filter_map(|range_pair|{
|
||||||
|
if range_pair[0].fully_overlap(&range_pair[1]) || range_pair[1].fully_overlap(&range_pair[0]) {
|
||||||
|
Some(())
|
||||||
|
}
|
||||||
|
else { None }
|
||||||
|
})
|
||||||
|
.count();
|
||||||
|
|
||||||
|
println!("Task1: {count}");
|
||||||
|
|
||||||
|
let count = input
|
||||||
|
.split_whitespace()
|
||||||
|
.flat_map(|line| line.split(","))
|
||||||
|
.flat_map(|line_range| line_range.split("-"))
|
||||||
|
.map(|number| number.parse::<u32>().unwrap())
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.chunks_exact(2)
|
||||||
|
.map(|chunk| Range::new(chunk[0], chunk[1]))
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.chunks_exact(2)
|
||||||
|
.filter_map(|range_pair|{
|
||||||
|
if range_pair[0].partly_overlap(&range_pair[1]) || range_pair[1].partly_overlap(&range_pair[0]) {
|
||||||
|
Some(())
|
||||||
|
}
|
||||||
|
else { None }
|
||||||
|
})
|
||||||
|
.count();
|
||||||
|
|
||||||
|
println!("Task2: {count}");
|
||||||
|
}
|
100
src/day5/main.rs
Normal file
100
src/day5/main.rs
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
use std::collections::HashMap;
|
||||||
|
use base::read_file;
|
||||||
|
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
struct CrateStorage {
|
||||||
|
stacks: HashMap<usize, Vec<char>>
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CrateStorage {
|
||||||
|
fn print_top(&self) {
|
||||||
|
for k in 0..(9 as usize) {
|
||||||
|
match self.stacks.get(&k) {
|
||||||
|
None => {
|
||||||
|
print!(" ")
|
||||||
|
}
|
||||||
|
Some(v) => {
|
||||||
|
print!("{}", v[v.len() - 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct MoveOp {
|
||||||
|
amount: usize,
|
||||||
|
from: usize,
|
||||||
|
to: usize
|
||||||
|
}
|
||||||
|
|
||||||
|
impl MoveOp {
|
||||||
|
fn apply(&self, storge: &mut CrateStorage, task_1 : bool) {
|
||||||
|
if task_1 {
|
||||||
|
for _ in 0..self.amount {
|
||||||
|
let vec = storge.stacks.get_mut(&self.from).unwrap();
|
||||||
|
let element = vec.remove(vec.len() - 1);
|
||||||
|
storge.stacks.get_mut(&self.to).unwrap().push(element);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let mut temp = vec![];
|
||||||
|
for _ in 0..self.amount {
|
||||||
|
let vec = storge.stacks.get_mut(&self.from).unwrap();
|
||||||
|
temp.push(vec.remove(vec.len() - 1));
|
||||||
|
}
|
||||||
|
temp.reverse();
|
||||||
|
for i in 0..self.amount {
|
||||||
|
storge.stacks.get_mut(&self.to).unwrap().push(temp[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dbg!(&storge);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let lines = read_file("day5_test.txt");
|
||||||
|
let mut storage = CrateStorage{
|
||||||
|
stacks: HashMap::new()
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut moves =vec![];
|
||||||
|
|
||||||
|
for line in lines {
|
||||||
|
if line.starts_with("[") {
|
||||||
|
let mut iter = line.chars().enumerate();
|
||||||
|
loop {
|
||||||
|
match iter.next() {
|
||||||
|
Some((idx, char)) => {
|
||||||
|
if char == '[' {
|
||||||
|
let idx = idx / 4;
|
||||||
|
if let Some((_, value)) = iter.next() {
|
||||||
|
let vec = storage.stacks.entry(idx).or_insert_with(|| Vec::new());
|
||||||
|
vec.insert(0, value);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None => break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if line.starts_with("move") {
|
||||||
|
let split = line.split_whitespace().collect::<Vec<_>>();
|
||||||
|
let amount = split[1].parse::<usize>().unwrap();
|
||||||
|
let from = split[3].parse::<usize>().unwrap() - 1;
|
||||||
|
let to = split[5].parse::<usize>().unwrap() - 1;
|
||||||
|
moves.push(MoveOp{amount, from, to});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut storage_task_1 = storage.clone();
|
||||||
|
moves.iter().for_each(|move_op| move_op.apply(&mut storage_task_1, true));
|
||||||
|
storage_task_1.print_top();
|
||||||
|
|
||||||
|
let mut storage_task_2 = storage;
|
||||||
|
moves.iter().for_each(|move_op| move_op.apply(&mut storage_task_2, false));
|
||||||
|
storage_task_2.print_top();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
21
src/day6/main.rs
Normal file
21
src/day6/main.rs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
use std::collections::HashSet;
|
||||||
|
use std::fs::read_to_string;
|
||||||
|
|
||||||
|
fn find_marker(content: &str, size: usize) -> Option<usize> {
|
||||||
|
for (idx, chars) in content.chars().collect::<Vec<_>>().windows(size).enumerate() {
|
||||||
|
let set = chars.iter().map(|char|*char).collect::<HashSet<_>>();
|
||||||
|
if set.len() == size {
|
||||||
|
let idx = idx + size;
|
||||||
|
return Some(idx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let content = read_to_string("day6.txt").unwrap();
|
||||||
|
|
||||||
|
println!("Task 1: {}", find_marker(&content, 4).unwrap());
|
||||||
|
println!("Task 2: {}", find_marker(&content, 14).unwrap());
|
||||||
|
|
||||||
|
}
|
16
src/lib.rs
Normal file
16
src/lib.rs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
use std::fs::File;
|
||||||
|
use std::io::{BufRead, BufReader};
|
||||||
|
|
||||||
|
pub fn read_file(name: &str) -> Vec<String> {
|
||||||
|
let file = File::open(name);
|
||||||
|
|
||||||
|
return match file {
|
||||||
|
Ok(file) => {
|
||||||
|
BufReader::new(file).lines().map(|line|line.ok()).flatten().collect::<Vec<_>>()
|
||||||
|
}
|
||||||
|
Err(_) => {
|
||||||
|
vec![]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user