Compare commits
57 commits
Author | SHA1 | Date | |
---|---|---|---|
50398677e8 | |||
35ee5c5f46 | |||
9bd074744b | |||
fd7416456b | |||
0ee7c433e3 | |||
9a5252b635 | |||
3a3f62148b | |||
b2d66319e3 | |||
62bba80378 | |||
|
17740888b5 | ||
|
ce2778a09f | ||
|
58e7eb909e | ||
|
6a8ea1b392 | ||
|
9a050b663d | ||
|
63a4047c30 | ||
|
9c1a7818b2 | ||
|
2a9e8eab51 | ||
|
f2836e45e1 | ||
|
02648af3b3 | ||
|
3361c4f973 | ||
066a5894d3 | |||
6245e1a17c | |||
0408d3e148 | |||
660cca5d23 | |||
|
88549528a8 | ||
|
5117d318ee | ||
|
e32002c0c5 | ||
32744e2ed2 | |||
f9d338c42a | |||
c615d8f16a | |||
befbc009cc | |||
83c16d7fb7 | |||
aee8ae9a4f | |||
0b28444120 | |||
c95ef5ebdb | |||
4f5c029583 | |||
1610660749 | |||
157b334b14 | |||
5661ba3f2f | |||
f4d2d3bf24 | |||
10b594e479 | |||
29956ee857 | |||
da873ef463 | |||
f9ca1c15f0 | |||
2551a5fa4c | |||
|
07b0bf7558 | ||
|
5aa28c2b07 | ||
|
a490b2a72f | ||
|
0d7097dbf8 | ||
|
c90d69fdb9 | ||
|
fc49a2add1 | ||
|
d35a92ed23 | ||
|
e8b6170797 | ||
|
1e276e61ff | ||
13393c7ea8 | |||
1f09c78916 | |||
3af4d351a3 |
26 changed files with 11550 additions and 23 deletions
16
.gitignore
vendored
16
.gitignore
vendored
|
@ -1 +1,17 @@
|
||||||
/target
|
/target
|
||||||
|
.idea
|
||||||
|
.fleet
|
||||||
|
# Generated by Cargo
|
||||||
|
# will have compiled files and executables
|
||||||
|
debug/
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
|
||||||
|
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
|
||||||
|
Cargo.lock
|
||||||
|
|
||||||
|
# These are backup files generated by rustfmt
|
||||||
|
**/*.rs.bk
|
||||||
|
|
||||||
|
# MSVC Windows builds of rustc generate these, which store debugging information
|
||||||
|
*.pdb
|
||||||
|
|
7
Cargo.lock
generated
7
Cargo.lock
generated
|
@ -1,7 +0,0 @@
|
||||||
# This file is automatically @generated by Cargo.
|
|
||||||
# It is not intended for manual editing.
|
|
||||||
version = 3
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "_1_calorie_counting"
|
|
||||||
version = "0.1.0"
|
|
13
Cargo.toml
13
Cargo.toml
|
@ -1,8 +1,19 @@
|
||||||
[package]
|
[package]
|
||||||
name = "_1_calorie_counting"
|
name = "advent_of_code"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[profile.release-perso]
|
||||||
|
inherits = "release"
|
||||||
|
incremental = true
|
||||||
|
rpath = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
nom = "7.1.1"
|
||||||
|
itertools = "0.11.0"
|
||||||
|
camino = "1.1.6"
|
||||||
|
id_tree = "1.8.0"
|
||||||
|
color-eyre = "0.6.2"
|
||||||
|
petgraph = "0.6.4"
|
||||||
|
|
2500
prob2_part1.txt
Normal file
2500
prob2_part1.txt
Normal file
File diff suppressed because it is too large
Load diff
2500
prob2_part2.txt
Normal file
2500
prob2_part2.txt
Normal file
File diff suppressed because it is too large
Load diff
300
prob3_part1.txt
Normal file
300
prob3_part1.txt
Normal file
|
@ -0,0 +1,300 @@
|
||||||
|
zBBtHnnHtwwHplmlRlzPLCpp
|
||||||
|
vvhJccJFGFcNsdNNJbhJsJQplQMRLQMlfdfTPCLfQQCT
|
||||||
|
GPhjcjhZDjWtnSVH
|
||||||
|
BNhHVhrGNVTbDHdDJdJRPJdSQQSJwPjR
|
||||||
|
lvtsfbsqzwSnJcvjSm
|
||||||
|
MftttFLftZMLgtgMbltMqZzbDNrTpVGhNWrDTrpTGNpZGZhD
|
||||||
|
VSSHcTgTtTdtllZlzmmbljTn
|
||||||
|
RqMqsFfQLLFLQFMMfRLPZLvPpCfWrbpmCbjCnfjlWmnrmmnm
|
||||||
|
hqRDqPDRsqNHwtHSNBZtJd
|
||||||
|
tNFDpDFrtdjfmjjjFmFFdScpZhZScTJgpHccHhMJgS
|
||||||
|
lLzSlSCQqbsVhBghggBZgCcJ
|
||||||
|
zRLVVLQnvQqVVzRldfWrwffjjdwSdfjv
|
||||||
|
bpWqqqWvHBpwGBCCRl
|
||||||
|
hJdjdJFQqdBBDMMC
|
||||||
|
tFFzJZFtJSqtZJQsWLbNSTnffHfvTH
|
||||||
|
lFhRZhFjPlqMlJqZJlJcRLwrLrwStRwtsVVtVSrgRV
|
||||||
|
WcpDvDfBmpDHzWBDbpbmWmNVSSTzLTtrVswgttVVzwwr
|
||||||
|
pbWfmGBpHfDmWnvvGbmWnjjMqPJMlMFPdGcjqPqPhP
|
||||||
|
NjFNRlpVLFCSSlbBWWfw
|
||||||
|
pssPZQQsMnzmtnQPttzDBbBJBcrrJWbrZSBJSbfC
|
||||||
|
QTHPHspMNGHdhvRR
|
||||||
|
QfPdSJfFJmthSthtwbsNLbPLlLTLpbvP
|
||||||
|
nHnMBnZqqgBMnWrZMqnZVcbCqRwNsvblRwppbllTsRNp
|
||||||
|
nZHBHznMnWgcrnVBtjFdfmzQNtNddjNF
|
||||||
|
hFhfPghppPhpRNhzsjsvHVzjpsGnWz
|
||||||
|
tTjlCCwMqtdMjMctGJWHwWnVwWnwvWGs
|
||||||
|
rZdrjBBtqdCtlcdgFZQLfhRLFSgRNP
|
||||||
|
RDHSWrJWffJFlJCgCMCDjCvzjPMP
|
||||||
|
QtGTndBwBtNzBVjBCMgB
|
||||||
|
LdwwMpTdwsRHsqSHqHJl
|
||||||
|
RfsfzvLLFvFzCSvSbDsTpTGMPMZPPTMt
|
||||||
|
jqWBjwBBNwWqwPGZbTwVwVtD
|
||||||
|
BnhgglhhNNngqjBjHNWrZLlFLSCJSFFCCQzQvQFCFF
|
||||||
|
HLvLDQbvnDQDvbHTLhntSnGBSlfGldddcmfMMf
|
||||||
|
NgFjZjrZZJrlfJfSVcBJGc
|
||||||
|
scWCNFZpsjzrDLwLhbQzhQwD
|
||||||
|
SlqJlThDPqpwSTwhcbDdbWDbZGcZNcDb
|
||||||
|
MsnWWjHjvLvfscjjgdzNdbgbcc
|
||||||
|
vQQvWVQFLLHfHVBWfsfmFFpJRhhSplqlRJqpBwlqTCPC
|
||||||
|
DZbDzzZDjQbPGZFFSSgSlFCzTgzm
|
||||||
|
qLnvwvhddrqMrwrCTLLFJjmtSlFlSH
|
||||||
|
VdhvsWqdVWvvRhsvqbpbPcZfPpjZGBQNRj
|
||||||
|
mJNtNFmzDZtzdzrLtwwRqJSchgfGcRfwRB
|
||||||
|
pWpjQjCTQnHMWCCpjQpHvTqcwTwScfRcBcSGBRThwS
|
||||||
|
MQHjvjVCCqsvljWnVQzLtNPZzmzLVNLddtPN
|
||||||
|
QVRPRVDgsRjLssnL
|
||||||
|
TTGDJDJfbfLHSnsMWWbs
|
||||||
|
qGqqTFFDqgQgQQQq
|
||||||
|
nlMnRRjbMjCdJVQJCZ
|
||||||
|
nGqfLwfNLFNLnPPGFVVCdVGZJtCtCCVzJz
|
||||||
|
LHHfPNHnPqqLwqPqDPWfNFvMglbhhbMgmclgcllDmgmrcl
|
||||||
|
cLLWWSThtdLpRcddcgPRZFDMCVPPMCCPCPCZ
|
||||||
|
NfGbGNzrBNffGNJjbPPZsZmZZPmDHpMH
|
||||||
|
zlJBfzlQzNjNjfJcpwSdvWhcvLwQWt
|
||||||
|
cVVQfVCJVrVcTJnfNvlDFmDrmlvrFWlL
|
||||||
|
snZHpMhZtMbtPNvzHWWvNFNvNW
|
||||||
|
gppnbbbRgMnZbswRqRwbqTcCCSTCJJdGjgfVGTdcCG
|
||||||
|
jplgNdrHrrNZgdHmlHNJHddlDSPPSTlzTSlTSDSzCQLfzf
|
||||||
|
vscvWWWvGWGGscbFMpRWFwQTPzfLQwQwPfLbzSzzDL
|
||||||
|
GvGBWpqcMVRNNZHgdHdtBJ
|
||||||
|
LchbZhjjZFjwSmPRqRffqbdtggdR
|
||||||
|
vWHMWlHJdGqtRqHV
|
||||||
|
MvzCJlnMnlTNnNNLLdhjjCdjjhDjjL
|
||||||
|
FNCllHFvCGvwQcPQJfgfmwgh
|
||||||
|
zjtRpbDLjtsrzbLLQmfBTgTBQQfhbfQB
|
||||||
|
WLgqRzqsrWvFGFZFZC
|
||||||
|
qjLlNcLjcNWpQLlQMmvmhCvCgsMZZghj
|
||||||
|
tGSDJtRGJzHMMGDVZCfvmfhzmZZgZsmv
|
||||||
|
BSSRDRHBGHtSSSbGJSwHbNcLQddqMNlrqcMQMldBWc
|
||||||
|
JSfctrtctDpszHvzVQHr
|
||||||
|
glCWjhWmFjlmlhmdWPhVVznvcHjszbvvpHvznv
|
||||||
|
FgBmFhCBCGFqglgmhCFmSTSRLJLLZfSRJcDSGMtM
|
||||||
|
vZGlFFtLMLdShSSShRVtVf
|
||||||
|
rQNvmznWPNCPNsrCsbWbsPCvjShhhfHBBHJjSJRhjSRnHhSj
|
||||||
|
mCNsQCmqszNcQzrzrrzWvGgGMgpdFpMLlFZGwcLDdg
|
||||||
|
QJRJQDlcqLlWbNGL
|
||||||
|
HCnwwsCrnstLWqtWNgZNgg
|
||||||
|
rsnTrTCHTnnVwnsVPqqDQcRjcczMPvPRzM
|
||||||
|
qCzjqnzVdzrdhnhddDbDBMPttcGBDBDPnc
|
||||||
|
sZgRQWHgWHHLsgsRRZsJbpJlDcDGNcTDFtGNFFcJNFPBPBTc
|
||||||
|
WggbRQSRRgRSsWWmbHqvVffVwhzvCdmfhmdV
|
||||||
|
lhqWcNpQGcNmmHmNPWCsQzQsgrQrBMCMbMVM
|
||||||
|
wDLFFDJvSFFZRDZSzCrzTzsRgVWbCrMW
|
||||||
|
dFwDtZfdjFZWFFfmHGPnPPmqfmPNcN
|
||||||
|
lcMRNJRGGLJnNVFbVrwrwZrD
|
||||||
|
tjCzQjQhQwgWFShVFS
|
||||||
|
ffHQsQssQTzBsPnLpMPRwsJP
|
||||||
|
MQSMSBSRFMQLJChLChjTBh
|
||||||
|
WmVlPrwnpwDlflNpDrNnDlDwThJCCdLJhhdhCfJTccGjvscd
|
||||||
|
gnDVnNnwgglwDwptSZFzgQHqbjZgZZ
|
||||||
|
nwBcFgwTDcNrpZMD
|
||||||
|
WQWCLZmvhMRvNjsNSD
|
||||||
|
CGGWmZGHHhtVzHbTqgTdbgzz
|
||||||
|
RmcTCwvssRbsThTcVRJJfSPqfJwJFqfjfMFq
|
||||||
|
zQNZDWtQlDZGBQPfFQqjJLjL
|
||||||
|
rrglggZGWnrnrrHlDhsbsPTVCsCVsTRpHv
|
||||||
|
wFGfzSvCPGttSzqwmtqmvvPRDDRCWgWWDTBTMcBcBWbCRM
|
||||||
|
hVJJHQHnpWnDTNnnDb
|
||||||
|
LJsVVdhQqvmdbbSf
|
||||||
|
srlJztzsVVsSsVtRlNllTWzzmqGhqWLPCDCgmChPLDdqCmCP
|
||||||
|
bZQMZpbvMBMgmDGmZLSPZd
|
||||||
|
MpScMSMpvfjMBcBcfMfSBnzlTjssNszrNrtlTVzlzFVN
|
||||||
|
rCtgrgClprGGClnJCZmwtMjZRjbjjcjZQv
|
||||||
|
PWVfBHWPdbNfbbRmRj
|
||||||
|
sPsVqFPsHWLhBVVqHFqPVddWSDLJgpTCnnrRRLGpJSSTRrgT
|
||||||
|
zjqpGjrQjGqSHCVvCrRZDN
|
||||||
|
cTdshMhdmcMNmddRHBhvCCBCCvHZDC
|
||||||
|
JTmTmJnLTdwzNQpPWJWgpP
|
||||||
|
BmpZmrzZnznHbpprSbQSQbqdSVqbPQcV
|
||||||
|
fRGTGJZRTTDwJTJRGDfgJgNFlSSFcldfdccFVlPlFFQPSQ
|
||||||
|
GvTTTZZLmsntzmCL
|
||||||
|
VhMcrmbhvzMSnhvftbRbllLtglBBtf
|
||||||
|
HqqqJqDqPjJPNjjDVFDZCdqBtRtGBGlGRfQQgttQfHlTQl
|
||||||
|
pCZJPqqZpmhvhpVh
|
||||||
|
dWLBJHJhGJGMBJRcDLDSQsSQpvcR
|
||||||
|
ZlnnPqglblfRRpSvSsnz
|
||||||
|
sPTgZVjjmwVTljrwTTlbwVGdJhBNNdFdMGNHHJMjBNFN
|
||||||
|
FhFrfbfgbLRdfqfrmvDgLdjrcQtSNStHHHQlSjJJPllt
|
||||||
|
CnspzZWTpCnMVzzZZGZRCzttHNjNlQlSNtNlNjVcjlQS
|
||||||
|
GCZsZBRwnvwfbqwFwb
|
||||||
|
bZnJFJgLFRnqQZqJQJFQGpCLNcGlLllClNtccjGc
|
||||||
|
rVfvwPDhPHGtlcbClr
|
||||||
|
mBhshsfMvBvqsQJdTbgnqQ
|
||||||
|
jgWHqMSWMGqWjWjqbWGJQDfVqLfrfDfJhVLfTr
|
||||||
|
pPplwsRZPFZFtLhfwgfwrhJL
|
||||||
|
zlRsdgFcRgmjdBCMHdjHWB
|
||||||
|
qJSGJSPQWzcprtQZtt
|
||||||
|
mBMVfsNBnZzcNtcc
|
||||||
|
LMLBsmMlvBgFsghVVvfgLBvbJJSqgGHqPGPtCWwbJHqCPG
|
||||||
|
ZvZLcdMGVMlHDvDpvqhH
|
||||||
|
NNSrQNbJbrTnnWZDDZqqhqpW
|
||||||
|
wbgNJrsrCwwJQZbsrJBFzjCCdzGdjcGzMdzj
|
||||||
|
JbVmdVLJJJdQMnzmmMgHjPqqjNgvqwngHNNP
|
||||||
|
ZfffDZZsRpcpRDcCRrlpplcWSSgwgSwjvvsjPSwhNSWggh
|
||||||
|
cCtfppZrpjtMMmdQQTLz
|
||||||
|
TtbnmbdmTmgTlPNhqvqj
|
||||||
|
wrwrLsVZRsJJJsfHjvPPWfhjHqRN
|
||||||
|
sDZwDvsCCQLJZQJQsMCMzZBtSMpndcSFnnSBFtSBmdBc
|
||||||
|
mWFTZdmQdZFrFQbCRsrspjSjnvCLRS
|
||||||
|
GwlDqcNHDzwGfHSRqCgJsSpnvpSL
|
||||||
|
NGlcNwHLLGfDDHDhDwDcwVczbPddZtMFWttWWtdPPdQdhPWd
|
||||||
|
mnfcZgcdZqnqdfFqPmHfhqsbgVMCJNMtvCJtMvtblTJtvb
|
||||||
|
rRLDDjPSjjPDGBQSBNbtLVtbMNNJlTMtbl
|
||||||
|
SzjDDzRRpGQDDDPHzdsmnnhsqcqdFq
|
||||||
|
ZDGNRDGjSdwnnmnsVNsHJJ
|
||||||
|
tMBWWrddLPLhvWTTPLccvmmbVpgsJHmccppJ
|
||||||
|
ClPrtBWWrhrFLBPlCRzjzGqdRzjRdRGZjF
|
||||||
|
csTRNQNJcNBDLfhfMf
|
||||||
|
qGmWpGHqrqPLChPRhVFPDD
|
||||||
|
tgHrtnrrJnZRTZcv
|
||||||
|
FLqrfmLDrqCmqjTqcbGqRTGVvb
|
||||||
|
FMtWMSWzzFStJzPzhWzhQvTvHVjjTjHTTHvbHc
|
||||||
|
PgtWWstWtSpZWPzWwnrBsdBDdFLfllLlfC
|
||||||
|
mThbMDMQDCDbwLqWpqPpdhwR
|
||||||
|
zgrcffgHNZltZSgHLsRsLLWRWgLqppsW
|
||||||
|
SVlSrfSHlSSVlrJfVctlNDMCmMFbnbRDbDBFJFbBRM
|
||||||
|
PrBrWqtRPdBLLrBwqpswgpwhgpnZhhzsgw
|
||||||
|
FTFRSVJQVJflFfQQgggGMZngGQZszZ
|
||||||
|
TbmfFJFSDFblSTDSFFbmVSDrPLLWtcmBqqRmBtmcLtcrjP
|
||||||
|
DjPsMwDjLVVTsvNNRTNTRT
|
||||||
|
ztdQQHqHlFNtfRNNNMgg
|
||||||
|
FzhMhHQlDcCrhCCc
|
||||||
|
zSHGzzmHgnnMDLTNTG
|
||||||
|
lPVBtvhQjpNSMWTLBD
|
||||||
|
VCftbjvbVCfPbZwsJsrSgSSZwC
|
||||||
|
CbwgmvMnmnCwMmwRQqJBGBgHZHpJHdtdZpJt
|
||||||
|
zVSlNSDlrzNhqlNTScDzVWfBBZZZZGBstGsdsWFpdHdJsW
|
||||||
|
NDlLzhrVcqRPCMRwLLLw
|
||||||
|
TjTHHLwnLjVlTwLjgVfvsFvDsdWfvDvFMd
|
||||||
|
qbRRRpmpcmDcczppztSqSvWFssFGfWdMvfQWdfsG
|
||||||
|
RZpqDBmtrzhzphjTgjHlnwjgJhgJ
|
||||||
|
dLmMgdgzwDLzDWFhBWvzFzzBZJ
|
||||||
|
tTVcppbSTfstTMMHfTbhBchhJFCWcjWBZhjGGB
|
||||||
|
SSSSNbsNRpRRsRrfVHfRpNtlPgQDLPdMmlDLlrPnqPdPLl
|
||||||
|
qqbTCSqdqqFZdRLZhwhZ
|
||||||
|
HWWlHtlrBfGtVssnsLnHfJVPPMMFzhPRwMPwFhzPZzPMGM
|
||||||
|
nfmtsrlsnrfVnHJrVBWlsVfgbbNTNSvmvvpcTjLjLbqvvS
|
||||||
|
GGhFvGPFcThqffPdnfNLqZZCSwtQSwZpwQQBsL
|
||||||
|
RglMRrJJgHBCBZSQQpdr
|
||||||
|
WmbRHHbzDgJMDzRDMdWmWHzHNFFvvGGhnvVvvfcvnFfcbvnT
|
||||||
|
QsfQmsLfZZZcshnJ
|
||||||
|
dSgdWgSVVFvzSpqFdqTgWRHbJNcbZNCTJCNNZRRCCh
|
||||||
|
FcpVjgDvVVFdVWFvzjwwQtBMLtBBGDwftPrB
|
||||||
|
rqsRrHsvsPqswNcJcNJrnnBrNn
|
||||||
|
bFjgGFdbVRNNnpRQpV
|
||||||
|
GSthhggGDSvMRqtHvMfM
|
||||||
|
ZwVPgMsgVsGzVsRZpgpzzgpFMrNbbLFrDLFFrrSDLfrNBN
|
||||||
|
qvnjBhQhntbfDLrF
|
||||||
|
CJlHHcHcTWqvpBdsWRpdPdgs
|
||||||
|
BjmTDjJBCBWrgQRPFlWWlW
|
||||||
|
dHphshtdtVHVhpJqspdvRrqFPgrLPPFPrrRPvQ
|
||||||
|
sdMsMtStVszpwMzHjJGjCcZjmScNfCDf
|
||||||
|
DmGdDffgDSDDdJstqdJldlRt
|
||||||
|
MhnvMCZCbbZHMvsCHtrcVrPjJcRqVtlt
|
||||||
|
LsQbsFZvZhQzZwhQWTNgBWpNwSGpTmfS
|
||||||
|
RRJQnCzbZZLTZJCBtWvFtsfqBqtfWb
|
||||||
|
prjlChGNldGNdlSVMhWfqWtfsvwvqsFtdtsq
|
||||||
|
GGjNDNhpMGMGVhrnZZTzcTHCCJcDHc
|
||||||
|
RmbMmjgpPjMBsBMfchhVsc
|
||||||
|
HwFWFTztSrtFpcQvBsSqVscBBC
|
||||||
|
zWwnJFHtWWHDgbGgdpGpnl
|
||||||
|
mnbWbRRLRFnmmWcCDTBVwCDBlwNW
|
||||||
|
ggJPtpdHGfdZtMHgtZgVPPBCVsPNBcsBTTDDCC
|
||||||
|
hpvJJTpGhdhtJdMHqvmmnLvSbmnFnRFm
|
||||||
|
WWtrWrNgVbRjMrQCNzqJFwQJFNTJ
|
||||||
|
LdHPhcdchQQssLzJrz
|
||||||
|
pBccnHpnrrcGHnnSlWjnRMSlbt
|
||||||
|
NMMfNFnZgMVThhTMcgTDJDJjsVvvJJqJmHsqHG
|
||||||
|
LQpwwprCQzBNBdGjGjHswswdvm
|
||||||
|
CBCzzCrbWbSlNQnTRgPPfFRWnfgc
|
||||||
|
RFwHVQRwFgTQSFVhdsdHsBdDBnnqnq
|
||||||
|
LGftLtPGGMzlNrhlPqPsrJ
|
||||||
|
fvGpWpMtccpTwwpRRQhh
|
||||||
|
TTJCGdTGtZRQQCnzcnCv
|
||||||
|
FWWHPSFNFbDbDDqSWnVmLRRjRRQLhcmLjS
|
||||||
|
qPwPWwFppbwggGZGfdJZgdnGdd
|
||||||
|
zSTWzrzWTLWpCtCGpqqGgplc
|
||||||
|
nZWwsJVZZBnJHJCclHllgtChgCgc
|
||||||
|
DFnVBJsFssVVFBFnBdfvjDSmTMWzrmMfRmTv
|
||||||
|
MJmgMssrsggqqMVstbwTcTbPbTTwThmw
|
||||||
|
NRBBGRjHVRRcRbCp
|
||||||
|
QnSfzLWzNHzNVQQVjrglJMsMFvgJdFWrgZ
|
||||||
|
ggLLGnhgnPvJHZnN
|
||||||
|
VBtmVSldbSBVlcNPHvjmNcwNZZ
|
||||||
|
tdWqSVSSBztVWGrThLhfrfvG
|
||||||
|
TDqrjdSwLqDppdTCdzPBFmmjQmhHFPFQhPFR
|
||||||
|
zlGbMcVcVtsPHFRhWRRsPF
|
||||||
|
btgvlVVcDZZZqgrz
|
||||||
|
DgwlgbbFDDjjPTHDrmddPhPV
|
||||||
|
WqtMBBtQsttMNWQBqsbJpGGzdPdTHLVmTzJhmTPhHHPTmH
|
||||||
|
qQsqGZNQtZGMNsNtZpFnjnCRbZffwwSRljFf
|
||||||
|
gMdFLCdnMZCTFFCqnTgWLCHfSgPgPHStcQQmfSBBSfHg
|
||||||
|
vrwwrwzbGjjswjvhGGsjPQmqRmHPbBtcBQtqfmcH
|
||||||
|
qzJllVsGVGljjsrzwDzhwzDGTddNLFnZWNdpCVWTNTZTLZCF
|
||||||
|
LtwMhDtctwbwwppdWBJQJBWPvPfDfqvG
|
||||||
|
FTzrNrgSRFrgzFRHNVFQJvlqHjBvQWlQWqPBfq
|
||||||
|
sFgNzmVmNzgTvVTMwhMhstMwZtsbsc
|
||||||
|
MrBDQVzzlrvhQzQrDMVQrzrzgRJnRRwwRbwSwwVRRNSgwwwJ
|
||||||
|
qFTPTvfTHcqqncpcwR
|
||||||
|
LmtdGGPmTPGCTLHLWsZMhvZMMMzrzzdlMQ
|
||||||
|
ZVNpjfpZNpfNgNjzNVfWtnbbWmBHtsZWBSZBGS
|
||||||
|
MrDrQvvDrPLDMvFvdmBGGsBBCtsHrnrGCm
|
||||||
|
ltRMwLLDDRlvQwvlQcwhqfcJNpgzjJpjhJ
|
||||||
|
sRRRlRbcFbBBdnFBwCGppNvGrTCDDGVNlr
|
||||||
|
PPSLQzHjzZZPLZPjgTNTgpCbVJvGrNCTGr
|
||||||
|
ZLHHPQjhQmWWSRRnssdtbnmfwF
|
||||||
|
GRwrMrHJGwJPGWsgfqQgsc
|
||||||
|
VbTvLQCZLSWWsgWf
|
||||||
|
TVDvVCvppvTDmzZVTbZpTzBBNQQQJlJBBJBNNJmRBwRH
|
||||||
|
shJRWJsjZGNjSTrjFS
|
||||||
|
dMLCddggldQzMCCVgzVVLmLvTwNFFSqpNSqSbFGSqTTpMTFN
|
||||||
|
VGQvVglCLcVzgdddCDVvlsPZRRBDJPHZWZZnBsWJRR
|
||||||
|
CrwlwhRCMrswnsHBFccHHWFc
|
||||||
|
QJTmtfQgLtzQfLQfdPcWSFHHDDSpcFpFBg
|
||||||
|
jTQTqbfQfmLbLQJbJrRCWjljZGjNrZlZlC
|
||||||
|
JmthDmLShtJmHphphJQCwjdjdFDzFgzFdgdNlC
|
||||||
|
sbMTVBrWMbNvVMnsWMnVzjsjwCfjFgfZzfdgdzlj
|
||||||
|
NvqbbBcMMPPSqLSpGGthmp
|
||||||
|
RfGWFHlPFFNWGFZRZBjvwCvzBwhhrvvjzmrr
|
||||||
|
sLJSLMSTSJTbStJtMSqSqbpMrvmrzWdvhmjDCzzwrrpjdDDv
|
||||||
|
SbQqsqsWcZPcQGFG
|
||||||
|
BjqbMqMVBsfqGqFqGLmF
|
||||||
|
ZZQbQPddPcwbPnRQltdtQZdnmFNrvfhGrhrWWFNWWtmNFNNW
|
||||||
|
dJJQccnRPpcbQcMHsSgSMsDMTJSg
|
||||||
|
WWGBBvPflnWbBWhvhbPvNfnnVCFZmVRVZmVGMVwRLCCCGwVC
|
||||||
|
gjszgTMrgzgqCRRdmJRjJLVw
|
||||||
|
grzQHzqczMSzqSHcgQsqPvPlbNblpPhhPPbHvnhp
|
||||||
|
sJDDNWdnRLTTvqwSFPCmLCCrCq
|
||||||
|
thzplgfjglflFcbMclpppMfcwPqCZQCmqCwrzCqmQmHSqPqq
|
||||||
|
MhcpFBMBlhjbBTdnNJWvNvsvBd
|
||||||
|
czwwghnWWfcfgwfWthfrvVvrjdrdvDDVrbzrLF
|
||||||
|
RHPPMRpQPRMPPJRjJQsZsrrvvJBDDVDVdFqrBrFdBv
|
||||||
|
smjMsGZHRsHSmRQNGHPpSTwwttCflwngnChcCtWW
|
||||||
|
bprrrwrtLDtrWwrQjRDQDbPPVHVmmmmHNWlPlVNPZZlv
|
||||||
|
hqqhfnBCTfnnhzJwzsqzfPZZMCCVZVHHFvZMFvZmlC
|
||||||
|
TzhhdJTqJzcBdJJnzjtQrLdjwgLtpbgrLQ
|
||||||
|
qzQvzzgWSCqtqqGpddGc
|
||||||
|
jLrZNZhZrNRLHNffhrjNjNdtdZtGcPFwFwpbGwbVpdwC
|
||||||
|
nHnhrLNCCMHmhHBMhrzvgJvsWSWMWzzWzSlv
|
||||||
|
RzcbzdRFzbbzbzbFdZFTHMZPhVhVQMLrlrQPhLZlMM
|
||||||
|
BNGfBvsNttVmMhlMLm
|
||||||
|
BwGjpllswfjwpcFDWcWcbpdb
|
||||||
|
SjzpswrLSDjVSpwlmZJBTBdNJLvBNvHQZT
|
||||||
|
rCcCtbqgCfthggtbGGMqqghqZQvvQTBNJQHQZQTcZTJFZFFd
|
||||||
|
CggGMtqMfWbbGghPhhbCMtmsSppSspjpmWzjVSWlVrrm
|
||||||
|
PmWTPThTQWnLWQFl
|
||||||
|
VNcSVfMbtsddBQNnNpdl
|
||||||
|
sSjctwjVSzzccjgnTnDTHRDhqjRR
|
||||||
|
WfMWfCNCjWWHNTccMjRjfRcMbqSwfVwqwsfGGbssrJSrswVw
|
||||||
|
llLFQLlvlPFnhQBPBZQBqvBwzSzGGhShJVwShmsJbbmzSG
|
||||||
|
lnPqvQZBFFBnnpgplFvtvHDjTdcTjTMMjCRNCMWgRC
|
||||||
|
rprFNFFNjNLmMdgcqL
|
||||||
|
BvzCQQbBQgffsDbvVHMdbcVqmLVqlmqq
|
||||||
|
JvJCzBDJwnsRnQDszCBnnnQBrjZPjFpgZFTFZRpTrpZFGFtT
|
||||||
|
wBHQQZHVCcpwDgdZdMsZjvMZFn
|
||||||
|
GPSzlNlJLfzzzvsWdWLMmFWLMM
|
||||||
|
NfqGSfrTNzRTqJfRbptQHFQFrwrFHBHw
|
||||||
|
sNjVMVNVMzPzQgghcMsNzJtjSJtTFDTJtJnnDLjDnL
|
||||||
|
CHwrdCpvCrwrWdpZqcpFttJSFJTLLHLJfbnbfD
|
||||||
|
qrlZCwlqZrqqpWdlRqCRqdqcVNsVMzQzmNgNPBsRhVQVVzMs
|
300
prob3_part2.txt
Normal file
300
prob3_part2.txt
Normal file
|
@ -0,0 +1,300 @@
|
||||||
|
zBBtHnnHtwwHplmlRlzPLCpp
|
||||||
|
vvhJccJFGFcNsdNNJbhJsJQplQMRLQMlfdfTPCLfQQCT
|
||||||
|
GPhjcjhZDjWtnSVH
|
||||||
|
BNhHVhrGNVTbDHdDJdJRPJdSQQSJwPjR
|
||||||
|
lvtsfbsqzwSnJcvjSm
|
||||||
|
MftttFLftZMLgtgMbltMqZzbDNrTpVGhNWrDTrpTGNpZGZhD
|
||||||
|
VSSHcTgTtTdtllZlzmmbljTn
|
||||||
|
RqMqsFfQLLFLQFMMfRLPZLvPpCfWrbpmCbjCnfjlWmnrmmnm
|
||||||
|
hqRDqPDRsqNHwtHSNBZtJd
|
||||||
|
tNFDpDFrtdjfmjjjFmFFdScpZhZScTJgpHccHhMJgS
|
||||||
|
lLzSlSCQqbsVhBghggBZgCcJ
|
||||||
|
zRLVVLQnvQqVVzRldfWrwffjjdwSdfjv
|
||||||
|
bpWqqqWvHBpwGBCCRl
|
||||||
|
hJdjdJFQqdBBDMMC
|
||||||
|
tFFzJZFtJSqtZJQsWLbNSTnffHfvTH
|
||||||
|
lFhRZhFjPlqMlJqZJlJcRLwrLrwStRwtsVVtVSrgRV
|
||||||
|
WcpDvDfBmpDHzWBDbpbmWmNVSSTzLTtrVswgttVVzwwr
|
||||||
|
pbWfmGBpHfDmWnvvGbmWnjjMqPJMlMFPdGcjqPqPhP
|
||||||
|
NjFNRlpVLFCSSlbBWWfw
|
||||||
|
pssPZQQsMnzmtnQPttzDBbBJBcrrJWbrZSBJSbfC
|
||||||
|
QTHPHspMNGHdhvRR
|
||||||
|
QfPdSJfFJmthSthtwbsNLbPLlLTLpbvP
|
||||||
|
nHnMBnZqqgBMnWrZMqnZVcbCqRwNsvblRwppbllTsRNp
|
||||||
|
nZHBHznMnWgcrnVBtjFdfmzQNtNddjNF
|
||||||
|
hFhfPghppPhpRNhzsjsvHVzjpsGnWz
|
||||||
|
tTjlCCwMqtdMjMctGJWHwWnVwWnwvWGs
|
||||||
|
rZdrjBBtqdCtlcdgFZQLfhRLFSgRNP
|
||||||
|
RDHSWrJWffJFlJCgCMCDjCvzjPMP
|
||||||
|
QtGTndBwBtNzBVjBCMgB
|
||||||
|
LdwwMpTdwsRHsqSHqHJl
|
||||||
|
RfsfzvLLFvFzCSvSbDsTpTGMPMZPPTMt
|
||||||
|
jqWBjwBBNwWqwPGZbTwVwVtD
|
||||||
|
BnhgglhhNNngqjBjHNWrZLlFLSCJSFFCCQzQvQFCFF
|
||||||
|
HLvLDQbvnDQDvbHTLhntSnGBSlfGldddcmfMMf
|
||||||
|
NgFjZjrZZJrlfJfSVcBJGc
|
||||||
|
scWCNFZpsjzrDLwLhbQzhQwD
|
||||||
|
SlqJlThDPqpwSTwhcbDdbWDbZGcZNcDb
|
||||||
|
MsnWWjHjvLvfscjjgdzNdbgbcc
|
||||||
|
vQQvWVQFLLHfHVBWfsfmFFpJRhhSplqlRJqpBwlqTCPC
|
||||||
|
DZbDzzZDjQbPGZFFSSgSlFCzTgzm
|
||||||
|
qLnvwvhddrqMrwrCTLLFJjmtSlFlSH
|
||||||
|
VdhvsWqdVWvvRhsvqbpbPcZfPpjZGBQNRj
|
||||||
|
mJNtNFmzDZtzdzrLtwwRqJSchgfGcRfwRB
|
||||||
|
pWpjQjCTQnHMWCCpjQpHvTqcwTwScfRcBcSGBRThwS
|
||||||
|
MQHjvjVCCqsvljWnVQzLtNPZzmzLVNLddtPN
|
||||||
|
QVRPRVDgsRjLssnL
|
||||||
|
TTGDJDJfbfLHSnsMWWbs
|
||||||
|
qGqqTFFDqgQgQQQq
|
||||||
|
nlMnRRjbMjCdJVQJCZ
|
||||||
|
nGqfLwfNLFNLnPPGFVVCdVGZJtCtCCVzJz
|
||||||
|
LHHfPNHnPqqLwqPqDPWfNFvMglbhhbMgmclgcllDmgmrcl
|
||||||
|
cLLWWSThtdLpRcddcgPRZFDMCVPPMCCPCPCZ
|
||||||
|
NfGbGNzrBNffGNJjbPPZsZmZZPmDHpMH
|
||||||
|
zlJBfzlQzNjNjfJcpwSdvWhcvLwQWt
|
||||||
|
cVVQfVCJVrVcTJnfNvlDFmDrmlvrFWlL
|
||||||
|
snZHpMhZtMbtPNvzHWWvNFNvNW
|
||||||
|
gppnbbbRgMnZbswRqRwbqTcCCSTCJJdGjgfVGTdcCG
|
||||||
|
jplgNdrHrrNZgdHmlHNJHddlDSPPSTlzTSlTSDSzCQLfzf
|
||||||
|
vscvWWWvGWGGscbFMpRWFwQTPzfLQwQwPfLbzSzzDL
|
||||||
|
GvGBWpqcMVRNNZHgdHdtBJ
|
||||||
|
LchbZhjjZFjwSmPRqRffqbdtggdR
|
||||||
|
vWHMWlHJdGqtRqHV
|
||||||
|
MvzCJlnMnlTNnNNLLdhjjCdjjhDjjL
|
||||||
|
FNCllHFvCGvwQcPQJfgfmwgh
|
||||||
|
zjtRpbDLjtsrzbLLQmfBTgTBQQfhbfQB
|
||||||
|
WLgqRzqsrWvFGFZFZC
|
||||||
|
qjLlNcLjcNWpQLlQMmvmhCvCgsMZZghj
|
||||||
|
tGSDJtRGJzHMMGDVZCfvmfhzmZZgZsmv
|
||||||
|
BSSRDRHBGHtSSSbGJSwHbNcLQddqMNlrqcMQMldBWc
|
||||||
|
JSfctrtctDpszHvzVQHr
|
||||||
|
glCWjhWmFjlmlhmdWPhVVznvcHjszbvvpHvznv
|
||||||
|
FgBmFhCBCGFqglgmhCFmSTSRLJLLZfSRJcDSGMtM
|
||||||
|
vZGlFFtLMLdShSSShRVtVf
|
||||||
|
rQNvmznWPNCPNsrCsbWbsPCvjShhhfHBBHJjSJRhjSRnHhSj
|
||||||
|
mCNsQCmqszNcQzrzrrzWvGgGMgpdFpMLlFZGwcLDdg
|
||||||
|
QJRJQDlcqLlWbNGL
|
||||||
|
HCnwwsCrnstLWqtWNgZNgg
|
||||||
|
rsnTrTCHTnnVwnsVPqqDQcRjcczMPvPRzM
|
||||||
|
qCzjqnzVdzrdhnhddDbDBMPttcGBDBDPnc
|
||||||
|
sZgRQWHgWHHLsgsRRZsJbpJlDcDGNcTDFtGNFFcJNFPBPBTc
|
||||||
|
WggbRQSRRgRSsWWmbHqvVffVwhzvCdmfhmdV
|
||||||
|
lhqWcNpQGcNmmHmNPWCsQzQsgrQrBMCMbMVM
|
||||||
|
wDLFFDJvSFFZRDZSzCrzTzsRgVWbCrMW
|
||||||
|
dFwDtZfdjFZWFFfmHGPnPPmqfmPNcN
|
||||||
|
lcMRNJRGGLJnNVFbVrwrwZrD
|
||||||
|
tjCzQjQhQwgWFShVFS
|
||||||
|
ffHQsQssQTzBsPnLpMPRwsJP
|
||||||
|
MQSMSBSRFMQLJChLChjTBh
|
||||||
|
WmVlPrwnpwDlflNpDrNnDlDwThJCCdLJhhdhCfJTccGjvscd
|
||||||
|
gnDVnNnwgglwDwptSZFzgQHqbjZgZZ
|
||||||
|
nwBcFgwTDcNrpZMD
|
||||||
|
WQWCLZmvhMRvNjsNSD
|
||||||
|
CGGWmZGHHhtVzHbTqgTdbgzz
|
||||||
|
RmcTCwvssRbsThTcVRJJfSPqfJwJFqfjfMFq
|
||||||
|
zQNZDWtQlDZGBQPfFQqjJLjL
|
||||||
|
rrglggZGWnrnrrHlDhsbsPTVCsCVsTRpHv
|
||||||
|
wFGfzSvCPGttSzqwmtqmvvPRDDRCWgWWDTBTMcBcBWbCRM
|
||||||
|
hVJJHQHnpWnDTNnnDb
|
||||||
|
LJsVVdhQqvmdbbSf
|
||||||
|
srlJztzsVVsSsVtRlNllTWzzmqGhqWLPCDCgmChPLDdqCmCP
|
||||||
|
bZQMZpbvMBMgmDGmZLSPZd
|
||||||
|
MpScMSMpvfjMBcBcfMfSBnzlTjssNszrNrtlTVzlzFVN
|
||||||
|
rCtgrgClprGGClnJCZmwtMjZRjbjjcjZQv
|
||||||
|
PWVfBHWPdbNfbbRmRj
|
||||||
|
sPsVqFPsHWLhBVVqHFqPVddWSDLJgpTCnnrRRLGpJSSTRrgT
|
||||||
|
zjqpGjrQjGqSHCVvCrRZDN
|
||||||
|
cTdshMhdmcMNmddRHBhvCCBCCvHZDC
|
||||||
|
JTmTmJnLTdwzNQpPWJWgpP
|
||||||
|
BmpZmrzZnznHbpprSbQSQbqdSVqbPQcV
|
||||||
|
fRGTGJZRTTDwJTJRGDfgJgNFlSSFcldfdccFVlPlFFQPSQ
|
||||||
|
GvTTTZZLmsntzmCL
|
||||||
|
VhMcrmbhvzMSnhvftbRbllLtglBBtf
|
||||||
|
HqqqJqDqPjJPNjjDVFDZCdqBtRtGBGlGRfQQgttQfHlTQl
|
||||||
|
pCZJPqqZpmhvhpVh
|
||||||
|
dWLBJHJhGJGMBJRcDLDSQsSQpvcR
|
||||||
|
ZlnnPqglblfRRpSvSsnz
|
||||||
|
sPTgZVjjmwVTljrwTTlbwVGdJhBNNdFdMGNHHJMjBNFN
|
||||||
|
FhFrfbfgbLRdfqfrmvDgLdjrcQtSNStHHHQlSjJJPllt
|
||||||
|
CnspzZWTpCnMVzzZZGZRCzttHNjNlQlSNtNlNjVcjlQS
|
||||||
|
GCZsZBRwnvwfbqwFwb
|
||||||
|
bZnJFJgLFRnqQZqJQJFQGpCLNcGlLllClNtccjGc
|
||||||
|
rVfvwPDhPHGtlcbClr
|
||||||
|
mBhshsfMvBvqsQJdTbgnqQ
|
||||||
|
jgWHqMSWMGqWjWjqbWGJQDfVqLfrfDfJhVLfTr
|
||||||
|
pPplwsRZPFZFtLhfwgfwrhJL
|
||||||
|
zlRsdgFcRgmjdBCMHdjHWB
|
||||||
|
qJSGJSPQWzcprtQZtt
|
||||||
|
mBMVfsNBnZzcNtcc
|
||||||
|
LMLBsmMlvBgFsghVVvfgLBvbJJSqgGHqPGPtCWwbJHqCPG
|
||||||
|
ZvZLcdMGVMlHDvDpvqhH
|
||||||
|
NNSrQNbJbrTnnWZDDZqqhqpW
|
||||||
|
wbgNJrsrCwwJQZbsrJBFzjCCdzGdjcGzMdzj
|
||||||
|
JbVmdVLJJJdQMnzmmMgHjPqqjNgvqwngHNNP
|
||||||
|
ZfffDZZsRpcpRDcCRrlpplcWSSgwgSwjvvsjPSwhNSWggh
|
||||||
|
cCtfppZrpjtMMmdQQTLz
|
||||||
|
TtbnmbdmTmgTlPNhqvqj
|
||||||
|
wrwrLsVZRsJJJsfHjvPPWfhjHqRN
|
||||||
|
sDZwDvsCCQLJZQJQsMCMzZBtSMpndcSFnnSBFtSBmdBc
|
||||||
|
mWFTZdmQdZFrFQbCRsrspjSjnvCLRS
|
||||||
|
GwlDqcNHDzwGfHSRqCgJsSpnvpSL
|
||||||
|
NGlcNwHLLGfDDHDhDwDcwVczbPddZtMFWttWWtdPPdQdhPWd
|
||||||
|
mnfcZgcdZqnqdfFqPmHfhqsbgVMCJNMtvCJtMvtblTJtvb
|
||||||
|
rRLDDjPSjjPDGBQSBNbtLVtbMNNJlTMtbl
|
||||||
|
SzjDDzRRpGQDDDPHzdsmnnhsqcqdFq
|
||||||
|
ZDGNRDGjSdwnnmnsVNsHJJ
|
||||||
|
tMBWWrddLPLhvWTTPLccvmmbVpgsJHmccppJ
|
||||||
|
ClPrtBWWrhrFLBPlCRzjzGqdRzjRdRGZjF
|
||||||
|
csTRNQNJcNBDLfhfMf
|
||||||
|
qGmWpGHqrqPLChPRhVFPDD
|
||||||
|
tgHrtnrrJnZRTZcv
|
||||||
|
FLqrfmLDrqCmqjTqcbGqRTGVvb
|
||||||
|
FMtWMSWzzFStJzPzhWzhQvTvHVjjTjHTTHvbHc
|
||||||
|
PgtWWstWtSpZWPzWwnrBsdBDdFLfllLlfC
|
||||||
|
mThbMDMQDCDbwLqWpqPpdhwR
|
||||||
|
zgrcffgHNZltZSgHLsRsLLWRWgLqppsW
|
||||||
|
SVlSrfSHlSSVlrJfVctlNDMCmMFbnbRDbDBFJFbBRM
|
||||||
|
PrBrWqtRPdBLLrBwqpswgpwhgpnZhhzsgw
|
||||||
|
FTFRSVJQVJflFfQQgggGMZngGQZszZ
|
||||||
|
TbmfFJFSDFblSTDSFFbmVSDrPLLWtcmBqqRmBtmcLtcrjP
|
||||||
|
DjPsMwDjLVVTsvNNRTNTRT
|
||||||
|
ztdQQHqHlFNtfRNNNMgg
|
||||||
|
FzhMhHQlDcCrhCCc
|
||||||
|
zSHGzzmHgnnMDLTNTG
|
||||||
|
lPVBtvhQjpNSMWTLBD
|
||||||
|
VCftbjvbVCfPbZwsJsrSgSSZwC
|
||||||
|
CbwgmvMnmnCwMmwRQqJBGBgHZHpJHdtdZpJt
|
||||||
|
zVSlNSDlrzNhqlNTScDzVWfBBZZZZGBstGsdsWFpdHdJsW
|
||||||
|
NDlLzhrVcqRPCMRwLLLw
|
||||||
|
TjTHHLwnLjVlTwLjgVfvsFvDsdWfvDvFMd
|
||||||
|
qbRRRpmpcmDcczppztSqSvWFssFGfWdMvfQWdfsG
|
||||||
|
RZpqDBmtrzhzphjTgjHlnwjgJhgJ
|
||||||
|
dLmMgdgzwDLzDWFhBWvzFzzBZJ
|
||||||
|
tTVcppbSTfstTMMHfTbhBchhJFCWcjWBZhjGGB
|
||||||
|
SSSSNbsNRpRRsRrfVHfRpNtlPgQDLPdMmlDLlrPnqPdPLl
|
||||||
|
qqbTCSqdqqFZdRLZhwhZ
|
||||||
|
HWWlHtlrBfGtVssnsLnHfJVPPMMFzhPRwMPwFhzPZzPMGM
|
||||||
|
nfmtsrlsnrfVnHJrVBWlsVfgbbNTNSvmvvpcTjLjLbqvvS
|
||||||
|
GGhFvGPFcThqffPdnfNLqZZCSwtQSwZpwQQBsL
|
||||||
|
RglMRrJJgHBCBZSQQpdr
|
||||||
|
WmbRHHbzDgJMDzRDMdWmWHzHNFFvvGGhnvVvvfcvnFfcbvnT
|
||||||
|
QsfQmsLfZZZcshnJ
|
||||||
|
dSgdWgSVVFvzSpqFdqTgWRHbJNcbZNCTJCNNZRRCCh
|
||||||
|
FcpVjgDvVVFdVWFvzjwwQtBMLtBBGDwftPrB
|
||||||
|
rqsRrHsvsPqswNcJcNJrnnBrNn
|
||||||
|
bFjgGFdbVRNNnpRQpV
|
||||||
|
GSthhggGDSvMRqtHvMfM
|
||||||
|
ZwVPgMsgVsGzVsRZpgpzzgpFMrNbbLFrDLFFrrSDLfrNBN
|
||||||
|
qvnjBhQhntbfDLrF
|
||||||
|
CJlHHcHcTWqvpBdsWRpdPdgs
|
||||||
|
BjmTDjJBCBWrgQRPFlWWlW
|
||||||
|
dHphshtdtVHVhpJqspdvRrqFPgrLPPFPrrRPvQ
|
||||||
|
sdMsMtStVszpwMzHjJGjCcZjmScNfCDf
|
||||||
|
DmGdDffgDSDDdJstqdJldlRt
|
||||||
|
MhnvMCZCbbZHMvsCHtrcVrPjJcRqVtlt
|
||||||
|
LsQbsFZvZhQzZwhQWTNgBWpNwSGpTmfS
|
||||||
|
RRJQnCzbZZLTZJCBtWvFtsfqBqtfWb
|
||||||
|
prjlChGNldGNdlSVMhWfqWtfsvwvqsFtdtsq
|
||||||
|
GGjNDNhpMGMGVhrnZZTzcTHCCJcDHc
|
||||||
|
RmbMmjgpPjMBsBMfchhVsc
|
||||||
|
HwFWFTztSrtFpcQvBsSqVscBBC
|
||||||
|
zWwnJFHtWWHDgbGgdpGpnl
|
||||||
|
mnbWbRRLRFnmmWcCDTBVwCDBlwNW
|
||||||
|
ggJPtpdHGfdZtMHgtZgVPPBCVsPNBcsBTTDDCC
|
||||||
|
hpvJJTpGhdhtJdMHqvmmnLvSbmnFnRFm
|
||||||
|
WWtrWrNgVbRjMrQCNzqJFwQJFNTJ
|
||||||
|
LdHPhcdchQQssLzJrz
|
||||||
|
pBccnHpnrrcGHnnSlWjnRMSlbt
|
||||||
|
NMMfNFnZgMVThhTMcgTDJDJjsVvvJJqJmHsqHG
|
||||||
|
LQpwwprCQzBNBdGjGjHswswdvm
|
||||||
|
CBCzzCrbWbSlNQnTRgPPfFRWnfgc
|
||||||
|
RFwHVQRwFgTQSFVhdsdHsBdDBnnqnq
|
||||||
|
LGftLtPGGMzlNrhlPqPsrJ
|
||||||
|
fvGpWpMtccpTwwpRRQhh
|
||||||
|
TTJCGdTGtZRQQCnzcnCv
|
||||||
|
FWWHPSFNFbDbDDqSWnVmLRRjRRQLhcmLjS
|
||||||
|
qPwPWwFppbwggGZGfdJZgdnGdd
|
||||||
|
zSTWzrzWTLWpCtCGpqqGgplc
|
||||||
|
nZWwsJVZZBnJHJCclHllgtChgCgc
|
||||||
|
DFnVBJsFssVVFBFnBdfvjDSmTMWzrmMfRmTv
|
||||||
|
MJmgMssrsggqqMVstbwTcTbPbTTwThmw
|
||||||
|
NRBBGRjHVRRcRbCp
|
||||||
|
QnSfzLWzNHzNVQQVjrglJMsMFvgJdFWrgZ
|
||||||
|
ggLLGnhgnPvJHZnN
|
||||||
|
VBtmVSldbSBVlcNPHvjmNcwNZZ
|
||||||
|
tdWqSVSSBztVWGrThLhfrfvG
|
||||||
|
TDqrjdSwLqDppdTCdzPBFmmjQmhHFPFQhPFR
|
||||||
|
zlGbMcVcVtsPHFRhWRRsPF
|
||||||
|
btgvlVVcDZZZqgrz
|
||||||
|
DgwlgbbFDDjjPTHDrmddPhPV
|
||||||
|
WqtMBBtQsttMNWQBqsbJpGGzdPdTHLVmTzJhmTPhHHPTmH
|
||||||
|
qQsqGZNQtZGMNsNtZpFnjnCRbZffwwSRljFf
|
||||||
|
gMdFLCdnMZCTFFCqnTgWLCHfSgPgPHStcQQmfSBBSfHg
|
||||||
|
vrwwrwzbGjjswjvhGGsjPQmqRmHPbBtcBQtqfmcH
|
||||||
|
qzJllVsGVGljjsrzwDzhwzDGTddNLFnZWNdpCVWTNTZTLZCF
|
||||||
|
LtwMhDtctwbwwppdWBJQJBWPvPfDfqvG
|
||||||
|
FTzrNrgSRFrgzFRHNVFQJvlqHjBvQWlQWqPBfq
|
||||||
|
sFgNzmVmNzgTvVTMwhMhstMwZtsbsc
|
||||||
|
MrBDQVzzlrvhQzQrDMVQrzrzgRJnRRwwRbwSwwVRRNSgwwwJ
|
||||||
|
qFTPTvfTHcqqncpcwR
|
||||||
|
LmtdGGPmTPGCTLHLWsZMhvZMMMzrzzdlMQ
|
||||||
|
ZVNpjfpZNpfNgNjzNVfWtnbbWmBHtsZWBSZBGS
|
||||||
|
MrDrQvvDrPLDMvFvdmBGGsBBCtsHrnrGCm
|
||||||
|
ltRMwLLDDRlvQwvlQcwhqfcJNpgzjJpjhJ
|
||||||
|
sRRRlRbcFbBBdnFBwCGppNvGrTCDDGVNlr
|
||||||
|
PPSLQzHjzZZPLZPjgTNTgpCbVJvGrNCTGr
|
||||||
|
ZLHHPQjhQmWWSRRnssdtbnmfwF
|
||||||
|
GRwrMrHJGwJPGWsgfqQgsc
|
||||||
|
VbTvLQCZLSWWsgWf
|
||||||
|
TVDvVCvppvTDmzZVTbZpTzBBNQQQJlJBBJBNNJmRBwRH
|
||||||
|
shJRWJsjZGNjSTrjFS
|
||||||
|
dMLCddggldQzMCCVgzVVLmLvTwNFFSqpNSqSbFGSqTTpMTFN
|
||||||
|
VGQvVglCLcVzgdddCDVvlsPZRRBDJPHZWZZnBsWJRR
|
||||||
|
CrwlwhRCMrswnsHBFccHHWFc
|
||||||
|
QJTmtfQgLtzQfLQfdPcWSFHHDDSpcFpFBg
|
||||||
|
jTQTqbfQfmLbLQJbJrRCWjljZGjNrZlZlC
|
||||||
|
JmthDmLShtJmHphphJQCwjdjdFDzFgzFdgdNlC
|
||||||
|
sbMTVBrWMbNvVMnsWMnVzjsjwCfjFgfZzfdgdzlj
|
||||||
|
NvqbbBcMMPPSqLSpGGthmp
|
||||||
|
RfGWFHlPFFNWGFZRZBjvwCvzBwhhrvvjzmrr
|
||||||
|
sLJSLMSTSJTbStJtMSqSqbpMrvmrzWdvhmjDCzzwrrpjdDDv
|
||||||
|
SbQqsqsWcZPcQGFG
|
||||||
|
BjqbMqMVBsfqGqFqGLmF
|
||||||
|
ZZQbQPddPcwbPnRQltdtQZdnmFNrvfhGrhrWWFNWWtmNFNNW
|
||||||
|
dJJQccnRPpcbQcMHsSgSMsDMTJSg
|
||||||
|
WWGBBvPflnWbBWhvhbPvNfnnVCFZmVRVZmVGMVwRLCCCGwVC
|
||||||
|
gjszgTMrgzgqCRRdmJRjJLVw
|
||||||
|
grzQHzqczMSzqSHcgQsqPvPlbNblpPhhPPbHvnhp
|
||||||
|
sJDDNWdnRLTTvqwSFPCmLCCrCq
|
||||||
|
thzplgfjglflFcbMclpppMfcwPqCZQCmqCwrzCqmQmHSqPqq
|
||||||
|
MhcpFBMBlhjbBTdnNJWvNvsvBd
|
||||||
|
czwwghnWWfcfgwfWthfrvVvrjdrdvDDVrbzrLF
|
||||||
|
RHPPMRpQPRMPPJRjJQsZsrrvvJBDDVDVdFqrBrFdBv
|
||||||
|
smjMsGZHRsHSmRQNGHPpSTwwttCflwngnChcCtWW
|
||||||
|
bprrrwrtLDtrWwrQjRDQDbPPVHVmmmmHNWlPlVNPZZlv
|
||||||
|
hqqhfnBCTfnnhzJwzsqzfPZZMCCVZVHHFvZMFvZmlC
|
||||||
|
TzhhdJTqJzcBdJJnzjtQrLdjwgLtpbgrLQ
|
||||||
|
qzQvzzgWSCqtqqGpddGc
|
||||||
|
jLrZNZhZrNRLHNffhrjNjNdtdZtGcPFwFwpbGwbVpdwC
|
||||||
|
nHnhrLNCCMHmhHBMhrzvgJvsWSWMWzzWzSlv
|
||||||
|
RzcbzdRFzbbzbzbFdZFTHMZPhVhVQMLrlrQPhLZlMM
|
||||||
|
BNGfBvsNttVmMhlMLm
|
||||||
|
BwGjpllswfjwpcFDWcWcbpdb
|
||||||
|
SjzpswrLSDjVSpwlmZJBTBdNJLvBNvHQZT
|
||||||
|
rCcCtbqgCfthggtbGGMqqghqZQvvQTBNJQHQZQTcZTJFZFFd
|
||||||
|
CggGMtqMfWbbGghPhhbCMtmsSppSspjpmWzjVSWlVrrm
|
||||||
|
PmWTPThTQWnLWQFl
|
||||||
|
VNcSVfMbtsddBQNnNpdl
|
||||||
|
sSjctwjVSzzccjgnTnDTHRDhqjRR
|
||||||
|
WfMWfCNCjWWHNTccMjRjfRcMbqSwfVwqwsfGGbssrJSrswVw
|
||||||
|
llLFQLlvlPFnhQBPBZQBqvBwzSzGGhShJVwShmsJbbmzSG
|
||||||
|
lnPqvQZBFFBnnpgplFvtvHDjTdcTjTMMjCRNCMWgRC
|
||||||
|
rprFNFFNjNLmMdgcqL
|
||||||
|
BvzCQQbBQgffsDbvVHMdbcVqmLVqlmqq
|
||||||
|
JvJCzBDJwnsRnQDszCBnnnQBrjZPjFpgZFTFZRpTrpZFGFtT
|
||||||
|
wBHQQZHVCcpwDgdZdMsZjvMZFn
|
||||||
|
GPSzlNlJLfzzzvsWdWLMmFWLMM
|
||||||
|
NfqGSfrTNzRTqJfRbptQHFQFrwrFHBHw
|
||||||
|
sNjVMVNVMzPzQgghcMsNzJtjSJtTFDTJtJnnDLjDnL
|
||||||
|
CHwrdCpvCrwrWdpZqcpFttJSFJTLLHLJfbnbfD
|
||||||
|
qrlZCwlqZrqqpWdlRqCRqdqcVNsVMzQzmNgNPBsRhVQVVzMs
|
1000
prob4_part1.txt
Normal file
1000
prob4_part1.txt
Normal file
File diff suppressed because it is too large
Load diff
1000
prob4_part2.txt
Normal file
1000
prob4_part2.txt
Normal file
File diff suppressed because it is too large
Load diff
511
prob5_part1.txt
Normal file
511
prob5_part1.txt
Normal file
|
@ -0,0 +1,511 @@
|
||||||
|
[B] [N] [H]
|
||||||
|
[V] [P] [T] [V] [P]
|
||||||
|
[W] [C] [T] [S] [H] [N]
|
||||||
|
[T] [J] [Z] [M] [N] [F] [L]
|
||||||
|
[Q] [W] [N] [J] [T] [Q] [R] [B]
|
||||||
|
[N] [B] [Q] [R] [V] [F] [D] [F] [M]
|
||||||
|
[H] [W] [S] [J] [P] [W] [L] [P] [S]
|
||||||
|
[D] [D] [T] [F] [G] [B] [B] [H] [Z]
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
move 2 from 8 to 1
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 7 from 4 to 2
|
||||||
|
move 10 from 2 to 7
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 8 from 6 to 4
|
||||||
|
move 7 from 1 to 8
|
||||||
|
move 6 from 8 to 1
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 8 from 7 to 3
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 5 from 3 to 2
|
||||||
|
move 5 from 2 to 1
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 5 from 8 to 7
|
||||||
|
move 12 from 7 to 4
|
||||||
|
move 3 from 5 to 4
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 9 from 1 to 7
|
||||||
|
move 4 from 3 to 7
|
||||||
|
move 4 from 3 to 4
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 15 from 7 to 2
|
||||||
|
move 4 from 7 to 9
|
||||||
|
move 6 from 9 to 2
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 3 from 2 to 8
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 8 from 2 to 5
|
||||||
|
move 2 from 8 to 4
|
||||||
|
move 2 from 3 to 8
|
||||||
|
move 9 from 5 to 9
|
||||||
|
move 7 from 4 to 2
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 6 from 9 to 2
|
||||||
|
move 3 from 9 to 7
|
||||||
|
move 2 from 8 to 4
|
||||||
|
move 7 from 2 to 6
|
||||||
|
move 7 from 4 to 1
|
||||||
|
move 3 from 1 to 8
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 4 from 8 to 2
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 19 from 2 to 7
|
||||||
|
move 8 from 4 to 7
|
||||||
|
move 18 from 7 to 1
|
||||||
|
move 11 from 7 to 4
|
||||||
|
move 15 from 1 to 7
|
||||||
|
move 9 from 4 to 3
|
||||||
|
move 2 from 3 to 1
|
||||||
|
move 9 from 4 to 5
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 8 from 6 to 5
|
||||||
|
move 3 from 2 to 5
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 4 from 4 to 3
|
||||||
|
move 8 from 5 to 1
|
||||||
|
move 13 from 1 to 6
|
||||||
|
move 12 from 7 to 1
|
||||||
|
move 12 from 6 to 3
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 3 from 1 to 9
|
||||||
|
move 12 from 3 to 8
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 5 from 5 to 1
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 10 from 8 to 9
|
||||||
|
move 13 from 9 to 2
|
||||||
|
move 10 from 3 to 4
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 13 from 2 to 5
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 7 from 1 to 4
|
||||||
|
move 2 from 2 to 5
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 10 from 5 to 8
|
||||||
|
move 3 from 7 to 2
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 12 from 4 to 2
|
||||||
|
move 10 from 5 to 3
|
||||||
|
move 6 from 2 to 1
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 3 from 4 to 8
|
||||||
|
move 6 from 1 to 7
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 12 from 8 to 2
|
||||||
|
move 3 from 4 to 9
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 2 from 9 to 6
|
||||||
|
move 2 from 6 to 8
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 8 from 2 to 6
|
||||||
|
move 4 from 1 to 8
|
||||||
|
move 12 from 2 to 3
|
||||||
|
move 4 from 6 to 8
|
||||||
|
move 10 from 8 to 3
|
||||||
|
move 14 from 3 to 8
|
||||||
|
move 5 from 5 to 8
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 5 from 3 to 5
|
||||||
|
move 4 from 7 to 2
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 4 from 3 to 7
|
||||||
|
move 4 from 5 to 1
|
||||||
|
move 21 from 8 to 6
|
||||||
|
move 7 from 3 to 2
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 4 from 8 to 9
|
||||||
|
move 16 from 6 to 1
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 5 from 9 to 2
|
||||||
|
move 7 from 1 to 7
|
||||||
|
move 10 from 1 to 3
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 6 from 6 to 5
|
||||||
|
move 6 from 1 to 4
|
||||||
|
move 4 from 7 to 9
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 5 from 7 to 6
|
||||||
|
move 3 from 6 to 8
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 6 from 4 to 8
|
||||||
|
move 4 from 8 to 3
|
||||||
|
move 4 from 8 to 4
|
||||||
|
move 17 from 2 to 1
|
||||||
|
move 8 from 3 to 4
|
||||||
|
move 5 from 4 to 3
|
||||||
|
move 10 from 1 to 5
|
||||||
|
move 11 from 3 to 5
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 3 from 6 to 4
|
||||||
|
move 9 from 4 to 9
|
||||||
|
move 7 from 1 to 3
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 7 from 5 to 4
|
||||||
|
move 18 from 5 to 1
|
||||||
|
move 13 from 1 to 6
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 2 from 3 to 1
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 5 from 1 to 6
|
||||||
|
move 4 from 5 to 8
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 6 from 3 to 8
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 10 from 8 to 7
|
||||||
|
move 16 from 6 to 7
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 2 from 8 to 5
|
||||||
|
move 5 from 4 to 9
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 7 from 9 to 8
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 4 from 8 to 9
|
||||||
|
move 7 from 9 to 7
|
||||||
|
move 13 from 9 to 5
|
||||||
|
move 10 from 5 to 1
|
||||||
|
move 3 from 8 to 4
|
||||||
|
move 5 from 1 to 3
|
||||||
|
move 3 from 5 to 6
|
||||||
|
move 3 from 9 to 7
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 2 from 1 to 3
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 4 from 3 to 8
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 30 from 7 to 3
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 6 from 7 to 3
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 2 from 1 to 2
|
||||||
|
move 2 from 2 to 1
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 3 from 1 to 2
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 18 from 3 to 4
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 1 from 9 to 6
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 14 from 4 to 6
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 15 from 6 to 4
|
||||||
|
move 20 from 3 to 1
|
||||||
|
move 5 from 4 to 9
|
||||||
|
move 5 from 4 to 2
|
||||||
|
move 15 from 1 to 7
|
||||||
|
move 11 from 7 to 9
|
||||||
|
move 2 from 7 to 6
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 10 from 4 to 3
|
||||||
|
move 15 from 9 to 3
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 29 from 3 to 6
|
||||||
|
move 3 from 1 to 6
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 4 from 6 to 1
|
||||||
|
move 20 from 6 to 2
|
||||||
|
move 5 from 1 to 9
|
||||||
|
move 3 from 6 to 2
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 4 from 3 to 1
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 3 from 4 to 8
|
||||||
|
move 6 from 3 to 4
|
||||||
|
move 6 from 2 to 6
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 3 from 6 to 8
|
||||||
|
move 6 from 9 to 3
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 3 from 4 to 5
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 4 from 8 to 7
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 4 from 7 to 8
|
||||||
|
move 4 from 4 to 3
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 4 from 8 to 6
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 2 from 9 to 1
|
||||||
|
move 2 from 7 to 4
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 4 from 4 to 5
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 21 from 3 to 5
|
||||||
|
move 3 from 6 to 1
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 4 from 2 to 6
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 10 from 2 to 4
|
||||||
|
move 4 from 1 to 2
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 7 from 4 to 9
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 6 from 2 to 8
|
||||||
|
move 3 from 9 to 1
|
||||||
|
move 8 from 4 to 3
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 21 from 5 to 7
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 2 from 9 to 6
|
||||||
|
move 14 from 7 to 1
|
||||||
|
move 2 from 4 to 1
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 11 from 2 to 9
|
||||||
|
move 8 from 9 to 6
|
||||||
|
move 4 from 7 to 1
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 2 from 3 to 5
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 6 from 1 to 7
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 4 from 6 to 5
|
||||||
|
move 6 from 7 to 6
|
||||||
|
move 3 from 9 to 1
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 11 from 5 to 1
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 9 from 6 to 4
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 14 from 1 to 5
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 10 from 1 to 5
|
||||||
|
move 3 from 5 to 1
|
||||||
|
move 8 from 3 to 8
|
||||||
|
move 16 from 5 to 7
|
||||||
|
move 2 from 1 to 9
|
||||||
|
move 3 from 8 to 1
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 6 from 7 to 4
|
||||||
|
move 3 from 5 to 8
|
||||||
|
move 2 from 3 to 6
|
||||||
|
move 7 from 1 to 7
|
||||||
|
move 14 from 4 to 3
|
||||||
|
move 9 from 7 to 8
|
||||||
|
move 2 from 4 to 1
|
||||||
|
move 9 from 8 to 4
|
||||||
|
move 7 from 8 to 2
|
||||||
|
move 6 from 1 to 8
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 9 to 6
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 1 from 5 to 3
|
||||||
|
move 9 from 4 to 9
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 8 from 6 to 3
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 8 from 9 to 8
|
||||||
|
move 6 from 2 to 9
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 7 from 8 to 6
|
||||||
|
move 2 from 9 to 6
|
||||||
|
move 8 from 7 to 8
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 9 from 3 to 5
|
||||||
|
move 2 from 1 to 4
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 11 from 8 to 1
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 5 from 1 to 3
|
||||||
|
move 4 from 6 to 4
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 7 from 8 to 9
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 18 from 3 to 2
|
||||||
|
move 17 from 2 to 7
|
||||||
|
move 6 from 5 to 4
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 4 from 4 to 6
|
||||||
|
move 4 from 6 to 9
|
||||||
|
move 15 from 7 to 9
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 2 from 7 to 9
|
||||||
|
move 28 from 9 to 2
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 4 from 6 to 9
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 2 from 6 to 3
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 8 from 9 to 5
|
||||||
|
move 13 from 5 to 3
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 8 from 3 to 7
|
||||||
|
move 28 from 2 to 5
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 4 from 3 to 4
|
||||||
|
move 4 from 7 to 5
|
||||||
|
move 2 from 3 to 9
|
||||||
|
move 21 from 5 to 4
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 3 from 5 to 7
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 3 from 7 to 3
|
||||||
|
move 5 from 7 to 6
|
||||||
|
move 10 from 4 to 8
|
||||||
|
move 6 from 5 to 4
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 15 from 4 to 5
|
||||||
|
move 10 from 4 to 7
|
||||||
|
move 3 from 3 to 7
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 7 from 5 to 1
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 1 from 5 to 3
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 10 from 7 to 9
|
||||||
|
move 2 from 8 to 1
|
||||||
|
move 9 from 9 to 2
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 9 from 8 to 7
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 5 from 5 to 4
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 5 from 4 to 3
|
||||||
|
move 3 from 5 to 9
|
||||||
|
move 6 from 7 to 3
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 5 from 9 to 7
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 3 from 6 to 7
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 6 from 2 to 7
|
||||||
|
move 17 from 7 to 5
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 5 from 3 to 6
|
||||||
|
move 10 from 7 to 2
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 3 from 4 to 1
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 5 from 5 to 9
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 3 from 3 to 7
|
||||||
|
move 4 from 2 to 3
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 7 from 5 to 8
|
||||||
|
move 7 from 2 to 8
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 12 from 8 to 3
|
||||||
|
move 17 from 3 to 2
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 3 from 9 to 1
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 4 from 5 to 8
|
||||||
|
move 6 from 8 to 1
|
||||||
|
move 17 from 2 to 3
|
||||||
|
move 13 from 3 to 2
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 2 from 7 to 2
|
||||||
|
move 8 from 6 to 2
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 9 from 1 to 3
|
||||||
|
move 13 from 2 to 9
|
||||||
|
move 6 from 1 to 4
|
||||||
|
move 6 from 4 to 5
|
||||||
|
move 3 from 8 to 1
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 8 from 5 to 7
|
||||||
|
move 2 from 3 to 1
|
||||||
|
move 9 from 3 to 1
|
||||||
|
move 3 from 8 to 2
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 6 from 7 to 3
|
||||||
|
move 4 from 2 to 7
|
||||||
|
move 14 from 1 to 6
|
||||||
|
move 2 from 3 to 9
|
||||||
|
move 3 from 3 to 7
|
||||||
|
move 6 from 2 to 1
|
||||||
|
move 2 from 1 to 2
|
||||||
|
move 9 from 6 to 3
|
||||||
|
move 11 from 9 to 5
|
||||||
|
move 9 from 7 to 6
|
||||||
|
move 6 from 6 to 2
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 5 from 9 to 4
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 9 from 2 to 7
|
||||||
|
move 10 from 5 to 8
|
511
prob5_part2.txt
Normal file
511
prob5_part2.txt
Normal file
|
@ -0,0 +1,511 @@
|
||||||
|
[B] [N] [H]
|
||||||
|
[V] [P] [T] [V] [P]
|
||||||
|
[W] [C] [T] [S] [H] [N]
|
||||||
|
[T] [J] [Z] [M] [N] [F] [L]
|
||||||
|
[Q] [W] [N] [J] [T] [Q] [R] [B]
|
||||||
|
[N] [B] [Q] [R] [V] [F] [D] [F] [M]
|
||||||
|
[H] [W] [S] [J] [P] [W] [L] [P] [S]
|
||||||
|
[D] [D] [T] [F] [G] [B] [B] [H] [Z]
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
move 2 from 8 to 1
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 7 from 4 to 2
|
||||||
|
move 10 from 2 to 7
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 8 from 6 to 4
|
||||||
|
move 7 from 1 to 8
|
||||||
|
move 6 from 8 to 1
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 8 from 7 to 3
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 5 from 3 to 2
|
||||||
|
move 5 from 2 to 1
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 5 from 8 to 7
|
||||||
|
move 12 from 7 to 4
|
||||||
|
move 3 from 5 to 4
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 9 from 1 to 7
|
||||||
|
move 4 from 3 to 7
|
||||||
|
move 4 from 3 to 4
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 15 from 7 to 2
|
||||||
|
move 4 from 7 to 9
|
||||||
|
move 6 from 9 to 2
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 3 from 2 to 8
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 8 from 2 to 5
|
||||||
|
move 2 from 8 to 4
|
||||||
|
move 2 from 3 to 8
|
||||||
|
move 9 from 5 to 9
|
||||||
|
move 7 from 4 to 2
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 6 from 9 to 2
|
||||||
|
move 3 from 9 to 7
|
||||||
|
move 2 from 8 to 4
|
||||||
|
move 7 from 2 to 6
|
||||||
|
move 7 from 4 to 1
|
||||||
|
move 3 from 1 to 8
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 4 from 8 to 2
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 19 from 2 to 7
|
||||||
|
move 8 from 4 to 7
|
||||||
|
move 18 from 7 to 1
|
||||||
|
move 11 from 7 to 4
|
||||||
|
move 15 from 1 to 7
|
||||||
|
move 9 from 4 to 3
|
||||||
|
move 2 from 3 to 1
|
||||||
|
move 9 from 4 to 5
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 8 from 6 to 5
|
||||||
|
move 3 from 2 to 5
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 4 from 4 to 3
|
||||||
|
move 8 from 5 to 1
|
||||||
|
move 13 from 1 to 6
|
||||||
|
move 12 from 7 to 1
|
||||||
|
move 12 from 6 to 3
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 3 from 1 to 9
|
||||||
|
move 12 from 3 to 8
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 5 from 5 to 1
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 10 from 8 to 9
|
||||||
|
move 13 from 9 to 2
|
||||||
|
move 10 from 3 to 4
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 13 from 2 to 5
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 7 from 1 to 4
|
||||||
|
move 2 from 2 to 5
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 10 from 5 to 8
|
||||||
|
move 3 from 7 to 2
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 12 from 4 to 2
|
||||||
|
move 10 from 5 to 3
|
||||||
|
move 6 from 2 to 1
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 3 from 4 to 8
|
||||||
|
move 6 from 1 to 7
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 12 from 8 to 2
|
||||||
|
move 3 from 4 to 9
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 2 from 9 to 6
|
||||||
|
move 2 from 6 to 8
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 8 from 2 to 6
|
||||||
|
move 4 from 1 to 8
|
||||||
|
move 12 from 2 to 3
|
||||||
|
move 4 from 6 to 8
|
||||||
|
move 10 from 8 to 3
|
||||||
|
move 14 from 3 to 8
|
||||||
|
move 5 from 5 to 8
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 5 from 3 to 5
|
||||||
|
move 4 from 7 to 2
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 4 from 3 to 7
|
||||||
|
move 4 from 5 to 1
|
||||||
|
move 21 from 8 to 6
|
||||||
|
move 7 from 3 to 2
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 4 from 8 to 9
|
||||||
|
move 16 from 6 to 1
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 5 from 9 to 2
|
||||||
|
move 7 from 1 to 7
|
||||||
|
move 10 from 1 to 3
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 6 from 6 to 5
|
||||||
|
move 6 from 1 to 4
|
||||||
|
move 4 from 7 to 9
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 5 from 7 to 6
|
||||||
|
move 3 from 6 to 8
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 6 from 4 to 8
|
||||||
|
move 4 from 8 to 3
|
||||||
|
move 4 from 8 to 4
|
||||||
|
move 17 from 2 to 1
|
||||||
|
move 8 from 3 to 4
|
||||||
|
move 5 from 4 to 3
|
||||||
|
move 10 from 1 to 5
|
||||||
|
move 11 from 3 to 5
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 3 from 6 to 4
|
||||||
|
move 9 from 4 to 9
|
||||||
|
move 7 from 1 to 3
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 7 from 5 to 4
|
||||||
|
move 18 from 5 to 1
|
||||||
|
move 13 from 1 to 6
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 2 from 3 to 1
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 5 from 1 to 6
|
||||||
|
move 4 from 5 to 8
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 6 from 3 to 8
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 10 from 8 to 7
|
||||||
|
move 16 from 6 to 7
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 2 from 8 to 5
|
||||||
|
move 5 from 4 to 9
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 7 from 9 to 8
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 4 from 8 to 9
|
||||||
|
move 7 from 9 to 7
|
||||||
|
move 13 from 9 to 5
|
||||||
|
move 10 from 5 to 1
|
||||||
|
move 3 from 8 to 4
|
||||||
|
move 5 from 1 to 3
|
||||||
|
move 3 from 5 to 6
|
||||||
|
move 3 from 9 to 7
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 2 from 1 to 3
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 4 from 3 to 8
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 30 from 7 to 3
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 6 from 7 to 3
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 2 from 1 to 2
|
||||||
|
move 2 from 2 to 1
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 3 from 1 to 2
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 18 from 3 to 4
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 1 from 9 to 6
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 14 from 4 to 6
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 15 from 6 to 4
|
||||||
|
move 20 from 3 to 1
|
||||||
|
move 5 from 4 to 9
|
||||||
|
move 5 from 4 to 2
|
||||||
|
move 15 from 1 to 7
|
||||||
|
move 11 from 7 to 9
|
||||||
|
move 2 from 7 to 6
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 10 from 4 to 3
|
||||||
|
move 15 from 9 to 3
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 29 from 3 to 6
|
||||||
|
move 3 from 1 to 6
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 4 from 6 to 1
|
||||||
|
move 20 from 6 to 2
|
||||||
|
move 5 from 1 to 9
|
||||||
|
move 3 from 6 to 2
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 4 from 3 to 1
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 3 from 4 to 8
|
||||||
|
move 6 from 3 to 4
|
||||||
|
move 6 from 2 to 6
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 3 from 6 to 8
|
||||||
|
move 6 from 9 to 3
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 3 from 4 to 5
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 4 from 8 to 7
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 4 from 7 to 8
|
||||||
|
move 4 from 4 to 3
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 4 from 8 to 6
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 2 from 9 to 1
|
||||||
|
move 2 from 7 to 4
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 4 from 4 to 5
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 21 from 3 to 5
|
||||||
|
move 3 from 6 to 1
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 4 from 2 to 6
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 10 from 2 to 4
|
||||||
|
move 4 from 1 to 2
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 7 from 4 to 9
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 6 from 2 to 8
|
||||||
|
move 3 from 9 to 1
|
||||||
|
move 8 from 4 to 3
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 21 from 5 to 7
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 2 from 9 to 6
|
||||||
|
move 14 from 7 to 1
|
||||||
|
move 2 from 4 to 1
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 11 from 2 to 9
|
||||||
|
move 8 from 9 to 6
|
||||||
|
move 4 from 7 to 1
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 2 from 3 to 5
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 6 from 1 to 7
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 4 from 6 to 5
|
||||||
|
move 6 from 7 to 6
|
||||||
|
move 3 from 9 to 1
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 11 from 5 to 1
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 9 from 6 to 4
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 14 from 1 to 5
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 10 from 1 to 5
|
||||||
|
move 3 from 5 to 1
|
||||||
|
move 8 from 3 to 8
|
||||||
|
move 16 from 5 to 7
|
||||||
|
move 2 from 1 to 9
|
||||||
|
move 3 from 8 to 1
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 6 from 7 to 4
|
||||||
|
move 3 from 5 to 8
|
||||||
|
move 2 from 3 to 6
|
||||||
|
move 7 from 1 to 7
|
||||||
|
move 14 from 4 to 3
|
||||||
|
move 9 from 7 to 8
|
||||||
|
move 2 from 4 to 1
|
||||||
|
move 9 from 8 to 4
|
||||||
|
move 7 from 8 to 2
|
||||||
|
move 6 from 1 to 8
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 9 to 6
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 1 from 5 to 3
|
||||||
|
move 9 from 4 to 9
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 8 from 6 to 3
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 8 from 9 to 8
|
||||||
|
move 6 from 2 to 9
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 7 from 8 to 6
|
||||||
|
move 2 from 9 to 6
|
||||||
|
move 8 from 7 to 8
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 9 from 3 to 5
|
||||||
|
move 2 from 1 to 4
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 11 from 8 to 1
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 5 from 1 to 3
|
||||||
|
move 4 from 6 to 4
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 7 from 8 to 9
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 18 from 3 to 2
|
||||||
|
move 17 from 2 to 7
|
||||||
|
move 6 from 5 to 4
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 4 from 4 to 6
|
||||||
|
move 4 from 6 to 9
|
||||||
|
move 15 from 7 to 9
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 2 from 7 to 9
|
||||||
|
move 28 from 9 to 2
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 4 from 6 to 9
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 2 from 6 to 3
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 8 from 9 to 5
|
||||||
|
move 13 from 5 to 3
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 8 from 3 to 7
|
||||||
|
move 28 from 2 to 5
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 4 from 3 to 4
|
||||||
|
move 4 from 7 to 5
|
||||||
|
move 2 from 3 to 9
|
||||||
|
move 21 from 5 to 4
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 3 from 5 to 7
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 3 from 7 to 3
|
||||||
|
move 5 from 7 to 6
|
||||||
|
move 10 from 4 to 8
|
||||||
|
move 6 from 5 to 4
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 15 from 4 to 5
|
||||||
|
move 10 from 4 to 7
|
||||||
|
move 3 from 3 to 7
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 7 from 5 to 1
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 1 from 5 to 3
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 10 from 7 to 9
|
||||||
|
move 2 from 8 to 1
|
||||||
|
move 9 from 9 to 2
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 9 from 8 to 7
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 5 from 5 to 4
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 5 from 4 to 3
|
||||||
|
move 3 from 5 to 9
|
||||||
|
move 6 from 7 to 3
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 5 from 9 to 7
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 3 from 6 to 7
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 6 from 2 to 7
|
||||||
|
move 17 from 7 to 5
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 5 from 3 to 6
|
||||||
|
move 10 from 7 to 2
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 3 from 4 to 1
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 5 from 5 to 9
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 3 from 3 to 7
|
||||||
|
move 4 from 2 to 3
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 7 from 5 to 8
|
||||||
|
move 7 from 2 to 8
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 12 from 8 to 3
|
||||||
|
move 17 from 3 to 2
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 3 from 9 to 1
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 4 from 5 to 8
|
||||||
|
move 6 from 8 to 1
|
||||||
|
move 17 from 2 to 3
|
||||||
|
move 13 from 3 to 2
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 2 from 7 to 2
|
||||||
|
move 8 from 6 to 2
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 9 from 1 to 3
|
||||||
|
move 13 from 2 to 9
|
||||||
|
move 6 from 1 to 4
|
||||||
|
move 6 from 4 to 5
|
||||||
|
move 3 from 8 to 1
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 8 from 5 to 7
|
||||||
|
move 2 from 3 to 1
|
||||||
|
move 9 from 3 to 1
|
||||||
|
move 3 from 8 to 2
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 6 from 7 to 3
|
||||||
|
move 4 from 2 to 7
|
||||||
|
move 14 from 1 to 6
|
||||||
|
move 2 from 3 to 9
|
||||||
|
move 3 from 3 to 7
|
||||||
|
move 6 from 2 to 1
|
||||||
|
move 2 from 1 to 2
|
||||||
|
move 9 from 6 to 3
|
||||||
|
move 11 from 9 to 5
|
||||||
|
move 9 from 7 to 6
|
||||||
|
move 6 from 6 to 2
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 5 from 9 to 4
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 9 from 2 to 7
|
||||||
|
move 10 from 5 to 8
|
1
prob6_part1.txt
Normal file
1
prob6_part1.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
bhzhtzzsczszsjjjzddfzdfzfjfzfbbnntnzznwzzvfvrrqmrmmdzzfqfhqhsqqpwpgwpppbtbnnstthmhrrsmmvsmmhjmjfmfsfjfnfnjjvcjjszjszjsszbznzbnzndzzmlldsdgdcddmqmfqqlcllbvllztzctzczdzttlmtlthtmhtmhmmszsllvzvdzzzsqzqbqccvfvcffzsfslfsllcglclwlvwvzzdsslggtzzgzdzmzddjljvvztttsgscsstztjztjztzvzwwthtftppnmpmmcpmmjlmjjjsfjsjppgcgwcggzffzwzbbmbrbprpqqpccfncfnffvcffsqqtzqzqwzwvzwwwbjbfbcbfblltnlnhhcthtvvzzfcfgfddlggbbshsggplglqqbrbggsvvzdvvlfvlvpvhhmggbrrnppjfjhffttfpffbdfbfvfqvvtcvvbvnnhbhhglgjgzzghhwrrtntrtwwfdfdmmcmtctftpptllzqllzflfrrgqgvgdvdfdbddprrrgccqvqnnmtmvmffpzzqggfbfnfwwqdqldqqlnqnttnbttrffnmmzwzjjtrjtrtmmqsmqmffqmfqfhhbthbhdhvdhvdvmvdmdhdshsqslldzztvvmzzdcccmbbhfhshrrrpsrrqqmdmmgdmmwdmdjdqqmcmttpgtgwgpwpprbrprhrsrllhsllprlplhppfzpffbhbccwdwbbrpbpvpqqmsspjssmbbmfmrmnrnwwgbwwbpwpjwwhqqgcqcvqccgffzpfftcffqlqjjznnlflhhlcczhzvhzhmzhmhfhnnqznntstwtggqjgjhggsvslltjlttfjjgffjzjwzzqzrrhlhzhbhphmhlmlzmzsmzmccvllgrrpbrbfbjfjttqjttdrdhhggqgddppqgpqgpgtptjptpllwccmwcmcpmcppdrrtstqqczqzvvlsltlddnvdvggcqqblqqsjqjttzhtzzszllqsqfqddqdbqddwqddfzzlczcscfsfpfdpdrpddsggcqchcfcpcssstwstwtggghvhqhzzqssjddwjwbjjsnjnfnwwglwwfnfhnnscsggzgjzzhzmmqfqsqwqrwqqqdtdcttzvvnbngbbcdbdggddnmddgzghhzgghwwbjbttlwlcctlccwwdhhrqrvrjjlglssgttpllwclwwtptwptwtvthtbhbzhbzhhrsrwwwnrwrfwfnwnhhnqqdjqjpqqwdwttzhttcdttvztzltzlzmzddrsdsfdsfftdfffmwffrjrffqrfqfsfqqqgqjggwzzrnnqfnqffdbfbtbbrpbrpbptpwttjmjjzrrhhqppdzdtdjttqwwtddjdzzmgzzhwwwdsdgssprsrgsgbbphhdpdwppnfppdqqwzzpbzzqwqpqsqhqdhqqtwwjnnmvmwvmmwwgjgzjjvcjcvcjcnjcncmmphmmvmwmwpwbbtbffhnhshgssgvgvrrbwbtbddqmqfqvvfqvqdvvdbvdbdcdfdlflmffrwwgmmttrztrrfrqrpqrrzjrjpjdpjprrnhhbhcbbcwwqlwwcssbddfrfjrfjfrjfjvvdmdtdzzlvzlzhzmhmhphchnnfqnffvccfpfbfpfqpprrmttzrzzjzmjmzjmmfvmmrzrqqdllgjlglcchssgllsbllrbrlrjlrrhhfwwsqwsstpssznzcznzqzssvtvtrrqwqvvtssgfsfhssljjnwjnjddjdggclcrrfsfhsstgtdtctfttvvsbvvbtbttcgcssjlslhlpljpppwzwnwdnngmgjjbzznwwdllrrfppshhvdhhldhdbbdbjbdjjrnjjzhzfhhsqqbqgmsbvnjsptlrsszlqfmgprvscphmqztbgtlrqvcgdzcptcqjncrdtfqnghnbmwwmcjgtjlbvqqzslgbbntrdfnvfjvfgcgngndjcspgwmpnsrqzzvzljbzlzzrwflrqqqmhsvqwbmdftnhwwzgqrlhddbbtwvbphljmstcjzvpjqwcnhlvpqvqdgvntgqzqwrlwbwvngwtqgrhznlzcvbwqmwncccjctrdzrmzjsvrmcfpjjcczhbvdfwhqvczggfmrspvprvvthvtqnsphpcsdmbrtbdqljvssdrhwjsrrlzprstpgqcbpmnpdgzgjttwcfrgjnsghmszlclgvmlsjrqfvflbnhwwphtvrnrbhdvdglcvgpzfsjpwwhtlvvdzthsrldfzhnlrblzsjjnwclqsqzgdbflhvpwcrtfbfbjcjttbjpvfgvfcswnqqwshbmqlscdzzwshfqwsvwnwzltbnrmzzhzvtwpzqcgwshpvzgtcmwrtrwctnpzbznnwqphnrgwljtrcwlqmvlndwrdrctztnmswslqmbjcmtlrmcpjvzccqszrnflqnqzttbhqlrhbmqdpscqvfgtdbnwjdcljwcbgbgjfzgrgpwqzqgbnrtpntfthhdbqmswvhnmwmszpghgjjzrbnbbfjblpstdfslmmmqfdcrhblqjqfphnldrvvfpnfrcvprjnqbzbspfpjtgqhnjbhnrwzcjvdbshhqpgrmzqpmjfmqwqvvdbddbsldwzzsrhnhsjjnvljrbwcnjrnjpmrrvfthftgptgtlpbgqffthflgftwcrqcqwqwrmrcmfrcqgmrnqjbscdcgrqlhjzthvzdgjbvpswflqcgsnlmgmvcsttsgmnqdtvwdvrndvfdcvrcwmqlmlhtrvthsndsrmnsfmdmfnpfmfhzjqmtcjzcrnsjdztztvgdtlrmbdmmstbfgpmmzthcslpvgrpgfljfgqlqhldfwvvvdvbzjtdtppbtrnqwsqztjrsjhtfrgmvsdngvsdzjgpwrldqpzdpvhljzpjvttwltdwcrhcbrgrvdrmpwvdwjchqsjfprbgtjtzggvgrgmlvvwqrjfprbbgjjqrtdfnrdffwbswbvqtqtfsrhsgrjhftqldhmcnmsnfflmdrzqdjmbqqgqsttdmtrrvfsjnccnhcpcvqtrzdjzrpwswmjvvgsgwvnmdgqwlctrlhqnsmczbwsjhmtgvdcgsndzlstcwchcztqqbtdwfvlljdvdlzljslgnzpmqvzfcvqhdzvgchffqgfwrnmwqzwgbzblpmvddlvnhglrhdnwzqwztzgjczjpwcjwmpnrnrhncfjfggrbphrjztwtfqmfjlwfhnqfftfghbnvtwgtmdzzrdrtmfrwhrrbhzmcllsgqzwzzqtgdggvzptvtdcpzmtmsfcfbjtzlbdrwhdbtdhhrgggmddnzsvjwgcdcqfppqwphfvlhmgqsznlhmgpnjvcvrwwppnphchgsrhjwjcpjggsrcwrvnllfgrmjltfzwhmbqwpwwzmrtlqcprrqztcgnghcbvzrbfptjmhtdcfhhffdbrswqpnpppnpqwtflrrmqgjzctmmvvvwzllbsfdvpqjtmvpjcpmjztscsgbdznfgcmtjzdqzwqrsvstnnvddcstzqjtnbsnlptpmbmfqmhppgnjrffqrtchgptbmwlwbwbcqqfngpbwtwdmlmdstmqwcwjtbwbbbhghgptmvhfmvqfvpwqzwnbjdhpwlgjgvprdjbnlzhnllssbpvzfzspwsscfpqtpdvtzvqncfrfrgddsdglqvpblmpcczlqfdmwzmgvrljhqtcglcvfhbdwhbttqqrjbqwhsrhrbjwmtqwqddvdggdwfsmnpbpvvgsqnvvrqntwmbzdnqpmmqtbnlsbmslpfmqjtgvbddhwvlvjtlrhqdpfnjwtbhwjwdrpgctbbrdqvbbnvgqwngrhqfvwzmlqtmhfqphnmczlbdpnbmpvwrsjbcnjnvcfgnsvlhpzdgdzgvfbgwdcrswznrggnghzssdwqvvlwftqhbnwdvghhvjlqqmcnqmvbwhrrnsswlwmwbsmpcpdzzgmcmqnzpvjpzqbwcsgdhqtqhcpbtqftvscmntsbdcbrndvlfhprpblzbjcpqhfljtvnvtgvrcgqbsgl
|
1027
prob7_part1.txt
Normal file
1027
prob7_part1.txt
Normal file
File diff suppressed because it is too large
Load diff
1027
prob7_part2.txt
Normal file
1027
prob7_part2.txt
Normal file
File diff suppressed because it is too large
Load diff
99
prob8_part1.txt
Normal file
99
prob8_part1.txt
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
101232232424431123432342554040352101405502025646520640026102435415402415524241404341001022013221221
|
||||||
|
322003200404313034023203145443134010555246652210042156042654635314322525041550121322403330300102030
|
||||||
|
300223331202022110511510154103110142442012332003514242206354525511353252421542430110200442102312123
|
||||||
|
323133401312301310040251134225352136126616004434252462045055305202261355433025233042244241414400023
|
||||||
|
101104403040123044220034201231621525016350121330311611014454116414515052210415423202213344444213032
|
||||||
|
023343200312321341111312312116004553510400124564003503525336352206534312634553034341344231103320121
|
||||||
|
232432314323445335412313341660535056605316245521312422204421411026063010063200110052210224330113302
|
||||||
|
312104103023300150511003256056530232416620641476331566726505005253550226461151520445555123411440334
|
||||||
|
212320403040021521143113451320122514052261721742217616232666314261562006620634125252332350322233244
|
||||||
|
121203010304521210411013440333264052674653423316314375512175574325262425522003540134541121330431412
|
||||||
|
242204210504314451204236552066106466756545677241223651236433541213145114512054256134345025222414332
|
||||||
|
142041442305525524414554456630445566671622363554565311414164346521375126616036343225552430320142242
|
||||||
|
444343225200452531125463161044526512711315644346716774456167633775552325212323502414500125304101442
|
||||||
|
310331200433511524004324523024376145644272331714275745132552527332621757111641110604243400150102301
|
||||||
|
324000410032344243443213031215347666416142612722352331527416524446272144632054626460610411343015214
|
||||||
|
320123043045014453006030311336322753322266368648765847556774576424774346643352662320364111534525122
|
||||||
|
442020510341512162315013222156456642565478638555682735664832583554422245165431250246236222000222413
|
||||||
|
414115045035446663521337425454354252666867442648382483378248585426324451353146435112651062444320153
|
||||||
|
404031553354665600421273415333424442557623485578324525478673862565714171753646445146504611043544310
|
||||||
|
420221121313524320031226342733736342778854854745272737436344833444332262273475742543435414301514022
|
||||||
|
102433434104221136261652367123828833742266365587682657232782236687733375147446456435013164623033453
|
||||||
|
254052000640223505333752451714435245653688563475537427586864344637533256524566641541066561013340115
|
||||||
|
402424554664414061612366662262546262344862767983768964383722283664424826344415366464635564003035522
|
||||||
|
453430306616221255375164464844337767643264664566433699446375333477788728421713267327336401105425333
|
||||||
|
424340460333633611416743647223584543446663447884569869575943675246265858843135752722203060601314510
|
||||||
|
100104404661641521713564623486853464898563575445444677875368568656336855687665453132126163413415413
|
||||||
|
215302243412504531566112426534574499379653449589737746345943794657936355232887343422456306315453552
|
||||||
|
510025400262416244231532674726546437535536634838644683689356756484986473434524723553734023111254223
|
||||||
|
200204056365027317421364428852638397454355393937474567465453855598477485557424664756156234516125002
|
||||||
|
315311346005136326466555385687277868747539849498675894853944993694973352587363421743725352145116525
|
||||||
|
003432325612552157642734768322776884596464869575664456575756766387847762385773543511142455502615010
|
||||||
|
323005315540227472658648485349375446787359896487975999967994878588768333826274268465567534243515604
|
||||||
|
440456221306764751672857476368954437466478794954588479785445855488353476362467345856473677540155641
|
||||||
|
145626220661445722124873768476448493998999449996678498948886598577843394688625385873326644342243461
|
||||||
|
445562611272117173322737877366885654845578785685455598488999678884466965543672555556173431656206420
|
||||||
|
025130063437366574263434683849438959768954744996857595658945978854575385745862424366457372746221315
|
||||||
|
330056343042353748468655383756666954488668996955869957549949945974898849943638748754612625120241011
|
||||||
|
432440053115343158276372498785736949588874688959799775598548957878884775394762348284137737673641642
|
||||||
|
102056040435747284853655648443579469664944568788855866779976889755858957959735324265746533251062403
|
||||||
|
225266001744262443233334974839654865799445785659659675575666575758865948754463425885535443736632404
|
||||||
|
110654201772435145572468544985578676579996656795879868576797847675977856844578738333816426565246622
|
||||||
|
433122252566473253723864943786447484655995769756667897965855958658757798373853334626865115523210441
|
||||||
|
556541053615336747283763545495655688878588665885858779779899597977449644485399674475255622322020110
|
||||||
|
011246513266431242864686953687878987686577868895997988788689566679898456889984483487464125476243224
|
||||||
|
146430654214211787457337933537555866765688875799887976988578679556659655564463526386463716114354031
|
||||||
|
301355426474121386642848739759597465855588776978689979798756956985699554573779455545642175346410200
|
||||||
|
665401551644225425227738385396554475758768868798997798968696775989794666575779876332737347375414225
|
||||||
|
512264373337161748463436934959669586879679979679896989676576695988989664437878448276827532543745623
|
||||||
|
414644336467578472474486349936485857567669856689768668976766988984549484863488738455255412422624432
|
||||||
|
036441527146156483775836379836679964765795668878769977878799767597698768864788657252857655434752204
|
||||||
|
444666167464342238764266465439498755555659877886888899999856978994556568955445528325646125672164600
|
||||||
|
554433027362778886523875976836986988896695897689678886787996679658974797569374338344624672757631301
|
||||||
|
310042272613272624885896949859765467876555996976999696789988967965466684754895746762223775172234330
|
||||||
|
216343113411562425626633578339674859855875577977769879987785777674498658748899947272432652777416624
|
||||||
|
644655617213144523726243646388856494887979798868676998696768878865895676484383655444254627274131426
|
||||||
|
563636621655445248723867836434648597896597866798698876698598597697577776937367826877324161661354535
|
||||||
|
341056514244726338453499673897657855866875759776669996869785685895756748635866544776371413425025432
|
||||||
|
044435013274135828365337573975868886748866596788969877955955756895957574564469583387354142524005261
|
||||||
|
410342122777647883362439734978585444678669878589755875966798767797995783366779884352756543534151243
|
||||||
|
441043541147123324228379874699597946948555885687569696976589658895855548467778233287211424145465240
|
||||||
|
013520313145473358567557484588597487658658866969675558679557775795544577887779883542724441435601554
|
||||||
|
413424243572773133387782457533847759697988966666777979879595749686579798343746884752342364430012243
|
||||||
|
326240460425117754473464599468874499568546888968889968769655795459984446735672755758632161131203442
|
||||||
|
300131303151234667345248566663377796947878745698979798686969577865488637644574724367556777536526223
|
||||||
|
201413522556166618225635288589984557686665556767657595967679955648876746974783378576524471465423550
|
||||||
|
132203011242354537628633669369699337985447975976769776866447886769358896665782776877447544703406253
|
||||||
|
133532343456535111383888625455386597867455655599757897755558666966586346883426636652263242705454404
|
||||||
|
515656631143165354267432455336475494569987585578555494867798784856975634394283638544164731533012364
|
||||||
|
140416432445724172247278853455798367884868796498777454967657748875548789832362674732676672056032431
|
||||||
|
330330152414564665274243438433876363573585996985888846846845663567545668252624564762246173301325502
|
||||||
|
302226105363143741352735557782868788733464859494486947884994938599357344542482523627145432560642353
|
||||||
|
145422126105171466242567724557544489934658889494656859885599738537534845443644581256761746362221023
|
||||||
|
441212145032074213275667582428345868377677696997785565377585765567746584667226657214272426340532331
|
||||||
|
101452412564254231314347763234647978536934546886949376683847693599962882662556735366332605253254243
|
||||||
|
242134245465654443763242368746262775635568895968649374696544643593776484646237623121155311612120205
|
||||||
|
224324556334241543152423764688727563658665947774377475559746775387478253676754241443542553641515133
|
||||||
|
112040215053533166723764146688552662254436968389648683363668663468622524888354726754315425216123100
|
||||||
|
021125312165155354236637163434868472666833569875463833389786585853644277477624254454065142204421252
|
||||||
|
524302450104653624156271174347323843256576684986975339949343684428633575452572646373611442213410412
|
||||||
|
013000504615163043526333634318868574767387865682722275245644673556658444321441613432604542203511551
|
||||||
|
242524501014131565575336754147245826628343573377352338767422674636538742125631345462033033403235255
|
||||||
|
304401342145144243415545241676576556264543764465565724532645542743372525221461725562353265045051132
|
||||||
|
234302031320344616366225577677124763333456446683735866667852458578422752674576640145530645050512154
|
||||||
|
132421020111321255530526663734272513535262623562488642564636574385245112665623132642441334102314011
|
||||||
|
102255335052511135645343464117315257162723258847453624673355647345665737125672220566436213014134441
|
||||||
|
312245204230352351210405226233122343511172545755556267356584643164226213732752212035632152433154320
|
||||||
|
433104142453501532612362446717232767156326652752737733565427127523161253271344216136060252512442041
|
||||||
|
212230512443134051666444123274474475364671426411226276576372452514665156262633036430153240020401401
|
||||||
|
300411330411451231141436052664142373444325735263226333375416444576253146002526306114152241250403310
|
||||||
|
101032115301513352525160453141002773563414647477456721366627231126771542123126102455031250033223313
|
||||||
|
324233212142235532140166110023400026333355425117234444773232146225326253461050325545343105500423104
|
||||||
|
033431121034120033510616215166546146337352752676632624643526424216650102540533503153134132000420142
|
||||||
|
240121103430140123513513462300432156652122676414274512336151334241532064154406340323144200421003324
|
||||||
|
233142431112012541421523134462664026316416350553765272706623513350020256351263445534113304131112033
|
||||||
|
323203003131024144404243206121423310355043066662201116504344265455134633403341445324024304010343200
|
||||||
|
133044014403300041520020101412541120000145660632333004501603416535515112534533414430000213113231220
|
||||||
|
020200134443230224532201430335140300110631641143466045463552301460233403451514045510012313003444012
|
||||||
|
003320111443312431412215134024143654125511235514301244523512535041410415313130552501342112344000332
|
||||||
|
223322121002242440120225413345342544646200604640400343653451404544533034511344250023302010222012033
|
10
src/lib.rs
10
src/lib.rs
|
@ -1 +1,9 @@
|
||||||
pub mod prob1;
|
pub mod prob1;
|
||||||
|
pub mod prob2;
|
||||||
|
pub mod prob3;
|
||||||
|
pub mod prob4;
|
||||||
|
pub mod prob5;
|
||||||
|
pub mod prob6;
|
||||||
|
pub mod prob7;
|
||||||
|
|
||||||
|
pub mod prob8;
|
||||||
|
|
74
src/main.rs
74
src/main.rs
|
@ -1,10 +1,68 @@
|
||||||
use _1_calorie_counting::prob1::solve;
|
use advent_of_code::{prob1, prob2, prob3, prob4, prob5, prob6, prob7};
|
||||||
|
use color_eyre::eyre::Result;
|
||||||
|
|
||||||
fn main() {
|
fn main() -> Result<()> {
|
||||||
let args: Vec<String> = std::env::args().collect();
|
color_eyre::install()?;
|
||||||
let file_path = args
|
{
|
||||||
.get(1)
|
let file_path = "prob1.txt";
|
||||||
.expect("Please provide an argument on command-line.");
|
let max_part1 = prob1::solve_part1(file_path);
|
||||||
let max = solve(file_path);
|
let max_part2 = prob1::solve_part2(file_path);
|
||||||
println!("{max}");
|
println!("Solution for problem 1 part 1: {max_part1}\nSolution for problem 1 part 2: {max_part2}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let file_path = "prob2_part1.txt";
|
||||||
|
let max_part1 = prob2::solve_part1(file_path);
|
||||||
|
let max_part2 = prob2::solve_part2(file_path);
|
||||||
|
println!("Solution for problem 2 part 1: {max_part1}\nSolution for problem 2 part 2: {max_part2}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let file_path = "prob3_part1.txt";
|
||||||
|
let max_part1 = prob3::solve_part1(file_path);
|
||||||
|
println!("Solution for problem 3 part 1: {max_part1}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let file_path = "prob3_part2.txt";
|
||||||
|
let max_part2 = prob3::solve_part2(file_path);
|
||||||
|
println!("Solution for problem 3 part 2: {max_part2}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let file_path = "prob4_part1.txt";
|
||||||
|
let max_part1 = prob4::solve(file_path, &prob4::mutual_inclusion);
|
||||||
|
println!("Solution for problem 4 part 1: {max_part1}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let file_path = "prob4_part1.txt";
|
||||||
|
let max_part1 = prob4::solve(file_path, &prob4::complete_overlap);
|
||||||
|
println!("Solution for problem 4 part 2: {max_part1}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let file_path = "prob5_part1.txt";
|
||||||
|
let max_part1 = prob5::solve_part1(file_path);
|
||||||
|
println!("Solution for problem 5 part 1: {max_part1}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let file_path = "prob5_part2.txt";
|
||||||
|
let max_part1 = prob5::solve_part2(file_path);
|
||||||
|
println!("Solution for problem 5 part 2: {max_part1}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let _file_path = "prob6_part1.txt";
|
||||||
|
let solution = prob6::solve_part1(include_str!("../prob6_part1.txt"));
|
||||||
|
println!("Solution for problem 6 part 1: {solution}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let _file_path = "prob6_part1.txt";
|
||||||
|
let solution = prob6::solve_part2(include_str!("../prob6_part1.txt"));
|
||||||
|
println!("Solution for problem 6 part 2: {solution}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let _file_path = "prob7_part1.txt";
|
||||||
|
let solution = prob7::solve_part1(include_str!("../prob7_part1.txt"))?;
|
||||||
|
println!("Solution for problem 7 part 1: {solution}");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let solution = prob7::solve_part2(include_str!("../prob7_part2.txt"))?;
|
||||||
|
println!("Solution for problem 7 part 2: {solution}");
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,36 @@
|
||||||
pub fn solve(file_path: &str) -> i32 {
|
use std::cmp::Reverse;
|
||||||
|
|
||||||
|
pub fn solve_part1(file_path: &str) -> i32 {
|
||||||
|
let mut max = 0;
|
||||||
|
let mut accumulated = 0;
|
||||||
|
std::fs::read_to_string(file_path)
|
||||||
|
.unwrap_or_else(|err| panic!("Please provide a text file as an argument: {err}"))
|
||||||
|
.lines()
|
||||||
|
.for_each(|number| {
|
||||||
|
if let Ok(yay) = number.parse::<i32>() {
|
||||||
|
accumulated += yay;
|
||||||
|
} else {
|
||||||
|
max = max.max(accumulated);
|
||||||
|
accumulated = 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
max
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part2(file_path: &str) -> i32 {
|
||||||
let contents =
|
let contents =
|
||||||
std::fs::read_to_string(file_path).expect("Please provide a text file as an argument.");
|
std::fs::read_to_string(file_path).expect("Please provide a text file as an argument.");
|
||||||
let lines: Vec<&str> = contents.split("\n").collect();
|
let lines: Vec<&str> = contents.split('\n').collect();
|
||||||
|
let mut numbers: Vec<i32> = Vec::with_capacity(lines.len());
|
||||||
let mut max = 0;
|
|
||||||
let mut accumulated = 0;
|
let mut accumulated = 0;
|
||||||
lines.iter().for_each(|number| {
|
lines.iter().for_each(|number| {
|
||||||
if let Ok(yay) = number.parse::<i32>() {
|
if let Ok(yay) = number.parse::<i32>() {
|
||||||
accumulated += yay;
|
accumulated += yay;
|
||||||
} else {
|
} else {
|
||||||
max = max.max(accumulated);
|
numbers.push(accumulated);
|
||||||
accumulated = 0;
|
accumulated = 0;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
max
|
numbers.sort_by_key(|w| Reverse(*w));
|
||||||
|
numbers[0] + numbers[1] + numbers[2]
|
||||||
}
|
}
|
||||||
|
|
168
src/prob2/mod.rs
Normal file
168
src/prob2/mod.rs
Normal file
|
@ -0,0 +1,168 @@
|
||||||
|
#[derive(PartialEq, Eq)]
|
||||||
|
enum Play {
|
||||||
|
Rock,
|
||||||
|
Paper,
|
||||||
|
Scissors,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Copy, Clone)]
|
||||||
|
enum ResultPlay {
|
||||||
|
Win,
|
||||||
|
Draw,
|
||||||
|
Loss,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Into<char> for Play {
|
||||||
|
fn into(self) -> char {
|
||||||
|
match self {
|
||||||
|
Play::Rock => 'X',
|
||||||
|
Play::Paper => 'Y',
|
||||||
|
Play::Scissors => 'Z',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Into<i32> for Play {
|
||||||
|
fn into(self) -> i32 {
|
||||||
|
match self {
|
||||||
|
Play::Rock => 1,
|
||||||
|
Play::Paper => 2,
|
||||||
|
Play::Scissors => 3,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<char> for Play {
|
||||||
|
fn from(letter: char) -> Self {
|
||||||
|
match letter {
|
||||||
|
'A' => Play::Rock,
|
||||||
|
'B' => Play::Paper,
|
||||||
|
'C' => Play::Scissors,
|
||||||
|
'X' => Play::Rock,
|
||||||
|
'Y' => Play::Paper,
|
||||||
|
'Z' => Play::Scissors,
|
||||||
|
other => panic!("Only A, B, C, X, Y or Z letters are available. Had {other}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Into<i32> for ResultPlay {
|
||||||
|
fn into(self) -> i32 {
|
||||||
|
match self {
|
||||||
|
ResultPlay::Win => 6,
|
||||||
|
ResultPlay::Draw => 3,
|
||||||
|
ResultPlay::Loss => 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn round_score(play: char, counter_play: char) -> i32 {
|
||||||
|
let coup = Play::from(play); // translate to the play
|
||||||
|
let counter = Play::from(counter_play); // translate to the play
|
||||||
|
if coup == counter {
|
||||||
|
let draw: i32 = ResultPlay::Draw.into();
|
||||||
|
let result: i32 = counter.into();
|
||||||
|
draw + result
|
||||||
|
} else {
|
||||||
|
use Play::*;
|
||||||
|
use ResultPlay::*;
|
||||||
|
let loss: i32 = Loss.into();
|
||||||
|
let win: i32 = Win.into();
|
||||||
|
match (&coup, &counter) {
|
||||||
|
(Rock, Paper) => {
|
||||||
|
let result: i32 = counter.into();
|
||||||
|
win + result
|
||||||
|
}
|
||||||
|
(Rock, Scissors) => {
|
||||||
|
let result: i32 = counter.into();
|
||||||
|
loss + result
|
||||||
|
}
|
||||||
|
(Paper, Rock) => {
|
||||||
|
let result: i32 = counter.into();
|
||||||
|
loss + result
|
||||||
|
}
|
||||||
|
(Paper, Scissors) => {
|
||||||
|
let result: i32 = counter.into();
|
||||||
|
win + result
|
||||||
|
}
|
||||||
|
(Scissors, Rock) => {
|
||||||
|
let result: i32 = counter.into();
|
||||||
|
win + result
|
||||||
|
}
|
||||||
|
(Scissors, Paper) => {
|
||||||
|
let result: i32 = counter.into();
|
||||||
|
loss + result
|
||||||
|
}
|
||||||
|
_ => panic!("Case not covered, impossible to reach."),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn choose_answer(strat: &ResultPlay, input: Play) -> Play {
|
||||||
|
use Play::*;
|
||||||
|
use ResultPlay::*;
|
||||||
|
match strat {
|
||||||
|
Loss => match input {
|
||||||
|
Rock => Scissors,
|
||||||
|
Paper => Rock,
|
||||||
|
Scissors => Paper,
|
||||||
|
},
|
||||||
|
Draw => input,
|
||||||
|
Win => match input {
|
||||||
|
Rock => Paper,
|
||||||
|
Paper => Scissors,
|
||||||
|
Scissors => Rock,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn getting_score(game_output: &ResultPlay, play: Play) -> i32 {
|
||||||
|
let game: i32 = (*game_output).into();
|
||||||
|
let play_result: i32 = play.into();
|
||||||
|
game + play_result
|
||||||
|
}
|
||||||
|
|
||||||
|
fn second_strat(play: char, strat: char) -> i32 {
|
||||||
|
let coup = Play::from(play);
|
||||||
|
let response = match strat {
|
||||||
|
'X' => ResultPlay::Loss,
|
||||||
|
'Y' => ResultPlay::Draw,
|
||||||
|
'Z' => ResultPlay::Win,
|
||||||
|
other => panic!("Wrong letter {other}"),
|
||||||
|
};
|
||||||
|
getting_score(&response, choose_answer(&response, coup))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part1(file_path: &str) -> i32 {
|
||||||
|
let contents =
|
||||||
|
std::fs::read_to_string(file_path).expect("Please provide a text file as an argument.");
|
||||||
|
let lines: Vec<&str> = contents.split('\n').collect();
|
||||||
|
lines
|
||||||
|
.iter()
|
||||||
|
.map(|line| {
|
||||||
|
let mut line_iter = line.chars();
|
||||||
|
let first: char = line_iter.next().unwrap_or('R');
|
||||||
|
let last: char = line_iter.last().unwrap_or('R');
|
||||||
|
round_score(first, last)
|
||||||
|
})
|
||||||
|
.collect::<Vec<i32>>()
|
||||||
|
.iter()
|
||||||
|
.sum()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part2(file_path: &str) -> i32 {
|
||||||
|
let contents =
|
||||||
|
std::fs::read_to_string(file_path).expect("Please provide a text file as an argument.");
|
||||||
|
let lines: Vec<&str> = contents.split('\n').collect();
|
||||||
|
lines
|
||||||
|
.iter()
|
||||||
|
.map(|line| {
|
||||||
|
let mut line_iter = line.chars();
|
||||||
|
let first: char = line_iter.next().unwrap_or('R');
|
||||||
|
let last: char = line_iter.last().unwrap_or('R');
|
||||||
|
second_strat(first, last)
|
||||||
|
})
|
||||||
|
.collect::<Vec<i32>>()
|
||||||
|
.iter()
|
||||||
|
.sum()
|
||||||
|
}
|
75
src/prob3/mod.rs
Normal file
75
src/prob3/mod.rs
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
use std::collections::HashSet;
|
||||||
|
|
||||||
|
fn character_to_code(input: i32) -> i32 {
|
||||||
|
if input >= ('a' as i32) {
|
||||||
|
input - 96
|
||||||
|
} else {
|
||||||
|
input - 38
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part1(file_path: &str) -> i32 {
|
||||||
|
let binding =
|
||||||
|
std::fs::read_to_string(file_path).expect("Please provide a text file as an argument.");
|
||||||
|
binding
|
||||||
|
.lines()
|
||||||
|
.collect::<Vec<&str>>()
|
||||||
|
.iter()
|
||||||
|
.map(|item: &&str| {
|
||||||
|
let (first, last) = item.split_at(item.len() / 2);
|
||||||
|
let second = last.chars().collect::<HashSet<char>>();
|
||||||
|
let intersection = first.chars().collect::<HashSet<char>>();
|
||||||
|
let character = *intersection
|
||||||
|
.intersection(&second)
|
||||||
|
.next()
|
||||||
|
.unwrap_or(&(0 as char)) as i32;
|
||||||
|
character_to_code(character)
|
||||||
|
})
|
||||||
|
.collect::<Vec<i32>>()
|
||||||
|
.iter()
|
||||||
|
.sum::<i32>()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part2(file_path: &str) -> i32 {
|
||||||
|
let binding =
|
||||||
|
std::fs::read_to_string(file_path).expect("Please provide a text file as an argument.");
|
||||||
|
let mut iter = binding.lines();
|
||||||
|
binding
|
||||||
|
.lines()
|
||||||
|
.step_by(3)
|
||||||
|
.collect::<Vec<&str>>()
|
||||||
|
.iter()
|
||||||
|
.map(|_item| {
|
||||||
|
let common_letter = {
|
||||||
|
let first = &iter
|
||||||
|
.next()
|
||||||
|
.expect("Expected a string, not nothing.")
|
||||||
|
.chars()
|
||||||
|
.collect::<HashSet<char>>()
|
||||||
|
& &iter
|
||||||
|
.next()
|
||||||
|
.expect("Expected a string, not nothing.")
|
||||||
|
.chars()
|
||||||
|
.collect::<HashSet<char>>();
|
||||||
|
&first
|
||||||
|
& &iter
|
||||||
|
.next()
|
||||||
|
.expect("Expected a string, not nothing.")
|
||||||
|
.chars()
|
||||||
|
.collect::<HashSet<char>>()
|
||||||
|
};
|
||||||
|
if !common_letter.is_empty() && common_letter.len() > 1 {
|
||||||
|
panic!("Anormal behavior. Must have only 1 element in {common_letter:?}");
|
||||||
|
} else {
|
||||||
|
let unique_letter = *common_letter
|
||||||
|
.iter()
|
||||||
|
.last()
|
||||||
|
.expect("Impossible to have this message else Rust has a problem...")
|
||||||
|
as i32;
|
||||||
|
character_to_code(unique_letter)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect::<Vec<i32>>()
|
||||||
|
.iter()
|
||||||
|
.sum::<i32>()
|
||||||
|
}
|
41
src/prob4/mod.rs
Normal file
41
src/prob4/mod.rs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
pub fn mutual_inclusion(first_pair: &[u32], second_pair: &[u32]) -> bool {
|
||||||
|
(first_pair[0] <= second_pair[0] && first_pair[1] >= second_pair[1])
|
||||||
|
|| (second_pair[0] <= first_pair[0] && second_pair[1] >= first_pair[1])
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn complete_overlap(first_pair: &[u32], second_pair: &[u32]) -> bool {
|
||||||
|
first_pair[0] >= second_pair[0] && first_pair[0] <= second_pair[1]
|
||||||
|
|| first_pair[1] >= second_pair[0] && first_pair[1] <= second_pair[1]
|
||||||
|
|| mutual_inclusion(first_pair, second_pair)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve(file_path: &str, unary_operator: &dyn Fn(&[u32], &[u32]) -> bool) -> i32 {
|
||||||
|
std::fs::read_to_string(file_path)
|
||||||
|
.unwrap_or_else(|err| panic!("Please provide a text file as an argument: {err}"))
|
||||||
|
.lines()
|
||||||
|
.map(|line| {
|
||||||
|
let tmp = line.split(',').collect::<Vec<&str>>();
|
||||||
|
let first_pair = tmp
|
||||||
|
.first()
|
||||||
|
.unwrap_or_else(|| panic!("First character error"))
|
||||||
|
.split('-')
|
||||||
|
.map(|first_split| {
|
||||||
|
first_split
|
||||||
|
.parse::<u32>()
|
||||||
|
.unwrap_or_else(|err| panic!("Parsing number in first pair failed: {err}"))
|
||||||
|
})
|
||||||
|
.collect::<Vec<u32>>();
|
||||||
|
let second_pair = tmp
|
||||||
|
.last()
|
||||||
|
.unwrap_or_else(|| panic!("First character error"))
|
||||||
|
.split('-')
|
||||||
|
.map(|first_split| {
|
||||||
|
first_split
|
||||||
|
.parse::<u32>()
|
||||||
|
.unwrap_or_else(|err| panic!("Parsing number in first pair failed: {err}"))
|
||||||
|
})
|
||||||
|
.collect::<Vec<u32>>();
|
||||||
|
i32::from(unary_operator(&first_pair, &second_pair))
|
||||||
|
})
|
||||||
|
.sum()
|
||||||
|
}
|
169
src/prob5.rs
Normal file
169
src/prob5.rs
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
use std::collections::VecDeque;
|
||||||
|
|
||||||
|
use itertools::Itertools;
|
||||||
|
use nom::{
|
||||||
|
branch::alt,
|
||||||
|
bytes::complete::{tag, take, take_while1},
|
||||||
|
combinator::{all_consuming, map, map_res, opt},
|
||||||
|
Finish,
|
||||||
|
IResult, sequence::{delimited, preceded, tuple},
|
||||||
|
};
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct Instruction {
|
||||||
|
quantity: usize,
|
||||||
|
src: usize,
|
||||||
|
dst: usize,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Used to parse a crate
|
||||||
|
///
|
||||||
|
/// # Arguments
|
||||||
|
///
|
||||||
|
/// * `i`:
|
||||||
|
///
|
||||||
|
/// returns: Result<(&str, char), Err<Error<I>>>
|
||||||
|
///
|
||||||
|
fn parse_crate(i: &str) -> IResult<&str, char> {
|
||||||
|
let first_char = |s: &str| s.chars().next().unwrap();
|
||||||
|
let f = delimited(tag("["), take(1_usize), tag("]"));
|
||||||
|
map(f, first_char)(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_hole(i: &str) -> IResult<&str, ()> {
|
||||||
|
// `drop` takes a value and returns nothing, which is
|
||||||
|
// perfect for our case
|
||||||
|
map(tag(" "), drop)(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_crate_or_hole(i: &str) -> IResult<&str, Option<char>> {
|
||||||
|
alt((map(parse_crate, Some), map(parse_hole, |_| None)))(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_crate_line(i: &str) -> IResult<&str, Vec<Option<char>>> {
|
||||||
|
let (mut i, c) = parse_crate_or_hole(i)?;
|
||||||
|
let mut v = vec![c];
|
||||||
|
|
||||||
|
loop {
|
||||||
|
let (next_i, maybe_c) = opt(preceded(tag(" "), parse_crate_or_hole))(i)?;
|
||||||
|
match maybe_c {
|
||||||
|
Some(c) => v.push(c),
|
||||||
|
None => break,
|
||||||
|
}
|
||||||
|
i = next_i;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok((i, v))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn transpose_rev<T>(v: Vec<Vec<Option<T>>>) -> Vec<VecDeque<T>> {
|
||||||
|
assert!(!v.is_empty());
|
||||||
|
let len = v
|
||||||
|
.iter()
|
||||||
|
.max_by(|x, y| x.len().cmp(&y.len()))
|
||||||
|
.unwrap_or_else(|| panic!(""))
|
||||||
|
.len();
|
||||||
|
|
||||||
|
let mut iters: Vec<_> = v.into_iter().map(|n| n.into_iter()).collect();
|
||||||
|
(0..len)
|
||||||
|
.map(|_| {
|
||||||
|
iters
|
||||||
|
.iter_mut()
|
||||||
|
.filter_map(|n| n.next())
|
||||||
|
.flatten()
|
||||||
|
.collect::<VecDeque<T>>()
|
||||||
|
})
|
||||||
|
.collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_number(i: &str) -> IResult<&str, usize> {
|
||||||
|
map_res(take_while1(|c: char| c.is_ascii_digit()), |s: &str| {
|
||||||
|
s.parse::<usize>()
|
||||||
|
})(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_pile_number(i: &str) -> IResult<&str, usize> {
|
||||||
|
map(parse_number, |i| i - 1)(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_instruction(i: &str) -> IResult<&str, Instruction> {
|
||||||
|
map(
|
||||||
|
tuple((
|
||||||
|
preceded(tag("move "), parse_number),
|
||||||
|
preceded(tag(" from "), parse_pile_number),
|
||||||
|
preceded(tag(" to "), parse_pile_number),
|
||||||
|
)),
|
||||||
|
|(quantity, src, dst)| Instruction { quantity, src, dst },
|
||||||
|
)(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parser(content: &str) -> (Vec<VecDeque<char>>, Vec<Instruction>) {
|
||||||
|
let mut lines = content.lines();
|
||||||
|
let crate_lines = (&mut lines)
|
||||||
|
.map_while(|line| {
|
||||||
|
all_consuming(parse_crate_line)(line)
|
||||||
|
.finish()
|
||||||
|
.ok()
|
||||||
|
.map(|(_, line)| line)
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let crate_columns = {
|
||||||
|
let mut tmp = transpose_rev(crate_lines);
|
||||||
|
tmp.iter_mut().for_each(|item| {
|
||||||
|
item.make_contiguous();
|
||||||
|
});
|
||||||
|
tmp
|
||||||
|
};
|
||||||
|
|
||||||
|
assert!(lines.next().unwrap().is_empty());
|
||||||
|
|
||||||
|
let instructions = lines
|
||||||
|
.map(|line| all_consuming(parse_instruction)(line).finish().unwrap().1)
|
||||||
|
.collect::<Vec<Instruction>>();
|
||||||
|
(crate_columns, instructions)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part1(file_path: &str) -> String {
|
||||||
|
let content = std::fs::read_to_string(file_path).unwrap_or_else(|err| panic!("{err}"));
|
||||||
|
let (mut crate_columns, instructions) = parser(&content);
|
||||||
|
instructions.iter().for_each(|ins| {
|
||||||
|
(0..ins.quantity).for_each(|_| {
|
||||||
|
let tmp = crate_columns
|
||||||
|
.get_mut(ins.src)
|
||||||
|
.unwrap_or_else(|| panic!("Index {} is out of bound of crate_columns.", ins.src))
|
||||||
|
.pop_front()
|
||||||
|
.unwrap_or_else(|| panic!("Could not pop front the column {}", ins.src));
|
||||||
|
crate_columns
|
||||||
|
.get_mut(ins.dst)
|
||||||
|
.unwrap_or_else(|| panic!("Index {} is out of bound", ins.dst))
|
||||||
|
.push_front(tmp);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
crate_columns
|
||||||
|
.iter()
|
||||||
|
.map(|item| item.front().unwrap())
|
||||||
|
.join("")
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part2(file_path: &str) -> String {
|
||||||
|
let content = std::fs::read_to_string(file_path).unwrap_or_else(|err| panic!("{err}"));
|
||||||
|
let (mut crate_columns, instructions) = parser(&content);
|
||||||
|
instructions.iter().for_each(|ins| {
|
||||||
|
let mut test = vec!['\0'; ins.quantity];
|
||||||
|
(0..ins.quantity).for_each(|i| {
|
||||||
|
test[i] = crate_columns[ins.src]
|
||||||
|
.pop_front()
|
||||||
|
.unwrap_or_else(|| panic!("Could not pop front the column {}", ins.src));
|
||||||
|
//crate_columns[ins.dst].push_front(tmp);
|
||||||
|
});
|
||||||
|
test.reverse();
|
||||||
|
test.iter_mut()
|
||||||
|
.for_each(|tmp| crate_columns[ins.dst].push_front(*tmp));
|
||||||
|
});
|
||||||
|
crate_columns
|
||||||
|
.iter()
|
||||||
|
.map(|item| item.front().unwrap())
|
||||||
|
.join("")
|
||||||
|
}
|
17
src/prob6.rs
Normal file
17
src/prob6.rs
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
|
fn begin_datagram(datagram: &str, size: usize) -> usize {
|
||||||
|
size + datagram
|
||||||
|
.as_bytes()
|
||||||
|
.windows(size)
|
||||||
|
.position(|window| window.iter().tuple_combinations().all(|(a, b)| a != b))
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part1(content: &str) -> i32 {
|
||||||
|
begin_datagram(content, 4) as i32
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part2(content: &str) -> i32 {
|
||||||
|
begin_datagram(content, 14) as i32
|
||||||
|
}
|
176
src/prob7.rs
Normal file
176
src/prob7.rs
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
use camino::Utf8PathBuf;
|
||||||
|
use id_tree::{InsertBehavior, Node, Tree};
|
||||||
|
use nom::{
|
||||||
|
branch::alt,
|
||||||
|
bytes::complete::{tag, take_while1},
|
||||||
|
combinator::{all_consuming, map},
|
||||||
|
sequence::{preceded, separated_pair},
|
||||||
|
Finish, IResult,
|
||||||
|
};
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct Ls;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct Cd(Utf8PathBuf);
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
enum Entry {
|
||||||
|
Dir(Utf8PathBuf),
|
||||||
|
File(u64, Utf8PathBuf),
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
enum Command {
|
||||||
|
Ls,
|
||||||
|
Cd(Utf8PathBuf),
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
enum Line {
|
||||||
|
Command(Command),
|
||||||
|
Entry(Entry),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<Ls> for Command {
|
||||||
|
fn from(_ls: Ls) -> Self {
|
||||||
|
Command::Ls
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<Cd> for Command {
|
||||||
|
fn from(cd: Cd) -> Self {
|
||||||
|
Command::Cd(cd.0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
#[derive(Debug, Default)]
|
||||||
|
struct FsEntry {
|
||||||
|
path: Utf8PathBuf,
|
||||||
|
size: u64,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_entry(input: &str) -> IResult<&str, Entry> {
|
||||||
|
let parse_file = map(
|
||||||
|
separated_pair(nom::character::complete::u64, tag(" "), parse_path),
|
||||||
|
|(size, path)| Entry::File(size, path),
|
||||||
|
);
|
||||||
|
let parse_dir = map(preceded(tag("dir "), parse_path), Entry::Dir);
|
||||||
|
|
||||||
|
alt((parse_file, parse_dir))(input)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_path(input: &str) -> IResult<&str, Utf8PathBuf> {
|
||||||
|
map(
|
||||||
|
take_while1(|c: char| "abcdefghijklmnopqrstuvwxyz./".contains(c)),
|
||||||
|
Into::into,
|
||||||
|
)(input)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_ls(input: &str) -> IResult<&str, Ls> {
|
||||||
|
map(tag("ls"), |_| Ls)(input)
|
||||||
|
}
|
||||||
|
fn parse_cd(input: &str) -> IResult<&str, Cd> {
|
||||||
|
map(preceded(tag("cd "), parse_path), Cd)(input)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_command(line: &str) -> IResult<&str, Command> {
|
||||||
|
let (input, _) = tag("$ ")(line)?;
|
||||||
|
alt((map(parse_ls, Into::into), map(parse_cd, Into::into)))(input)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_line(input: &str) -> IResult<&str, Line> {
|
||||||
|
alt((
|
||||||
|
map(parse_command, Line::Command),
|
||||||
|
map(parse_entry, Line::Entry),
|
||||||
|
))(input)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn total_size(tree: &Tree<FsEntry>, node: &Node<FsEntry>) -> color_eyre::Result<u64> {
|
||||||
|
let mut total = node.data().size;
|
||||||
|
for child in node.children() {
|
||||||
|
total += total_size(tree, tree.get(child)?)?;
|
||||||
|
}
|
||||||
|
Ok(total)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn generate_tree(content: &str) -> color_eyre::Result<Tree<FsEntry>> {
|
||||||
|
let lines = content.lines().map(|line| {
|
||||||
|
all_consuming(parse_line)(line)
|
||||||
|
.finish()
|
||||||
|
.unwrap_or_else(|err| panic!("{err}"))
|
||||||
|
.1
|
||||||
|
});
|
||||||
|
|
||||||
|
let mut tree = Tree::<FsEntry>::new();
|
||||||
|
let root = tree.insert(
|
||||||
|
Node::new(FsEntry {
|
||||||
|
path: "/".into(),
|
||||||
|
size: 0,
|
||||||
|
}),
|
||||||
|
InsertBehavior::AsRoot,
|
||||||
|
)?;
|
||||||
|
let mut curr = root;
|
||||||
|
|
||||||
|
for line in lines {
|
||||||
|
match line {
|
||||||
|
Line::Command(cmd) => match cmd {
|
||||||
|
Command::Ls => {}
|
||||||
|
Command::Cd(path) => match path.as_str() {
|
||||||
|
"/" => {}
|
||||||
|
".." => {
|
||||||
|
curr = tree.get(&curr)?.parent().unwrap().clone();
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
curr = tree.insert(
|
||||||
|
Node::new(FsEntry {
|
||||||
|
path: path.clone(),
|
||||||
|
size: 0,
|
||||||
|
}),
|
||||||
|
InsertBehavior::UnderNode(&curr),
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Line::Entry(entry) => match entry {
|
||||||
|
Entry::Dir(_) => {}
|
||||||
|
Entry::File(size, name) => {
|
||||||
|
tree.insert(
|
||||||
|
Node::new(FsEntry { path: name, size }),
|
||||||
|
InsertBehavior::UnderNode(&curr),
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(tree)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part1(content: &str) -> color_eyre::Result<u64> {
|
||||||
|
let tree = generate_tree(content)?;
|
||||||
|
let sum = tree
|
||||||
|
.traverse_pre_order(tree.root_node_id().unwrap())?
|
||||||
|
.filter(|n| !n.children().is_empty())
|
||||||
|
.map(|n| total_size(&tree, n).unwrap())
|
||||||
|
.filter(|&s| s <= 100_000)
|
||||||
|
.sum::<u64>();
|
||||||
|
Ok(sum)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn solve_part2(content: &str) -> color_eyre::Result<u64> {
|
||||||
|
let total_space = 70000000_u64;
|
||||||
|
let tree = generate_tree(content)?;
|
||||||
|
let used_space = total_size(&tree, tree.get(tree.root_node_id().unwrap())?)?;
|
||||||
|
let free_space = total_space.checked_sub(used_space).unwrap();
|
||||||
|
let needed_free_space = 30000000_u64;
|
||||||
|
let minimum_space_to_free = needed_free_space.checked_sub(free_space).unwrap();
|
||||||
|
|
||||||
|
let size_to_remove = tree
|
||||||
|
.traverse_pre_order(tree.root_node_id().unwrap())?
|
||||||
|
.filter(|n| !n.children().is_empty())
|
||||||
|
.map(|n| total_size(&tree, n).unwrap())
|
||||||
|
.filter(|&s| s >= minimum_space_to_free)
|
||||||
|
.min().unwrap();
|
||||||
|
Ok(size_to_remove)
|
||||||
|
}
|
0
src/prob8.rs
Normal file
0
src/prob8.rs
Normal file
Loading…
Add table
Reference in a new issue