mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-27 05:40:32 +01:00
Compare commits
12 Commits
2022/day-2
...
eec886b5e2
| Author | SHA1 | Date | |
|---|---|---|---|
| eec886b5e2 | |||
| 45a6c78d77 | |||
| e80b5bde68 | |||
| 1cd5579bf6 | |||
| 7c7c69255d | |||
| 391bba24c5 | |||
| e887a8ad0d | |||
| 38a024d095 | |||
| 6802a7bf33 | |||
| 9d23e80256 | |||
| e1b3b9d179 | |||
| 30d1a16075 |
@@ -8,6 +8,7 @@ edition = "2021"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.66"
|
anyhow = "1.0.66"
|
||||||
clap = { version = "4.0.19", features = ["derive"] }
|
clap = { version = "4.0.19", features = ["derive"] }
|
||||||
|
itertools = "0.10.5"
|
||||||
nom = "7.1.1"
|
nom = "7.1.1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ use criterion::BenchmarkId;
|
|||||||
use criterion::Criterion;
|
use criterion::Criterion;
|
||||||
|
|
||||||
/// Number of days we have an implementation to benchmark
|
/// Number of days we have an implementation to benchmark
|
||||||
const DAYS_IMPLEMENTED: u8 = 2;
|
const DAYS_IMPLEMENTED: u8 = 7;
|
||||||
|
|
||||||
fn read_input(day: u8) -> Vec<u8> {
|
fn read_input(day: u8) -> Vec<u8> {
|
||||||
let input_path = format!("inputs/{:02}.txt", day);
|
let input_path = format!("inputs/{:02}.txt", day);
|
||||||
|
|||||||
300
2022/inputs/03.txt
Normal file
300
2022/inputs/03.txt
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
NJvhJcQWTJWTNTFFMTqqGqfTmB
|
||||||
|
VwVzPldRZVLVRmfsvfjvqfmm
|
||||||
|
ZDPDHZHVcvDhbvnv
|
||||||
|
FHHwHBzzVCWWmmCzCPrVmgBwbLTtRFFbbbttRGRLjTcLpbbT
|
||||||
|
vhZZvdsNSdSMdNvjncppCLcLnGnj
|
||||||
|
CDZZsNZMZqdNSdlNZCqrzPHDzgrgzwVVWwmwwm
|
||||||
|
ndlndntsFJntFvccLjjLrjBShcBBfc
|
||||||
|
GpCGHzVwmmzqQWSSSfWHBhQL
|
||||||
|
mpCMGGCZVzVwGGVwmJsZnFtZnTSTJtdsvl
|
||||||
|
nCnPDGmDNmVCsVQDmGSWqvzchWSjjcWGqS
|
||||||
|
gTnBRLpfTRnrTdZgdLfRdrThvqcvWWhFFWvcFSSgjqqzjv
|
||||||
|
pfZfTMwrbLTTfsbmQtlVtHHnbs
|
||||||
|
wNdSdsbTvTZMTvTv
|
||||||
|
rrdRWdWQhFVdHWBGWQmmmnnMvCfmnhvmCmtZ
|
||||||
|
rJrVDRWpGddpbSlNSlspPP
|
||||||
|
chTNrthMMwWMTjfsmRzZszJpwm
|
||||||
|
BLnFFCngbcBnbbldDlpRjGpmsCzGsGsRGmmG
|
||||||
|
dqvnvlgbqtcPPMhH
|
||||||
|
QcLNqZbCzJDQBJJRpwzRpdnRldgnpf
|
||||||
|
GmmmvVGsHrWffrlwdCWd
|
||||||
|
CMsFVVFjCmFStGQbbLZNBbJBcTjc
|
||||||
|
LQVggbQvcLbQLHgvVLhWGGsChssrMWfzGccc
|
||||||
|
qDnRTTRqJttPfWMChJhGslWlzh
|
||||||
|
qRTRwPBTBtRZdnjnqqqnQVbjbNLFbbfLgVmgHLQm
|
||||||
|
cZbzwCwZPlJcMLrNSNfHWNBBNZ
|
||||||
|
vsQsDCqtsDhmtjVrBNWNjBHrhr
|
||||||
|
TtDTGnvTlgbbRCGg
|
||||||
|
BgBlplHlsgNNsJlVpBtPwJhMPRRQSSttRtSP
|
||||||
|
bvhTnmdFTzddStwStQRddt
|
||||||
|
ZnZDLvnvqZzbbhFzzmTbnFsVjVlNgsCCNVsVLpNWVgsB
|
||||||
|
TdptqrrcVGhhzFtw
|
||||||
|
DRnSfwJlDmmDDVGv
|
||||||
|
RCSQNSCQZndwbcMqQrBB
|
||||||
|
wvRlrlwVwwqzgbZRdCJBWfmdzCWfBdhf
|
||||||
|
cFcsQpNtLLsGTtNGpMdPmDdPBmmBvJPWvDtC
|
||||||
|
TpjssTFFvLLLcFFQpwbwwHngjHRrZRqZVH
|
||||||
|
mqqddrPPcPmqPDlrQnjTrbvMvbHzzsjjpTvz
|
||||||
|
gtBWgGgVhLGWHzMDztzstDHj
|
||||||
|
hfWRhBBNBGgLNQDPwdNPcPdw
|
||||||
|
LhQzdhhbTzpMhddhhhTzhnZcBFllHZFtrrHZHMHFjlHr
|
||||||
|
mwwssqDvjptrvplr
|
||||||
|
NCSgVDPDwmDgVJVpLfTznQJdhfLhnhQQ
|
||||||
|
GzjzDhjhhZzcrRgQCBjBPBBjQCgT
|
||||||
|
vHHHmntsbSgLwbsSmNHbwNbvpqPCBVppCpFTpTPTBtqWBCqV
|
||||||
|
NJbwNSwdndvmvwhGhgzcfMcDJfgJ
|
||||||
|
GncgDvvcMGnttjDvrgRRFSZZLZFWdJFJwGQwZBWZ
|
||||||
|
bPqpChPfsshfZZBdZdLTFZ
|
||||||
|
lNqqsClmbsNlPbHqPsmblmsrHdvdMngcVrjggvrvggRDcn
|
||||||
|
bDvtgVVVpMQvjQWmQL
|
||||||
|
rwTflmlfZJBBdQWQWjQqdM
|
||||||
|
HsJJmZZwscHrwTrcRbzpcbPgtCSbgz
|
||||||
|
CsCsRvshMjpbqCqf
|
||||||
|
ncblgDBgtDmmmTlBgwlgbHHqMFHLqPDMHPHHpqWfFM
|
||||||
|
TcBctSmTZTtSTzsZvsvJZRsGVb
|
||||||
|
znznvngttwltzlLwhtThHbqHPvNbNHSSHmmNWHjP
|
||||||
|
FBcLrRMFQpPqpPSpqHHW
|
||||||
|
fRQMJZJfrcMcMVrQJJftnwCzVCltgTnstTVnVL
|
||||||
|
MfLlRfCMrLzRlQgwNqQFcsGd
|
||||||
|
jtTjjBTvbdqcGjqFcj
|
||||||
|
vvShDSBDppzhCmzq
|
||||||
|
plWMptTvfrnncvcRfwqzqLGhzhzThNzNNJqD
|
||||||
|
jSdSHFPQQbdPCQCssjSbBmhJGNZZNGNqqJNBlJqqLh
|
||||||
|
VCCCVCQgjdddjCgljCjbbwgRRttgrpftfWrgvpwpnf
|
||||||
|
MWlbBcPjjvvjPWWMPqgRQZfJZDGGbRZJffQQwh
|
||||||
|
HrHrnncHpzrJQJfVDQVR
|
||||||
|
zzsSTtSTLzsspSdtTmHHmpmtFgqcgPlgFqWBqqqBMdWWvFlg
|
||||||
|
nSqBbJbqlnBBClVZcMgZVgcP
|
||||||
|
FQwrwHrRwWWFBRPNgNgcCGZZZC
|
||||||
|
rWFWFTwpwwWzHrnDbfJDLDbBBbbz
|
||||||
|
BMmNtLMMtFCNFNMvvLmcndpgcdgppPrgrGPPrgJD
|
||||||
|
WVWWhbTtVnGpjrrPhr
|
||||||
|
HWssSTHWfRHRsQQFLvfvFFCLCNMNlt
|
||||||
|
sTmDsQffVrrLCjTFltTFWL
|
||||||
|
BnwwQBJbJndMMRzMwCLlWlLWWCWLLtRlWF
|
||||||
|
cqqBMcMqwnznMGzcvDmQhrvssHmPDVssrP
|
||||||
|
pQGQGJDDrDVJbbfVzvvgPcCZwhZhncscZWWc
|
||||||
|
SqMMlBBljMmRlchhPTqThCZnPs
|
||||||
|
FMjMBmjRNFHQJJpHVhVDhG
|
||||||
|
tHNNdBdNtBBBMgsMpsZm
|
||||||
|
wVPzVvbwqzhrVqvjqzzsZpDsZDsZmsCPCgZgCM
|
||||||
|
bVbvLThvvbrWqHmmnJLdHdJQLn
|
||||||
|
PzTspPZpdLLDZTplPLpPDpvbfhnqNvqzfvNMzQQfNwnQ
|
||||||
|
GWRHmjmFWMMSnhbhHw
|
||||||
|
JWWcmtBrBtWBFWGJpsgTgldhLVLpJl
|
||||||
|
DwLMDzLMhvMcwvgdVqWWlCVgvlqF
|
||||||
|
TTSBBRpbStHZVgjWFldjRVlV
|
||||||
|
SnbTBdJBmnpQzMPDMcMznr
|
||||||
|
nNlMNBPPNtJQnbZhZsgSbh
|
||||||
|
czzCjcwTdvSbgQNcgNQq
|
||||||
|
VTdNdGDTzDTdlFFPtBrtLtDr
|
||||||
|
FMbbfMlzvFsmgVZmmg
|
||||||
|
SrNTHGmdSQDqLhtQhhgggs
|
||||||
|
dRDTSDPPcHRdHGDHlwJBbmwljmMcfjbW
|
||||||
|
sQgWLtqLtWhdqlpNZRpG
|
||||||
|
blTHTjlvTCJnJvRZdGGhHHGZhFGV
|
||||||
|
CCDlJclnCmbrmBMgcwcLWtcBsB
|
||||||
|
vqPWWvqwwCFvFZfZPRFRrcGQrQwsDrNcrwnbDNcQ
|
||||||
|
LVgJLSBBVtzTLzBMmTMJmLnnDNQcrsGbsQbNbrbDjs
|
||||||
|
zggVSmmhVdfqFhvHWG
|
||||||
|
WwdndGGmmmLwwwmRwWSncLRnZqZqhqZthBtqtBqZBgtdtvMH
|
||||||
|
FfHHzlQQDsFzzrNsVTfttZvTvttTqqtbqb
|
||||||
|
lQjFDNQFPjCsVCCDjGCwwSGGnccwcHppGp
|
||||||
|
mrjggcFsFMjdjZRpSZpn
|
||||||
|
NCqfLCFNbQPzPPlPzNfSRTRZdSdWWwndpqRSSd
|
||||||
|
vDvzzbPQFNCFtllLLNMBhMcDHGBGMggMmcBc
|
||||||
|
jhjlBvvnjbtDNPjtSjBDBbDNgHggrQrhghRQrqRrZcRwwqVg
|
||||||
|
pLdTMsWdLLmpMdqZZdPdVqZgHPwH
|
||||||
|
WLTCGmMLfPSlbGjlnnJD
|
||||||
|
gtbwhgHbHgqqbgQthgQLtZZCRjMcjjnRnrRNJmMRJrNhRc
|
||||||
|
bGWVTTvDvfpVFFBpvvVTdRDMJcrccCrJnMRnNnNCcc
|
||||||
|
FVWTBsdvdTzTBFWssVQtLgSQtHqqPzPbqHbw
|
||||||
|
dlzrPTSSjSrllzWhsvVmVtTRTWtf
|
||||||
|
bJMpLGcqGhNbJQttVQmmvRWWsp
|
||||||
|
qLbMwqqbGHFGzrlZrjhPHCrj
|
||||||
|
rNrrffVlqqrfLlPpltcBBTTGRzzZRPRsBTcJ
|
||||||
|
msbsmWSsMmQwjdMbWMhMhQmcRZRzGjTBGTBcBJBjCHJGcC
|
||||||
|
FwWbvdhbmrsFrfrgsN
|
||||||
|
rHjrQHdhdQrvSddcHWLssBSVVpBSWWWWWf
|
||||||
|
JNfTGtqDwVWBMBMpwM
|
||||||
|
qlltZgfJFvcRgcRjvc
|
||||||
|
CqfcwfDqwwmRnnqmRdNRBTRTRrdGdNpTvF
|
||||||
|
WVbzsZszBbrsvpdMpdQM
|
||||||
|
tJhbVZHWLLHDgnSwnSSgHB
|
||||||
|
TZCqqlTsqpZVVsZQJSBSLpLmppnJzmFz
|
||||||
|
brSgNtGjjRjRRjDddDtrRJcJJbJmmwcmBmnPcJFwFB
|
||||||
|
jgdRtMjNNjfqlMvShvSZSZ
|
||||||
|
dJTdqCwMNCgqTQllGBdlGBmmmZ
|
||||||
|
fcVfVcnbVfrwDLWVfncZBQPlBHRGljLZQjHGQl
|
||||||
|
brwnnfSFDvfzCTqFzgMJTh
|
||||||
|
njnsPBjjsrrnGLnbTTjGvcldQPCMllNzMvRQPCdd
|
||||||
|
ggZgfZtmZVpqZqZWDgFmgqfCcQRcRcWhQcccQddMcvRQdQ
|
||||||
|
tfqgggVgHpDwDtfwbGLJRjbLjsrLTj
|
||||||
|
JmrfrmTlDWTfgQCdHCdpqBvQdD
|
||||||
|
jsZtVzNsSNVQQHnBlVQR
|
||||||
|
PljljFjPljSsLPtFLTTgTcFrrfMJmrrmrr
|
||||||
|
hmGcmmndhmGnfmtGnDzFLwrFJQsQFzNFrNJG
|
||||||
|
ZSqPlSWcWlbgqWVTVWRVZPrjQqjzjFNJzLsNJsLJNqNL
|
||||||
|
RHcWTZbSMMMPgZcWgSWPPbVMDnBffmtdpDBddfnnvmCdfC
|
||||||
|
vSJvsbFfJfvqCsTHJswssJnLTZjjhzrrzLrzLMrzhdjM
|
||||||
|
pBNQDPcpmWDcBNgMMnZPVjdddnndhH
|
||||||
|
QWlDgmpmgDBlGRgDDgffSqwSwGCwHfvqwSFJ
|
||||||
|
jvlgvMJclPdGdtdcjMVmMHbFHFVHWHbZHZ
|
||||||
|
CwhLzLhzQpnqfpfqDVHCHbsbDFZDmHmj
|
||||||
|
LnBzfQjSzQrPvJvdSSrr
|
||||||
|
wpcvcsqclDCnVCVvWfnZ
|
||||||
|
BLRMRtbnbbBLNCjNCjVVZhbC
|
||||||
|
rFgMPSRnrRpmqpJwqFDs
|
||||||
|
LZQNQbMrZppLNLQplvlGLNvVmmmfjbwVCfjbwJwCmBCwfj
|
||||||
|
ShTPRFtTHZPCsnwswsFwCF
|
||||||
|
WtHRPdThSqZTRtDqtdRWTdpGDLLzrNczvzMGLlQLGDDM
|
||||||
|
hdcffBvldjhCMljqPwWwWNwWdwqHZr
|
||||||
|
LtQmbQRVsZQZMZPQSN
|
||||||
|
tmMRsJMpDhjJzJhv
|
||||||
|
wNQCMFCDQDBmrHmmRWrrHN
|
||||||
|
SShLnfqpcqpSZSfrzJvRVrvfrrJH
|
||||||
|
cRpqdGclpScltTQQtsFQMQsTCT
|
||||||
|
NCjggZmgfBgnBmgWbcwcTFctcWWfvb
|
||||||
|
HsDGthRGrtppSQpbFFJTVcJdFbTRvd
|
||||||
|
rPDGhDDrSzZLtzBLZMCB
|
||||||
|
RsBBMBsCBlFFCgRsBJzlMjMPNSdPhSrSrzLbmSDrDNmDSd
|
||||||
|
pZHZZJpGHHHpTTHvTncZqVLdqLbhLrDLdhrSLLbLDDdD
|
||||||
|
tGtwnJccvCtCffMBgt
|
||||||
|
wbddvVjfwPhbjjbDbbvbjvTNCNmfHZfpCZRJNzCmJmnJNC
|
||||||
|
BslcLtclZWsZJWNrRRNRpRmR
|
||||||
|
BSLBlScGtFMcssMBBFGLlQZTDZQjPddVwwbTdvvdhTZb
|
||||||
|
NSZHzmLZBnzHmLLzLSntDttDDtddhDtttDWW
|
||||||
|
QgfjsrrvNNJwtMddcvcvtq
|
||||||
|
jrfgfQpQrTTVLSNBClFV
|
||||||
|
GQWcWWPPQRcrJQNDdRcDmmLCFSnqNSmqhCNvFnql
|
||||||
|
zHfwjzpMjwZmCLqvvnlljC
|
||||||
|
ZgtVZBtHHZtgQGgPrbPRJdPv
|
||||||
|
TWdWpJTJTdgLWfWLlLFLrfrgBGsNqhGslBGHqSNqqBNshnws
|
||||||
|
ZpQmjzbZZCjZCCCPZtttRCCwsBnHNssBHbShsshHqsGBqN
|
||||||
|
RDRRPpPCzmZCtRpVVJFrfTfWFLLJggJrDv
|
||||||
|
pDDFlglsvFMgntlTMMqNffmTdfddRM
|
||||||
|
jhGJLVCHQpHGQCCzLjWdTTdZZdNdcRWNccWfNN
|
||||||
|
jQjSGjrjCQLhzVSLSCSHGDpngbrnDFtFBwBglBnBvg
|
||||||
|
wsLzstsgszcpcGLHGpcgcghlDBvQvjQvbFbQCbJBtCCJJv
|
||||||
|
mnSqRSSqSRThWRnmWWRSJDFTFCFCblbBCFQFCjFj
|
||||||
|
rZRRWqSSdZZfMVnZLspPsMgHpzMhHGPg
|
||||||
|
mwHrCLSWWwrsHCHDDsVrsmhfFZFnSSBlFlgZbbgBglbggj
|
||||||
|
GJdpcRtGJvNRdcPtdpJJdbQZfjfQBlnQBjnBtbfFnB
|
||||||
|
qcPpqqzFzJqvPVCCmWrVwhrWrz
|
||||||
|
jjMbvbhDvnRjNRGMmjbMZftSSwwwthJSffStctcwqd
|
||||||
|
lTQrVlpCVvCcfdcSJqLVcw
|
||||||
|
srHFWCHrFlrHlrsBsprljjRmDZZnmbDngNBgbNZv
|
||||||
|
MgTlQJlTQJZWpgLrRssrVqqqpRts
|
||||||
|
bBNbbzSSjMBPjzhMjsPtRVVRVPRqLttGGs
|
||||||
|
SjHBbfjNCDfjZgTlZdMJnDJW
|
||||||
|
lpThgTwtplhghgwhThqnnrdZctSZSjSZcRSRfbdrrc
|
||||||
|
RBVBGvmBmfdrcvrbbr
|
||||||
|
PmVGNGmmGRLLQwwLqTnglQ
|
||||||
|
nHwnBwBTnFHQwRsMhwghmzcm
|
||||||
|
GtprdCpdtqWdbqbrfdnPPszsWmRzRnShPszS
|
||||||
|
dGptbCfCrlnVDBJNLDLLVDLQ
|
||||||
|
CZtCjhTndCzqbCNq
|
||||||
|
dwpGvpsmwGslDszrNNrzqDMzWMgJ
|
||||||
|
vmcGccvpBVPTVTjTdTTTdZ
|
||||||
|
jWZhvZLjZfCZDwrDrSSzJGhVdJccscGsgV
|
||||||
|
blMBlRqqqgSJLBLcsJ
|
||||||
|
blmHLmFMMMnRqLmMMFqHmfPDfjQDnCDDQrZvfCjvDr
|
||||||
|
rnvnHrDLFZmMFLvrHQBMGQggBztzglplRl
|
||||||
|
sbWWhdNzsshsfhcsjJJPPbWdtQGVGllRTRjRRgBgQlpRlppB
|
||||||
|
PPCCwNWhPhNfWCzbqmFnDFFnCDLSrvZS
|
||||||
|
GChNjwWlWJWTJZBggvdgnQgdhdnd
|
||||||
|
HPsHfHHrpHDpFFrcSfsfpCMmQdntLBMgtmtBgDdLLC
|
||||||
|
SqpPscpPzpSWzjlCjjCGjl
|
||||||
|
nvgLvcLgvgvngbLprpJNTDCCRNVJrNPlDDTV
|
||||||
|
WZsMtsffGQtMzWFqFmWmWsVNJNlDwwCDVRTwJlCCDVLz
|
||||||
|
BQfGZGmmsMWFstWFmfMsfBccdncbpbSbvbbvHnLbpc
|
||||||
|
tsmDsvswNZmcZTccfh
|
||||||
|
zCTpGCbWBRWFWHGRFZJbMbJfnrhnhfMnnZ
|
||||||
|
TzFGFBRLdpHHNNQddDQDvwQN
|
||||||
|
fhBBpJgdHddjZQfmVmNzNNLmFN
|
||||||
|
qvMRrvlbwqlbTTMBMvLssFNmVzzwFDmLLzVD
|
||||||
|
TRSRWqRRMcBHhGHcdGgPGp
|
||||||
|
lSjHmtmnpHStblnpSlHSrtmMzLWzqzqCZDDTzTTWqMFqCqVV
|
||||||
|
sLRLLfPPRQfCTqqVVqFT
|
||||||
|
dNJgRPNQNsJJhBRvdJvQvNNsjSrrSmrcctpbpHtBrBjLjmSH
|
||||||
|
nwFwpppjfwSlpLTsqsTgNshhjM
|
||||||
|
ccBRGvtsmgGNPqNNGP
|
||||||
|
BCcJHvssdcWBCVmVHSSrZrwVzblpwbzZnf
|
||||||
|
rcfQRrBPPczjcRBctZDNlnVNHbgZGjVDjN
|
||||||
|
TvMsFJGSFMhJnNZlwVVnDNTZ
|
||||||
|
qhSqqmqLCLhFdJLqSvLhmQRQRWcRPczPtzrCrWGRBp
|
||||||
|
JVhdPhsFPFqLDBHVdHLPvhHDCMwcgJJwbwRgnnCMbwGwcmGC
|
||||||
|
fzjzpTZTQQQLwCbgGgbMmQcR
|
||||||
|
jzNpTzfSZtfNSWZlVVtdFFFDHHqLHVqv
|
||||||
|
TwSNnSnSGVTpNppGlPTlTcVqQrRhVBqdqBRqZqQZqQ
|
||||||
|
DcDCMfDbCMHJdrRBqbdjRBRZ
|
||||||
|
gvftMCJHcHfCDmDLgfMmMmmWlwWnWsTTwlGTlWTwppNlGL
|
||||||
|
pbGMbllDQPhhWWQDpPgVGlMCvRRrQLcCCcfBBQzLBcvQBv
|
||||||
|
wqnJjSmjrstdqwwFBLcRsBRRszzLFC
|
||||||
|
qwdddTJTdHtjndqJqHZHmwVWGpDbGTlbWWpWWrPGhhhM
|
||||||
|
WGllqLjjLCpSffmBmvfpHs
|
||||||
|
dnrQwZzRTdZwnCThdzzFTVmcBHBJBmsHfBPHcfvcSVHs
|
||||||
|
QgQrzCdrTRCZzrZLbjGLqNMWGgNNLt
|
||||||
|
sgPnhPPTTPTTwlJfwNHlqcfs
|
||||||
|
LMCpFbLLbRpMGbMcCFLVlNlNqrHqVfbHHwNDwr
|
||||||
|
GjBcCCtWMtMRZTSvgWQTngvg
|
||||||
|
BCMtJJMpRDlMMvBJBBnfjtcjPhPmZgnhgdcf
|
||||||
|
NrsrsqFNvrVLVGVrsHsqFgfmcPGdcmhfjdPgfjcnZd
|
||||||
|
zFTzsNqHqFssLVLQqNTFbsBDwCCwvWlDwRMRCTRBDMDS
|
||||||
|
zQtLgvggSRtgvVRtLvvnzdnjnGwGdmmrlpnlGz
|
||||||
|
JssBFpqsDqPNnlWWjrrjqrnj
|
||||||
|
DHDFBNDfPbJBsFHNMPvpvStQvMRVTtgVTVtv
|
||||||
|
FvzttFvBTJJzLbvwhCnnVnWwjCnBNC
|
||||||
|
mQdZgZPDPdPPSsMSQPdZgCwVGmnwnWpGnGhqNWjWCG
|
||||||
|
ggdDgfQSdcjtFHjlLJfF
|
||||||
|
ghcgScNNSsCvGSzmpVFlZbrzcFcV
|
||||||
|
MWWRLRqqqdQwTtLjjmqMlFpFlzVnbFVDwplFzlDr
|
||||||
|
LHMHqdHWjdQMdMtLHHLtWjJRsGCGSNghmSvPBJBNhsGfvfGP
|
||||||
|
CbVqqqDbcbMHnnDqcCbrRFCfBvvwGjzrBwQGzrwwBjGwBQ
|
||||||
|
sTPmpNWdWPTJssSSLPfNljjBvflGtjwwBzMG
|
||||||
|
mmWgmgSZLTLMZWpnhqZbhFFCnhqnnn
|
||||||
|
QQmjmZqnmQrfTZlbbcVbBcfbHfzf
|
||||||
|
vpdSNShNppFdSRtdGBqvJBDlDzqbPPHVBH
|
||||||
|
tRNSNRFhNpSRhFRMFtGhRGswLZZsZqWnmrmZwqwsTZmmmQ
|
||||||
|
gGWCllFCGWtGGWdlGlWNZdwpnnSbwpMvpphZpndn
|
||||||
|
RsshDDLcQVMSJQwJwnvw
|
||||||
|
HVPzrPcDNhPFGhPC
|
||||||
|
jtHQGHjGGtdTLjnqTQlmvRPRPBBwRBnFPPWP
|
||||||
|
hZbzNzVrczZzcbNssVspZZVvBwbmPmJPWmvbBRvPlmvRJF
|
||||||
|
fzNVDsZMhzpVhpVhlZcMNfcDDdQTLTjGDTCqGCjtSQHdHL
|
||||||
|
GrbFggGrTrzSrgfwJjdTmwmNJZJd
|
||||||
|
VMPQplPDptchwdsjmlml
|
||||||
|
MqMWtBDPPWDWHQtvqQtWPjbzCGLgSBgGbzgrzFgnnz
|
||||||
|
fcJccCcwcDfcpbRnCfWJnQJqtqtqPQdsGdgPsgTQqg
|
||||||
|
LSjVMhzSFFrljdNbltNGtgdqQq
|
||||||
|
MMhSHFFMLzBWDcHHcfcHwb
|
||||||
|
rwmWtJWMwSNRJMtwNmMrrSsmtTjjlgqnTqZZZPlHnTngTTgn
|
||||||
|
BGqGqqFBFggjjdGHlj
|
||||||
|
QDhhLbDQCDFMNcmhRhqJNW
|
||||||
|
BnRnRvMnLGLSCHvvSnlRfWbbTNQJsJsbNbJTBfQT
|
||||||
|
tzMmmMwjhcpFjDmMcptrcjzFQggfQPTsWsfgNbbgfhJbPhQT
|
||||||
|
FdzcrtDwDMtcwtFGRZdRLvdnHRSZZv
|
||||||
|
HVpsSpvjpNjsBmbGFBnMNnDM
|
||||||
|
WRRWhZtfrVtLJrBZMnDmDbnZBTGF
|
||||||
|
thhPLzWzhzwPtLRLWrQlpPvvClcVcCppSvpl
|
||||||
|
lZPbhnZLRPnnPZZPdlGMBWcBMgMQHBBcvvvzBL
|
||||||
|
jpFjmwwwCDDbsjvjjgcvQgcNBQ
|
||||||
|
rbFmppbwhqhGRGZr
|
||||||
|
ggrLwFgWCBwbMWBbFwLMgNBZdmZHclJPllnJlNRPmSNZRR
|
||||||
|
ppszzDfhDfhsqpnvDVTfGpSPlPmclHcdRcZmmmdPPGSP
|
||||||
|
pvtDDVDVpqDfzDfngBLCwQrgCtCwFwrg
|
||||||
|
pbGjFFGGDjpbsGsmNhNFNRBBBtRhhhHv
|
||||||
|
JnczJVCvwWJvhPgghgNtNtNJ
|
||||||
|
nwVSSzdzzqSpvQSZQG
|
||||||
|
mssLLttQrsMrMzLCRmMmrrSQpvWpDNlBTBDlvNTccDQl
|
||||||
|
HdHJwJqVPwHnqJwbjJbGjnSgSTWPpNgWWpgBBgcvDWWN
|
||||||
|
ZHVwVZGwwdndqJVJqfHbGwnwrRLtLMftMvMMRrhmLMthhLmz
|
||||||
|
RgHGLbTqlZlPRZPHfvvfZttJnvfvjnzr
|
||||||
|
sVcChDVDccwNhhvjTvVzWJjnzFff
|
||||||
|
mpNcCMTCGmLqBLGH
|
||||||
|
wVJwHJHVMtMpBmDDWPQVPWDGDD
|
||||||
|
zCrlZzCblBvnCDWNGLmvGDLPNG
|
||||||
|
dqZglgbzrzbbgZqzTFSBHHFJSSSfjjSMfwhj
|
||||||
|
NMWJSjLMCnHHNMNNHWCHMbVVGBPZTrPVPBVDrBSDGTTr
|
||||||
|
zvttlFpgdtldwwvftPDPTWQdBZrsrWrGBZ
|
||||||
|
hFlFmhRFvfCbmWJWHcnj
|
||||||
1000
2022/inputs/04.txt
Normal file
1000
2022/inputs/04.txt
Normal file
File diff suppressed because it is too large
Load Diff
514
2022/inputs/05.txt
Normal file
514
2022/inputs/05.txt
Normal file
@@ -0,0 +1,514 @@
|
|||||||
|
[G] [D] [Q]
|
||||||
|
[P] [T] [L] [M] [Z]
|
||||||
|
[Z] [Z] [C] [Z] [G] [W]
|
||||||
|
[M] [B] [F] [P] [C] [H] [N]
|
||||||
|
[T] [S] [R] [H] [W] [R] [L] [W]
|
||||||
|
[R] [T] [Q] [Z] [R] [S] [Z] [F] [P]
|
||||||
|
[C] [N] [H] [R] [N] [H] [D] [J] [Q]
|
||||||
|
[N] [D] [M] [G] [Z] [F] [W] [S] [S]
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
move 7 from 6 to 8
|
||||||
|
move 5 from 2 to 6
|
||||||
|
move 2 from 4 to 1
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 5 from 7 to 6
|
||||||
|
move 7 from 6 to 3
|
||||||
|
move 5 from 9 to 2
|
||||||
|
move 6 from 2 to 3
|
||||||
|
move 2 from 7 to 9
|
||||||
|
move 20 from 3 to 1
|
||||||
|
move 11 from 1 to 6
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 3 from 8 to 2
|
||||||
|
move 8 from 1 to 5
|
||||||
|
move 10 from 8 to 4
|
||||||
|
move 7 from 6 to 4
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 8 from 1 to 7
|
||||||
|
move 16 from 4 to 8
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 4 from 7 to 4
|
||||||
|
move 5 from 6 to 7
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 8 from 7 to 4
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 12 from 4 to 5
|
||||||
|
move 3 from 2 to 5
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 4 from 5 to 7
|
||||||
|
move 5 from 5 to 7
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 3 from 1 to 8
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 2 from 2 to 1
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 8 from 8 to 1
|
||||||
|
move 3 from 5 to 2
|
||||||
|
move 8 from 7 to 5
|
||||||
|
move 7 from 1 to 3
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 7 from 5 to 8
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 13 from 8 to 1
|
||||||
|
move 13 from 5 to 9
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 7 from 9 to 3
|
||||||
|
move 12 from 8 to 3
|
||||||
|
move 4 from 9 to 3
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 2 from 2 to 3
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 7 from 7 to 4
|
||||||
|
move 10 from 1 to 8
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 3 from 8 to 9
|
||||||
|
move 5 from 4 to 3
|
||||||
|
move 4 from 4 to 1
|
||||||
|
move 7 from 1 to 6
|
||||||
|
move 2 from 5 to 7
|
||||||
|
move 35 from 3 to 4
|
||||||
|
move 4 from 9 to 1
|
||||||
|
move 19 from 4 to 8
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 10 from 4 to 5
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 3 from 4 to 3
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 4 from 8 to 6
|
||||||
|
move 4 from 5 to 2
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 3 from 5 to 9
|
||||||
|
move 12 from 6 to 1
|
||||||
|
move 8 from 8 to 6
|
||||||
|
move 2 from 9 to 1
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 3 from 7 to 8
|
||||||
|
move 2 from 9 to 7
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 10 from 6 to 8
|
||||||
|
move 4 from 2 to 5
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 7 from 5 to 7
|
||||||
|
move 13 from 8 to 1
|
||||||
|
move 29 from 1 to 4
|
||||||
|
move 8 from 7 to 8
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 3 from 7 to 6
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 15 from 4 to 1
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 10 from 1 to 6
|
||||||
|
move 10 from 6 to 7
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 6 from 7 to 8
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 5 from 6 to 5
|
||||||
|
move 21 from 8 to 9
|
||||||
|
move 5 from 1 to 9
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 3 from 5 to 6
|
||||||
|
move 3 from 7 to 9
|
||||||
|
move 4 from 4 to 6
|
||||||
|
move 6 from 8 to 7
|
||||||
|
move 6 from 6 to 3
|
||||||
|
move 2 from 7 to 9
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 6 from 3 to 2
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 4 from 5 to 9
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 9 from 4 to 6
|
||||||
|
move 7 from 6 to 4
|
||||||
|
move 10 from 9 to 2
|
||||||
|
move 5 from 7 to 5
|
||||||
|
move 10 from 2 to 7
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 4 from 9 to 4
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 7 from 7 to 2
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 3 from 6 to 2
|
||||||
|
move 4 from 4 to 5
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 10 from 4 to 7
|
||||||
|
move 3 from 7 to 3
|
||||||
|
move 17 from 9 to 4
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 5 from 2 to 7
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 5 from 4 to 8
|
||||||
|
move 2 from 9 to 7
|
||||||
|
move 4 from 8 to 1
|
||||||
|
move 3 from 4 to 8
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 6 from 4 to 8
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 3 from 1 to 9
|
||||||
|
move 4 from 8 to 5
|
||||||
|
move 2 from 9 to 8
|
||||||
|
move 4 from 2 to 5
|
||||||
|
move 8 from 7 to 2
|
||||||
|
move 5 from 8 to 5
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 2 from 3 to 6
|
||||||
|
move 5 from 2 to 8
|
||||||
|
move 4 from 7 to 1
|
||||||
|
move 7 from 8 to 5
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 3 from 8 to 3
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 7 from 2 to 3
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 3 from 2 to 3
|
||||||
|
move 3 from 5 to 2
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 3 from 3 to 2
|
||||||
|
move 5 from 2 to 1
|
||||||
|
move 17 from 5 to 8
|
||||||
|
move 9 from 8 to 1
|
||||||
|
move 11 from 3 to 5
|
||||||
|
move 8 from 8 to 5
|
||||||
|
move 2 from 8 to 5
|
||||||
|
move 16 from 1 to 4
|
||||||
|
move 13 from 4 to 7
|
||||||
|
move 6 from 5 to 2
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 5 from 7 to 9
|
||||||
|
move 2 from 1 to 2
|
||||||
|
move 7 from 7 to 1
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 7 from 2 to 8
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 2 from 9 to 4
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 2 from 9 to 8
|
||||||
|
move 11 from 8 to 7
|
||||||
|
move 2 from 6 to 5
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 2 from 3 to 9
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 5 from 5 to 1
|
||||||
|
move 19 from 5 to 6
|
||||||
|
move 5 from 1 to 4
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 7 from 5 to 8
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 8 from 7 to 3
|
||||||
|
move 7 from 4 to 8
|
||||||
|
move 3 from 8 to 5
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 2 from 8 to 2
|
||||||
|
move 7 from 8 to 1
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 3 from 6 to 9
|
||||||
|
move 2 from 3 to 2
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 2 from 9 to 6
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 3 from 2 to 5
|
||||||
|
move 7 from 1 to 3
|
||||||
|
move 10 from 3 to 4
|
||||||
|
move 3 from 5 to 4
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 3 from 3 to 2
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 3 from 8 to 3
|
||||||
|
move 5 from 4 to 6
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 4 from 6 to 4
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 4 from 3 to 4
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 12 from 7 to 6
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 23 from 6 to 3
|
||||||
|
move 14 from 3 to 6
|
||||||
|
move 15 from 4 to 6
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 10 from 3 to 7
|
||||||
|
move 2 from 4 to 2
|
||||||
|
move 11 from 7 to 8
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 44 from 6 to 9
|
||||||
|
move 21 from 9 to 3
|
||||||
|
move 12 from 3 to 6
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 9 from 3 to 2
|
||||||
|
move 2 from 8 to 6
|
||||||
|
move 3 from 2 to 4
|
||||||
|
move 17 from 9 to 1
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 2 from 2 to 9
|
||||||
|
move 4 from 9 to 2
|
||||||
|
move 10 from 6 to 9
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 4 from 9 to 5
|
||||||
|
move 4 from 2 to 4
|
||||||
|
move 14 from 1 to 5
|
||||||
|
move 4 from 4 to 3
|
||||||
|
move 3 from 2 to 9
|
||||||
|
move 9 from 9 to 7
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 9 from 8 to 5
|
||||||
|
move 8 from 7 to 2
|
||||||
|
move 4 from 3 to 8
|
||||||
|
move 5 from 6 to 2
|
||||||
|
move 3 from 1 to 6
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 4 from 2 to 4
|
||||||
|
move 3 from 6 to 4
|
||||||
|
move 3 from 8 to 3
|
||||||
|
move 13 from 5 to 2
|
||||||
|
move 2 from 3 to 5
|
||||||
|
move 12 from 5 to 9
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 4 from 9 to 5
|
||||||
|
move 6 from 4 to 5
|
||||||
|
move 12 from 9 to 7
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 12 from 5 to 6
|
||||||
|
move 12 from 7 to 2
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 33 from 2 to 8
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 4 from 5 to 4
|
||||||
|
move 3 from 2 to 5
|
||||||
|
move 34 from 8 to 6
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 3 from 4 to 9
|
||||||
|
move 2 from 9 to 7
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 2 from 8 to 5
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 4 from 6 to 2
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 29 from 6 to 7
|
||||||
|
move 4 from 2 to 3
|
||||||
|
move 2 from 5 to 8
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 2 from 8 to 1
|
||||||
|
move 23 from 7 to 5
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 23 from 5 to 6
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 4 from 5 to 9
|
||||||
|
move 2 from 1 to 3
|
||||||
|
move 5 from 3 to 8
|
||||||
|
move 2 from 6 to 5
|
||||||
|
move 2 from 1 to 4
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 6 from 7 to 8
|
||||||
|
move 2 from 9 to 2
|
||||||
|
move 18 from 6 to 5
|
||||||
|
move 21 from 6 to 4
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 2 from 6 to 7
|
||||||
|
move 2 from 7 to 9
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 7 from 4 to 3
|
||||||
|
move 12 from 5 to 3
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 6 from 5 to 2
|
||||||
|
move 17 from 3 to 4
|
||||||
|
move 3 from 4 to 3
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 5 from 2 to 8
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 19 from 8 to 7
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 15 from 4 to 6
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 3 from 3 to 5
|
||||||
|
move 4 from 6 to 7
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 10 from 6 to 7
|
||||||
|
move 16 from 4 to 5
|
||||||
|
move 24 from 7 to 2
|
||||||
|
move 8 from 7 to 8
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 6 from 8 to 7
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 14 from 5 to 4
|
||||||
|
move 9 from 7 to 8
|
||||||
|
move 4 from 5 to 1
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 3 from 8 to 6
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 6 from 2 to 7
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 3 from 5 to 7
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 5 from 7 to 2
|
||||||
|
move 4 from 9 to 1
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 9 from 8 to 4
|
||||||
|
move 5 from 1 to 2
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 6 from 4 to 7
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 9 from 4 to 5
|
||||||
|
move 7 from 7 to 9
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 6 from 9 to 8
|
||||||
|
move 4 from 4 to 5
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 2 from 1 to 2
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 10 from 2 to 4
|
||||||
|
move 8 from 2 to 7
|
||||||
|
move 12 from 2 to 9
|
||||||
|
move 6 from 7 to 4
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 8 from 9 to 8
|
||||||
|
move 7 from 5 to 1
|
||||||
|
move 9 from 4 to 3
|
||||||
|
move 14 from 8 to 4
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 3 from 2 to 4
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 3 from 5 to 7
|
||||||
|
move 2 from 7 to 6
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 3 from 7 to 1
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 6 from 3 to 2
|
||||||
|
move 3 from 1 to 2
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 3 from 2 to 6
|
||||||
|
move 6 from 6 to 5
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 9 to 6
|
||||||
|
move 5 from 2 to 1
|
||||||
|
move 3 from 1 to 2
|
||||||
|
move 2 from 9 to 8
|
||||||
|
move 3 from 1 to 5
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 25 from 4 to 1
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 13 from 1 to 9
|
||||||
|
move 2 from 3 to 5
|
||||||
|
move 8 from 5 to 9
|
||||||
|
move 4 from 2 to 1
|
||||||
|
move 2 from 6 to 7
|
||||||
|
move 10 from 5 to 9
|
||||||
|
move 4 from 7 to 2
|
||||||
|
move 2 from 2 to 3
|
||||||
|
move 9 from 9 to 2
|
||||||
|
move 4 from 4 to 5
|
||||||
|
move 4 from 5 to 4
|
||||||
|
move 5 from 1 to 4
|
||||||
|
move 10 from 4 to 5
|
||||||
|
move 22 from 9 to 1
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 3 from 2 to 1
|
||||||
|
move 6 from 2 to 6
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 10 from 5 to 7
|
||||||
|
move 15 from 1 to 4
|
||||||
|
move 13 from 1 to 5
|
||||||
|
move 3 from 6 to 8
|
||||||
|
move 1 from 8 to 9
|
||||||
1
2022/inputs/06.txt
Normal file
1
2022/inputs/06.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
grvrnvrnnjljbjqjpqjjvhhzwwrbwwbblrltrrpbbbbqnnqbbbbsvbvmbvmbbrsrqrzrllwbbbqzqrqnqrnrjnnjccdggwqqhrrjcjmjmllgrlglhlclmlvlvsshwwsggmfmdfddgdfftrrczrcczhzppgdgrdggghmmdwwqgggslglfgfcgccmjcjwjrwjrjcrjjsgjjvddpwpgpbbgwbgwwhnhfftbffhpfphhfqfrqfrfnfpprvrsrhrfrllfhhrsrhssvfsvsnvsnsswtwtlthllrjjwddtggzczgcchwcwppfbbdvdrdzrdrvrwwsbsfbssqfsfjsjcscttlztllgjjlbbdsdtssvvvwlvlqqnhqqtdqtddjcdcjjpbphhgtgtqtzqqzhqqtgtvtmvtvrvqrvvfmfmppzzbwwnddzttfpfrrlddbppfqppnwnswwdhwdwjjqljqqthtnhnddgmgcmgcmgcmmfmfttrzzfdzztllmjlllgcgbbcqcvccpnndbdjbjmmzbztzptzpprpddptpprhhvlvmlmpmmljjnnjsjfjjvgjjvzzfgfzfbftbftttgstgstgtpggflfcfqqtctltgltldlzdlzzmmlddnvddzfddppmnpptzptpvttwstwswvwrvvbfbjjjbmjjdvdvrvdddrwrhrzrqqhghhrwhwhrrmppsgpsgszzdfdfwwmtwtvwvgvffmqqqtqntqnnjcncbnbwnnzggrdrqqjbqjjwjqqqwlqwlwzlljhhfsfsqsrqqhwqqwbbqbvvlflrrlglbbjhhjmhjjcmcjcgczcfcgcqqczcnnvjnnlddmpmcppgvgjgddvrrnsnmnqmqgmmnppwgwcgwgssbddgtdgdgmdgmgvvmjmvmjmvvsfssdgdghdggbfbqbdbjbsbmmrpmrprggbllwrwpwtppzvppzsssdnsdnnvnhvvvzvfzfqqnnmlnltldtdvdbdblddsmmlccmlmvlmvmmcsctctrtsrstsbsrshsddlmddmppgsscttnrtrqqcvcwwlnlznnnvcnvvtnvnbnmbmvmppjgjdjtddmpdmdvvmgvvdqdlqlhhzccsggjdjsdsttctjctjtfjttppdzpzzbjbwwmwbblslzslzszlzrrcbrrfggvcczjjtbbdnnggbwblwlbwlwqqfvfqfddrrfccvlllhmhhhrthrthrrnbnzbbpzplphprrrnbbghhnshnhbblqqqvwwffnmnmhhtccpqpvqvbvnvvfnfsnffdjdllwffcddgcgrgjrggchcpcddtbbdtdmtdmmhhtphtpppclcpcvcjvcjjfqfzqqphpnhnrnhhpdhhtfhhbbmqmfmsmvssgqqfssqgglnnqmnmbnmbbllrdrgdrdvrdvdsvvnddgtgddcdqdsqdqbqqlhhwdhdgdcgcdchchrchhpvvpgvgrrfggwfwgmpddbhfngtrwswfszgsggnpsntjpslrpjqsffzrlnbnzdtqpqtjzwlhhgrsrbvnccnsjmzcbqgcbtbqlzhnpnhhrrvqwjwzzvrlcrmjhcscrqhpqmfzbnvcwwqhcjjlnggmpbwztzfswmsbjshnsgfmdlzvzczhrdwgwbghszpnbfpctrshbfhspsczcqcrrqcpwwpfzhjqtpqgjbztrpzrlgfdjbmlwdvlvnfmdzbwsbbhlbszvwcpztlchjrqbmsftltmqpfgdpmdgjvwqqtjsqlfqrwmsnlqgsbqfwsdnfvzthmbplvszfcmlptlcjpnfpjsphsmmjplwjqphgvzbtbjtpttqhlwtgnrjvmvsfsztmsqszzlhqqhfslsvhzgtsssfctzgsqbgdzlpwbsmpcnjqshhhcwqdsdzdhnjfqzqnqdlrpddcgrgldgqbjmdtwgppdczzrjvmcfqjbpjzbtjmgdphlbwnsnpfdqlhwvvmpwzsrztnwvtlbphljmjwsgbphgmwhdmfhpvsmvsjccjhfvqtvfmmlnggncltvtrgmbtfqsvfnlvcmjnjwzcrpjnsgntvhjbtdlptshbhhchqmsprhqzdnfpjqccdfvnzjtlbsmmwvzlwlvmsbrnhqctvtvbfhntdctjnrbcrrlmsnwbbjbcbbgrrhfqwzwwfgvsvgbwnttghtgpspzwzfhffsqjvwwttntnvlwftsfvtttgnprzrzsghvjrdtsfdvzswhmrfcdqsgvrlhzbnvbmjlqrftnnbtwqtvlvwznfbslhdqjbntdgpprfqchjvgvzjssdztjlzwfljjmfvzrbbtczggzqwrnqqgzzcbqjcpfqfrbwtdjrrvbszsjdjcpdfjscsvnltcgwvqsgnhbfgnfnddnpmbzbptrmvqzpvbdpfdvtlmgnnjwflgdbfnmvsdnmlvgcpwflwvdbtbfwtfpsmqsplnzwlwgvbjrhghwrnrswsggbqpdjcjrgbgnsqdvwzzwftvjqgjzzcdvpbbjzpphmbcqmrjvgqwfgrsnqvhwflmhgrlvbpwdcsrlqwfrwppqbrdhwqtvczpclpsbsjcptgblbbsqmbhjjgzwvlcnhnzcttmpjsgchmppgphqlzlcsqcgbbjgtjjvmttdztfdptzgvmpnqrcmpmcdlpnbztllvqbggqbqhlqvdwsrwzsjwfrqvcbvsgfdptmrzpvdfblmhlzrvpmsljlqqzrhlnmwncpfhvqlsbtrjbfcrnfvjvddrhdbbczjdsrdvzlbqrccssdzcpmdsqbprjppfzdwfdswptgzcmjqfhcwsqfqhvrslffqfbcvhdzljzrmtwmfdwzdhhjcmbjtvjhzzwfqhrcslztdbnlwmmhbbbgdscjcdzftnchqfnflnsdqjscfrqpnfbftpzvtmrwncqfqqflschpfnjsjlqcjdjgtwpqhgcnjdmnnvmmpwdspmnrgqrptqwcvbtdwpqlbtwpqgwgfrzlrhtvrvzhmhmwhfdsrhpcczqfltsgtgrfwcvlcvtlhqqwnrqgzpnzbfmzbdwqwbsfvbshrgzqdbgvrhzhzlbqsfzttmsnmrqmwgtzbvdqdrbgcpclzjrhdbjtpcdbbznjgtbwbqrnpvffdmwtrbhhstcmnjcwbbnmpbvmjprtzgcptmtrffwhvfgdljnrbbrblbfbgdwtjrtgqgrpvpgjqrjzczvvlspgdbzftqgqvgdqlglbgvgjdcztznszcwfqhmwbrbjcfstzdcmdsssqfhtzpdgmzjscvbdzgbhhgdqgvfwrzmhdrhlsvlzjjzbzdljcbhncppwrtptjgszlqsrqpzqcsgvdvzmgvwgsncnbffttslphcstqvfwbwzbflmshcbnhpljgqwmmwwzlgpbcqnrtqlwcjcrclfdrnnmvtbfdztdfvtqrsgdptfcfpzpsldhzmrngggfvdqggtlfqqwsldprcffsstnnpmsbbvghdbpprqbssnprdbqclzqtgsrczwcvqwrrfmmfwsndvtvqljwwglrgbphdvvwgctbbmtrbpzqtspgrlhmnhjcdwhwvssgspzjbcfjttjqbdpdmptfzzjcfqljpqddfssmffqprvbptfvdshsdmfmdtmlbnmbmjjjsgmlmwmgcwhbrbgchrstptvdlqgddfzddlzhwjmsvvcjwvqtzjtsctfmzchlbrvlgdzbvdlbfpvhptpltrdmcgjghcpwvwqqnrzdtnmgdncplhdpsgpnbprbgshffwwsdhpgqsbmwdtpnhhltlcqfrjtswcchzvlhdgrmjwhgwppdjqlgmdhwbllqvzrchgclmqdlghjsvmwlflmhhmdzbfjhjnvwphnjbclmdpgflqgtfsmsjslntfcmtbphnrgpdcqtjzjttdtgjmvhzsrfnrjqssvwpcslpfstbpfsrsntmftmdgsqrrsnddqfmchrhtlhmqndvvllnvltdzfphjqnvmcdsgfpcmjftgdpntjzplqljhtthvnbzbzwvfnqsjvnfwhmtbsspjslgfjvdgfjpwrsgqwntntjcqtdgnhnsfwhhqfwbwhdrftj
|
||||||
983
2022/inputs/07.txt
Normal file
983
2022/inputs/07.txt
Normal file
@@ -0,0 +1,983 @@
|
|||||||
|
$ cd /
|
||||||
|
$ ls
|
||||||
|
dir gqcclj
|
||||||
|
dir lmtpm
|
||||||
|
dir nhqwt
|
||||||
|
dir qcq
|
||||||
|
dir vwqwlqrt
|
||||||
|
$ cd gqcclj
|
||||||
|
$ ls
|
||||||
|
62425 dqp.gjm
|
||||||
|
174181 hrtw.qsd
|
||||||
|
273712 pflp.mdw
|
||||||
|
169404 zlthnlhf.mtn
|
||||||
|
180878 zprprf
|
||||||
|
$ cd ..
|
||||||
|
$ cd lmtpm
|
||||||
|
$ ls
|
||||||
|
dir clffsvcw
|
||||||
|
163587 cvcl.jqh
|
||||||
|
dir dcqnblb
|
||||||
|
dir dtpwln
|
||||||
|
dir fvt
|
||||||
|
dir hrcrw
|
||||||
|
dir jdqzmqn
|
||||||
|
236754 nrdmlj
|
||||||
|
205959 pflp.mdw
|
||||||
|
dir qcq
|
||||||
|
dir rsn
|
||||||
|
129926 vdgcqdn.sqd
|
||||||
|
dir zprprf
|
||||||
|
$ cd clffsvcw
|
||||||
|
$ ls
|
||||||
|
6997 dcqnblb.wbh
|
||||||
|
145711 dqp
|
||||||
|
159225 pflp.mdw
|
||||||
|
$ cd ..
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
dir dcqnblb
|
||||||
|
dir gfn
|
||||||
|
dir lpswsp
|
||||||
|
dir lvt
|
||||||
|
dir zprprf
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
2020 grpdmd.ggz
|
||||||
|
dir zpswzfvg
|
||||||
|
$ cd zpswzfvg
|
||||||
|
$ ls
|
||||||
|
206998 zprprf.gnw
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd gfn
|
||||||
|
$ ls
|
||||||
|
277530 rhbvtblc.mvw
|
||||||
|
$ cd ..
|
||||||
|
$ cd lpswsp
|
||||||
|
$ ls
|
||||||
|
173180 dcqnblb
|
||||||
|
$ cd ..
|
||||||
|
$ cd lvt
|
||||||
|
$ ls
|
||||||
|
dir hjllwsvl
|
||||||
|
dir ptbt
|
||||||
|
$ cd hjllwsvl
|
||||||
|
$ ls
|
||||||
|
dir wqnc
|
||||||
|
$ cd wqnc
|
||||||
|
$ ls
|
||||||
|
64695 grpdmd.ggz
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ptbt
|
||||||
|
$ ls
|
||||||
|
150880 vvbt.gtp
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd zprprf
|
||||||
|
$ ls
|
||||||
|
dir ldzslndn
|
||||||
|
dir qftt
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
dir bwqqsbhg
|
||||||
|
129454 vbn
|
||||||
|
$ cd bwqqsbhg
|
||||||
|
$ ls
|
||||||
|
108701 zprprf.gss
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd qftt
|
||||||
|
$ ls
|
||||||
|
64268 cvcl.jqh
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dtpwln
|
||||||
|
$ ls
|
||||||
|
196215 cvcl.jqh
|
||||||
|
dir dpwg
|
||||||
|
dir ldzslndn
|
||||||
|
dir znnsqqh
|
||||||
|
$ cd dpwg
|
||||||
|
$ ls
|
||||||
|
192388 gmh
|
||||||
|
47754 grgzh.qdl
|
||||||
|
99449 hqsh
|
||||||
|
dir pbmf
|
||||||
|
50061 pflp.mdw
|
||||||
|
192902 qcq.pgg
|
||||||
|
dir rmpvj
|
||||||
|
dir scgc
|
||||||
|
$ cd pbmf
|
||||||
|
$ ls
|
||||||
|
210083 wpfnwbl.mgf
|
||||||
|
$ cd ..
|
||||||
|
$ cd rmpvj
|
||||||
|
$ ls
|
||||||
|
125738 nmlnbvrd
|
||||||
|
226214 zprprf.jnp
|
||||||
|
114257 zprprf.srs
|
||||||
|
$ cd ..
|
||||||
|
$ cd scgc
|
||||||
|
$ ls
|
||||||
|
182115 rrc.rcc
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
201992 qcrm.cpd
|
||||||
|
$ cd ..
|
||||||
|
$ cd znnsqqh
|
||||||
|
$ ls
|
||||||
|
85635 cvcl.jqh
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd fvt
|
||||||
|
$ ls
|
||||||
|
dir dcqnblb
|
||||||
|
dir gnc
|
||||||
|
75864 vfn
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
dir dcqnblb
|
||||||
|
dir lbnflwsh
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
269901 cvcl.jqh
|
||||||
|
$ cd ..
|
||||||
|
$ cd lbnflwsh
|
||||||
|
$ ls
|
||||||
|
33336 grpdmd.ggz
|
||||||
|
42861 phg.wmc
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd gnc
|
||||||
|
$ ls
|
||||||
|
dir jhjbjsp
|
||||||
|
dir jjppr
|
||||||
|
$ cd jhjbjsp
|
||||||
|
$ ls
|
||||||
|
96177 ldzslndn
|
||||||
|
$ cd ..
|
||||||
|
$ cd jjppr
|
||||||
|
$ ls
|
||||||
|
181016 dqp
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd hrcrw
|
||||||
|
$ ls
|
||||||
|
261376 dtjfpppr.dww
|
||||||
|
54658 vsrgvw.pfn
|
||||||
|
$ cd ..
|
||||||
|
$ cd jdqzmqn
|
||||||
|
$ ls
|
||||||
|
52342 dcpndc.vlg
|
||||||
|
171946 gggpchh.tbb
|
||||||
|
dir ldzslndn
|
||||||
|
11156 nbfrfvv.gzw
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
107873 cvcl.jqh
|
||||||
|
216034 gfdjrbz
|
||||||
|
68844 pqllfrrh.jcf
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd qcq
|
||||||
|
$ ls
|
||||||
|
152886 ldzslndn.ltn
|
||||||
|
105125 vwplh.vbf
|
||||||
|
$ cd ..
|
||||||
|
$ cd rsn
|
||||||
|
$ ls
|
||||||
|
15385 hqcmjdgv.jjv
|
||||||
|
105735 qcq.bzg
|
||||||
|
58805 snczcsp
|
||||||
|
26668 vbn
|
||||||
|
$ cd ..
|
||||||
|
$ cd zprprf
|
||||||
|
$ ls
|
||||||
|
dir chbmq
|
||||||
|
dir dcqnblb
|
||||||
|
dir dqp
|
||||||
|
dir nfspb
|
||||||
|
89506 zprprf.hnt
|
||||||
|
$ cd chbmq
|
||||||
|
$ ls
|
||||||
|
dir cnjvw
|
||||||
|
dir dqp
|
||||||
|
151434 frsvrdnt
|
||||||
|
dir msztjvcb
|
||||||
|
240689 qcq.jlh
|
||||||
|
dir sjzrcg
|
||||||
|
97312 vnr.zfr
|
||||||
|
dir zprprf
|
||||||
|
$ cd cnjvw
|
||||||
|
$ ls
|
||||||
|
dir bpbs
|
||||||
|
252403 cqhtshc
|
||||||
|
dir djmjhn
|
||||||
|
10935 fhqmswr
|
||||||
|
6582 pdwml.ldd
|
||||||
|
dir qcq
|
||||||
|
219282 rfmd
|
||||||
|
$ cd bpbs
|
||||||
|
$ ls
|
||||||
|
147582 bnhwsnsj.gdm
|
||||||
|
61362 cvcl.jqh
|
||||||
|
152857 vdgcqdn.sqd
|
||||||
|
$ cd ..
|
||||||
|
$ cd djmjhn
|
||||||
|
$ ls
|
||||||
|
dir bjdbcjbb
|
||||||
|
dir dcqnblb
|
||||||
|
dir dqp
|
||||||
|
dir lgdwtt
|
||||||
|
$ cd bjdbcjbb
|
||||||
|
$ ls
|
||||||
|
110710 cvcl.jqh
|
||||||
|
252792 hmshctr.lgz
|
||||||
|
dir mjhtmbj
|
||||||
|
189745 shsswcgr
|
||||||
|
dir tfnhp
|
||||||
|
194940 vbn
|
||||||
|
dir zprprf
|
||||||
|
$ cd mjhtmbj
|
||||||
|
$ ls
|
||||||
|
dir dqp
|
||||||
|
dir hbthpcmb
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
200832 sbcrz.qgw
|
||||||
|
$ cd ..
|
||||||
|
$ cd hbthpcmb
|
||||||
|
$ ls
|
||||||
|
55191 ffcntg
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd tfnhp
|
||||||
|
$ ls
|
||||||
|
276825 dqp
|
||||||
|
161538 gqmr.wgb
|
||||||
|
$ cd ..
|
||||||
|
$ cd zprprf
|
||||||
|
$ ls
|
||||||
|
287638 dcqnblb.ssp
|
||||||
|
41274 hgmrvj.mwf
|
||||||
|
249118 sbb.gsf
|
||||||
|
105141 wwrg.gqz
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
1957 btmmc
|
||||||
|
32386 dtzbzg.dhm
|
||||||
|
dir mmrbj
|
||||||
|
98283 ntmhfgtl.pmf
|
||||||
|
dir zprprf
|
||||||
|
$ cd mmrbj
|
||||||
|
$ ls
|
||||||
|
273194 wnsq
|
||||||
|
251527 zprprf
|
||||||
|
$ cd ..
|
||||||
|
$ cd zprprf
|
||||||
|
$ ls
|
||||||
|
27678 ldzslndn.rrl
|
||||||
|
62866 ljf.fdj
|
||||||
|
148502 qcq.dlg
|
||||||
|
dir rvgqvm
|
||||||
|
179231 tllnmhn.pjp
|
||||||
|
64033 vbn
|
||||||
|
dir zcdrj
|
||||||
|
$ cd rvgqvm
|
||||||
|
$ ls
|
||||||
|
dir ntbv
|
||||||
|
262324 prhgj.szz
|
||||||
|
dir qbvdh
|
||||||
|
$ cd ntbv
|
||||||
|
$ ls
|
||||||
|
116608 cgv.fvj
|
||||||
|
175200 swpswq.twt
|
||||||
|
$ cd ..
|
||||||
|
$ cd qbvdh
|
||||||
|
$ ls
|
||||||
|
160353 sdhfrb.wjn
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd zcdrj
|
||||||
|
$ ls
|
||||||
|
283262 ctl
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
dir jfzm
|
||||||
|
111438 rdrgb.mjf
|
||||||
|
64194 wgtmqrq
|
||||||
|
dir zprprf
|
||||||
|
$ cd jfzm
|
||||||
|
$ ls
|
||||||
|
158774 pflp.mdw
|
||||||
|
$ cd ..
|
||||||
|
$ cd zprprf
|
||||||
|
$ ls
|
||||||
|
215264 sgsstcp
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd lgdwtt
|
||||||
|
$ ls
|
||||||
|
dir qcq
|
||||||
|
$ cd qcq
|
||||||
|
$ ls
|
||||||
|
165461 ldzslndn.vvb
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd qcq
|
||||||
|
$ ls
|
||||||
|
dir dpd
|
||||||
|
165044 grpdmd.ggz
|
||||||
|
82343 ldzslndn
|
||||||
|
dir mwg
|
||||||
|
176689 psjcwp.wct
|
||||||
|
44404 qcq.zwd
|
||||||
|
$ cd dpd
|
||||||
|
$ ls
|
||||||
|
84087 dqp
|
||||||
|
227386 zprprf.gfs
|
||||||
|
$ cd ..
|
||||||
|
$ cd mwg
|
||||||
|
$ ls
|
||||||
|
214086 pflp.mdw
|
||||||
|
dir sjjsdn
|
||||||
|
225859 wcdt
|
||||||
|
158892 zprprf.frs
|
||||||
|
$ cd sjjsdn
|
||||||
|
$ ls
|
||||||
|
260121 gplgp.dfn
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
dir hcrwclpg
|
||||||
|
dir zphd
|
||||||
|
$ cd hcrwclpg
|
||||||
|
$ ls
|
||||||
|
dir cmqntjj
|
||||||
|
16393 ldzslndn.qbm
|
||||||
|
91152 qqdtc.zdq
|
||||||
|
$ cd cmqntjj
|
||||||
|
$ ls
|
||||||
|
272266 ldzslndn.pll
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd zphd
|
||||||
|
$ ls
|
||||||
|
165711 chftwcsw.fqw
|
||||||
|
256871 cvcl.jqh
|
||||||
|
251168 zprprf.gfv
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd msztjvcb
|
||||||
|
$ ls
|
||||||
|
206231 brzn.lmn
|
||||||
|
dir dcqnblb
|
||||||
|
21571 dqp
|
||||||
|
dir fmn
|
||||||
|
45779 mlfctz.cjr
|
||||||
|
288827 pflp.mdw
|
||||||
|
220578 qcq.fqf
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
198121 ghbwgs
|
||||||
|
93681 nmqhl.vpq
|
||||||
|
$ cd ..
|
||||||
|
$ cd fmn
|
||||||
|
$ ls
|
||||||
|
29407 mdfws.qvs
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd sjzrcg
|
||||||
|
$ ls
|
||||||
|
155120 ddclvsjr.rpq
|
||||||
|
136029 ldzslndn.dcm
|
||||||
|
dir vhzh
|
||||||
|
$ cd vhzh
|
||||||
|
$ ls
|
||||||
|
212446 vbn
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd zprprf
|
||||||
|
$ ls
|
||||||
|
240335 crt.gqh
|
||||||
|
185363 gnmm.qgh
|
||||||
|
dir ldzslndn
|
||||||
|
dir nwl
|
||||||
|
dir qll
|
||||||
|
277043 vbn
|
||||||
|
217796 vtvgpdl.vtm
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
273570 cvcl.jqh
|
||||||
|
68510 fgdmz.hrc
|
||||||
|
dir npq
|
||||||
|
dir swjrzzrm
|
||||||
|
$ cd npq
|
||||||
|
$ ls
|
||||||
|
97923 dzcjsqwt
|
||||||
|
$ cd ..
|
||||||
|
$ cd swjrzzrm
|
||||||
|
$ ls
|
||||||
|
180599 tmpgn.bjf
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd nwl
|
||||||
|
$ ls
|
||||||
|
171833 dlwrfhh.qgn
|
||||||
|
$ cd ..
|
||||||
|
$ cd qll
|
||||||
|
$ ls
|
||||||
|
219926 dcqnblb.bvn
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
dir lvpb
|
||||||
|
276198 tbgcm.qct
|
||||||
|
$ cd lvpb
|
||||||
|
$ ls
|
||||||
|
142590 bvhjlld
|
||||||
|
268259 gnjfg.sgb
|
||||||
|
dir qcq
|
||||||
|
206220 qcq.zsg
|
||||||
|
258137 rrsw.dnb
|
||||||
|
dir tmr
|
||||||
|
215549 vbn
|
||||||
|
$ cd qcq
|
||||||
|
$ ls
|
||||||
|
dir mmpgd
|
||||||
|
dir tdsz
|
||||||
|
dir tmfvsjwc
|
||||||
|
$ cd mmpgd
|
||||||
|
$ ls
|
||||||
|
70793 jwbnpwnn
|
||||||
|
$ cd ..
|
||||||
|
$ cd tdsz
|
||||||
|
$ ls
|
||||||
|
246310 tdvrhhg.bzq
|
||||||
|
$ cd ..
|
||||||
|
$ cd tmfvsjwc
|
||||||
|
$ ls
|
||||||
|
103899 grpdmd.ggz
|
||||||
|
287850 ldzslndn
|
||||||
|
125930 llhr
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd tmr
|
||||||
|
$ ls
|
||||||
|
83344 fbtfcg.hqp
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
dir lbgmcbv
|
||||||
|
dir nbg
|
||||||
|
$ cd lbgmcbv
|
||||||
|
$ ls
|
||||||
|
81776 wzdzzdp
|
||||||
|
$ cd ..
|
||||||
|
$ cd nbg
|
||||||
|
$ ls
|
||||||
|
dir mfsgjp
|
||||||
|
155574 pflp.mdw
|
||||||
|
$ cd mfsgjp
|
||||||
|
$ ls
|
||||||
|
199400 vdgcqdn.sqd
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd nfspb
|
||||||
|
$ ls
|
||||||
|
262412 csrdtbs
|
||||||
|
73867 vbn
|
||||||
|
136389 zqps.hjt
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd nhqwt
|
||||||
|
$ ls
|
||||||
|
123766 cvcl.jqh
|
||||||
|
dir dhrtvctp
|
||||||
|
222086 grpdmd.ggz
|
||||||
|
dir gzg
|
||||||
|
26005 lhpmz.tgz
|
||||||
|
dir mcnjwwfr
|
||||||
|
117122 msn.gst
|
||||||
|
$ cd dhrtvctp
|
||||||
|
$ ls
|
||||||
|
224079 vdgcqdn.sqd
|
||||||
|
$ cd ..
|
||||||
|
$ cd gzg
|
||||||
|
$ ls
|
||||||
|
124395 dqp
|
||||||
|
dir wqdbtqm
|
||||||
|
$ cd wqdbtqm
|
||||||
|
$ ls
|
||||||
|
237354 pflp.mdw
|
||||||
|
212019 vdgcqdn.sqd
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd mcnjwwfr
|
||||||
|
$ ls
|
||||||
|
92504 cshdztf
|
||||||
|
dir dctl
|
||||||
|
dir dqp
|
||||||
|
dir flcrmhlj
|
||||||
|
161879 grpdmd.ggz
|
||||||
|
dir gtt
|
||||||
|
dir hlbnhchz
|
||||||
|
220093 mdtdsgvm.zgg
|
||||||
|
dir twntr
|
||||||
|
287192 vbn
|
||||||
|
$ cd dctl
|
||||||
|
$ ls
|
||||||
|
dir bbhch
|
||||||
|
155396 hrrj.jzm
|
||||||
|
164971 pblqmwj.vdb
|
||||||
|
dir wnlgfpvf
|
||||||
|
$ cd bbhch
|
||||||
|
$ ls
|
||||||
|
dir dpqtp
|
||||||
|
dir jvdrcw
|
||||||
|
$ cd dpqtp
|
||||||
|
$ ls
|
||||||
|
174135 gwb.qrb
|
||||||
|
$ cd ..
|
||||||
|
$ cd jvdrcw
|
||||||
|
$ ls
|
||||||
|
215993 dcqnblb.cqp
|
||||||
|
200800 stjttf.ngc
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd wnlgfpvf
|
||||||
|
$ ls
|
||||||
|
135978 cvcl.jqh
|
||||||
|
dir dqp
|
||||||
|
54018 lbrfmt
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
270516 dcqnblb.jqw
|
||||||
|
dir dqp
|
||||||
|
144626 grpdmd.ggz
|
||||||
|
157731 hvcv.rhp
|
||||||
|
133773 lnnt
|
||||||
|
76250 vdgcqdn.sqd
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
41504 zprprf.cmc
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
dir dqp
|
||||||
|
dir ldzslndn
|
||||||
|
236737 mqzcvm.fjh
|
||||||
|
239746 nhcdz.ncj
|
||||||
|
dir rpchqq
|
||||||
|
248824 vdgcqdn.sqd
|
||||||
|
250937 zrchht.mwg
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
203381 qcq.djm
|
||||||
|
$ cd ..
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
dir dqp
|
||||||
|
dir fptnzlv
|
||||||
|
dir gmbnpm
|
||||||
|
dir vhvblt
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
19579 qcq.lhg
|
||||||
|
$ cd ..
|
||||||
|
$ cd fptnzlv
|
||||||
|
$ ls
|
||||||
|
209930 dcqnblb
|
||||||
|
$ cd ..
|
||||||
|
$ cd gmbnpm
|
||||||
|
$ ls
|
||||||
|
dir ldzslndn
|
||||||
|
dir qcq
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
11075 pflp.mdw
|
||||||
|
$ cd ..
|
||||||
|
$ cd qcq
|
||||||
|
$ ls
|
||||||
|
dir tdp
|
||||||
|
$ cd tdp
|
||||||
|
$ ls
|
||||||
|
40741 vdgcqdn.sqd
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd vhvblt
|
||||||
|
$ ls
|
||||||
|
dir lzr
|
||||||
|
$ cd lzr
|
||||||
|
$ ls
|
||||||
|
62245 gbnj.llg
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd rpchqq
|
||||||
|
$ ls
|
||||||
|
dir bcs
|
||||||
|
dir dcqnblb
|
||||||
|
dir fvjzn
|
||||||
|
dir lrphzrv
|
||||||
|
$ cd bcs
|
||||||
|
$ ls
|
||||||
|
179794 bbn.dzb
|
||||||
|
242069 cmjdmzjf.zgf
|
||||||
|
1703 cvcl.jqh
|
||||||
|
dir gnmhwj
|
||||||
|
dir ldzslndn
|
||||||
|
152520 qltpsz.jsj
|
||||||
|
dir sqqjfps
|
||||||
|
$ cd gnmhwj
|
||||||
|
$ ls
|
||||||
|
dir gvs
|
||||||
|
201600 hptn.ftf
|
||||||
|
dir hzrnb
|
||||||
|
dir qcq
|
||||||
|
dir sqhl
|
||||||
|
$ cd gvs
|
||||||
|
$ ls
|
||||||
|
152358 zprprf.mlh
|
||||||
|
$ cd ..
|
||||||
|
$ cd hzrnb
|
||||||
|
$ ls
|
||||||
|
94290 gplsfd
|
||||||
|
$ cd ..
|
||||||
|
$ cd qcq
|
||||||
|
$ ls
|
||||||
|
91909 vmqd.bmg
|
||||||
|
$ cd ..
|
||||||
|
$ cd sqhl
|
||||||
|
$ ls
|
||||||
|
238673 vdgcqdn.sqd
|
||||||
|
262885 zmdvr.nfg
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
240461 mdz
|
||||||
|
84303 qtj
|
||||||
|
$ cd ..
|
||||||
|
$ cd sqqjfps
|
||||||
|
$ ls
|
||||||
|
88753 fwn.tff
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
dir dqp
|
||||||
|
189996 dqp.pvp
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
dir qvfjz
|
||||||
|
196506 vbn
|
||||||
|
$ cd qvfjz
|
||||||
|
$ ls
|
||||||
|
209316 pflp.mdw
|
||||||
|
107459 rwpbh.vpt
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd fvjzn
|
||||||
|
$ ls
|
||||||
|
241464 cvcl.jqh
|
||||||
|
dir dqp
|
||||||
|
dir ldzslndn
|
||||||
|
dir msp
|
||||||
|
125 pflp.mdw
|
||||||
|
131895 vbn
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
34019 pflp.mdw
|
||||||
|
202957 vbn
|
||||||
|
$ cd ..
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
147492 cvcl.jqh
|
||||||
|
248719 spc.rfv
|
||||||
|
$ cd ..
|
||||||
|
$ cd msp
|
||||||
|
$ ls
|
||||||
|
184407 cvcl.jqh
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd lrphzrv
|
||||||
|
$ ls
|
||||||
|
dir bbwqmbg
|
||||||
|
81858 cvcl.jqh
|
||||||
|
dir dqp
|
||||||
|
248670 gqqsww.tsn
|
||||||
|
199141 grpdmd.ggz
|
||||||
|
dir ldzslndn
|
||||||
|
34514 ldzslndn.ctw
|
||||||
|
dir tln
|
||||||
|
214615 zprprf.fwm
|
||||||
|
$ cd bbwqmbg
|
||||||
|
$ ls
|
||||||
|
129750 flf
|
||||||
|
dir pvlw
|
||||||
|
dir qcq
|
||||||
|
126 sqcqphz.tbm
|
||||||
|
$ cd pvlw
|
||||||
|
$ ls
|
||||||
|
198005 jfvj.hdv
|
||||||
|
$ cd ..
|
||||||
|
$ cd qcq
|
||||||
|
$ ls
|
||||||
|
dir wgdzws
|
||||||
|
$ cd wgdzws
|
||||||
|
$ ls
|
||||||
|
253522 ldzslndn.qwt
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
281993 cvcl.jqh
|
||||||
|
dir hwqjlwcb
|
||||||
|
50532 msccz.qgm
|
||||||
|
102187 trv.tnq
|
||||||
|
111 wplnmj.bfl
|
||||||
|
$ cd hwqjlwcb
|
||||||
|
$ ls
|
||||||
|
267580 dhjqb.dsb
|
||||||
|
153195 ldzslndn.jqv
|
||||||
|
41526 mvwcwc.zsc
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
58666 cvcl.jqh
|
||||||
|
79950 dqp.tmc
|
||||||
|
242217 hns.lrb
|
||||||
|
dir njswzh
|
||||||
|
240692 vdgcqdn.sqd
|
||||||
|
dir zvmjvcdm
|
||||||
|
52909 zzh
|
||||||
|
$ cd njswzh
|
||||||
|
$ ls
|
||||||
|
149732 cvcl.jqh
|
||||||
|
dir rnmfd
|
||||||
|
$ cd rnmfd
|
||||||
|
$ ls
|
||||||
|
75368 dqp.hmv
|
||||||
|
14350 vbn
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd zvmjvcdm
|
||||||
|
$ ls
|
||||||
|
dir jgczt
|
||||||
|
$ cd jgczt
|
||||||
|
$ ls
|
||||||
|
dir qcq
|
||||||
|
95941 qzvvwshv.jwc
|
||||||
|
$ cd qcq
|
||||||
|
$ ls
|
||||||
|
273942 pflp.mdw
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd tln
|
||||||
|
$ ls
|
||||||
|
dir bmcng
|
||||||
|
1518 lrg
|
||||||
|
dir vnjfrhp
|
||||||
|
$ cd bmcng
|
||||||
|
$ ls
|
||||||
|
38917 fqcrt
|
||||||
|
$ cd ..
|
||||||
|
$ cd vnjfrhp
|
||||||
|
$ ls
|
||||||
|
dir dcqnblb
|
||||||
|
dir dqp
|
||||||
|
247186 grpdmd.ggz
|
||||||
|
dir ldzslndn
|
||||||
|
169216 pflp.mdw
|
||||||
|
206487 vdgcqdn.sqd
|
||||||
|
16976 vlsrzjmb.mmc
|
||||||
|
257938 wjl
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
dir dqp
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
184133 qcq
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd dqp
|
||||||
|
$ ls
|
||||||
|
dir dcqnblb
|
||||||
|
31612 dqp.pnt
|
||||||
|
212283 ldzslndn
|
||||||
|
61600 vdbfc.ddj
|
||||||
|
197189 wpv.wff
|
||||||
|
$ cd dcqnblb
|
||||||
|
$ ls
|
||||||
|
62412 tfzllmrj
|
||||||
|
dir zprprf
|
||||||
|
$ cd zprprf
|
||||||
|
$ ls
|
||||||
|
dir bqnpsl
|
||||||
|
dir dszrvpzc
|
||||||
|
$ cd bqnpsl
|
||||||
|
$ ls
|
||||||
|
261548 spbsbbsw.cmn
|
||||||
|
$ cd ..
|
||||||
|
$ cd dszrvpzc
|
||||||
|
$ ls
|
||||||
|
188232 sggpqslr.smn
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ldzslndn
|
||||||
|
$ ls
|
||||||
|
dir bgnhd
|
||||||
|
dir pgvcdzwz
|
||||||
|
dir qgzhm
|
||||||
|
$ cd bgnhd
|
||||||
|
$ ls
|
||||||
|
56989 cvcl.jqh
|
||||||
|
$ cd ..
|
||||||
|
$ cd pgvcdzwz
|
||||||
|
$ ls
|
||||||
|
110034 qhgnndv
|
||||||
|
$ cd ..
|
||||||
|
$ cd qgzhm
|
||||||
|
$ ls
|
||||||
|
247232 grpdmd.ggz
|
||||||
|
269292 ldzslndn
|
||||||
|
153843 tpz
|
||||||
|
dir vnschqwr
|
||||||
|
162392 wnq.btb
|
||||||
|
$ cd vnschqwr
|
||||||
|
$ ls
|
||||||
|
43005 fvtvzfqm.jvc
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd flcrmhlj
|
||||||
|
$ ls
|
||||||
|
245668 dcqnblb.sdj
|
||||||
|
dir lffj
|
||||||
|
229909 pflp.mdw
|
||||||
|
280176 vbn
|
||||||
|
$ cd lffj
|
||||||
|
$ ls
|
||||||
|
116451 jmzz.jdd
|
||||||
|
dir pjlwb
|
||||||
|
162815 pmhlqq.snr
|
||||||
|
226183 zffth
|
||||||
|
$ cd pjlwb
|
||||||
|
$ ls
|
||||||
|
67518 qcq.hjq
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd gtt
|
||||||
|
$ ls
|
||||||
|
52105 grpdmd.ggz
|
||||||
|
126869 zprprf.fgj
|
||||||
|
$ cd ..
|
||||||
|
$ cd hlbnhchz
|
||||||
|
$ ls
|
||||||
|
3064 dqp.lrw
|
||||||
|
278756 grpdmd.ggz
|
||||||
|
177208 ldzslndn.wlv
|
||||||
|
141685 vbn
|
||||||
|
$ cd ..
|
||||||
|
$ cd twntr
|
||||||
|
$ ls
|
||||||
|
63747 cvcl.jqh
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd qcq
|
||||||
|
$ ls
|
||||||
|
226858 cwblp.zgp
|
||||||
|
dir jjqsmfhr
|
||||||
|
dir rjbqtrq
|
||||||
|
dir vwmpnbts
|
||||||
|
141715 wdbhdch
|
||||||
|
286381 zprprf
|
||||||
|
$ cd jjqsmfhr
|
||||||
|
$ ls
|
||||||
|
dir btmm
|
||||||
|
dir fqndtlgq
|
||||||
|
$ cd btmm
|
||||||
|
$ ls
|
||||||
|
4031 dqp.lrr
|
||||||
|
dir fzdd
|
||||||
|
$ cd fzdd
|
||||||
|
$ ls
|
||||||
|
dir vnwpn
|
||||||
|
$ cd vnwpn
|
||||||
|
$ ls
|
||||||
|
dir bzlgsl
|
||||||
|
dir ztvzrrbv
|
||||||
|
$ cd bzlgsl
|
||||||
|
$ ls
|
||||||
|
9294 ldzslndn.sqr
|
||||||
|
$ cd ..
|
||||||
|
$ cd ztvzrrbv
|
||||||
|
$ ls
|
||||||
|
256017 cvcl.jqh
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd fqndtlgq
|
||||||
|
$ ls
|
||||||
|
271528 ccbmgp.bwd
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd rjbqtrq
|
||||||
|
$ ls
|
||||||
|
122150 ldzslndn
|
||||||
|
46467 tpdvp.pjf
|
||||||
|
$ cd ..
|
||||||
|
$ cd vwmpnbts
|
||||||
|
$ ls
|
||||||
|
47518 fcrwfzvm
|
||||||
|
263343 gmc.lrt
|
||||||
|
212764 qcq
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd vwqwlqrt
|
||||||
|
$ ls
|
||||||
|
dir psrs
|
||||||
|
$ cd psrs
|
||||||
|
$ ls
|
||||||
|
281998 zprprf.hml
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
//! Common helper utilities to all days
|
//! Common helper utilities to all days
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
use nom::combinator::map;
|
||||||
use nom::error::ErrorKind;
|
use nom::error::ErrorKind;
|
||||||
use nom::error::ParseError;
|
use nom::error::ParseError;
|
||||||
use nom::Finish;
|
use nom::Finish;
|
||||||
@@ -92,3 +93,26 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Add an index to repeated successful invocations of the embedded parser.
|
||||||
|
pub fn enumerate<I, O, E>(f: impl Parser<I, O, E>) -> impl FnMut(I) -> IResult<I, (usize, O), E> {
|
||||||
|
let mut index = 0usize;
|
||||||
|
|
||||||
|
map(f, move |v| {
|
||||||
|
let res = (index, v);
|
||||||
|
index += 1;
|
||||||
|
res
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Return the minimum and maximum of two unordered variables
|
||||||
|
pub fn minmax<T>(a: T, b: T) -> (T, T)
|
||||||
|
where
|
||||||
|
T: PartialOrd,
|
||||||
|
{
|
||||||
|
if a < b {
|
||||||
|
(a, b)
|
||||||
|
} else {
|
||||||
|
(b, a)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ use std::ops::Add;
|
|||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use nom::character::complete::newline;
|
use nom::character::complete::newline;
|
||||||
use nom::combinator::opt;
|
|
||||||
use nom::multi::separated_list0;
|
use nom::multi::separated_list0;
|
||||||
use nom::sequence::terminated;
|
use nom::sequence::terminated;
|
||||||
use nom::IResult;
|
use nom::IResult;
|
||||||
@@ -14,13 +13,9 @@ fn parse_elf(input: &[u8]) -> IResult<&[u8], i32> {
|
|||||||
reduce_many1(terminated(nom::character::complete::i32, newline), Add::add)(input)
|
reduce_many1(terminated(nom::character::complete::i32, newline), Add::add)(input)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_max(input: &[u8]) -> IResult<&[u8], i32> {
|
|
||||||
reduce_many1(terminated(parse_elf, opt(newline)), Ord::max)(input)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn part1(input: &[u8]) -> Result<String> {
|
pub fn part1(input: &[u8]) -> Result<String> {
|
||||||
let result = parse_input(input, parse_max)?.to_string();
|
let elves = parse_input(input, parse_elf_list)?;
|
||||||
Ok(result)
|
Ok(elves.into_iter().fold(0, Ord::max).to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_elf_list(input: &[u8]) -> IResult<&[u8], Vec<i32>> {
|
fn parse_elf_list(input: &[u8]) -> IResult<&[u8], Vec<i32>> {
|
||||||
|
|||||||
@@ -1,9 +1,79 @@
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
fn priority(item: u8) -> u32 {
|
||||||
todo!()
|
match item {
|
||||||
|
b'a'..=b'z' => item - b'a' + 1,
|
||||||
|
b'A'..=b'Z' => item - b'A' + 27,
|
||||||
|
_ => 0,
|
||||||
|
}
|
||||||
|
.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
fn seen(backpack: &[u8]) -> u64 {
|
||||||
todo!()
|
let mut seen = 0;
|
||||||
|
|
||||||
|
for &b in backpack {
|
||||||
|
seen |= 1 << priority(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
seen
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn part1(input: &[u8]) -> Result<String> {
|
||||||
|
let mut total = 0;
|
||||||
|
|
||||||
|
for line in input.split(|&b| b == b'\n') {
|
||||||
|
let (first, last) = line.split_at(line.len() / 2);
|
||||||
|
|
||||||
|
let seen = seen(first);
|
||||||
|
|
||||||
|
for &b in last {
|
||||||
|
let prio = priority(b);
|
||||||
|
|
||||||
|
if (seen & (1 << prio)) != 0 {
|
||||||
|
total += prio;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(total.to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn part2(input: &[u8]) -> Result<String> {
|
||||||
|
let mut total = 0;
|
||||||
|
|
||||||
|
for chunk in &input.split(|&b| b == b'\n').chunks(3) {
|
||||||
|
let mut mask = u64::MAX;
|
||||||
|
|
||||||
|
for backpack in chunk {
|
||||||
|
let seen = seen(backpack);
|
||||||
|
mask &= seen;
|
||||||
|
}
|
||||||
|
|
||||||
|
if mask != 0 {
|
||||||
|
debug_assert_eq!(1, mask.count_ones());
|
||||||
|
total += mask.trailing_zeros();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(total.to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
const SAMPLE: &[u8] = include_bytes!("samples/03.txt");
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part1() {
|
||||||
|
assert_eq!(part1(SAMPLE).unwrap(), "157")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part2() {
|
||||||
|
assert_eq!(part2(SAMPLE).unwrap(), "70")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,86 @@
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
use nom::bytes::complete::tag;
|
||||||
|
use nom::character::complete::newline;
|
||||||
|
use nom::combinator::map;
|
||||||
|
use nom::multi::many0;
|
||||||
|
use nom::sequence::separated_pair;
|
||||||
|
use nom::sequence::terminated;
|
||||||
|
use nom::IResult;
|
||||||
|
|
||||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
use crate::common::minmax;
|
||||||
todo!()
|
use crate::common::parse_input;
|
||||||
|
|
||||||
|
#[derive(Copy, Clone, PartialOrd, PartialEq)]
|
||||||
|
struct Assignment(u32, u32);
|
||||||
|
|
||||||
|
impl Assignment {
|
||||||
|
fn one_contains(self, other: Self) -> bool {
|
||||||
|
let (first, second) = minmax(self, other);
|
||||||
|
|
||||||
|
if second.0 == first.0 {
|
||||||
|
first.1 <= second.1
|
||||||
|
} else {
|
||||||
|
second.0 <= first.1 && second.1 <= first.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn one_overlaps(self, other: Self) -> bool {
|
||||||
|
let (first, second) = minmax(self, other);
|
||||||
|
|
||||||
|
if second.0 == first.0 {
|
||||||
|
first.1 <= second.1
|
||||||
|
} else {
|
||||||
|
second.0 <= first.1
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
fn parse_assignments(input: &[u8]) -> IResult<&[u8], Vec<(Assignment, Assignment)>> {
|
||||||
todo!()
|
use nom::character::complete::u32;
|
||||||
|
|
||||||
|
fn parse_single(input: &[u8]) -> IResult<&[u8], Assignment> {
|
||||||
|
map(separated_pair(u32, tag("-"), u32), |(start, end)| {
|
||||||
|
Assignment(start, end)
|
||||||
|
})(input)
|
||||||
|
}
|
||||||
|
|
||||||
|
let parse_line = separated_pair(parse_single, tag(","), parse_single);
|
||||||
|
|
||||||
|
many0(terminated(parse_line, newline))(input)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parts_common(input: &[u8], filter: impl Fn(Assignment, Assignment) -> bool) -> Result<String> {
|
||||||
|
let assigments = parse_input(input, parse_assignments)?;
|
||||||
|
|
||||||
|
let overlapping = assigments
|
||||||
|
.into_iter()
|
||||||
|
.filter(|&(a, b)| filter(a, b))
|
||||||
|
.count();
|
||||||
|
|
||||||
|
Ok(overlapping.to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn part1(input: &[u8]) -> Result<String> {
|
||||||
|
parts_common(input, Assignment::one_contains)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn part2(input: &[u8]) -> Result<String> {
|
||||||
|
parts_common(input, Assignment::one_overlaps)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
const SAMPLE: &[u8] = include_bytes!("samples/04.txt");
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part1() {
|
||||||
|
assert_eq!(part1(SAMPLE).unwrap(), "2")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part2() {
|
||||||
|
assert_eq!(part2(SAMPLE).unwrap(), "4")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,166 @@
|
|||||||
|
use std::cmp::Ordering;
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
use nom::branch::alt;
|
||||||
|
use nom::bytes::complete::tag;
|
||||||
|
use nom::bytes::complete::take;
|
||||||
|
use nom::bytes::complete::take_until;
|
||||||
|
use nom::character::complete::newline;
|
||||||
|
use nom::combinator::map;
|
||||||
|
use nom::combinator::opt;
|
||||||
|
use nom::multi::fold_many1;
|
||||||
|
use nom::multi::many1;
|
||||||
|
use nom::sequence::delimited;
|
||||||
|
use nom::sequence::preceded;
|
||||||
|
use nom::sequence::terminated;
|
||||||
|
use nom::sequence::tuple;
|
||||||
|
use nom::IResult;
|
||||||
|
|
||||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
use crate::common::enumerate;
|
||||||
todo!()
|
use crate::common::parse_input;
|
||||||
|
|
||||||
|
type Move = (usize, usize, usize);
|
||||||
|
type OwnedStacks = Vec<Vec<u8>>;
|
||||||
|
|
||||||
|
fn parse_row<'a>(input: &'a [u8], stacks: &mut OwnedStacks) -> IResult<&'a [u8], ()> {
|
||||||
|
// Forgive me for this crime
|
||||||
|
fold_many1(
|
||||||
|
enumerate(terminated(
|
||||||
|
alt((
|
||||||
|
// Parse a delimited value into a Some(content)
|
||||||
|
map(delimited(tag("["), take(1usize), tag("]")), |v: &[u8]| {
|
||||||
|
Some(v[0])
|
||||||
|
}),
|
||||||
|
// Or an empty stack into a None
|
||||||
|
map(tag(" "), |_| None),
|
||||||
|
)),
|
||||||
|
opt(tag(" ")),
|
||||||
|
)),
|
||||||
|
|| (),
|
||||||
|
move |_, (index, c)| {
|
||||||
|
if let Some(b) = c {
|
||||||
|
if stacks.len() <= index {
|
||||||
|
stacks.resize_with(index + 1, Vec::new);
|
||||||
|
}
|
||||||
|
|
||||||
|
stacks[index].push(b)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
)(input)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
fn parse_stacks(input: &[u8]) -> IResult<&[u8], OwnedStacks> {
|
||||||
todo!()
|
let mut stacks = Vec::new();
|
||||||
|
|
||||||
|
let (input, _) = terminated(
|
||||||
|
fold_many1(
|
||||||
|
terminated(|input| parse_row(input, &mut stacks), newline),
|
||||||
|
|| (),
|
||||||
|
|_, _| (),
|
||||||
|
),
|
||||||
|
// Skip the line with the numbers
|
||||||
|
take_until("\n\n"),
|
||||||
|
)(input)?;
|
||||||
|
|
||||||
|
// Reverse the stacks since we parsed them top-down
|
||||||
|
for stack in &mut stacks {
|
||||||
|
stack.reverse();
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok((input, stacks))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_task(input: &[u8]) -> IResult<&[u8], (OwnedStacks, Vec<Move>)> {
|
||||||
|
fn parse_usize(input: &[u8]) -> IResult<&[u8], usize> {
|
||||||
|
map(nom::character::complete::u32, |v| v as usize)(input)
|
||||||
|
}
|
||||||
|
let (input, stacks) = parse_stacks(input)?;
|
||||||
|
|
||||||
|
// Consume the double newline
|
||||||
|
let (input, _) = tag("\n\n")(input)?;
|
||||||
|
|
||||||
|
let (input, moves) = many1(terminated(
|
||||||
|
tuple((
|
||||||
|
preceded(tag("move "), parse_usize),
|
||||||
|
preceded(tag(" from "), parse_usize),
|
||||||
|
preceded(tag(" to "), parse_usize),
|
||||||
|
)),
|
||||||
|
newline,
|
||||||
|
))(input)?;
|
||||||
|
|
||||||
|
Ok((input, (stacks, moves)))
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Some magic to get two mutable references into the same slice
|
||||||
|
fn get_both(stacks: &mut [Vec<u8>], from: usize, to: usize) -> (&mut Vec<u8>, &mut Vec<u8>) {
|
||||||
|
match from.cmp(&to) {
|
||||||
|
Ordering::Greater => {
|
||||||
|
let (begin, end) = stacks.split_at_mut(from);
|
||||||
|
(&mut end[0], &mut begin[to])
|
||||||
|
}
|
||||||
|
Ordering::Less => {
|
||||||
|
let (begin, end) = stacks.split_at_mut(to);
|
||||||
|
(&mut begin[from], &mut end[0])
|
||||||
|
}
|
||||||
|
Ordering::Equal => panic!("Tried to stack from and to {from}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn compute_answer(stacks: &mut [Vec<u8>]) -> Result<String> {
|
||||||
|
let mut result = String::with_capacity(stacks.len());
|
||||||
|
|
||||||
|
for stack in stacks {
|
||||||
|
result.push(
|
||||||
|
*stack
|
||||||
|
.last()
|
||||||
|
.ok_or_else(|| anyhow::anyhow!("Encountered empty stack"))? as char,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn part1(input: &[u8]) -> Result<String> {
|
||||||
|
let (mut stacks, moves) = parse_input(input, parse_task)?;
|
||||||
|
|
||||||
|
for (count, from, to) in moves {
|
||||||
|
let (from, to) = get_both(&mut stacks, from - 1, to - 1);
|
||||||
|
|
||||||
|
let drain_start = from.len() - count;
|
||||||
|
|
||||||
|
to.extend(from.drain(drain_start..).rev());
|
||||||
|
}
|
||||||
|
|
||||||
|
compute_answer(&mut stacks)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn part2(input: &[u8]) -> Result<String> {
|
||||||
|
let (mut stacks, moves) = parse_input(input, parse_task)?;
|
||||||
|
|
||||||
|
for (count, from, to) in moves {
|
||||||
|
let (from, to) = get_both(&mut stacks, from - 1, to - 1);
|
||||||
|
|
||||||
|
let drain_start = from.len() - count;
|
||||||
|
|
||||||
|
to.extend(from.drain(drain_start..));
|
||||||
|
}
|
||||||
|
|
||||||
|
compute_answer(&mut stacks)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
const SAMPLE: &[u8] = include_bytes!("samples/05.txt");
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part1() {
|
||||||
|
assert_eq!(part1(SAMPLE).unwrap(), "CMZ");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part2() {
|
||||||
|
assert_eq!(part2(SAMPLE).unwrap(), "MCD");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,68 @@
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
|
||||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
fn find_first(input: &[u8], unique: usize) -> Result<usize> {
|
||||||
todo!()
|
let mut seen = [false; 256];
|
||||||
|
|
||||||
|
let mut tail_it = input.iter();
|
||||||
|
|
||||||
|
let mut first = 0;
|
||||||
|
|
||||||
|
// Loop invariant: input[first..last] contains only unique characters
|
||||||
|
for (last, &c) in input.iter().enumerate() {
|
||||||
|
if seen[c as usize] {
|
||||||
|
first += (&mut tail_it)
|
||||||
|
.take_while(|&&b| b != c)
|
||||||
|
.map(|&b| seen[b as usize] = false)
|
||||||
|
.count()
|
||||||
|
+ 1; // +1 because take_while doesn't return the first element that didn't satisfy the condition, while we do need to count it
|
||||||
|
} else {
|
||||||
|
// New unique character found: input[first..=last] contains unique characters
|
||||||
|
if last - first + 1 == unique {
|
||||||
|
return Ok(last + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
seen[c as usize] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
anyhow::bail!("Did not find unique sequence of length {unique}");
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
pub fn part1(input: &[u8]) -> Result<String> {
|
||||||
todo!()
|
Ok(find_first(input, 4)?.to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn part2(input: &[u8]) -> Result<String> {
|
||||||
|
Ok(find_first(input, 14)?.to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
const SAMPLES: &[&[u8]] = &[
|
||||||
|
b"mjqjpqmgbljsphdztnvjfqwrcgsmlb",
|
||||||
|
b"bvwbjplbgvbhsrlpgdmjqwftvncz",
|
||||||
|
b"nppdvjthqldpwncqszvftbrmjlhg",
|
||||||
|
b"nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg",
|
||||||
|
b"zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw",
|
||||||
|
];
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part1() {
|
||||||
|
const CORRECT: &[usize] = &[7, 5, 6, 10, 11];
|
||||||
|
|
||||||
|
for (&sample, &correct) in SAMPLES.iter().zip(CORRECT) {
|
||||||
|
assert_eq!(find_first(sample, 4).unwrap(), correct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part2() {
|
||||||
|
const CORRECT: &[usize] = &[19, 23, 23, 29, 26];
|
||||||
|
|
||||||
|
for (&sample, &correct) in SAMPLES.iter().zip(CORRECT) {
|
||||||
|
assert_eq!(find_first(sample, 14).unwrap(), correct);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,124 @@
|
|||||||
|
use anyhow::Context;
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
use nom::branch::alt;
|
||||||
|
use nom::bytes::complete::tag;
|
||||||
|
use nom::bytes::complete::take_until;
|
||||||
|
use nom::character::complete::newline;
|
||||||
|
use nom::combinator::map;
|
||||||
|
use nom::combinator::opt;
|
||||||
|
use nom::multi::fold_many0;
|
||||||
|
use nom::sequence::delimited;
|
||||||
|
use nom::sequence::preceded;
|
||||||
|
use nom::sequence::terminated;
|
||||||
|
use nom::sequence::tuple;
|
||||||
|
use nom::IResult;
|
||||||
|
|
||||||
pub fn part1(_input: &[u8]) -> Result<String> {
|
use crate::common::parse_input;
|
||||||
todo!()
|
|
||||||
|
fn parse_dir<'a>(
|
||||||
|
input: &'a [u8],
|
||||||
|
dirs: &mut Vec<u32>,
|
||||||
|
dir_stack: &mut Vec<&'a [u8]>,
|
||||||
|
) -> IResult<&'a [u8], u32> {
|
||||||
|
use nom::character::complete::u32;
|
||||||
|
|
||||||
|
enum Entry<'a> {
|
||||||
|
File(u32),
|
||||||
|
Dir(&'a [u8]),
|
||||||
|
}
|
||||||
|
let initial_len = dir_stack.len();
|
||||||
|
|
||||||
|
let (mut input, mut size) = preceded(
|
||||||
|
tag("$ ls\n"),
|
||||||
|
fold_many0(
|
||||||
|
// Map many newline-terminated entries
|
||||||
|
terminated(
|
||||||
|
// of either
|
||||||
|
alt((
|
||||||
|
// A size followed by a name
|
||||||
|
map(terminated(u32, take_until("\n")), Entry::File),
|
||||||
|
// Or the word "dir" followed by a name
|
||||||
|
map(preceded(tag("dir "), take_until("\n")), Entry::Dir),
|
||||||
|
)),
|
||||||
|
newline,
|
||||||
|
),
|
||||||
|
|| 0u32,
|
||||||
|
|files_sum, entry| match entry {
|
||||||
|
Entry::File(size) => files_sum + size,
|
||||||
|
Entry::Dir(name) => {
|
||||||
|
dir_stack.push(name);
|
||||||
|
files_sum
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)(input)?;
|
||||||
|
|
||||||
|
for i in initial_len..dir_stack.len() {
|
||||||
|
let (new_input, content_size) = delimited(
|
||||||
|
tuple((tag("$ cd "), tag(dir_stack[i]), newline)),
|
||||||
|
|input| parse_dir(input, dirs, dir_stack),
|
||||||
|
// Optional cd'ing out because the last directory is never exited.
|
||||||
|
opt(tag("$ cd ..\n")),
|
||||||
|
)(input)?;
|
||||||
|
|
||||||
|
input = new_input;
|
||||||
|
size += content_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
dirs.push(size);
|
||||||
|
dir_stack.truncate(initial_len);
|
||||||
|
|
||||||
|
Ok((input, size))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn part2(_input: &[u8]) -> Result<String> {
|
fn parse_program(input: &[u8]) -> IResult<&[u8], (u32, Vec<u32>)> {
|
||||||
todo!()
|
let mut dirs = Vec::new();
|
||||||
|
let mut dirstack = Vec::new();
|
||||||
|
let (input, size) = preceded(tag("$ cd /\n"), |input| {
|
||||||
|
parse_dir(input, &mut dirs, &mut dirstack)
|
||||||
|
})(input)?;
|
||||||
|
|
||||||
|
Ok((input, (size, dirs)))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn part1(input: &[u8]) -> Result<String> {
|
||||||
|
let (_, sizes) = parse_input(input, parse_program)?;
|
||||||
|
|
||||||
|
let searched_size: u32 = sizes.into_iter().filter(|&size| size <= 100000).sum();
|
||||||
|
|
||||||
|
Ok(searched_size.to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn part2(input: &[u8]) -> Result<String> {
|
||||||
|
const TARGET: u32 = 30000000;
|
||||||
|
const TOTAL: u32 = 70000000;
|
||||||
|
|
||||||
|
let (used, sizes) = parse_input(input, parse_program)?;
|
||||||
|
|
||||||
|
let required = TARGET - (TOTAL - used);
|
||||||
|
|
||||||
|
let min = sizes
|
||||||
|
.into_iter()
|
||||||
|
.filter(|&size| size >= required)
|
||||||
|
.min()
|
||||||
|
.context("Did not find dir large enough to delete")?;
|
||||||
|
|
||||||
|
Ok(min.to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
const SAMPLE: &[u8] = include_bytes!("samples/07.txt");
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part1() {
|
||||||
|
assert_eq!(part1(SAMPLE).unwrap(), "95437");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_part2() {
|
||||||
|
assert_eq!(part2(SAMPLE).unwrap(), "24933642");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
6
2022/src/samples/03.txt
Normal file
6
2022/src/samples/03.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||||
|
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||||
|
PmmdzqPrVvPwwTWBwg
|
||||||
|
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||||
|
ttgJtRGJQctTZtZT
|
||||||
|
CrZsJsPPZsGzwwsLwLmpwMDw
|
||||||
6
2022/src/samples/04.txt
Normal file
6
2022/src/samples/04.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
2-4,6-8
|
||||||
|
2-3,4-5
|
||||||
|
5-7,7-9
|
||||||
|
2-8,3-7
|
||||||
|
6-6,4-6
|
||||||
|
2-6,4-8
|
||||||
9
2022/src/samples/05.txt
Normal file
9
2022/src/samples/05.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
|
||||||
23
2022/src/samples/07.txt
Normal file
23
2022/src/samples/07.txt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
$ cd /
|
||||||
|
$ ls
|
||||||
|
dir a
|
||||||
|
14848514 b.txt
|
||||||
|
8504156 c.dat
|
||||||
|
dir d
|
||||||
|
$ cd a
|
||||||
|
$ ls
|
||||||
|
dir e
|
||||||
|
29116 f
|
||||||
|
2557 g
|
||||||
|
62596 h.lst
|
||||||
|
$ cd e
|
||||||
|
$ ls
|
||||||
|
584 i
|
||||||
|
$ cd ..
|
||||||
|
$ cd ..
|
||||||
|
$ cd d
|
||||||
|
$ ls
|
||||||
|
4060174 j
|
||||||
|
8033020 d.log
|
||||||
|
5626152 d.ext
|
||||||
|
7214296 k
|
||||||
Reference in New Issue
Block a user