day11
This commit is contained in:
11
AOC22.cabal
11
AOC22.cabal
@@ -29,6 +29,15 @@ executable AOC22-exe
|
||||
AOCUtil
|
||||
Days.Day01
|
||||
Days.Day02
|
||||
Days.Day03
|
||||
Days.Day04
|
||||
Days.Day05
|
||||
Days.Day06
|
||||
Days.Day07
|
||||
Days.Day08
|
||||
Days.Day09
|
||||
Days.Day10
|
||||
Days.Day11
|
||||
Paths_AOC22
|
||||
hs-source-dirs:
|
||||
src
|
||||
@@ -36,4 +45,6 @@ executable AOC22-exe
|
||||
build-depends:
|
||||
AOC22
|
||||
, base >=4.7 && <5
|
||||
, ghc
|
||||
, modular-arithmetic
|
||||
default-language: Haskell2010
|
||||
|
||||
300
data/day03.txt
Normal file
300
data/day03.txt
Normal file
@@ -0,0 +1,300 @@
|
||||
shzsFcPssFhjFssBzdpRcNHNZrpdJdJVJZ
|
||||
fwvMCntfCCbSbSbtDgDNrDtDtJHZVH
|
||||
GbCwwbwwnGrLhBzjFFFsWPhL
|
||||
PpCqRsqqmmtCwMJC
|
||||
LHFrLLHDSNHlfWNhDzmjzzJlJzPJMvPJjQ
|
||||
SGSWDNrhZhPDSWDZLgVVRgbRppgpGVnpnn
|
||||
GRRjbVjmJZlgMRzzrN
|
||||
FpDptHpfHfnpPTvDFTWpFPnPcMfNCClNrzcVcrMMzVsCZlsZ
|
||||
TFTQDnvLHPFDtVbLwbjdGjdwwJ
|
||||
lhljvvhCjjzhjszzBPmnmGVZMGzG
|
||||
FbTcTwbtSFdtcMPnTBPQVnnBZT
|
||||
SFMpHDtNDSSbSdwppvgJWjJCJJgWgvlJHH
|
||||
wzNCWpzCzJnWWpRRNdJrgHLhjfbLrHrchV
|
||||
lBMStmPmmLQDPQZlshrdhgrfrcrrddgHgs
|
||||
mvGDGQSvDPBlGMLGCvCWpNvpzRWFwqRw
|
||||
stBttBThtDZqPWssPWZp
|
||||
gRggwwggCGFSBBvPRpHZZrHdZLZq
|
||||
ccFJGCNJmmGQzbTDhnQhBBnB
|
||||
HJqMqtZbJMmJTqtLtVMqhpfphNdQfhfzzjhhlHll
|
||||
rWSBrnwFwWCvwWCwBgPgCgzjQccQhhgRzcdQzjfcNfzR
|
||||
CWBCwCvCvvwssWLMtJJGMdMZJsGV
|
||||
nFwSFQwsNrrsssSwCrhrCNnfcCRgJRMJTJcMfRzMCMCRvW
|
||||
DdbGdLZLttllWWvTzgzzgR
|
||||
ZqGzPdLtDjBjDZGPZVmnhQFwqrFQhVFnss
|
||||
sNNpCjttjsJjSpgpWjslCTnqqSVffrnhSfDhmhrhfm
|
||||
dBwcGzbPBHbbwZcwJbcTTFDFFFDVrdVmFdnDqf
|
||||
HzGcczQPHGwzPzGHRctWlvRgtvJlvNlJvRNj
|
||||
cFNCFdvcCHvFBCZcwBfRSpttGhDmCghGShmSRt
|
||||
QjLnTTzQVzTTnLMqhDgPhGDDSjGPrgSh
|
||||
TTJGnJJlLQdNWZWJNBJZ
|
||||
WHBpHcMDZHLDbHLtGCnmRmLNGmRqvsCC
|
||||
PzTFzPPTJzrSbGsvnmqfsqfqRz
|
||||
dJSQQdVFQgjTrjQPWcWHbBVcZVccZtWp
|
||||
JDtnRtJzNzTTNlHc
|
||||
rQPJFrLPGMMwrGPFwjFMVLjSTWHdWBTdSWdWZlcWTHlZ
|
||||
MGFrCvLLwrwPFVVhvLMGGtnqfsmRJgDnqbRgfbqmfC
|
||||
jnTtFjcSSvctJjznzvFmpqqPMqQDRVpRqPzqQzVQ
|
||||
bhHBfrWpfHsfGNllRrRCPqDCqPqq
|
||||
gsGZZpbWgbwHWGNgfZNjvLSTTjtnTgjSSSSJmL
|
||||
RLQNdVNnRQdQHVVLGpspNqvtsqptqpTtsp
|
||||
MlRWwbRBBFMFjCTFTTFDvj
|
||||
WmlWBmBwwmrndnmLRHRQ
|
||||
WnftJWlfnWSHGCjWWWSCFqFGBDqBwMcDmmMmGmqD
|
||||
pTNhpTrPhhhRPzbhrppLhThLgqDmwccwqPBmMMqnFBcwwmBB
|
||||
ZrhQTpzdjSVVtnvZ
|
||||
jgtnJtBjtlTdJBZJVQBngQGDCGWpPGCcPWCbWdWMbcpP
|
||||
wHstNNttSHPDmHcMCp
|
||||
rrFFSvLLNfsFtNSqrtfrhsNjjVTBVgVvnTBvTQvjTgjVZz
|
||||
qhZwlqFqFwlJwrDHqHcDvgcNzv
|
||||
RCCTQmjCbQTBtRTbjJRDpBrgDHPPpPDvHccDPc
|
||||
VmjVWstQJhlJlGVJ
|
||||
GggpGwZmgvgJMvbJFQQDbDFbBbFCQDCW
|
||||
rtrLzNLtNSPnNqDSQDcQCWlqBQ
|
||||
VtzdRPtztLtVRtZmmMTRwCGZpMwp
|
||||
vtvqjsCqtshfjcWFHWGjGFJj
|
||||
zGrnzDDMpPcTHcSTVTJP
|
||||
DbDwMbZRDrZdBBnMznZMGZDfwtlgQhsqCttClsqvsLfCff
|
||||
JLzLtLsrzsQdvrWRwMHwcc
|
||||
qPmCTzlPjljjFTZmWwcwwvHMMRWwHvMm
|
||||
PFqZnVCqTCNjCzNgQsbGBLzLQQ
|
||||
CBnppDHllVpPCBshBHpjDTSmZcSrfwvmJcDDTJfw
|
||||
dFRLdLFQzNSTBTSNmBJv
|
||||
FzFFzRMBFWtQlPlsjjPVMnhC
|
||||
CVCfwnfdVvBdBbTNTT
|
||||
LNzsHPNWsDjTZqDHqT
|
||||
PtLgQsGQLSzWLstPgGWcgQLSNrpplffrnrNhpVCwlGVlrwMn
|
||||
jPPVqPsHffzVnHzvSgMcCJGGMSVCll
|
||||
pdbpDpBLNmNNppJgcvgSllGjDSGQ
|
||||
hrbBwLpjLhhhNZLhNrhZZLHzfsztFzzsrtHfRFnFfRHf
|
||||
tdjBdbmSfdHBdHHmZlWjFrnlWQlqvMFvFn
|
||||
pDNDJhLhPVPLLLJphJLwNcwnQTcWWTqTrqMWTZvqMrlvFM
|
||||
gpVLhNwpgZJCghCLDNwphgmsBdzHHHmSstmfggzdbR
|
||||
TfMpfMBVftLMDBSjWDHgzHbgwLgHHvdzggzs
|
||||
QJnZcFFnZRHdHjJvwgdg
|
||||
RjjRRnmNmmZNjZqZnQcVffBrWqVTqrtffTSTVV
|
||||
fZTdTVcVjrjdBzdTnGtgnnGSHHNFGn
|
||||
thMWPtPMslmGnWnNnS
|
||||
thvbMvQMRphhLCjrzBjZVdcQfC
|
||||
MpmgZFgMGdrFrBCVnJ
|
||||
JsbJlTTlvLQbVffRRvBBRVjd
|
||||
LWlbhHlJhLTJmmGcMMHNmNgN
|
||||
bhvmhPrbhqNqQRRGzQjVvvRL
|
||||
wTwBZDBTwwggfnngcDfdsVVFQCdzCzDVRsFdQs
|
||||
pngWMcgzMgpZWncnMpWNrbNHrNbmHhltWlbl
|
||||
nPndBjLPscWSccBVGnScsSzMdhMppMthdMgpMgrzvhhp
|
||||
CCFTFDwqZqCCJmhvpDzztVzDNztp
|
||||
qQFJTbRVbmCfwTwfmnnssWBGnLnWlRLSGn
|
||||
JRlJDSvLRRCdvmDSvdlbZNVBSWZGNgWsZGNgZBVs
|
||||
QrjPMqMnLzzjLjFnNNgBpsgtgGGGVZ
|
||||
hrjrFqjqFrQfMHPhQzDvvCLJdwwwmvbJbwDH
|
||||
HDGrDDDpNsGQNdZQ
|
||||
jpjgtgjSjpjllfZZtZsvNdtshqqq
|
||||
cbgMfjclWTJcMwjWJfpfmVPLPBnVBHnmVbnmLBbD
|
||||
rPrMZNsNrsvrwqvFFFdgQWNzLJJzRW
|
||||
pStppStHmcmHpgVSllVcbVbWWDdLFhdbzdRRFhJFLLRF
|
||||
cltCHmCBmtSlgjpllgGvTwPZPMfZvPsCMCwZvC
|
||||
FRQQMdlFMDWRFQRQMQQDWdFbSSSVJSBbJSlBVVBnPJnzJL
|
||||
rsftPfhsrgwznSzzHSLgJG
|
||||
fhNsjrjhvsTTvdjcCRMRMRPcCW
|
||||
tRtJttHFrjtDQHHBQMMBgMBSghhZQb
|
||||
vqWPLpLvqrmPdmqwvqfmPhNBBBlSnbwbgnlnlhNSZZ
|
||||
pGpdfzLLspddmqsqPvfvvPpGTVcJJCDRjHrccRtDjcRDFD
|
||||
GJMHCdTMWJRhSTlhhSPllt
|
||||
fVvqpfBFrqvqNzzgVDFrpDPmSVtQSlSmhjwltlRtmVhn
|
||||
pzpBNDBzfDrsNsDRJJRdCssMLdLZWZ
|
||||
hFfvWWvdpCwwcwFhphpcZCMmllHLfmbQlbrQLBJmGgQrQm
|
||||
nVSNGjGzzSVNTsjzSJrbSrHBSHlrrmQHJB
|
||||
PttTNsTRVnNjNqRnzRzRWCCCcpMCWGPMwwFZvFwW
|
||||
DvZbFnDDsqDBwwRQgNBm
|
||||
HhWpWWRMWChlChdHLlGlGtQtggSNPSSpgPmNgPJQtw
|
||||
CMlWGMhhCVHlLCdHTHdrGHdbzjVqnzcvqqjRjFbbzbFFqR
|
||||
ZZgCNqqBmjZsNgZCqJgNBdrLFHbBrWlPdHWFbPnHPW
|
||||
TVwTDfzDwSDzmcSTcrzdbllnHPHdFlLzbF
|
||||
tvDQwVtVvDVmtRsNMgRpJg
|
||||
BBpDCpNJnmnpnDDmDGGmtTzqHcGTvTTjTbGjHLVcLb
|
||||
swNNhPwwHzTVwwHw
|
||||
rPRlPRhSQmmBDpnNfl
|
||||
pbRhffPzcPDmfcNTpVBLpBjMGBGjZLLg
|
||||
ssrCsqrszgJjZMqZLQ
|
||||
SzCwnsllCrssvdrvwzPmDmPPbFRbSThPTPDD
|
||||
QWLfcfczQQpcDTpLPfdZRRvRRVqbFWvZbvtqvv
|
||||
NsGGJBhCmNdZVqsbdssZ
|
||||
rMwwwBBJMrdzPfQMpzMnLQ
|
||||
rdtCQhrCtQQprtTWQCHFjPgGBPdFPgvBqRRPqB
|
||||
lsVsSnVSbLmmgBcgTLTFGgvq
|
||||
wTTDTszsbzMDppJrJhDQ
|
||||
ZlmsGLBVCBBZFCFFHqcHVvQhqVQSSHpH
|
||||
dbbTRMrRwwzDfrTbFtMvcptvHFQQpqtc
|
||||
gdJTDWgfwDwTwmgmNPnNsgFBlZ
|
||||
PWhWhGFzzzrLdHCPccbJQJcHPD
|
||||
NRpVTpTgRWVlHJNHMcHQMb
|
||||
pSRSpVSZWRSTZjgTRTWnFLdZLrrndhdzZvtvzn
|
||||
LgctLgVBVLhlPjqRhBLVcVlhbDDcGnNGfwCrbNDnrGbGCJNw
|
||||
HmppHMWWmQmMqZZHWQrDDfDCffJrDGJrCb
|
||||
qpWZsZZZMZWTLPhTRgTtThRP
|
||||
hfhQfFQWzBfhfTQdmzdLDtDjtvHLjt
|
||||
qsgpcqMNRmgpqsCwpCmZDvjwvdddHZHvZDtrrd
|
||||
SgmNmqScbTSJbhJQ
|
||||
dvMTQvTnZJsrQdbbSvMVZMblDwlflfDGgwwHcfGjPfjjrG
|
||||
FqBLpBpFpFzRzqNFmgjGlDRHcwPPGwgcgs
|
||||
tLNtWshsLLqWMJhTQVVbhvJd
|
||||
bgZLMZgzbbLCcPCbMZbcNMgBqSTqSWVtSzvvTTBTqBvRBW
|
||||
FhQpJQnGrlhGlrnTqRtTRJqSwDwtVR
|
||||
FqlnnFnqFHnGHHdNZdbZbCNMdPLMPb
|
||||
HHFnbftcfnfbbTbTnHTNVZZzJlPQlFrFzVJFZsdr
|
||||
mvpGCBgwqCvLCqvMQWWzsQQWlPzwzsrV
|
||||
hpGSGgqSvqbHcnhfVfct
|
||||
lGVrnHsGcnVHzscrlGjHcrHqqWPlJCPJClTLLqCSPLPdqS
|
||||
fRbwbtMQZtMMRFMSqfJTTWCTJPJCmd
|
||||
ggdvtvdbVVGnpDGg
|
||||
BnBjTcbnvhjjlMnNJJfnDnQDGdNDfP
|
||||
qwFqVSWwqLpWFmFVCSqFpDDCJNJRQTRfRDGPfdfDQN
|
||||
zwHwWVVWWFSqqwWTLqzzztHMvBhlcghblMlcttMllh
|
||||
PFFNPNPmlFllbctNLmcjBstrsVrQHJSSHHSnnB
|
||||
fddfDhdwGhTWWTDMwMggssjsjndsBsjsnSrVqSVV
|
||||
MCvvTWvRMwCvGPpzCcmbplpCVC
|
||||
thTqlPPTNbGNhGdqRRhRrNtFWnDnvvFZDpnFvfQDZtvWvv
|
||||
HcMzVcVVcHrgHzcMcmmgfQvFQnMjnWDjfnvjQFfQ
|
||||
VSmHJLHBJrTrJTlT
|
||||
NjnsHjLLjNRddNdBFBSR
|
||||
ftsbqfDcDqsrDtqsfSVBhJVFJgdBRVFS
|
||||
wvDqwtDlsDDczjzjHvLzLQQM
|
||||
qDwstwDtRfpJfVhBVZBMvnlRvv
|
||||
zSFzQHFWdgZBVTZhTzrp
|
||||
NHdggjGjWHQFPWHNPPbpJfPDtCwCtqDqJfbt
|
||||
pvnbqHvnTvlCCpjsBsMGBGWWPp
|
||||
RJSJhJCRVJmJwScrhSJdfwFsBGhZBjhGFFFFGgFPGhZW
|
||||
cdRrdmwtfcdSmLtcSCQlvQNqQTlqqvtTlv
|
||||
rnSlSrgWjVGpTTRhSffpRd
|
||||
HtgHPsNNgNHszPcTBphMdhHhBcTc
|
||||
JNNbZPZZsszNmtDbPgsmJlwFvWVnCwrlmWlnjnGvCC
|
||||
WrVBVgVGGQCrSTTqvVjDqDjv
|
||||
FmwRRwwRQhhLFMjFMzdqSSzS
|
||||
RcJtbnnLtQWrGHcfrP
|
||||
vpzssjmVjVZWNZzzQwtQwccpQhgtQCct
|
||||
qDdfLMnMrrTbBLqTqltlTfbGQnghgRwggGgRnhhccCJJcG
|
||||
MtdLfSSSddMftlrjjzsSWVSjFvjNvs
|
||||
qTRPpRPzJglzGJzpGRHWHljwDtbwffjtbhjfwNfHmwwf
|
||||
SZLVdsvrrdFdBcdZvsBdDCNtbmftNwfNbNhCNvtz
|
||||
MLzzddLsQRppRlQGPq
|
||||
PDDpdJgtpppGgttgdGdgJFzLjVcvVnnCTrVrRPTLvwnTTC
|
||||
ZSbHBsSNlZcsfNnnvRrnVjrHwvCC
|
||||
NmSmsfsfhmzcDmctJW
|
||||
NbrLfrrLqpqWQHtBzbFttJgcgB
|
||||
CmwjPPjjjShPvljwvwwjPBFttBtcHzFJcHTRHJRRmT
|
||||
CCljjDGhvPCVdVSCdPvrrNfnnQsGqMpqqMqnFW
|
||||
bdPdbcDZlddsZbHjrrgrmZmCZhCGjv
|
||||
BffLfLVFVMMBRfwMpfzhFGFhGWvWvrhNvvNj
|
||||
RMBpRSnffBJjSbJqdPHsDcbqtl
|
||||
BgwGwDDZttDDTNND
|
||||
WzNNnFRWFtTFlFsh
|
||||
WJjPpPqqzWRbrqnNqvVvgvvdcBwgdrVBZG
|
||||
FFbMVMFPvJppgvcvrZMjHlCJWHmHHBlqhCmqChCl
|
||||
RGQVdVVLnLsQnQnnqWBlBmDRBDWWlhBD
|
||||
SftLzQndGfVgFfjvvM
|
||||
npvLlFLTWWqdLnJCmBmmpjQjjmjB
|
||||
tfgDwzwVVVVtgtrsJtrbjSPQjQmjNBCNBNhPHDHC
|
||||
ggVzVtMRgzMrvJLqFnnRnnRT
|
||||
gZFZssWgNZTDwHDWzsFwWDQMMpqqpBPMjFtMPSQFqqqM
|
||||
vrmvhdnVvQpftStnMN
|
||||
JCdLddhhdJdcCdrrmCGhlgNsWDWDwWsgwHgHLZHW
|
||||
vSsSGjSPvjvRSGpFprFbqFpppRfp
|
||||
ZdmlndtBZbwrwfpWFn
|
||||
JmdHdBBHtgllZldBhJZldLLBjPVQTfvGPNzQQSjjzPgTGNTs
|
||||
TjTjBjVrTsLRRrMBsMMgzLqGGqgQHQdCQGgpgd
|
||||
nbZcmNnPNcbNftvhlhZpgQgCqdSpgCHCqPFzSH
|
||||
WfcNvtmmNmQlvNcbsWWjMwMVMRDVMDJM
|
||||
hHHnfZSwHDgHcfclSGSnvrnvBCvWWntvzvzbWWVq
|
||||
dTJTmspFTsFdRRLvtvLzvvVqtPVtrb
|
||||
VFMNFpRJNTppTpsJVRcMGgfGfgZwghgGfcGh
|
||||
lLGvwsMJLCMVnTrCrVdHRd
|
||||
tbzqtDNNBpNWBtqzfRrFFnrVTTdrQVSVGp
|
||||
tztfzmfzzPDzgWNNBbhGMlJLsvhJJjGJhGmM
|
||||
rHrVJQVQVJLggDQQLbTvdCCSTdWLLLbCbS
|
||||
pNtnwPthmZGRpmPFtqbMSzqffFSdTvbSzW
|
||||
GpvvshwtmwsZDljjssHjVBVj
|
||||
SmhJdtJhhzQSrzVhtQbtBRNfnFNSnDNGRfFGGMgR
|
||||
lHwqPjqwTjLHCWLvPpvNrNMvnNGNfNGNBffGRN
|
||||
lCrPTrwpPZWlqPlqpWWqZjsmJzbzVtVhhdsJcQdddZVJ
|
||||
QqpCWHdQdVQlWcQCqcfRjnZZZPDnSPqPhhqZ
|
||||
tmmzgWGgwJwwStSZZDRnZssR
|
||||
GbFbLLvgmMMwGgmLCrppQrWVlWrFTHHd
|
||||
qdqCgSVdVSVqfwsdZhpJspZsph
|
||||
RjZBbmRlrlmmJwLNNNhLpwhB
|
||||
vZlRrtTZCzCMfSPT
|
||||
JBjhCNwjrlJlHJJRsscZrTcvLLgTsLPP
|
||||
dDztmntCSgbLgqTzgc
|
||||
fGVWnSMFtVGMNNNQllBjWHJC
|
||||
dSDhVVdVZtnSgHQGThQvFNQQqF
|
||||
LcfLRpMpcBpbrJfsbsscBNWRNPRGHvqPdTGPGqPWFH
|
||||
spmrCcrdJJpLLmcmLLLDlzSzCCjVwZVtgnSZzn
|
||||
ZJtgPTHtZPZQGbtNzzprVWWVrbrpCD
|
||||
BRlfcRmBhSMVBqSVfBvNWrDrjWCjjzprCDCl
|
||||
LfMRSmfqfSLcnnMqVSfccnhZwJFHZFTGZQGFLggwZTZGPJ
|
||||
BChWddRRRcfmDbfhDP
|
||||
MgpMFFsvMfGwvLgPjQPzPPmDcztDtw
|
||||
NFgJpqvpLgqFnWWVNSfnNSCR
|
||||
zMMMRmMfJpfhpzQJLMVtjtjPntgBtlZlVgJP
|
||||
SdNbZvZbvbHTNbZbSWTdrTVBglBDlWBjDPDgntPqBDPt
|
||||
rrNcrFwNdSrfzwMzZMLQQs
|
||||
JPmCSfHTGJdTCbHgpgqLgRhghhffhg
|
||||
ZWSSFVSVFQghQvwpphgh
|
||||
lsDtZjVMMSdCNdbGCbjb
|
||||
PBQPvDvVVRvQDqLDzJTlzwjz
|
||||
tGcZTcdgGcncdrFrsTjzJSJqJqqwHSzzSZwq
|
||||
CgtgdFgcFCMnMgsGFGGQWPQpQTCBvbNpNVVWVT
|
||||
FHVFWMHMgVhnLWWMpnppfcdZNcPplnfn
|
||||
RSvSCBSqGgDRjqCpPlPpppTpPjlcNP
|
||||
zRzsGgJDqJwLVWVFwM
|
||||
ThhWhNthVWTWqbWbFWbTdBtWSdMlHSlGlCGCdsCMClmnSlMn
|
||||
DPPpvvfDHfLgDHvzpvPDsssMsmmzsMcClScMMcGG
|
||||
rgPLHHJJHgZfvvZQQZfrpfFqBBwFBTNTBNBwtthQwVqt
|
||||
JJgSWDSmSDQCFrhbRLSwLS
|
||||
VznqzVNsMsZLdqslbRChtbHdHRrwHb
|
||||
LVfNLMsLTmWDpBpf
|
||||
cbTsnNpcnnchllFQlMRgJhRP
|
||||
WddmdMVSBMWSBWjwCJVCPRwPFCQRRC
|
||||
DWSSfjdSrTpDnHHMbZ
|
||||
fgsVqqwQQtHhCrDfJH
|
||||
pvbnBZWBbvWbTdthrJbDmqrmHq
|
||||
TvZSNSNNSvFMBpqpnLnTBZBFGQwlQFggcFzcVGRlswsRll
|
||||
zfMcQHzPtRNvlllc
|
||||
BLnMhbZMLJLNNVtCdNgZgt
|
||||
BJGFpqMBhBLLMqnwBhbrbhLssjFzssjfDzsmFmjmQFQPjT
|
||||
JPBJPnpBFrqBJHtjlCjHJcCthM
|
||||
wQZggQWQGfZFVmmGfDRjlvvNcvlNDhcNttlctt
|
||||
SfmWfwVFwVGZWQVGSTdTbBpTPSqBbLnnrn
|
||||
RJqBRJbqpqqJGvqHMmcfczfcjvHQfm
|
||||
llgVnSWSlsssTnlWjhTcsZMcZcZMZMcccMNmcH
|
||||
TnFhhllnWCnVCTllLnhhVSrbDDPrdpjRRqjBPRBBpbFJ
|
||||
mRwRRNDjNTqwDNjNnNRTsQLcQWpQWZJLlLpQWs
|
||||
PMFGCSzzgbBVzCGShVQZcgWsQLLftttQtlZZ
|
||||
SlGVldCGGbBPMhPCVSBrNNdjRqjDrNmDnmrRwN
|
||||
mqGGqGHnqGBCMrnGCbbbLgTTFFNNghHNTj
|
||||
SdRfcsDPPcDdRzWPWltSlscwTSbShhgpQhgbFLbTQFjwhN
|
||||
DPWWZzzztsDDtfzlscsPdcWZnVMNVqqGJnBrVqCrMrVvZnBJ
|
||||
ZgglFCrrrlrWCJswHmwRVmFSwSsP
|
||||
zhzqBLcjjnpzMzjhTtcqnVGbwssVRmqbHNPbwPsVNH
|
||||
ftBjzLtptRWdvZlQQZQf
|
||||
nGpsMncVRMGSnfsBllZdppwrTljZrQ
|
||||
gcgHmtbCthHWhwBFBWZBlWlWrd
|
||||
bCDDqHhcqbbtqcqtvJMzsGRsvVfPsfnzJV
|
||||
TclPvSGZsPZRjhjWDgjp
|
||||
JtnwHFtJqtwfQfgWgRWhdhjtgdRM
|
||||
JBwnHwgFFqVJrsGmPvNTPsVvSN
|
||||
ZJnfZNnDNZJLzNntDtDNNzNWTVBPrrvRRGdBcVRfPPcvfdMr
|
||||
CFgjFmggQSQQmSggVMMvRdTvBVRjrdrc
|
||||
mbsqQFqFgwwmgmSbwQWWLDWzpLcLnzZzLbLL
|
||||
PnwSFSLSTwbbHdtstW
|
||||
RrDZVVfJNZCmDCfVDVlblZHbddtHScbWbMjt
|
||||
NmzqhzCCqmzffhCCqrhhLLnPvpnTPPgpGTTBSL
|
||||
ShhfLSDDFMPQddpMrDgNbjzffqqqzgcjbqZR
|
||||
sCstmwJwVBtmTltVmTVbRbcbcRvqvrZvBRvZbR
|
||||
VwCnwnVrrrWShWPHHDdQFL
|
||||
pbpDpWjZMmFCmmmb
|
||||
jTjtJLJgJncCFmnJFC
|
||||
LvhvhTQhBSdRNtLNsSszlGrHSGjZDlGf
|
||||
JrhvTNJJhhCrtVtcrNLwDBSBwqzDwQVbBLQS
|
||||
RnCgHmHHGMdPsGMfDlDqlSQbQnQQDbzD
|
||||
RdPMPsmWHmjfMffPcCWrptcprpFTFrFp
|
||||
6
data/day04.test
Normal file
6
data/day04.test
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
|
||||
1000
data/day04.txt
Normal file
1000
data/day04.txt
Normal file
File diff suppressed because it is too large
Load Diff
515
data/day05.txt
Normal file
515
data/day05.txt
Normal file
@@ -0,0 +1,515 @@
|
||||
[G] [W] [Q]
|
||||
[Z] [Q] [M] [J] [F]
|
||||
[V] [V] [S] [F] [N] [R]
|
||||
[T] [F] [C] [H] [F] [W] [P]
|
||||
[B] [L] [L] [J] [C] [V] [D] [V]
|
||||
[J] [V] [F] [N] [T] [T] [C] [Z] [W]
|
||||
[G] [R] [Q] [H] [Q] [W] [Z] [G] [B]
|
||||
[R] [J] [S] [Z] [R] [S] [D] [L] [J]
|
||||
1 2 3 4 5 6 7 8 9
|
||||
|
||||
move 6 from 5 to 7
|
||||
move 2 from 9 to 1
|
||||
move 4 from 8 to 6
|
||||
move 1 from 8 to 1
|
||||
move 2 from 9 to 1
|
||||
move 1 from 6 to 1
|
||||
move 13 from 7 to 8
|
||||
move 1 from 2 to 8
|
||||
move 9 from 1 to 5
|
||||
move 1 from 3 to 8
|
||||
move 3 from 6 to 7
|
||||
move 4 from 4 to 1
|
||||
move 11 from 5 to 6
|
||||
move 6 from 6 to 9
|
||||
move 3 from 4 to 2
|
||||
move 7 from 8 to 6
|
||||
move 1 from 7 to 5
|
||||
move 1 from 4 to 3
|
||||
move 7 from 1 to 5
|
||||
move 2 from 2 to 7
|
||||
move 4 from 9 to 6
|
||||
move 1 from 3 to 6
|
||||
move 1 from 1 to 9
|
||||
move 1 from 3 to 6
|
||||
move 1 from 5 to 8
|
||||
move 4 from 6 to 7
|
||||
move 3 from 8 to 7
|
||||
move 7 from 5 to 7
|
||||
move 1 from 3 to 1
|
||||
move 1 from 2 to 6
|
||||
move 14 from 6 to 5
|
||||
move 2 from 5 to 2
|
||||
move 3 from 9 to 2
|
||||
move 6 from 2 to 9
|
||||
move 7 from 8 to 6
|
||||
move 7 from 7 to 3
|
||||
move 2 from 8 to 7
|
||||
move 6 from 3 to 7
|
||||
move 17 from 7 to 1
|
||||
move 1 from 3 to 1
|
||||
move 1 from 2 to 5
|
||||
move 4 from 5 to 6
|
||||
move 17 from 6 to 9
|
||||
move 7 from 9 to 4
|
||||
move 1 from 2 to 7
|
||||
move 2 from 5 to 4
|
||||
move 3 from 7 to 8
|
||||
move 7 from 5 to 2
|
||||
move 6 from 2 to 8
|
||||
move 8 from 9 to 6
|
||||
move 1 from 2 to 3
|
||||
move 8 from 4 to 9
|
||||
move 7 from 6 to 9
|
||||
move 18 from 1 to 7
|
||||
move 1 from 1 to 8
|
||||
move 2 from 6 to 9
|
||||
move 1 from 3 to 9
|
||||
move 1 from 4 to 6
|
||||
move 1 from 8 to 3
|
||||
move 1 from 3 to 1
|
||||
move 10 from 7 to 2
|
||||
move 9 from 8 to 4
|
||||
move 1 from 6 to 4
|
||||
move 2 from 7 to 8
|
||||
move 5 from 4 to 9
|
||||
move 17 from 9 to 5
|
||||
move 2 from 7 to 6
|
||||
move 5 from 9 to 7
|
||||
move 5 from 4 to 2
|
||||
move 8 from 2 to 4
|
||||
move 8 from 4 to 3
|
||||
move 2 from 6 to 5
|
||||
move 2 from 8 to 5
|
||||
move 3 from 9 to 3
|
||||
move 4 from 7 to 3
|
||||
move 6 from 9 to 6
|
||||
move 4 from 6 to 9
|
||||
move 5 from 9 to 3
|
||||
move 8 from 5 to 2
|
||||
move 1 from 1 to 9
|
||||
move 1 from 6 to 3
|
||||
move 1 from 9 to 4
|
||||
move 5 from 7 to 4
|
||||
move 19 from 3 to 1
|
||||
move 4 from 2 to 8
|
||||
move 13 from 5 to 1
|
||||
move 1 from 6 to 3
|
||||
move 3 from 3 to 6
|
||||
move 2 from 8 to 9
|
||||
move 4 from 2 to 9
|
||||
move 2 from 2 to 6
|
||||
move 1 from 1 to 6
|
||||
move 5 from 1 to 9
|
||||
move 10 from 9 to 3
|
||||
move 15 from 1 to 6
|
||||
move 21 from 6 to 2
|
||||
move 20 from 2 to 1
|
||||
move 2 from 8 to 9
|
||||
move 28 from 1 to 2
|
||||
move 6 from 4 to 6
|
||||
move 2 from 1 to 5
|
||||
move 3 from 3 to 4
|
||||
move 2 from 5 to 4
|
||||
move 1 from 4 to 3
|
||||
move 3 from 4 to 5
|
||||
move 2 from 5 to 4
|
||||
move 1 from 1 to 8
|
||||
move 25 from 2 to 9
|
||||
move 1 from 4 to 6
|
||||
move 1 from 3 to 8
|
||||
move 4 from 3 to 6
|
||||
move 1 from 4 to 9
|
||||
move 2 from 6 to 3
|
||||
move 1 from 5 to 9
|
||||
move 5 from 2 to 8
|
||||
move 7 from 9 to 6
|
||||
move 2 from 9 to 4
|
||||
move 3 from 2 to 1
|
||||
move 3 from 3 to 4
|
||||
move 1 from 3 to 5
|
||||
move 16 from 6 to 3
|
||||
move 7 from 8 to 3
|
||||
move 5 from 4 to 3
|
||||
move 1 from 1 to 3
|
||||
move 1 from 2 to 6
|
||||
move 1 from 5 to 6
|
||||
move 21 from 3 to 5
|
||||
move 2 from 1 to 2
|
||||
move 1 from 6 to 7
|
||||
move 10 from 9 to 8
|
||||
move 1 from 6 to 5
|
||||
move 5 from 8 to 7
|
||||
move 12 from 5 to 3
|
||||
move 20 from 3 to 6
|
||||
move 4 from 7 to 9
|
||||
move 1 from 7 to 3
|
||||
move 1 from 2 to 5
|
||||
move 1 from 3 to 8
|
||||
move 2 from 8 to 4
|
||||
move 4 from 8 to 7
|
||||
move 3 from 6 to 1
|
||||
move 1 from 1 to 5
|
||||
move 2 from 9 to 2
|
||||
move 2 from 1 to 5
|
||||
move 2 from 5 to 6
|
||||
move 3 from 7 to 1
|
||||
move 2 from 1 to 4
|
||||
move 4 from 6 to 8
|
||||
move 3 from 4 to 7
|
||||
move 3 from 2 to 5
|
||||
move 2 from 7 to 9
|
||||
move 9 from 9 to 8
|
||||
move 1 from 4 to 1
|
||||
move 7 from 5 to 7
|
||||
move 1 from 7 to 8
|
||||
move 1 from 3 to 1
|
||||
move 4 from 7 to 5
|
||||
move 2 from 1 to 9
|
||||
move 1 from 1 to 2
|
||||
move 5 from 5 to 4
|
||||
move 1 from 2 to 6
|
||||
move 5 from 7 to 9
|
||||
move 5 from 4 to 7
|
||||
move 11 from 9 to 6
|
||||
move 14 from 8 to 9
|
||||
move 23 from 6 to 5
|
||||
move 6 from 9 to 5
|
||||
move 1 from 6 to 2
|
||||
move 10 from 5 to 3
|
||||
move 1 from 4 to 9
|
||||
move 1 from 2 to 1
|
||||
move 2 from 7 to 3
|
||||
move 10 from 5 to 7
|
||||
move 8 from 5 to 2
|
||||
move 5 from 3 to 5
|
||||
move 7 from 5 to 8
|
||||
move 1 from 2 to 7
|
||||
move 9 from 7 to 9
|
||||
move 3 from 2 to 3
|
||||
move 2 from 6 to 2
|
||||
move 2 from 3 to 6
|
||||
move 4 from 7 to 5
|
||||
move 1 from 1 to 5
|
||||
move 4 from 3 to 1
|
||||
move 2 from 5 to 2
|
||||
move 1 from 3 to 2
|
||||
move 2 from 6 to 8
|
||||
move 7 from 5 to 3
|
||||
move 9 from 2 to 4
|
||||
move 2 from 1 to 2
|
||||
move 2 from 5 to 3
|
||||
move 1 from 4 to 9
|
||||
move 1 from 6 to 9
|
||||
move 1 from 4 to 2
|
||||
move 2 from 1 to 7
|
||||
move 3 from 2 to 6
|
||||
move 4 from 8 to 7
|
||||
move 2 from 8 to 3
|
||||
move 2 from 3 to 7
|
||||
move 1 from 6 to 5
|
||||
move 2 from 8 to 2
|
||||
move 5 from 4 to 1
|
||||
move 8 from 9 to 8
|
||||
move 1 from 5 to 7
|
||||
move 10 from 9 to 2
|
||||
move 8 from 8 to 2
|
||||
move 1 from 1 to 6
|
||||
move 12 from 3 to 9
|
||||
move 7 from 7 to 4
|
||||
move 13 from 2 to 4
|
||||
move 7 from 2 to 7
|
||||
move 1 from 6 to 7
|
||||
move 3 from 9 to 8
|
||||
move 2 from 6 to 3
|
||||
move 1 from 3 to 2
|
||||
move 1 from 3 to 9
|
||||
move 3 from 1 to 5
|
||||
move 1 from 1 to 6
|
||||
move 4 from 7 to 6
|
||||
move 5 from 7 to 1
|
||||
move 1 from 2 to 1
|
||||
move 6 from 9 to 4
|
||||
move 5 from 9 to 7
|
||||
move 3 from 8 to 3
|
||||
move 22 from 4 to 9
|
||||
move 24 from 9 to 8
|
||||
move 1 from 9 to 2
|
||||
move 2 from 4 to 3
|
||||
move 10 from 8 to 3
|
||||
move 1 from 2 to 1
|
||||
move 1 from 3 to 8
|
||||
move 1 from 6 to 3
|
||||
move 1 from 1 to 4
|
||||
move 4 from 3 to 4
|
||||
move 4 from 6 to 1
|
||||
move 2 from 4 to 5
|
||||
move 4 from 7 to 2
|
||||
move 7 from 4 to 6
|
||||
move 4 from 6 to 1
|
||||
move 2 from 6 to 3
|
||||
move 1 from 6 to 2
|
||||
move 5 from 5 to 2
|
||||
move 12 from 3 to 5
|
||||
move 3 from 7 to 8
|
||||
move 6 from 2 to 3
|
||||
move 11 from 1 to 9
|
||||
move 1 from 1 to 7
|
||||
move 1 from 7 to 5
|
||||
move 2 from 3 to 9
|
||||
move 2 from 9 to 7
|
||||
move 4 from 2 to 5
|
||||
move 2 from 7 to 1
|
||||
move 17 from 8 to 1
|
||||
move 1 from 3 to 2
|
||||
move 16 from 1 to 3
|
||||
move 8 from 3 to 4
|
||||
move 2 from 8 to 3
|
||||
move 2 from 1 to 5
|
||||
move 1 from 2 to 6
|
||||
move 12 from 5 to 8
|
||||
move 1 from 6 to 3
|
||||
move 9 from 3 to 9
|
||||
move 8 from 4 to 6
|
||||
move 2 from 1 to 6
|
||||
move 6 from 8 to 4
|
||||
move 3 from 4 to 6
|
||||
move 1 from 1 to 9
|
||||
move 11 from 6 to 8
|
||||
move 3 from 4 to 3
|
||||
move 17 from 9 to 5
|
||||
move 2 from 6 to 7
|
||||
move 1 from 9 to 1
|
||||
move 2 from 8 to 6
|
||||
move 1 from 7 to 5
|
||||
move 1 from 8 to 9
|
||||
move 1 from 1 to 7
|
||||
move 3 from 9 to 6
|
||||
move 2 from 7 to 8
|
||||
move 1 from 9 to 6
|
||||
move 15 from 5 to 2
|
||||
move 9 from 3 to 9
|
||||
move 11 from 8 to 3
|
||||
move 6 from 9 to 8
|
||||
move 4 from 6 to 7
|
||||
move 3 from 3 to 7
|
||||
move 5 from 5 to 6
|
||||
move 7 from 7 to 5
|
||||
move 3 from 6 to 1
|
||||
move 2 from 1 to 4
|
||||
move 1 from 9 to 2
|
||||
move 2 from 9 to 3
|
||||
move 2 from 6 to 3
|
||||
move 1 from 1 to 8
|
||||
move 6 from 5 to 9
|
||||
move 8 from 2 to 5
|
||||
move 10 from 8 to 5
|
||||
move 1 from 2 to 9
|
||||
move 21 from 5 to 9
|
||||
move 2 from 8 to 4
|
||||
move 5 from 9 to 1
|
||||
move 2 from 5 to 2
|
||||
move 15 from 9 to 2
|
||||
move 1 from 5 to 9
|
||||
move 9 from 9 to 3
|
||||
move 1 from 1 to 6
|
||||
move 3 from 4 to 1
|
||||
move 20 from 3 to 5
|
||||
move 20 from 5 to 4
|
||||
move 7 from 4 to 3
|
||||
move 1 from 1 to 7
|
||||
move 11 from 4 to 5
|
||||
move 4 from 3 to 2
|
||||
move 11 from 5 to 4
|
||||
move 2 from 6 to 7
|
||||
move 4 from 3 to 9
|
||||
move 2 from 2 to 8
|
||||
move 2 from 9 to 4
|
||||
move 6 from 4 to 6
|
||||
move 2 from 7 to 9
|
||||
move 1 from 7 to 6
|
||||
move 1 from 4 to 9
|
||||
move 4 from 4 to 6
|
||||
move 2 from 8 to 6
|
||||
move 1 from 4 to 3
|
||||
move 1 from 4 to 6
|
||||
move 1 from 3 to 1
|
||||
move 3 from 4 to 3
|
||||
move 9 from 2 to 8
|
||||
move 2 from 3 to 7
|
||||
move 5 from 6 to 2
|
||||
move 2 from 7 to 5
|
||||
move 1 from 5 to 2
|
||||
move 1 from 9 to 3
|
||||
move 1 from 5 to 1
|
||||
move 13 from 2 to 5
|
||||
move 4 from 9 to 5
|
||||
move 1 from 3 to 4
|
||||
move 9 from 2 to 3
|
||||
move 7 from 3 to 2
|
||||
move 11 from 5 to 6
|
||||
move 5 from 8 to 7
|
||||
move 1 from 3 to 1
|
||||
move 2 from 8 to 5
|
||||
move 2 from 8 to 1
|
||||
move 1 from 4 to 1
|
||||
move 6 from 2 to 7
|
||||
move 3 from 5 to 3
|
||||
move 1 from 2 to 5
|
||||
move 7 from 7 to 9
|
||||
move 3 from 3 to 5
|
||||
move 1 from 2 to 5
|
||||
move 2 from 3 to 2
|
||||
move 6 from 1 to 7
|
||||
move 10 from 7 to 3
|
||||
move 1 from 2 to 3
|
||||
move 6 from 9 to 8
|
||||
move 1 from 2 to 4
|
||||
move 2 from 6 to 1
|
||||
move 5 from 1 to 9
|
||||
move 8 from 5 to 8
|
||||
move 2 from 1 to 6
|
||||
move 6 from 3 to 4
|
||||
move 1 from 5 to 3
|
||||
move 4 from 9 to 6
|
||||
move 1 from 1 to 4
|
||||
move 2 from 9 to 2
|
||||
move 5 from 6 to 1
|
||||
move 11 from 6 to 7
|
||||
move 1 from 2 to 8
|
||||
move 6 from 7 to 5
|
||||
move 10 from 8 to 4
|
||||
move 2 from 3 to 9
|
||||
move 3 from 3 to 5
|
||||
move 4 from 7 to 9
|
||||
move 2 from 1 to 3
|
||||
move 10 from 5 to 8
|
||||
move 6 from 6 to 1
|
||||
move 2 from 6 to 8
|
||||
move 2 from 9 to 5
|
||||
move 4 from 9 to 6
|
||||
move 7 from 4 to 8
|
||||
move 5 from 6 to 1
|
||||
move 4 from 8 to 2
|
||||
move 2 from 5 to 6
|
||||
move 5 from 4 to 5
|
||||
move 1 from 7 to 5
|
||||
move 2 from 3 to 6
|
||||
move 1 from 3 to 8
|
||||
move 4 from 6 to 1
|
||||
move 4 from 2 to 3
|
||||
move 5 from 5 to 1
|
||||
move 2 from 3 to 2
|
||||
move 2 from 3 to 2
|
||||
move 20 from 8 to 2
|
||||
move 5 from 4 to 8
|
||||
move 1 from 4 to 3
|
||||
move 8 from 2 to 1
|
||||
move 1 from 5 to 6
|
||||
move 5 from 2 to 3
|
||||
move 1 from 6 to 5
|
||||
move 5 from 3 to 2
|
||||
move 1 from 3 to 7
|
||||
move 6 from 8 to 5
|
||||
move 13 from 2 to 9
|
||||
move 7 from 9 to 8
|
||||
move 1 from 7 to 8
|
||||
move 5 from 8 to 3
|
||||
move 2 from 2 to 5
|
||||
move 2 from 8 to 4
|
||||
move 27 from 1 to 5
|
||||
move 1 from 2 to 3
|
||||
move 5 from 3 to 1
|
||||
move 22 from 5 to 7
|
||||
move 1 from 8 to 5
|
||||
move 1 from 3 to 2
|
||||
move 7 from 1 to 3
|
||||
move 2 from 3 to 7
|
||||
move 2 from 2 to 4
|
||||
move 5 from 9 to 1
|
||||
move 5 from 3 to 9
|
||||
move 3 from 1 to 5
|
||||
move 3 from 1 to 6
|
||||
move 3 from 6 to 3
|
||||
move 4 from 4 to 2
|
||||
move 8 from 5 to 3
|
||||
move 8 from 7 to 4
|
||||
move 14 from 7 to 4
|
||||
move 1 from 1 to 7
|
||||
move 6 from 9 to 6
|
||||
move 7 from 5 to 3
|
||||
move 14 from 3 to 6
|
||||
move 2 from 2 to 1
|
||||
move 4 from 3 to 7
|
||||
move 6 from 7 to 6
|
||||
move 1 from 7 to 6
|
||||
move 1 from 5 to 1
|
||||
move 2 from 1 to 5
|
||||
move 3 from 5 to 7
|
||||
move 8 from 6 to 5
|
||||
move 5 from 5 to 1
|
||||
move 1 from 7 to 3
|
||||
move 1 from 3 to 8
|
||||
move 22 from 4 to 7
|
||||
move 7 from 6 to 3
|
||||
move 4 from 3 to 2
|
||||
move 3 from 1 to 3
|
||||
move 17 from 7 to 6
|
||||
move 1 from 8 to 1
|
||||
move 2 from 2 to 4
|
||||
move 3 from 7 to 2
|
||||
move 2 from 2 to 9
|
||||
move 1 from 1 to 8
|
||||
move 2 from 3 to 1
|
||||
move 6 from 6 to 8
|
||||
move 2 from 9 to 2
|
||||
move 4 from 5 to 1
|
||||
move 5 from 8 to 9
|
||||
move 1 from 7 to 3
|
||||
move 4 from 3 to 4
|
||||
move 1 from 7 to 4
|
||||
move 4 from 9 to 7
|
||||
move 5 from 7 to 9
|
||||
move 1 from 7 to 3
|
||||
move 2 from 2 to 8
|
||||
move 5 from 4 to 2
|
||||
move 21 from 6 to 8
|
||||
move 2 from 3 to 8
|
||||
move 23 from 8 to 6
|
||||
move 1 from 2 to 6
|
||||
move 2 from 9 to 8
|
||||
move 22 from 6 to 7
|
||||
move 2 from 9 to 3
|
||||
move 2 from 3 to 7
|
||||
move 2 from 1 to 6
|
||||
move 1 from 2 to 5
|
||||
move 3 from 1 to 3
|
||||
move 6 from 7 to 4
|
||||
move 5 from 8 to 5
|
||||
move 1 from 3 to 8
|
||||
move 1 from 9 to 3
|
||||
move 6 from 4 to 8
|
||||
move 1 from 5 to 3
|
||||
move 6 from 2 to 8
|
||||
move 15 from 7 to 5
|
||||
move 1 from 7 to 1
|
||||
move 14 from 5 to 8
|
||||
move 1 from 4 to 9
|
||||
move 5 from 1 to 7
|
||||
move 3 from 6 to 2
|
||||
move 4 from 5 to 6
|
||||
move 1 from 4 to 8
|
||||
move 4 from 3 to 1
|
||||
move 2 from 9 to 2
|
||||
move 7 from 7 to 1
|
||||
move 7 from 2 to 7
|
||||
move 9 from 8 to 6
|
||||
move 7 from 7 to 1
|
||||
move 12 from 6 to 8
|
||||
move 25 from 8 to 6
|
||||
move 3 from 8 to 1
|
||||
move 28 from 6 to 2
|
||||
move 15 from 2 to 3
|
||||
move 1 from 5 to 4
|
||||
move 3 from 2 to 7
|
||||
move 6 from 2 to 9
|
||||
1
data/day06.txt
Normal file
1
data/day06.txt
Normal file
@@ -0,0 +1 @@
|
||||
plhlsssjsrscspsffmrffwvfvrvvmbbnjnrnrfnndlnlznlznlnccdbbhvbvgvmvzmzvmzmbbrcclsslzslzzsztzftzzhggnjgnjnhnmnqnqqfdfnnrwnwsnwwvgvqqgpptvtrvvfmmzjzmmjssmwsmmhzzvvwzwcwrcrllpbppdgdvvwqvvsnsrnsncnwntnggwqgqhqrqprqrddjvddqsqhshchfffzddswdsshhcnhnqqfjffvlvwvssdqqwrwvrvhrvrzzgwggcjcgclcwchhzvzmzrrjwjqwwvbwwrmmvmpmzpzgpgsghgrrtmmlfmmnzzmpzzvmvjjsqqshqshsqqgtqggpvvrtttwbbhnbnlbnlnhnthtjhjshhrmrjjlclpprmrnrsrwrbwrwwjnwnbwbhbmbggdbgghllcvlvddzbdbdvdwvdvjvqvcvczvcvclvvrggrngrrwcwbcczgghnhznhnttbcbvcvttrrpbrppndppvvvgvtgvvhfvhhttppjmjllznlnldnldlwlnwlnlttgzzcfcggwmgmqgmmshmhqqdfqfpfqppprzrhrnrhnrrtsrrgpgnpngnqnmmrtrvtrrfccszszffvlfvlvssvdvvpggvcvscvvpmpgpqpfqqhttrhhsbhbqhhzggzrgrqrfqffwllggrgqqjzqzzsgglvgllsgllptltblbggvrggctczzllvsvcscrrzjrzzjnnbvvtntpntnvtntcntcnnwsnnnvjnnsccsddcvvgzgwggbnbwnwbwmwttzzsgzzjpzztwztwwhhzggplgplggwwwphpmmhchsccmwmttvjtjftffzbfffjljbbqvvstsggbbqrbqrbrhbbrmbmppvrpphptpggqgddtmdtmdmbbbcdbbgssmzzthhtjjrgjrgrzzchzhttgddjnjrjmjllrcrqqsvsjjjhvvphhgjhgjhjccwmcmjcmjmhmzznmmcbcscddcsssnppsnpnmnqmmtztftqtjtqqgvgvjjfnjffqbqbfqqwfqfcfsfttvccnssjvvpfvpvttvpvccwhwfwlwlclljqqststllgqgzqqfpflpplpssnntstqqpnnsrnsrrsvrsvsrvsrrtztmtptpcpssgnnfvflffscsqszzsppfnftfptfpfnfbbwzbzfbbtggrzrnntztnznhnnlbnbrbdddjhjchhdshhnzhnnsrnrrqwrrdsdlsstdsslqsqdqvqzvqvwqqlmmwzmwzwztzlzczhqfrclvgvnlchrggsrjhntctdbpfdcffwjngdvdrjmgvwvptlvlhvhshqphmrdznqbtchcvrwfrpvwhzmrwlcjwnrsgrqcbsgpwjthstvqzlwjjmqbvhhdfdsmqnmnswmwjtpgjhdpgcnvmlcjwjzrjhmrqmqnrqrmgdnbdgznwhgzncmcbzpntcdflvrbfdzwgpnqjqmrcqpbrzwhwdgtgshhmrwvhnrwslvcswjvdgglfrdvmqdspppwmvfzvdbvpcnhmvgfqwnvjvvzrvttwvbjrbjlllmwtlcltvqmwshnqsdtjrptvqjvdjgzwgzzhcdbwjzhdgsptfrtmmqvhsnsnpgwbncbnnvwmmrrjgfccbzcpcjmqvqsbvjrstzblsrngphwndfdswjnnnfdgpcbslvbjglqqnbbtjljsmdgcslmwlvgwpsqthlmmqfgpgmcvrpvvtzcjdrwcjgrbwthblwpwpbzvjvhzsphmfhfwvsthlfnhhfcmpsnmgrvrntlzpdvqwtrghnslnfhcjwrsvrngqqtwvcsfhbjwmsnmsmgvdhnzjgljtchbtwlfppvbtdclbdjdmwzcntvgfjlcwdplnjwqnzqhnfgcnbrgftqpdmqzrrhglbzzvjcdnbtfnvmsrbjdzhbqmhnsmprgvjzzgvllhqnzgpstqzcnlgsrcwzlhwqvcjlwnnjslmdtwqcpbrntrmrmmtscjwwtzjhghtqvvpldzvhtmspzlnlfgrfhmsndbdgpgvphwwgqhrtlwztgqqsrwnrnqphqfsrtbztqbrgmfbtpjwhhrglhbzmmjptppnfdzlpbqfcbdwzdtqbrvfmtdzdjlnzvqfnzmttpqgzgmrqwmdtmdzrttffpdlgwdhnlrhnnztphvrbzcrlvcpswlngcjhdzqwwwpzdmhhwpnzwgjsdsdbdvpfsrwmwvsggpcqbchwjpgljnbtpvjzbbvgsbsbjmtwtbjtzzsfvrmfvnmcngvvdsvljvjbrlfgstjrhtjplttzhjfbmphvbqdsmwfwspqpcvmgzgjnqlphshlgdwcvtmpwcfgdcbqwpnshfgrfjvlrtqbffwwtbnwtvjlsdgwgfmhlrsmfrjzcwccdzfwwdwhwdsjbllhjsqmnqvngvdmbvbssfjtjfbtngrdwgldcrtpmvrbrmpvwwsfrlnbqsqzfnftpbhslqccnbqwgbdbfpblpmwbgjzmnptnhdjzqjhdrhqbtfhsrdqwlmwzqlsmmslgfzpvtgtsrlszvqrhrzclbqhzzwwfmhrrvsrnsjbdjsqqlsmgdmgbdtmvfjmsbwjqmqrvrhqbchpqrwvlvwpvhjlbdzfjvrwmchccrsrfvhzmpfjqwnrbvqmgwjcbndjdtfgnrzrqwgzhrdvghdrvgtplcrthgchmvwtdrchfwpdszzzhqpmrlzvfdnfnlwghmmwvsscbrdbchhgttsnbzdbqgddqfvcgvqwltnqtcwrmhtftnlwvlglsvvctccnntznsjnmmgqlzmplsdspnjtmzlbvrfzfclnhgjzmvntdwhspqwtpgndspnjqjqwrpwhjhpvjwfptpndnwvcjdwsvdtcrtwpsprgmrspgmcsdgtjbbgsgvcjhrcldlvgvqwqwthplzgwbzmszjfrlnznvgphnqzcwsztvvljlrlzrndbzccstprhntnlmshhclnrsmsvvvsbmpfdjsmspwcqtmlrrdmfzjjjhmsmdfqddzpgtbzbsnhhhpsfrdrdvpvpnjmvnhdrzrqggrpqdcmctvqfrtfmjjqjwgzzbrdfplhzjbnqlmjlcgvmsbpgdlfjmbgqtrvzzdgtlmbqthjrdtlstqtzqvfjvmmstsmtsbnjvstjjvrrjqcbjvhfpslpvjmdznrcnsvlpbpzmslqtpczmvhdwzrhwbwtfvrrmbszvrhwsjrclcscgngwvblbbrqprgshwzhlqgwmpfsmqsvpjbdccdmtnnhqfwvlgjlszmmmdmtmpzwhplzsjztrnwngbvspqqbmghwzgvfjdrblfmtwcvnczsrflmsjmrsvzldmttjwcmnvwcbjfvznhgntnqfbfchcqqshhjldgltqhdlqldlpfjnjvtbvbntzdjzstcqbzdnmsvcdgvjmmvtdfvdplqfndqqlzlspmjgdfbgsvwzqzsvvbbldltbtzwzpqrzfmfzgdbpqnwtrfcgwmlbpzrgscbjvfdwnjzjdfzltsbppnljzrgggplmttpmgwnhdlwfhwzsrcflnrqqzwsbqllwjqlrgwbhvcvqdvjvpbzgnfbbbtccvplzggplbrsbldllwmttwtvltsfljfbbprtvlfshhwdhdgvzfzjttvnphpnjnzsbvfwflfpqwnhvwjdsrtbwsjzqhgfldnssfbbzzqqrwtjvwjschmndgqzjtpsbfhwtmqbtfstrbghgtnldjqtshdnrwzvwddchhvdbsfjnqzfjdpvhvwwjspftgbtgwzdfgzzhpvjpdlrrdfnpftshthwzjzmzdghnfdqcbmjhfdgzrcgrzbrjtmhwbjhcpgjdsmnqzncdlwhqqzqblgdbbdsmrqgbdbmdczvvpnbbjdwrlmrwgnnbbzpcnsjgcmshgzwnjzwjlrdmvmhvjrzphgpczppqvwjthcdphprhhrggjdpzmgtpjjfvpczzrvsssfrrptnzlstrhmbhvzmwjnddshrrtgspbllvqlsptrtvtldsgnjjbwtfmtbjdvmgbptjlzhpttjmvpgnjphswhtdq
|
||||
23
data/day07.test
Normal file
23
data/day07.test
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
|
||||
980
data/day07.txt
Normal file
980
data/day07.txt
Normal file
@@ -0,0 +1,980 @@
|
||||
$ cd /
|
||||
$ ls
|
||||
dir csjncqmr
|
||||
dir fnfjhvsp
|
||||
dir mhfrct
|
||||
dir pgmgbfcl
|
||||
dir qcf
|
||||
dir wrsjr
|
||||
$ cd csjncqmr
|
||||
$ ls
|
||||
8827 vdrdm.pfj
|
||||
$ cd ..
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
dir csjncqmr
|
||||
dir czpmg
|
||||
162385 dcgph
|
||||
7135 hff.cdt
|
||||
$ cd csjncqmr
|
||||
$ ls
|
||||
121543 gzjdsn.wlc
|
||||
dir ljq
|
||||
$ cd ljq
|
||||
$ ls
|
||||
dir cwlrlvf
|
||||
dir jpqjhhpg
|
||||
$ cd cwlrlvf
|
||||
$ ls
|
||||
151219 dcgph
|
||||
$ cd ..
|
||||
$ cd jpqjhhpg
|
||||
$ ls
|
||||
188355 dcgph
|
||||
38458 gfgl.hlg
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd czpmg
|
||||
$ ls
|
||||
168232 dcgph
|
||||
143031 gzjdsn.wlc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd mhfrct
|
||||
$ ls
|
||||
dir clm
|
||||
66710 dcgph
|
||||
232576 mtfhpcnj
|
||||
$ cd clm
|
||||
$ ls
|
||||
dir pgmgbfcl
|
||||
$ cd pgmgbfcl
|
||||
$ ls
|
||||
110296 qbfhj.tmn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd pgmgbfcl
|
||||
$ ls
|
||||
163613 cgchl
|
||||
dir nnlr
|
||||
123977 rrwbnmlh.jtt
|
||||
dir tjhzggs
|
||||
dir wfl
|
||||
252837 wpgrl
|
||||
$ cd nnlr
|
||||
$ ls
|
||||
103051 flp
|
||||
dir qrhlzd
|
||||
dir rcgmhz
|
||||
dir snwrlr
|
||||
dir vgj
|
||||
dir znbzt
|
||||
$ cd qrhlzd
|
||||
$ ls
|
||||
dir crg
|
||||
246915 dcgph
|
||||
264791 fcphzfb.fmb
|
||||
299291 flp
|
||||
dir mjqsg
|
||||
297202 pgmgbfcl
|
||||
dir sbbzgbz
|
||||
dir wnsnssbg
|
||||
$ cd crg
|
||||
$ ls
|
||||
55556 flp
|
||||
185529 jswdvn
|
||||
$ cd ..
|
||||
$ cd mjqsg
|
||||
$ ls
|
||||
dir fnfjhvsp
|
||||
dir jfbzjz
|
||||
dir rwg
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
24945 cctwbs
|
||||
170960 csjncqmr
|
||||
316168 ljffgvvz.zld
|
||||
187325 pgmgbfcl.fzv
|
||||
74133 qbfhj.tmn
|
||||
dir tjhzggs
|
||||
dir vjmgmdz
|
||||
$ cd tjhzggs
|
||||
$ ls
|
||||
287777 csjncqmr.nbd
|
||||
$ cd ..
|
||||
$ cd vjmgmdz
|
||||
$ ls
|
||||
dir vgpb
|
||||
$ cd vgpb
|
||||
$ ls
|
||||
202578 bbbg.hlr
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd jfbzjz
|
||||
$ ls
|
||||
207736 tjhzggs.cql
|
||||
$ cd ..
|
||||
$ cd rwg
|
||||
$ ls
|
||||
184997 csjncqmr
|
||||
4378 dcgph
|
||||
55767 qnc.wvv
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd sbbzgbz
|
||||
$ ls
|
||||
321376 csjncqmr
|
||||
317438 flp
|
||||
9263 hrs
|
||||
$ cd ..
|
||||
$ cd wnsnssbg
|
||||
$ ls
|
||||
dir jdjv
|
||||
$ cd jdjv
|
||||
$ ls
|
||||
153354 gzjdsn.wlc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd rcgmhz
|
||||
$ ls
|
||||
dir tjhzggs
|
||||
$ cd tjhzggs
|
||||
$ ls
|
||||
299192 jfbzjz.ttg
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd snwrlr
|
||||
$ ls
|
||||
30314 csjncqmr.jvn
|
||||
dir hcf
|
||||
$ cd hcf
|
||||
$ ls
|
||||
81979 jfbzjz.pfz
|
||||
179459 ngh
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd vgj
|
||||
$ ls
|
||||
278579 jbn.rgz
|
||||
dir jzj
|
||||
dir lnbhh
|
||||
dir pgmgbfcl
|
||||
dir qgvspcpm
|
||||
$ cd jzj
|
||||
$ ls
|
||||
295808 hrs
|
||||
220437 vqbcl
|
||||
$ cd ..
|
||||
$ cd lnbhh
|
||||
$ ls
|
||||
212203 nfmhd.hbq
|
||||
233853 qgz.mcd
|
||||
$ cd ..
|
||||
$ cd pgmgbfcl
|
||||
$ ls
|
||||
dir mmbdpj
|
||||
138462 mwcdrpm.spr
|
||||
288430 pgmgbfcl.pwd
|
||||
132880 rdmwtn.qjj
|
||||
41775 rfqb.djh
|
||||
dir rnd
|
||||
69597 thnbf
|
||||
$ cd mmbdpj
|
||||
$ ls
|
||||
158542 hrs
|
||||
306559 tjhzggs
|
||||
$ cd ..
|
||||
$ cd rnd
|
||||
$ ls
|
||||
223745 fnfjhvsp.hgt
|
||||
138236 gdmtnffs.cdm
|
||||
dir gmzb
|
||||
dir hvl
|
||||
266178 mzwmjl.rqq
|
||||
dir njpq
|
||||
33906 qbfhj.tmn
|
||||
dir tjhzggs
|
||||
$ cd gmzb
|
||||
$ ls
|
||||
186579 nsbfn.lsd
|
||||
$ cd ..
|
||||
$ cd hvl
|
||||
$ ls
|
||||
312925 csjncqmr.sbc
|
||||
75264 gqp
|
||||
81003 gzjdsn.wlc
|
||||
$ cd ..
|
||||
$ cd njpq
|
||||
$ ls
|
||||
188139 lbnrr.pwd
|
||||
213545 qgqddvwf.hfl
|
||||
$ cd ..
|
||||
$ cd tjhzggs
|
||||
$ ls
|
||||
dir dlwvc
|
||||
191782 jfbzjz
|
||||
dir tbldpln
|
||||
$ cd dlwvc
|
||||
$ ls
|
||||
75927 jvhjtnft
|
||||
260563 qbfhj.tmn
|
||||
dir vlg
|
||||
$ cd vlg
|
||||
$ ls
|
||||
187660 hgm
|
||||
dir rhr
|
||||
273019 tdgr.crr
|
||||
$ cd rhr
|
||||
$ ls
|
||||
286129 wnn.jgn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd tbldpln
|
||||
$ ls
|
||||
173546 pdfrsq.pnb
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd qgvspcpm
|
||||
$ ls
|
||||
dir dhrbsl
|
||||
286566 fldhvbq
|
||||
209725 gzjdsn.wlc
|
||||
148148 nspz.gwc
|
||||
111003 tjhzggs
|
||||
$ cd dhrbsl
|
||||
$ ls
|
||||
58390 gzjdsn.wlc
|
||||
150545 hrs
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd znbzt
|
||||
$ ls
|
||||
211651 gwhb.mfz
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd tjhzggs
|
||||
$ ls
|
||||
dir hgr
|
||||
229076 jfbzjz.dfh
|
||||
dir ptfcbwwv
|
||||
51893 qbfhj.tmn
|
||||
97712 qgtvfh.hvs
|
||||
$ cd hgr
|
||||
$ ls
|
||||
dir hwvgjdq
|
||||
dir vwvbt
|
||||
$ cd hwvgjdq
|
||||
$ ls
|
||||
dir pgmgbfcl
|
||||
$ cd pgmgbfcl
|
||||
$ ls
|
||||
dir qgs
|
||||
$ cd qgs
|
||||
$ ls
|
||||
188108 hrs
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd vwvbt
|
||||
$ ls
|
||||
169212 tfrm.gjb
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ptfcbwwv
|
||||
$ ls
|
||||
67829 lpszzl
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd wfl
|
||||
$ ls
|
||||
dir hfcm
|
||||
$ cd hfcm
|
||||
$ ls
|
||||
73872 flp
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd qcf
|
||||
$ ls
|
||||
dir ctjw
|
||||
177175 dwzmnpr
|
||||
dir fqldn
|
||||
dir hmjnnjjj
|
||||
301788 hrs
|
||||
dir lgmld
|
||||
dir pgmgbfcl
|
||||
76771 qzsbm.zdb
|
||||
dir scbgn
|
||||
234764 vhrlgcf
|
||||
$ cd ctjw
|
||||
$ ls
|
||||
139505 mflt.hnr
|
||||
$ cd ..
|
||||
$ cd fqldn
|
||||
$ ls
|
||||
dir bgq
|
||||
7260 flgrh.tmt
|
||||
dir fnfjhvsp
|
||||
dir fnr
|
||||
dir gsnqjmw
|
||||
10529 gzjdsn.wlc
|
||||
22877 hrs
|
||||
dir hzbrgrfq
|
||||
dir snmbwrzn
|
||||
dir tjhzggs
|
||||
6773 tzhsjsc
|
||||
$ cd bgq
|
||||
$ ls
|
||||
40780 gzjdsn.wlc
|
||||
233301 mnzdbpc
|
||||
dir mpdjgbgf
|
||||
303076 qbfhj.tmn
|
||||
dir qjs
|
||||
189723 sbzn.dtj
|
||||
dir vhnqcrd
|
||||
$ cd mpdjgbgf
|
||||
$ ls
|
||||
227105 dcgph
|
||||
298219 dprcwts.vdt
|
||||
$ cd ..
|
||||
$ cd qjs
|
||||
$ ls
|
||||
214072 pgmgbfcl
|
||||
264897 qbfhj.tmn
|
||||
$ cd ..
|
||||
$ cd vhnqcrd
|
||||
$ ls
|
||||
178950 fnfjhvsp
|
||||
180561 pgmgbfcl.mst
|
||||
312980 pgmgbfcl.twp
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
141191 fnfjhvsp.bng
|
||||
81709 pgmgbfcl.sfw
|
||||
$ cd ..
|
||||
$ cd fnr
|
||||
$ ls
|
||||
316638 flp
|
||||
dir fnfjhvsp
|
||||
dir fqdnn
|
||||
267054 gdnln
|
||||
dir hfcrzwvm
|
||||
dir rdljd
|
||||
319112 wpcmfbr.zgp
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
115581 hrs
|
||||
dir jfbzjz
|
||||
$ cd jfbzjz
|
||||
$ ls
|
||||
170398 qbfhj.tmn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd fqdnn
|
||||
$ ls
|
||||
dir cfg
|
||||
dir jbjltw
|
||||
$ cd cfg
|
||||
$ ls
|
||||
dir qljztr
|
||||
dir tnsw
|
||||
dir zhnqp
|
||||
$ cd qljztr
|
||||
$ ls
|
||||
64638 bnlsrfb
|
||||
63440 csjncqmr
|
||||
206111 gzjdsn.wlc
|
||||
207890 hrs
|
||||
265995 pgmgbfcl.zcw
|
||||
$ cd ..
|
||||
$ cd tnsw
|
||||
$ ls
|
||||
85166 lsflqzmc
|
||||
$ cd ..
|
||||
$ cd zhnqp
|
||||
$ ls
|
||||
217666 csjncqmr.cch
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd jbjltw
|
||||
$ ls
|
||||
88043 dcgph
|
||||
238483 hrs
|
||||
189734 jnvwjs
|
||||
243936 pgmgbfcl.wsr
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd hfcrzwvm
|
||||
$ ls
|
||||
dir vwc
|
||||
$ cd vwc
|
||||
$ ls
|
||||
82566 shc.qhj
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd rdljd
|
||||
$ ls
|
||||
68011 ptw.bgd
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd gsnqjmw
|
||||
$ ls
|
||||
236818 gzjdsn.wlc
|
||||
$ cd ..
|
||||
$ cd hzbrgrfq
|
||||
$ ls
|
||||
240924 dcgph
|
||||
dir dcjsv
|
||||
dir dsrzdjfm
|
||||
dir fnfjhvsp
|
||||
dir hnzm
|
||||
dir mqb
|
||||
94014 smpnth.bbm
|
||||
$ cd dcjsv
|
||||
$ ls
|
||||
316708 cmddvb
|
||||
dir fnfjhvsp
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
dir fnfjhvsp
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
dir jqlcvds
|
||||
$ cd jqlcvds
|
||||
$ ls
|
||||
51018 dqfbq.ggm
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd dsrzdjfm
|
||||
$ ls
|
||||
262938 csjncqmr.dmm
|
||||
125129 mwcnlvhv.szp
|
||||
150590 qbfhj.tmn
|
||||
dir rrrzpsn
|
||||
196430 vbdgb
|
||||
dir vsfbwfdl
|
||||
$ cd rrrzpsn
|
||||
$ ls
|
||||
dir tjhzggs
|
||||
281655 tjhzggs.btg
|
||||
dir tsjzf
|
||||
$ cd tjhzggs
|
||||
$ ls
|
||||
291402 gbl
|
||||
dir hctmr
|
||||
dir hqdmpwl
|
||||
225075 hrs
|
||||
dir jfbzjz
|
||||
51032 tjhzggs.qzr
|
||||
$ cd hctmr
|
||||
$ ls
|
||||
113430 qbfhj.tmn
|
||||
$ cd ..
|
||||
$ cd hqdmpwl
|
||||
$ ls
|
||||
67634 tjhzggs
|
||||
$ cd ..
|
||||
$ cd jfbzjz
|
||||
$ ls
|
||||
193552 nmvl.tzj
|
||||
197076 pgmgbfcl
|
||||
11047 tjhzggs
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd tsjzf
|
||||
$ ls
|
||||
36205 jwmdtdjv
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd vsfbwfdl
|
||||
$ ls
|
||||
288660 flp
|
||||
185921 jfbzjz
|
||||
dir mqmvtddt
|
||||
124423 nfbfq.dln
|
||||
dir wzbc
|
||||
$ cd mqmvtddt
|
||||
$ ls
|
||||
85529 bhjp.vvj
|
||||
$ cd ..
|
||||
$ cd wzbc
|
||||
$ ls
|
||||
77316 flp
|
||||
271730 pgmgbfcl.lcd
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
47666 mpwtvwd.fwr
|
||||
$ cd ..
|
||||
$ cd hnzm
|
||||
$ ls
|
||||
157672 flp
|
||||
294957 gzjdsn.wlc
|
||||
297187 lbssg
|
||||
24223 qbfhj.tmn
|
||||
dir rdnqrgt
|
||||
177449 tld.tsd
|
||||
$ cd rdnqrgt
|
||||
$ ls
|
||||
dir nltjzrrr
|
||||
217347 vrb.gcd
|
||||
$ cd nltjzrrr
|
||||
$ ls
|
||||
dir zzd
|
||||
$ cd zzd
|
||||
$ ls
|
||||
47464 flp
|
||||
dir fnfjhvsp
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
89424 qtzfddz.btd
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd mqb
|
||||
$ ls
|
||||
105537 tjhzggs.wns
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd snmbwrzn
|
||||
$ ls
|
||||
dir mqt
|
||||
dir nsdrn
|
||||
dir rjn
|
||||
$ cd mqt
|
||||
$ ls
|
||||
233842 pgmgbfcl
|
||||
$ cd ..
|
||||
$ cd nsdrn
|
||||
$ ls
|
||||
67018 dcgph
|
||||
17296 flp
|
||||
274166 gzjdsn.wlc
|
||||
186308 jfbzjz
|
||||
280195 lvbsrvwm.zlq
|
||||
dir pjv
|
||||
dir thlp
|
||||
$ cd pjv
|
||||
$ ls
|
||||
123190 rfbj.gmq
|
||||
$ cd ..
|
||||
$ cd thlp
|
||||
$ ls
|
||||
141308 flp
|
||||
188164 jfbzjz
|
||||
299013 pgmgbfcl
|
||||
171259 qbfhj.tmn
|
||||
dir qsljb
|
||||
$ cd qsljb
|
||||
$ ls
|
||||
291980 glcnlj.swh
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd rjn
|
||||
$ ls
|
||||
181047 fqmhpg.hpl
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd tjhzggs
|
||||
$ ls
|
||||
dir csjncqmr
|
||||
274202 fhfjvdjc.swt
|
||||
dir fnfjhvsp
|
||||
97050 frbpp.wch
|
||||
dir gnbtgdr
|
||||
dir jfbzjz
|
||||
dir lpg
|
||||
dir pgmgbfcl
|
||||
dir twcdfdcv
|
||||
dir wzd
|
||||
dir zllcflrn
|
||||
$ cd csjncqmr
|
||||
$ ls
|
||||
dir chpmwsfj
|
||||
dir csjncqmr
|
||||
57088 fnfjhvsp.jqg
|
||||
52097 vgcm.dpv
|
||||
$ cd chpmwsfj
|
||||
$ ls
|
||||
279480 tjhzggs.srw
|
||||
$ cd ..
|
||||
$ cd csjncqmr
|
||||
$ ls
|
||||
13716 dcgph
|
||||
dir fqb
|
||||
dir jfbzjz
|
||||
dir msvlnt
|
||||
88312 pgmgbfcl.qcf
|
||||
$ cd fqb
|
||||
$ ls
|
||||
dir mmjfbvq
|
||||
$ cd mmjfbvq
|
||||
$ ls
|
||||
79822 flp
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd jfbzjz
|
||||
$ ls
|
||||
302531 csjncqmr
|
||||
164326 dcgph
|
||||
8277 fnfjhvsp.rbv
|
||||
dir jgsrgrtc
|
||||
dir zwdgcd
|
||||
$ cd jgsrgrtc
|
||||
$ ls
|
||||
60317 gzjdsn.wlc
|
||||
$ cd ..
|
||||
$ cd zwdgcd
|
||||
$ ls
|
||||
171967 fpls.fvd
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd msvlnt
|
||||
$ ls
|
||||
83178 cnhzh
|
||||
11226 tjhzggs
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
89882 dcgph
|
||||
212817 qbfhj.tmn
|
||||
257899 tjhzggs
|
||||
$ cd ..
|
||||
$ cd gnbtgdr
|
||||
$ ls
|
||||
dir flltghn
|
||||
dir fnfjhvsp
|
||||
dir jfbzjz
|
||||
300698 ngcsnwb
|
||||
292809 qtcqhdq
|
||||
dir vbwjgf
|
||||
280270 wbzcr.sgn
|
||||
$ cd flltghn
|
||||
$ ls
|
||||
111452 rhgfv
|
||||
$ cd ..
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
dir lbznfb
|
||||
31273 nrtrqqc.cth
|
||||
$ cd lbznfb
|
||||
$ ls
|
||||
175736 ljpr.cwm
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd jfbzjz
|
||||
$ ls
|
||||
237625 tjhzggs
|
||||
$ cd ..
|
||||
$ cd vbwjgf
|
||||
$ ls
|
||||
269242 jrrw.ljb
|
||||
106705 pqnbrbt
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd jfbzjz
|
||||
$ ls
|
||||
dir dnn
|
||||
$ cd dnn
|
||||
$ ls
|
||||
19045 dcgph
|
||||
187257 tjhzggs.qzg
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd lpg
|
||||
$ ls
|
||||
101509 fnfjhvsp.nnt
|
||||
221211 ldgjngjq
|
||||
$ cd ..
|
||||
$ cd pgmgbfcl
|
||||
$ ls
|
||||
dir bzbdphz
|
||||
37920 flp
|
||||
dir wpsm
|
||||
$ cd bzbdphz
|
||||
$ ls
|
||||
252099 ffsfqfdw
|
||||
312106 htft
|
||||
298880 jfbvz.znw
|
||||
135204 lrwccthr
|
||||
dir zhbqf
|
||||
108144 zsbbfhz.drr
|
||||
$ cd zhbqf
|
||||
$ ls
|
||||
dir gtw
|
||||
298022 svpgsrgj.ljz
|
||||
$ cd gtw
|
||||
$ ls
|
||||
dir csjncqmr
|
||||
dir rpzjg
|
||||
$ cd csjncqmr
|
||||
$ ls
|
||||
278962 flp
|
||||
272127 tjhzggs
|
||||
$ cd ..
|
||||
$ cd rpzjg
|
||||
$ ls
|
||||
92241 flp
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd wpsm
|
||||
$ ls
|
||||
15936 flp
|
||||
241514 qbfhj.tmn
|
||||
245049 rjgwzlq.qrw
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd twcdfdcv
|
||||
$ ls
|
||||
140758 bjm
|
||||
78772 dcgph
|
||||
114059 mqsgrc.qcb
|
||||
$ cd ..
|
||||
$ cd wzd
|
||||
$ ls
|
||||
dir fnfjhvsp
|
||||
dir mcbnp
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
72702 csjncqmr.jfn
|
||||
120586 dcgph
|
||||
$ cd ..
|
||||
$ cd mcbnp
|
||||
$ ls
|
||||
12494 fnfjhvsp.frc
|
||||
182092 gsv
|
||||
17859 pdbvmblc.vng
|
||||
116984 pfbdf
|
||||
113843 prshrmg.srm
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd zllcflrn
|
||||
$ ls
|
||||
30966 flp
|
||||
245820 jfbzjz.rnd
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd hmjnnjjj
|
||||
$ ls
|
||||
134366 dcgph
|
||||
212399 dtsb
|
||||
255795 zhbcjtr
|
||||
$ cd ..
|
||||
$ cd lgmld
|
||||
$ ls
|
||||
55248 pgmgbfcl
|
||||
62265 pgmgbfcl.nbg
|
||||
240733 zhmff
|
||||
$ cd ..
|
||||
$ cd pgmgbfcl
|
||||
$ ls
|
||||
232717 fnfjhvsp
|
||||
219581 gtcjbwpz.lmz
|
||||
47399 gzjdsn.wlc
|
||||
22814 hjqf
|
||||
296672 hrs
|
||||
dir nrzf
|
||||
dir wqgcmnpp
|
||||
dir wwvmdjz
|
||||
dir zlhv
|
||||
$ cd nrzf
|
||||
$ ls
|
||||
18406 dcgph
|
||||
dir mhm
|
||||
$ cd mhm
|
||||
$ ls
|
||||
95168 pgmgbfcl.hqv
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd wqgcmnpp
|
||||
$ ls
|
||||
dir csjncqmr
|
||||
189963 dvcd.tnh
|
||||
dir gzqrt
|
||||
dir njffft
|
||||
dir qvqp
|
||||
6981 tjhzggs
|
||||
dir wgfnlfsd
|
||||
$ cd csjncqmr
|
||||
$ ls
|
||||
307371 cdptrw.rfm
|
||||
$ cd ..
|
||||
$ cd gzqrt
|
||||
$ ls
|
||||
dir pwsqss
|
||||
$ cd pwsqss
|
||||
$ ls
|
||||
173397 flp
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd njffft
|
||||
$ ls
|
||||
dir bzhzg
|
||||
dir tjhzggs
|
||||
$ cd bzhzg
|
||||
$ ls
|
||||
213821 pgmgbfcl
|
||||
$ cd ..
|
||||
$ cd tjhzggs
|
||||
$ ls
|
||||
dir szvfzgj
|
||||
$ cd szvfzgj
|
||||
$ ls
|
||||
196306 tjhzggs.hjh
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd qvqp
|
||||
$ ls
|
||||
dir pgmgbfcl
|
||||
$ cd pgmgbfcl
|
||||
$ ls
|
||||
114456 flp
|
||||
252954 pgmgbfcl
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd wgfnlfsd
|
||||
$ ls
|
||||
212011 gzjdsn.wlc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd wwvmdjz
|
||||
$ ls
|
||||
70022 dcgph
|
||||
dir hjgvstp
|
||||
dir jhgb
|
||||
276853 qbfhj.tmn
|
||||
242756 qdqswjjd.wnn
|
||||
dir tjhzggs
|
||||
292963 wcgmgmz.shb
|
||||
$ cd hjgvstp
|
||||
$ ls
|
||||
24056 tdjwdw
|
||||
$ cd ..
|
||||
$ cd jhgb
|
||||
$ ls
|
||||
90571 gzjdsn.wlc
|
||||
132326 rrvfml.dms
|
||||
$ cd ..
|
||||
$ cd tjhzggs
|
||||
$ ls
|
||||
29139 dmrsz.qhc
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd zlhv
|
||||
$ ls
|
||||
315120 dcgph
|
||||
290175 pgvlcvpb
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd scbgn
|
||||
$ ls
|
||||
258300 bcchv.qsn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd wrsjr
|
||||
$ ls
|
||||
dir csjncqmr
|
||||
dir jfbzjz
|
||||
dir nmfmqb
|
||||
dir svgtrz
|
||||
dir zjvhmd
|
||||
$ cd csjncqmr
|
||||
$ ls
|
||||
148619 qbfhj.tmn
|
||||
$ cd ..
|
||||
$ cd jfbzjz
|
||||
$ ls
|
||||
dir csjncqmr
|
||||
dir flrhpzt
|
||||
dir fnfjhvsp
|
||||
dir gpwv
|
||||
dir lwrtc
|
||||
$ cd csjncqmr
|
||||
$ ls
|
||||
dir czmlfmf
|
||||
137365 flp
|
||||
dir hggbs
|
||||
107369 mpgm.lbl
|
||||
$ cd czmlfmf
|
||||
$ ls
|
||||
dir hnpjvq
|
||||
$ cd hnpjvq
|
||||
$ ls
|
||||
41339 fnfjhvsp.wnv
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd hggbs
|
||||
$ ls
|
||||
273367 qbfhj.tmn
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd flrhpzt
|
||||
$ ls
|
||||
200923 fwb
|
||||
62059 hrs
|
||||
$ cd ..
|
||||
$ cd fnfjhvsp
|
||||
$ ls
|
||||
dir gdnmpgn
|
||||
256037 hrs
|
||||
$ cd gdnmpgn
|
||||
$ ls
|
||||
64024 jmww.gbb
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd gpwv
|
||||
$ ls
|
||||
159155 hrs
|
||||
$ cd ..
|
||||
$ cd lwrtc
|
||||
$ ls
|
||||
150299 nzvqj.dsv
|
||||
129702 pgmgbfcl.lrt
|
||||
dir zvgb
|
||||
$ cd zvgb
|
||||
$ ls
|
||||
304137 hrs
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd nmfmqb
|
||||
$ ls
|
||||
139823 jfbzjz
|
||||
299946 nqqscdn.wsw
|
||||
$ cd ..
|
||||
$ cd svgtrz
|
||||
$ ls
|
||||
dir jdlvtm
|
||||
123801 phhrgrbs
|
||||
$ cd jdlvtm
|
||||
$ ls
|
||||
267972 tbgcnf.pqz
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd zjvhmd
|
||||
$ ls
|
||||
287427 csjncqmr.tfj
|
||||
297578 hhhp.jvt
|
||||
5
data/day08.test
Normal file
5
data/day08.test
Normal file
@@ -0,0 +1,5 @@
|
||||
30373
|
||||
25512
|
||||
65332
|
||||
33549
|
||||
35390
|
||||
99
data/day08.txt
Normal file
99
data/day08.txt
Normal file
@@ -0,0 +1,99 @@
|
||||
113003322412033102023303501444545044215232525401341546163452453404402234201151432242402140110220101
|
||||
332001304022012142421445502213221330453061535265122314201352335233021055055200345412200440033322200
|
||||
011113132214324432134325045311145402450516101640412524056254134552334050434552541351100000142223210
|
||||
120100233011423423144030334144351644642605521663331053414601341464201040045104150001214204243212330
|
||||
032313022420343002352401031112122630544621450306410014210122655033613410314450242104133332033433110
|
||||
330133431221024552500405304311611205251454505525065601244143364343441153320511500334525320443331122
|
||||
232021314224321045040222145130205324423110304256225426345644345334310200416004113133521143332200422
|
||||
312322022143422250013255366221252062135020112327134227764002156152041134323314242255102200014240004
|
||||
212411010402324310541162616440606266620317315234166112525535542054554446314636025435501101142314410
|
||||
130420010020500305012262532345565125253527765422533261626735742433241362062404452514044512024131310
|
||||
241211034142224054050344306633445512263575724527746635663111434536510100261040501431453540340134211
|
||||
241313213114241230212646636605641533121654131662127125143714342377771455431346140255405303533314030
|
||||
200214302143123545226333105604234323144236661442633717414531213335635263423430225510502553055320124
|
||||
432210433113545424321340236152364457166745737761176472274142327714574465315263302246430530531052340
|
||||
044321111115013046066155407144655275272121513224325736736453741437462322257332111603344504052313220
|
||||
423214232334431334032453034121465736632235428586864276787383246667147623517713521254056250023050122
|
||||
341124205512002021001520535463145337475482376656634323542842654415315313467514115356311404235042224
|
||||
132001402100660310301501776141144746672773424257875288227677277663442356545463514004411150412531212
|
||||
001052001350350313612735275534436625275423778573334245773528222523563225127612470242660400232440014
|
||||
000112513501320042013743116251356437388536835723273464367352632733656224242323651012010230151310024
|
||||
432343513243516355144362617334462875826626872624526547773732534284688857151541627654520220114445210
|
||||
030155000415201011165562424113226826748747748853864385358746645352362468546644524342115335322112153
|
||||
521354124325146425431532157187775456325686557739354768338786565328828884835715454276200630310531024
|
||||
453541003326165663116714725533384334462564846638857736639973473868246353547315725644665433532024310
|
||||
550412430051564655211263423273445384473677893666497965987545884578247877687261326676604334421513240
|
||||
413054444206603631433161684337566624388758573363447988796769799695582635658423643315241325425634024
|
||||
215150330040102563666211553675525355868889739969438648979533595459347577832874756321426443250541325
|
||||
421424650534663421741533522275548697677937396576933765698789956783468276533784535453223333266121254
|
||||
422144151564541614312463257866683347483647399747895987469373443743399762878755625665635533442122100
|
||||
142126413036631514413457664863683937946499766465555784756389698779343558673226534437441452602242233
|
||||
305201320636671251145832252388563746733774564949748445664654449965453936743822654651524764154313443
|
||||
011300622102111771164477857675385967936859964787497949987577437799784855267278677674646432241223234
|
||||
340321113267666756754785648366853336456946997569954774746449465943647534953257556352535151305025463
|
||||
541411012547643576586448655984493857478575997945994447954587596973768677885376565465523461502535643
|
||||
444321100654632152854364424757747839747855469574958798776977549543479354379242483435267721134026240
|
||||
020626205154575316847673866764644374748789977457499575788744688854499953995222366237635424744520350
|
||||
335506510045711628565868794334457797677874456886875779795697459467453749364727248672726163736041204
|
||||
500111603536263112863778287468558998649869948858895979757648556554566675849574438477347434571054505
|
||||
122000100243546685578334388934875844674864976796788677978555975645687865954363424837536471770452415
|
||||
141414215752566148738527647673948945657599775586897776875597686768689334698832463748744764733053124
|
||||
100340653262173232623746876388947885855898958859977856795865855466954797947557362275815142426540331
|
||||
466303032723142355554844869739456445889568997967558595977567767954454556686589744843263767635404425
|
||||
004613266772514623473428884775998765955988667675865595697667595999549844548767382824562175546612214
|
||||
223062321176322437826876799485789855749797897795766857786556556466469876653886288833557467773301562
|
||||
413332261232125275243773533956777794896856665777776697967896558687464977634963578724434267752313063
|
||||
552404621241274462672869963657657685959857786696669988675856559577744587934439473355436162566631240
|
||||
435165353647675322378767844955594694568958979668688889986755769858696479453833942343873533447232052
|
||||
244432367557727222376845574654778567657966566799677789797957677969848457379553465846862364131450331
|
||||
500160365677454526747395979487899988575755756767767688698968968964795455975647975338665645777505164
|
||||
102431235675118652565457756594548744578555576979976998997755878856465958937486343448585657465615526
|
||||
246165542416756587676444776898888956766578897997878779867867799995588485976853457557557151277215635
|
||||
001643325345324464653748985776747945569696578767779897778688898756644945899654857626437342132540232
|
||||
012101664761176266736346897839595848575598988867686699987969655574844656549763626542283366457311330
|
||||
561504075335422826822483989945889874569866596668697889889787698578564685356683642368537236162426203
|
||||
352203514134651772748288733934776699589795768989986896977876655856647995457449532883535245357460413
|
||||
033642404423741338448747543456567587875878659898696769778857567974989696766857638532623516361132200
|
||||
616444206117715325587799743549596679896878996579778797758659755584898985549986338256726477267555103
|
||||
520455143625244274365846334377848464679657799659996799959789655886895549885388585227864441542440633
|
||||
301346217675555884462648646383444656479799855995796958569776779656497648598636775768426556776465212
|
||||
520404231326621664428744458384498945886755796967559979558788575647874897993564426835362551773515204
|
||||
316242511662326327222423774658467889697656957595795766869586965778777639684376585246752671616104436
|
||||
415146426112762185773325386754349955694758878879858887885879799994465943455896555866711732413133541
|
||||
355625411617227324663526785865944884474696755859788678978799585984575877863878686426651623174052622
|
||||
250022125746424524625262754995697689898769757895898887999798967686567449959582647242127737515510342
|
||||
525264040416627662865878845844435466984695749789657699584976867495646849545456285287242646554654353
|
||||
036123646424431555263267827839763498876769495677697448449595455554764947373454763645727333510646146
|
||||
204566364235641316654753765445963394466448895664985649465498769864394998376778764453573662441355520
|
||||
220335031661255773663868585338574847865979585777445874888879656858779783486746544464161776603563641
|
||||
222513656331342447187422756294679343838685457555849784967456454674489536467765228571211235451313300
|
||||
420041535613636672654268683685394696895377789594449696975655499485443388622338663537334646443120355
|
||||
525056224212611227113776876877874646779895859895448998785578796984395868862632743546145340000633644
|
||||
404314430546135313471247434875543567783736878545548779967377554684776373253726223752325712616213051
|
||||
353422360566111142127744587245868774578548754579967945935667489466386244448265471714226610251556141
|
||||
240135510612042471674334266253242658953336636546539684393847584358732442564537232411555541300234143
|
||||
555204024234655515726125842362866243634643845579964798949797638778425653264527614711662106606433551
|
||||
203524350135524444622315434263233285368993457879757738399643368354787234632745135155274525361620440
|
||||
340532455653452155645722264385685523579545388464998647475936784423755683487133452753535123313604354
|
||||
352152244221611331745526617386458872637865488449639856654753583624523335337272114515341203461045505
|
||||
312033003454166053225452625154365544367483828667456379835556776344278883841652574422331646601235245
|
||||
354330514213011046317425234714582372762675574834484437275552425744868747672133251365644033361512332
|
||||
044021444522010141412515121117476227878457643873272338756238823637528547351444752605411146631314215
|
||||
232413442230001100251223172352214643455635846823657522575345326788747411734266577565251164231145220
|
||||
131504320306315625216346311325345143883224276853882277427888248757813625336722630560555630113015013
|
||||
024451223151264563630623162617513241445834482436236846786748364751551471325535132540104323422105400
|
||||
124420553125506323053405346614111134556285246233525828237347884315614217572766434350535521515101401
|
||||
130200351112000250166105345316513263244676855323883356633222244252121772667652426014110503513555221
|
||||
400241412230012102424516231766252561312255446621244373337355416351623124213640652213520151043110444
|
||||
322440423504102454033133351036544434155137522762124773455775324625526553424524313460144053442544330
|
||||
324303335402501236440552111053234114555641277255456252443511634243752643304353256666504353255522122
|
||||
241434204225354100532033205000145461776516534477176114531271372735543451231303326454043352113013420
|
||||
334124213300015522546105345511323376357312632521613774424256342133105114520414061451141133554301031
|
||||
211304431150451251125020043053260563634374764226536222654742522421115640025331113215553523303422011
|
||||
123324243323523142132445503461621106650437431517676417742653314226115466013230223030345414021112341
|
||||
100121244242050431353422620202033056213213561562676642451361622463016135301034322504250003434240420
|
||||
202331344430130314251310046312513630614136423111235233115234253411664210435541154434125202004300041
|
||||
311142442400021052335032430131001522121243633355511015105456130306054020525345400331240114301233431
|
||||
303333210333101445104545232532514231420245342044224564606555504302423403203123103211431303412444103
|
||||
322112022033322224210512330414230625446520203533135512231066520423212314402311345154232414213413203
|
||||
210220340333424334214524143431005502542403323230305103516410534415015522312221415410344021130000212
|
||||
8
data/day09.2.test
Normal file
8
data/day09.2.test
Normal file
@@ -0,0 +1,8 @@
|
||||
R 5
|
||||
U 8
|
||||
L 8
|
||||
D 3
|
||||
R 17
|
||||
D 10
|
||||
L 25
|
||||
U 20
|
||||
8
data/day09.test
Normal file
8
data/day09.test
Normal file
@@ -0,0 +1,8 @@
|
||||
R 4
|
||||
U 4
|
||||
L 3
|
||||
D 1
|
||||
R 4
|
||||
D 1
|
||||
L 5
|
||||
R 2
|
||||
2000
data/day09.txt
Normal file
2000
data/day09.txt
Normal file
File diff suppressed because it is too large
Load Diff
146
data/day10.test
Normal file
146
data/day10.test
Normal file
@@ -0,0 +1,146 @@
|
||||
addx 15
|
||||
addx -11
|
||||
addx 6
|
||||
addx -3
|
||||
addx 5
|
||||
addx -1
|
||||
addx -8
|
||||
addx 13
|
||||
addx 4
|
||||
noop
|
||||
addx -1
|
||||
addx 5
|
||||
addx -1
|
||||
addx 5
|
||||
addx -1
|
||||
addx 5
|
||||
addx -1
|
||||
addx 5
|
||||
addx -1
|
||||
addx -35
|
||||
addx 1
|
||||
addx 24
|
||||
addx -19
|
||||
addx 1
|
||||
addx 16
|
||||
addx -11
|
||||
noop
|
||||
noop
|
||||
addx 21
|
||||
addx -15
|
||||
noop
|
||||
noop
|
||||
addx -3
|
||||
addx 9
|
||||
addx 1
|
||||
addx -3
|
||||
addx 8
|
||||
addx 1
|
||||
addx 5
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx -36
|
||||
noop
|
||||
addx 1
|
||||
addx 7
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 2
|
||||
addx 6
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 1
|
||||
noop
|
||||
noop
|
||||
addx 7
|
||||
addx 1
|
||||
noop
|
||||
addx -13
|
||||
addx 13
|
||||
addx 7
|
||||
noop
|
||||
addx 1
|
||||
addx -33
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 2
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 8
|
||||
noop
|
||||
addx -1
|
||||
addx 2
|
||||
addx 1
|
||||
noop
|
||||
addx 17
|
||||
addx -9
|
||||
addx 1
|
||||
addx 1
|
||||
addx -3
|
||||
addx 11
|
||||
noop
|
||||
noop
|
||||
addx 1
|
||||
noop
|
||||
addx 1
|
||||
noop
|
||||
noop
|
||||
addx -13
|
||||
addx -19
|
||||
addx 1
|
||||
addx 3
|
||||
addx 26
|
||||
addx -30
|
||||
addx 12
|
||||
addx -1
|
||||
addx 3
|
||||
addx 1
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx -9
|
||||
addx 18
|
||||
addx 1
|
||||
addx 2
|
||||
noop
|
||||
noop
|
||||
addx 9
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx -1
|
||||
addx 2
|
||||
addx -37
|
||||
addx 1
|
||||
addx 3
|
||||
noop
|
||||
addx 15
|
||||
addx -21
|
||||
addx 22
|
||||
addx -6
|
||||
addx 1
|
||||
noop
|
||||
addx 2
|
||||
addx 1
|
||||
noop
|
||||
addx -10
|
||||
noop
|
||||
noop
|
||||
addx 20
|
||||
addx 1
|
||||
addx 2
|
||||
addx 2
|
||||
addx -6
|
||||
addx -11
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
147
data/day10.txt
Normal file
147
data/day10.txt
Normal file
@@ -0,0 +1,147 @@
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 6
|
||||
addx -1
|
||||
addx 5
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 5
|
||||
addx 11
|
||||
addx -10
|
||||
addx 4
|
||||
noop
|
||||
addx 5
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 1
|
||||
noop
|
||||
addx 4
|
||||
addx 5
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx -35
|
||||
addx -2
|
||||
addx 5
|
||||
addx 2
|
||||
addx 3
|
||||
addx -2
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
addx 3
|
||||
addx -2
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
addx 3
|
||||
addx -28
|
||||
addx 28
|
||||
addx 5
|
||||
addx 2
|
||||
addx -9
|
||||
addx 10
|
||||
addx -38
|
||||
noop
|
||||
addx 3
|
||||
addx 2
|
||||
addx 7
|
||||
noop
|
||||
noop
|
||||
addx -9
|
||||
addx 10
|
||||
addx 4
|
||||
addx 2
|
||||
addx 3
|
||||
noop
|
||||
noop
|
||||
addx -2
|
||||
addx 7
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 3
|
||||
addx 5
|
||||
addx 2
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx -35
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 5
|
||||
addx 2
|
||||
noop
|
||||
addx 3
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 5
|
||||
addx 3
|
||||
addx -2
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
addx -25
|
||||
noop
|
||||
addx 30
|
||||
noop
|
||||
addx 1
|
||||
noop
|
||||
addx 2
|
||||
noop
|
||||
addx 3
|
||||
addx -38
|
||||
noop
|
||||
addx 7
|
||||
addx -2
|
||||
addx 5
|
||||
addx 2
|
||||
addx -8
|
||||
addx 13
|
||||
addx -2
|
||||
noop
|
||||
addx 3
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
addx -15
|
||||
noop
|
||||
addx 20
|
||||
addx 3
|
||||
noop
|
||||
addx 2
|
||||
addx -4
|
||||
addx 5
|
||||
addx -38
|
||||
addx 8
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 2
|
||||
addx 17
|
||||
addx -10
|
||||
addx 3
|
||||
noop
|
||||
addx 2
|
||||
addx 1
|
||||
addx -16
|
||||
addx 19
|
||||
addx 2
|
||||
noop
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
@@ -21,6 +21,8 @@ description: Please see the README on GitHub at <https://github.com/gith
|
||||
|
||||
dependencies:
|
||||
- base >= 4.7 && < 5
|
||||
- ghc
|
||||
# - modular-arithmetic
|
||||
|
||||
ghc-options:
|
||||
- -Wall
|
||||
@@ -34,7 +36,7 @@ ghc-options:
|
||||
- -Wredundant-constraints
|
||||
|
||||
# library:
|
||||
# source-dirs: src
|
||||
# source-dirs: src
|
||||
|
||||
executables:
|
||||
AOC22-exe:
|
||||
|
||||
@@ -1,44 +1,40 @@
|
||||
module AOCUtil where
|
||||
import Data.List
|
||||
import Data.Ord
|
||||
|
||||
import Data.List
|
||||
import Data.Ord
|
||||
|
||||
interactF :: String -> (String -> String) -> IO ()
|
||||
interactF file fun = (putStrLn . fun) =<< readFile file
|
||||
|
||||
|
||||
splitOn :: Eq a => a -> [a] -> [[a]]
|
||||
splitOn p s = case dropWhile (p ==) s of
|
||||
[] -> []
|
||||
s' -> w : splitOn p s'' where (w, s'') = break (== p) s'
|
||||
|
||||
|
||||
impl :: Bool -> Bool -> Bool
|
||||
impl a b = not a || b
|
||||
|
||||
unDigits :: [Int] -> Int
|
||||
unDigits [] = 0
|
||||
unDigits [] = 0
|
||||
unDigits [i] = i
|
||||
unDigits is = unDigits (init is) * 10 + last is
|
||||
unDigits is = unDigits (init is) * 10 + last is
|
||||
|
||||
middle :: [a] -> a
|
||||
middle [] = error "called AOCUtil.middle on empty list."
|
||||
middle ls = ls !! (length ls `div` 2)
|
||||
|
||||
|
||||
-- mapFst :: (a->c) -> (a,b) -> (c,b)
|
||||
-- mapFst f (a, b) = (f a, b)
|
||||
|
||||
-- mapSnd :: (b->c) -> (a,b) -> (a,c)
|
||||
-- mapSnd f (a, b) = (a, f b)
|
||||
|
||||
|
||||
readBin :: String -> Int
|
||||
readBin [] = 0
|
||||
readBin ls = readBin (init ls) * 2 + toBin (last ls)
|
||||
where
|
||||
toBin '0' = 0
|
||||
toBin '1' = 1
|
||||
|
||||
where
|
||||
toBin '0' = 0
|
||||
toBin '1' = 1
|
||||
|
||||
first2 :: [a] -> (a, a)
|
||||
first2 (a : b : _) = (a, b)
|
||||
@@ -67,25 +63,34 @@ mapT3 f (a1, a2, a3) = (f a1, f a2, f a3)
|
||||
applyT :: (a -> b, a -> c) -> a -> (b, c)
|
||||
applyT (f1, f2) a = (f1 a, f2 a)
|
||||
|
||||
|
||||
mostCommon :: Ord a => [a] -> a
|
||||
mostCommon = head . head . sortOn (Down . length) . group . sort
|
||||
|
||||
without :: Int -> [a] -> [a]
|
||||
without _ [] = []
|
||||
without _ [] = []
|
||||
without 0 (a : as) = as
|
||||
without i (a : as) = a : without (i - 1) as
|
||||
|
||||
clamp :: Ord a => (a, a) -> a -> a
|
||||
clamp (l, u) v = min u $ max l v
|
||||
|
||||
|
||||
rotateR :: Int -> [a] -> [a]
|
||||
rotateR 0 ls = ls
|
||||
rotateR i ls | i < 0 = rotateL (-i) ls
|
||||
| otherwise = rotateR (i - 1) (last ls : init ls)
|
||||
rotateR i ls
|
||||
| i < 0 = rotateL (-i) ls
|
||||
| otherwise = rotateR (i - 1) (last ls : init ls)
|
||||
|
||||
rotateL :: Int -> [a] -> [a]
|
||||
rotateL 0 ls = ls
|
||||
rotateL i ls | i < 0 = rotateR (-i) ls
|
||||
| otherwise = rotateL (i - 1) (tail ls ++ [head ls])
|
||||
rotateL i ls
|
||||
| i < 0 = rotateR (-i) ls
|
||||
| otherwise = rotateL (i - 1) (tail ls ++ [head ls])
|
||||
|
||||
readChar :: Char -> Int
|
||||
readChar c = fromEnum c - fromEnum '0'
|
||||
|
||||
addT :: Num a => (a, a) -> (a, a) -> (a, a)
|
||||
addT (a1, a2) (b1, b2) = (a1 + b1, a2 + b2)
|
||||
|
||||
manhattan :: Num a => (a, a) -> (a, a) -> a
|
||||
manhattan (a1, a2) (b1, b2) = abs (a1 - b1) + abs (a2 - b2)
|
||||
|
||||
34
src/Days/Day03.hs
Normal file
34
src/Days/Day03.hs
Normal file
@@ -0,0 +1,34 @@
|
||||
module Days.Day03 where
|
||||
|
||||
import AOCUtil
|
||||
import Data.Char
|
||||
import GHC.Utils.Misc
|
||||
|
||||
runA :: IO ()
|
||||
runA = interactF "data/day03.txt" (show . solve . lines)
|
||||
|
||||
runB :: IO ()
|
||||
runB = interactF "data/day03.txt" (show . solveB . lines)
|
||||
|
||||
solve :: [String] -> Int
|
||||
solve = sum . map (getPrio . findDup . splitBackpack)
|
||||
|
||||
solveB :: [String] -> Int
|
||||
solveB = sum . map (getPrio . findBadge) . chunkList 3
|
||||
|
||||
splitBackpack :: String -> (String, String)
|
||||
splitBackpack s = (take l s, drop l s)
|
||||
where
|
||||
l = length s `div` 2
|
||||
|
||||
findDup :: (String, String) -> Char
|
||||
findDup (ls, ls2) = head . filter (`elem` ls) $ ls2
|
||||
|
||||
getPrio :: Char -> Int
|
||||
getPrio c
|
||||
| isLower c = fromEnum c - fromEnum 'a' + 1
|
||||
| isUpper c = fromEnum c - fromEnum 'A' + 27
|
||||
| otherwise = undefined
|
||||
|
||||
findBadge :: [String] -> Char
|
||||
findBadge [a, b, c] = head . filter (`elem` a) . filter (`elem` b) $ c
|
||||
31
src/Days/Day04.hs
Normal file
31
src/Days/Day04.hs
Normal file
@@ -0,0 +1,31 @@
|
||||
module Days.Day04 where
|
||||
|
||||
import AOCUtil
|
||||
|
||||
runA :: IO ()
|
||||
runA = interactF "data/day04.txt" (show . solve . lines)
|
||||
|
||||
runB :: IO ()
|
||||
runB = interactF "data/day04.txt" (show . solveB . lines)
|
||||
|
||||
type Section = (Int, Int)
|
||||
|
||||
type Pair = (Section, Section)
|
||||
|
||||
solve :: [String] -> Int
|
||||
solve = length . filter sectionInclude . map readPair
|
||||
|
||||
readPair :: String -> Pair
|
||||
readPair = first2 . map readSection . splitOn ','
|
||||
|
||||
readSection :: String -> Section
|
||||
readSection = first2 . map read . splitOn '-'
|
||||
|
||||
sectionInclude :: Pair -> Bool
|
||||
sectionInclude ((a, b), (c, d)) = (a <= c && d <= b) || (c <= a && b <= d)
|
||||
|
||||
solveB :: [String] -> Int
|
||||
solveB = length . filter sectionOverlap . map readPair
|
||||
|
||||
sectionOverlap :: Pair -> Bool
|
||||
sectionOverlap ((a, b), (c, d)) = not (b < c || d < a)
|
||||
60
src/Days/Day05.hs
Normal file
60
src/Days/Day05.hs
Normal file
@@ -0,0 +1,60 @@
|
||||
module Days.Day05 where
|
||||
|
||||
import AOCUtil
|
||||
import Data.Char
|
||||
import Data.List
|
||||
import GHC.Utils.Misc
|
||||
|
||||
runA :: IO ()
|
||||
runA = interactF "data/day05.txt" (solve)
|
||||
|
||||
runB :: IO ()
|
||||
runB = interactF "data/day05.txt" (solveB)
|
||||
|
||||
solve :: String -> String
|
||||
solve = show . map head . uncurry (flip processAll) . readInput
|
||||
|
||||
solveB :: String -> String
|
||||
solveB = show . map head . uncurry (flip processAllB) . readInput
|
||||
|
||||
type Stack = [Char] -- prop/push front
|
||||
|
||||
type Instruction = (Int, Int, Int) -- from, to, amount
|
||||
|
||||
readInput :: String -> ([Stack], [Instruction])
|
||||
readInput s = (readStacks a, readInstructions b)
|
||||
where
|
||||
(a, b) = first2 . map unlines . splitOn "" . lines $ s
|
||||
|
||||
readStacks :: String -> [Stack]
|
||||
readStacks = map (reverse . filter (/= ' ') . head . tail) . chunkList 4 . map reverse . transpose . init . lines
|
||||
|
||||
readInstructions :: String -> [Instruction]
|
||||
readInstructions = map readI . lines
|
||||
|
||||
readI :: String -> Instruction
|
||||
readI = first3 . map read . filter (isDigit . head) . words
|
||||
|
||||
processAll :: [Instruction] -> [Stack] -> [Stack]
|
||||
processAll [] = id
|
||||
processAll (i : is) = processAll is . process i
|
||||
|
||||
processAllB :: [Instruction] -> [Stack] -> [Stack]
|
||||
processAllB [] = id
|
||||
processAllB (i : is) = processAllB is . processB i
|
||||
|
||||
process :: Instruction -> [Stack] -> [Stack]
|
||||
process (a, b, c) stack = map update . zip [1 ..] $ stack
|
||||
where
|
||||
update (i, s)
|
||||
| i == b = drop a s
|
||||
| i == c = (reverse . take a . (!!) stack $ (b - 1)) ++ s
|
||||
| otherwise = s
|
||||
|
||||
processB :: Instruction -> [Stack] -> [Stack]
|
||||
processB (a, b, c) stack = map update . zip [1 ..] $ stack
|
||||
where
|
||||
update (i, s)
|
||||
| i == b = drop a s
|
||||
| i == c = (take a . (!!) stack $ (b - 1)) ++ s
|
||||
| otherwise = s
|
||||
21
src/Days/Day06.hs
Normal file
21
src/Days/Day06.hs
Normal file
@@ -0,0 +1,21 @@
|
||||
module Days.Day06 where
|
||||
|
||||
import AOCUtil
|
||||
import Data.Char
|
||||
import Data.List
|
||||
import GHC.Utils.Misc
|
||||
|
||||
runA :: IO ()
|
||||
runA = interactF "data/day06.txt" (show . solve)
|
||||
|
||||
runB :: IO ()
|
||||
runB = interactF "data/day06.txt" (show . solveB)
|
||||
|
||||
solve :: String -> Int
|
||||
solve = fst . head . filter (noDups 4) . zip [4 ..] . filter ((== 4) . length) . map (take 4) . tails
|
||||
|
||||
solveB :: String -> Int
|
||||
solveB = fst . head . filter (noDups 14) . zip [14 ..] . filter ((== 14) . length) . map (take 14) . tails
|
||||
|
||||
noDups :: Int -> (Int, [Char]) -> Bool
|
||||
noDups l (i, ls) = (== l) . length . nub . sort $ ls
|
||||
44
src/Days/Day07.hs
Normal file
44
src/Days/Day07.hs
Normal file
@@ -0,0 +1,44 @@
|
||||
module Days.Day07 where
|
||||
|
||||
import AOCUtil
|
||||
import Data.Char
|
||||
import Data.List
|
||||
import GHC.Utils.Misc
|
||||
|
||||
runA :: IO ()
|
||||
runA = interactF "data/day07.txt" (solve)
|
||||
|
||||
runB :: IO ()
|
||||
runB = interactF "data/day07.txt" (solveB)
|
||||
|
||||
solve :: String -> String
|
||||
solve s = show . sum . filter (< 100000) . map (getDirectorySize fl) . getDirectories $ fl
|
||||
where
|
||||
fl = generateFileList [] . lines $ s
|
||||
|
||||
solveB :: String -> String
|
||||
solveB s = show . head . sort . filter (>= toFree fl) . map (getDirectorySize fl) . getDirectories $ fl
|
||||
where
|
||||
fl = generateFileList [] . lines $ s
|
||||
|
||||
type File = ([String], Int) -- Path (Reversed) including Filename, Size
|
||||
|
||||
generateFileList :: [String] -> [String] -> [File] -- current dir (reversed), list of commands
|
||||
generateFileList _ [] = []
|
||||
generateFileList dir (c : cs)
|
||||
| isPrefixOf "$ cd .." c = generateFileList (tail dir) cs
|
||||
| isPrefixOf "$ cd" c = generateFileList ((last $ words c) : dir) cs
|
||||
-- \| isPrefixOf "$ ls" c = generateFileList dir cs
|
||||
| isDigit $ head c = (((last . words $ c) : dir), read . last . init . words $ c) : (generateFileList dir cs)
|
||||
| otherwise = generateFileList dir cs
|
||||
|
||||
type Dir = [String]
|
||||
|
||||
getDirectories :: [File] -> [Dir]
|
||||
getDirectories = nub . sort . concatMap (tails . tail . fst)
|
||||
|
||||
getDirectorySize :: [File] -> Dir -> Int
|
||||
getDirectorySize fs d = sum . map snd . filter (isSuffixOf d . fst) $ fs
|
||||
|
||||
toFree :: [File] -> Int
|
||||
toFree = (flip (-) 40000000) . (flip getDirectorySize) ["/"]
|
||||
54
src/Days/Day08.hs
Normal file
54
src/Days/Day08.hs
Normal file
@@ -0,0 +1,54 @@
|
||||
module Days.Day08 where
|
||||
|
||||
import AOCUtil
|
||||
import Data.Char
|
||||
import Data.List
|
||||
import GHC.Utils.Misc
|
||||
|
||||
runA :: IO ()
|
||||
runA = interactF "data/day08.txt" (solve)
|
||||
|
||||
runB :: IO ()
|
||||
runB = interactF "data/day08.txt" (solveB)
|
||||
|
||||
solve :: String -> String
|
||||
solve s = show . length . filter (isVisible for) $ [(x, y) | x <- [0 .. fwidth for - 1], y <- [0 .. fheight for - 1]]
|
||||
where
|
||||
for = map (map readChar) . lines $ s
|
||||
|
||||
solveB :: String -> String
|
||||
solveB s = show . maximum . map (scenicScore for) $ [(x, y) | x <- [0 .. fwidth for - 1], y <- [0 .. fheight for - 1]]
|
||||
where
|
||||
for = map (map readChar) . lines $ s
|
||||
|
||||
type Forrest = [[Int]]
|
||||
|
||||
isVisible :: Forrest -> (Int, Int) -> Bool
|
||||
isVisible f (x, y) = isLookt h left || isLookt h (tail right2) || isLookt h top || isLookt h (tail bot2)
|
||||
where
|
||||
row = f !! y
|
||||
col = transpose f !! x
|
||||
h = f !! y !! x
|
||||
(left, right2) = splitAt x row
|
||||
(top, bot2) = splitAt y col
|
||||
|
||||
scenicScore :: Forrest -> (Int, Int) -> Int
|
||||
scenicScore f (x, y) = viewDist h (reverse left) * viewDist h (tail right2) * viewDist h (reverse top) * viewDist h (tail bot2)
|
||||
where
|
||||
row = f !! y
|
||||
col = transpose f !! x
|
||||
h = f !! y !! x
|
||||
(left, right2) = splitAt x row
|
||||
(top, bot2) = splitAt y col
|
||||
|
||||
viewDist :: Int -> [Int] -> Int
|
||||
viewDist i ls = min (length ls) . (+ 1) . length . takeWhile (< i) $ ls
|
||||
|
||||
isLookt :: Int -> [Int] -> Bool
|
||||
isLookt m = all (< m)
|
||||
|
||||
fwidth :: Forrest -> Int
|
||||
fwidth = length . head
|
||||
|
||||
fheight :: Forrest -> Int
|
||||
fheight = length
|
||||
85
src/Days/Day09.hs
Normal file
85
src/Days/Day09.hs
Normal file
@@ -0,0 +1,85 @@
|
||||
module Days.Day09 where
|
||||
|
||||
import AOCUtil
|
||||
import Data.Char
|
||||
import Data.List
|
||||
import GHC.Utils.Misc
|
||||
|
||||
runA :: IO ()
|
||||
runA = interactF "data/day09.test" (solve)
|
||||
|
||||
runB :: IO ()
|
||||
runB = interactF "data/day09.txt" (solveB)
|
||||
|
||||
solve :: String -> String
|
||||
solve = show . length . nub . sort . map snd . processInstruction [((0, 0), (0, 0))] . parseInput
|
||||
|
||||
solveB :: String -> String
|
||||
solveB = show . length . nub . sort . map last . process2 [longRope] . parseInput
|
||||
|
||||
type Pos = (Int, Int)
|
||||
|
||||
type Rope = (Pos, Pos)
|
||||
|
||||
type LongRope = [Pos]
|
||||
|
||||
longRope :: LongRope
|
||||
longRope = replicate 10 (0, 0)
|
||||
|
||||
data Dir = DUp | DDown | DLeft | DRight
|
||||
-- ^ y
|
||||
-- |
|
||||
-- |
|
||||
-- +----> x
|
||||
|
||||
move :: Dir -> Pos -> Pos
|
||||
move DUp (x, y) = (x, y + 1)
|
||||
move DDown (x, y) = (x, y - 1)
|
||||
move DLeft (x, y) = (x - 1, y)
|
||||
move DRight (x, y) = (x + 1, y)
|
||||
|
||||
parseInput :: String -> [Dir]
|
||||
parseInput = concatMap (parseCommand . words) . lines
|
||||
|
||||
parseCommand :: [String] -> [Dir]
|
||||
parseCommand ["R", i] = replicate (read i) DRight
|
||||
parseCommand ["L", i] = replicate (read i) DLeft
|
||||
parseCommand ["U", i] = replicate (read i) DUp
|
||||
parseCommand ["D", i] = replicate (read i) DDown
|
||||
|
||||
processInstruction :: [Rope] -> [Dir] -> [Rope]
|
||||
processInstruction [] _ = error "Specify starting position"
|
||||
processInstruction r [] = r
|
||||
processInstruction r@((h, t) : _) (d : ds) = processInstruction ((h2, adjust3 h2 t) : r) ds
|
||||
where
|
||||
h2 = move d h
|
||||
|
||||
process2 :: [LongRope] -> [Dir] -> [LongRope]
|
||||
process2 [] _ = error "Specify starting rope"
|
||||
process2 r [] = r
|
||||
process2 r@(rope : _) (d : ds) = process2 (moveRope rope d : r) ds
|
||||
|
||||
adjust3 :: Pos -> Pos -> Pos -- head, tain -> new tail
|
||||
adjust3 (hx, hy) (tx, ty) = if max (abs $ hx - tx) (abs $ hy - ty) > 1 then (tx + signum (hx - tx), ty + signum (hy - ty)) else (tx, ty)
|
||||
|
||||
moveRope :: LongRope -> Dir -> LongRope -- moves head
|
||||
moveRope (h : rs) d = fixRope (move d h : rs)
|
||||
|
||||
fixRope :: LongRope -> LongRope -- moves tail
|
||||
fixRope [a] = [a]
|
||||
fixRope (h : t : ts) = (h : fixRope (adjust3 h t : ts))
|
||||
|
||||
-- adjust :: Dir -> Rope -> Rope -- Dir, Head, Tail -> Tail
|
||||
-- adjust DRight (h@(hx, hy), t@(tx, ty)) = (move DRight h, if tx < hx then h else t)
|
||||
-- adjust DLeft (h@(hx, hy), t@(tx, ty)) = (move DLeft h, if tx > hx then h else t)
|
||||
-- adjust DDown (h@(hx, hy), t@(tx, ty)) = (move DDown h, if ty > hy then h else t)
|
||||
-- adjust DUp (h@(hx, hy), t@(tx, ty)) = (move DUp h, if ty < hy then h else t)
|
||||
|
||||
-- adjust2 :: Pos -> Pos -> Pos -- head, tain -> new tail
|
||||
-- adjust2 h2 t = if dist <= 1 then t else t2
|
||||
-- where
|
||||
-- dist = max (abs $ fst h2 - fst t) (abs $ snd h2 - snd t)
|
||||
-- t2 = head . sortOn (edist t) . map (addT h2) $ [(0, 1), (0, -1), (1, 0), (-1, 0)]
|
||||
|
||||
-- edist :: Num a => (a, a) -> (a, a) -> a
|
||||
-- edist (a1, a2) (b1, b2) = (a1 - b1) ^ 2 + (a2 - b2) ^ 2
|
||||
45
src/Days/Day10.hs
Normal file
45
src/Days/Day10.hs
Normal file
@@ -0,0 +1,45 @@
|
||||
module Days.Day10 where
|
||||
|
||||
import AOCUtil
|
||||
import Data.Char
|
||||
import Data.List
|
||||
import GHC.Utils.Misc
|
||||
|
||||
runA :: IO ()
|
||||
runA = interactF "data/day10.txt" (solve)
|
||||
|
||||
runB :: IO ()
|
||||
runB = interactF "data/day10.txt" (solveB)
|
||||
|
||||
solve :: String -> String
|
||||
solve = show . sum . map score . zip [1 ..] . scanl applyInstruction 1 . cycleCorrection . map parseInstruction . lines
|
||||
|
||||
solveB :: String -> String
|
||||
solveB = unlines . chunkList 40 . map getPixel . zip [0 ..] . scanl applyInstruction 1 . cycleCorrection . map parseInstruction . lines
|
||||
|
||||
data Instruction = Noop | Add Int
|
||||
|
||||
parseInstruction :: String -> Instruction
|
||||
parseInstruction s
|
||||
| isPrefixOf "noop" s = Noop
|
||||
| isPrefixOf "addx" s = Add . read . last . words $ s
|
||||
| otherwise = error "bad instruction"
|
||||
|
||||
cycleCorrection :: [Instruction] -> [Instruction]
|
||||
cycleCorrection = concatMap duplicateI
|
||||
|
||||
duplicateI :: Instruction -> [Instruction]
|
||||
duplicateI Noop = [Noop]
|
||||
duplicateI (Add x) = [Noop, Add x]
|
||||
|
||||
applyInstruction :: Int -> Instruction -> Int
|
||||
applyInstruction i Noop = i
|
||||
applyInstruction i (Add x) = i + x
|
||||
|
||||
score :: (Int, Int) -> Int
|
||||
score (i, v)
|
||||
| i `elem` [20, 60, 100, 140, 180, 220] = i * v
|
||||
| otherwise = 0
|
||||
|
||||
getPixel :: (Int, Int) -> Char
|
||||
getPixel (i, v) = if abs ((i `mod` 40) - v) <= 1 then '#' else '.'
|
||||
69
src/Days/Day11.hs
Normal file
69
src/Days/Day11.hs
Normal file
@@ -0,0 +1,69 @@
|
||||
module Days.Day11 where
|
||||
|
||||
import AOCUtil
|
||||
import Data.Bool
|
||||
import Data.Char
|
||||
import Data.List
|
||||
import Data.Modular
|
||||
import GHC.Utils.Misc
|
||||
|
||||
runA :: IO ()
|
||||
runA = interactF "data/day10.txt" solve
|
||||
|
||||
runB :: IO ()
|
||||
runB = interactF "data/day10.txt" solveB
|
||||
|
||||
solve :: String -> String
|
||||
solve _ = "change 'handleItems' for A part " -- show . uncurry (*) . first2 . reverse . sort . map insp . runRounds 20 $ initialMonkeys
|
||||
|
||||
solveB :: String -> String
|
||||
solveB _ = show . uncurry (*) . first2 . reverse . sort . map insp . runRounds 10000 $ initialMonkeys
|
||||
|
||||
factor :: Int
|
||||
factor = 2 * 7 * 3 * 11 * 17 * 5 * 13 * 19
|
||||
|
||||
type Item = Int
|
||||
|
||||
data Monkey = Monkey {items :: [Item], op :: Item -> Item, target :: Item -> Int, insp :: Int}
|
||||
|
||||
instance Show Monkey where
|
||||
show (Monkey it _ _ is) = show it ++ "@" ++ show is
|
||||
|
||||
initialMonkeys :: [Monkey]
|
||||
initialMonkeys =
|
||||
[ Monkey {items = [54, 53], op = (* 3), target = bool 6 2 . (== 0) . (`mod` 2), insp = 0},
|
||||
Monkey {items = [95, 88, 75, 81, 91, 67, 65, 84], op = (* 11), target = bool 4 3 . (== 0) . (`mod` 7), insp = 0},
|
||||
Monkey {items = [76, 81, 50, 93, 96, 81, 83], op = (+ 6), target = bool 1 5 . (== 0) . (`mod` 3), insp = 0},
|
||||
Monkey {items = [83, 85, 85, 63], op = (+ 4), target = bool 4 7 . (== 0) . (`mod` 11), insp = 0},
|
||||
Monkey {items = [85, 52, 64], op = (+ 8), target = bool 7 0 . (== 0) . (`mod` 17), insp = 0},
|
||||
Monkey {items = [57], op = (+ 2), target = bool 3 1 . (== 0) . (`mod` 5), insp = 0},
|
||||
Monkey {items = [60, 95, 76, 66, 91], op = (^ 2), target = bool 5 2 . (== 0) . (`mod` 13), insp = 0},
|
||||
Monkey {items = [65, 84, 76, 72, 79, 65], op = (+ 5), target = bool 0 6 . (== 0) . (`mod` 19), insp = 0}
|
||||
]
|
||||
|
||||
runRounds :: Int -> [Monkey] -> [Monkey]
|
||||
runRounds n = nTimes n monkeyRound
|
||||
|
||||
monkeyRound :: [Monkey] -> [Monkey]
|
||||
monkeyRound ms = foldl monkeyCycle ms [0 .. n - 1]
|
||||
where
|
||||
n = length ms
|
||||
|
||||
monkeyCycle :: [Monkey] -> Int -> [Monkey]
|
||||
monkeyCycle ms i = clearMonkey i . foldl (.) id (map addItem toAdd) $ ms
|
||||
where
|
||||
activeMonkey = ms !! i
|
||||
toAdd = handleItems activeMonkey
|
||||
|
||||
handleItems :: Monkey -> [(Int, Item)]
|
||||
handleItems (Monkey [] _ _ _) = [] -- Target Monkey, Item worry level
|
||||
handleItems (Monkey (i : is) op target insp) = (target newWorry, newWorry) : handleItems (Monkey is op target insp)
|
||||
where
|
||||
-- newWorry = (`div` 3) . op $ i -- for A
|
||||
newWorry = (`mod` factor) . op $ i -- for B
|
||||
|
||||
addItem :: (Int, Item) -> [Monkey] -> [Monkey] -- Index Item
|
||||
addItem (idx, item) = zipWith (\i m -> if idx == i then m {items = items m ++ [item]} else m) [0 ..]
|
||||
|
||||
clearMonkey :: Int -> [Monkey] -> [Monkey]
|
||||
clearMonkey idx = zipWith (\i m -> if idx == i then m {items = [], insp = insp m + length (items m)} else m) [0 ..]
|
||||
BIN
src/Main.exe
Normal file
BIN
src/Main.exe
Normal file
Binary file not shown.
@@ -1,8 +1,6 @@
|
||||
module Main where
|
||||
|
||||
import Days.Day01
|
||||
import Days.Day11
|
||||
|
||||
main :: IO ()
|
||||
main = Days.Day01.runA
|
||||
|
||||
|
||||
main = Days.Day11.runB
|
||||
|
||||
@@ -40,7 +40,8 @@ packages:
|
||||
# - git: https://github.com/commercialhaskell/stack.git
|
||||
# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
|
||||
#
|
||||
# extra-deps: []
|
||||
extra-deps:
|
||||
- modular-arithmetic-2.0.0.2@sha256:7fa5ecf2a716f826f2090f838da1fd21e38fb20b55e46d1c2083944662383e86,1653
|
||||
|
||||
# Override default flag values for local packages and extra-deps
|
||||
# flags: {}
|
||||
|
||||
@@ -3,5 +3,12 @@
|
||||
# For more information, please see the documentation at:
|
||||
# https://docs.haskellstack.org/en/stable/lock_files
|
||||
|
||||
packages: []
|
||||
packages:
|
||||
- completed:
|
||||
hackage: modular-arithmetic-2.0.0.2@sha256:7fa5ecf2a716f826f2090f838da1fd21e38fb20b55e46d1c2083944662383e86,1653
|
||||
pantry-tree:
|
||||
sha256: 337ec2899350d0a2f65fe9a1b64b0fc499465230ef124e9a0f3b4a4bd9aec14f
|
||||
size: 383
|
||||
original:
|
||||
hackage: modular-arithmetic-2.0.0.2@sha256:7fa5ecf2a716f826f2090f838da1fd21e38fb20b55e46d1c2083944662383e86,1653
|
||||
snapshots: []
|
||||
|
||||
Reference in New Issue
Block a user