Compare commits
22 Commits
master
...
3cca0097ed
Author | SHA1 | Date | |
---|---|---|---|
3cca0097ed | |||
e5f6c540c9 | |||
a579c099d7 | |||
8ca945007b | |||
7b45a4748c | |||
8a2f37c67f | |||
f73bc65d9f | |||
a9127c3301 | |||
ab92541119 | |||
3bd486af95 | |||
e54aad2d33 | |||
8ae82163b4 | |||
5a02a5bbe9 | |||
a96624e0a0 | |||
be1cd454fe | |||
38f1b5a037 | |||
8dc9b8fcbb | |||
d8f191fd9b | |||
77cb399748 | |||
beeb89a2f6 | |||
64851dd68b | |||
2fd479d02d |
3
.nova/Configuration.json
Normal file
3
.nova/Configuration.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"editor.default_syntax" : "rust"
|
||||||
|
}
|
12
.nova/Tasks/Cargo.json
Normal file
12
.nova/Tasks/Cargo.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"buildBeforeRunning" : true,
|
||||||
|
"extension" : {
|
||||||
|
"identifier" : "com.kilb.rust",
|
||||||
|
"name" : "Rust"
|
||||||
|
},
|
||||||
|
"extensionTemplate" : "cargo",
|
||||||
|
"extensionValues" : {
|
||||||
|
|
||||||
|
},
|
||||||
|
"openLogOnRun" : "start"
|
||||||
|
}
|
23
Cargo.lock
generated
23
Cargo.lock
generated
@ -25,7 +25,9 @@ name = "aoc-2022"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
|
"itertools",
|
||||||
"regex",
|
"regex",
|
||||||
|
"tuple-map",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -127,6 +129,12 @@ dependencies = [
|
|||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "either"
|
||||||
|
version = "1.8.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "iana-time-zone"
|
name = "iana-time-zone"
|
||||||
version = "0.1.53"
|
version = "0.1.53"
|
||||||
@ -151,6 +159,15 @@ dependencies = [
|
|||||||
"cxx-build",
|
"cxx-build",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itertools"
|
||||||
|
version = "0.10.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
||||||
|
dependencies = [
|
||||||
|
"either",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "js-sys"
|
name = "js-sys"
|
||||||
version = "0.3.60"
|
version = "0.3.60"
|
||||||
@ -287,6 +304,12 @@ dependencies = [
|
|||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tuple-map"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "23d5919d7121237af683b7fa982450597b1eaa2643e597aec3b519e4e5ab3d62"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-ident"
|
name = "unicode-ident"
|
||||||
version = "1.0.5"
|
version = "1.0.5"
|
||||||
|
48
Cargo.toml
48
Cargo.toml
@ -7,33 +7,35 @@ edition = "2021"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
chrono = "0.4.23"
|
chrono = "0.4.23"
|
||||||
|
itertools = "0.10.5"
|
||||||
regex = "1.7.0"
|
regex = "1.7.0"
|
||||||
|
tuple-map = "0.4.0"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["a", "b", "today"]
|
default = ["part1", "part2", "today"]
|
||||||
a = []
|
part1 = []
|
||||||
b = []
|
part2 = []
|
||||||
today = []
|
today = []
|
||||||
01 = []
|
day01 = []
|
||||||
02 = []
|
day02 = []
|
||||||
03 = []
|
day03 = []
|
||||||
04 = []
|
day04 = []
|
||||||
05 = []
|
day05 = []
|
||||||
06 = []
|
day06 = []
|
||||||
07 = []
|
day07 = []
|
||||||
08 = []
|
day08 = []
|
||||||
09 = []
|
day09 = []
|
||||||
10 = []
|
day10 = []
|
||||||
11 = []
|
day11 = []
|
||||||
12 = []
|
day12 = []
|
||||||
13 = []
|
day13 = []
|
||||||
14 = []
|
day14 = []
|
||||||
15 = []
|
day15 = []
|
||||||
16 = []
|
day16 = []
|
||||||
17 = []
|
day17 = []
|
||||||
18 = []
|
day18 = []
|
||||||
19 = []
|
day19 = []
|
||||||
20 = []
|
day20 = []
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2235
input/01.txt
2235
input/01.txt
File diff suppressed because it is too large
Load Diff
2500
input/02.txt
Normal file
2500
input/02.txt
Normal file
File diff suppressed because it is too large
Load Diff
300
input/03.txt
Normal file
300
input/03.txt
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
sfDRhjhHsHhgWPJvPmmQnmPqnW
|
||||||
|
pTddGVwcpMTTCdnQJqqQqqqVtVms
|
||||||
|
MdZCZGdcrCNRFZRhFssL
|
||||||
|
CttWnSnNfSnCHsWrTlTPPpPCTRrLpl
|
||||||
|
DgqqghjqJBVgDMTPGVlRGwbfLLGP
|
||||||
|
cgqBBhjqcBdMcWQcQNnNzsfv
|
||||||
|
lnDWMgTLlTFlHHgDDgngWFnlBWNcBQrdjcrrdQrPBrdjhWhj
|
||||||
|
JqSVRRVmmRqJJbZGGJqJvbmBNcjPNQNssQPhSSdwPwwwQr
|
||||||
|
bCRJqGJJmzmJZRCmFNTLTttTzfFfLglf
|
||||||
|
SPWvWMvCSPcjzjDbcwfjTl
|
||||||
|
lLNRNLqhhQVQJlRjrjrDwTzzqzzfrb
|
||||||
|
GRnRVhRJLFnnhtJQNVdLdLgWCmmZlMlgSCSWSgpZtPBM
|
||||||
|
pTGFrLFTFWFprLDBmLbSbtmBDb
|
||||||
|
MqjwqJwZlqJjHlqjHHPmSbsffDmsStDnHnQmsm
|
||||||
|
ZPJjVPZbVMRRPZwMJZVMNJMcGWpWFcWFFNFGrWTzWzFrzG
|
||||||
|
MffZZtMTnTtSZLdfgSMtCHSbmWsGwbHGSqvmCqWb
|
||||||
|
lzpQhrhphhlzDDhRPmBvqHGRbBbwbbssCB
|
||||||
|
JJljpvhFrrjhptnddMJfdtgnMT
|
||||||
|
drCtpNLCLpTpJSdswQhvDbHZHDLDHQ
|
||||||
|
WmWgBWRcRzVVWVBgBBnnlfgWHjmvjQhwbbbshQvZDQQjsHZC
|
||||||
|
fqBzggWPPzBWBzffcfnMJdtFtrpqrGMpdCCTdM
|
||||||
|
JwJWqNBNNdzzBSzGsqbdNJbVMpptPmZMrVZrrZMtPmPwDp
|
||||||
|
THgfgffffHRhQRLVMGVQmGtLDGmM
|
||||||
|
TjGchhlHhGfhRHgRgWJSqzJWWlqNSzsWSJ
|
||||||
|
dNmPlzdvdspsFWwQmG
|
||||||
|
bhZSbVJBJnLNTnwWVHMGwQsGMFFw
|
||||||
|
RnnbbTnSnSSTTnLfRCCPqDPDNDlfCfDDcr
|
||||||
|
lhhTcnPchPPHCCStwWTHbS
|
||||||
|
GDRFNqlQJsGJqGJDqVNsqssDQBSZWHQBCZHHwbZbtHtwCbZW
|
||||||
|
RNJrFJFJDrmqsVjNmDvrvfzfffcvdpMrvlfh
|
||||||
|
DtLdNGHNfwBJQwgCrncgpSpcnlfC
|
||||||
|
sGqWPMPTvPPhTjjsqRqPvSlzFFpjnnSrjczprgllFF
|
||||||
|
vVPGPGMbPGqTRWsMqZhqvbZNLLmLQddQdmBtBwBNBwNB
|
||||||
|
ChVzhwpdpqHhtNmHHNHt
|
||||||
|
QsjGTQcTWQjfjbssQDPmHgfrrVrPZnntZD
|
||||||
|
jTGJSGvWJwqlvlCBqV
|
||||||
|
pRVcSRffTPfBWfNVfWBWdJdwhvvwGjjFmGvhLTdh
|
||||||
|
qsrHqtbDZqsnsZqCQDtHnQQLwFvJFhGJwddvwLcCwJJJdv
|
||||||
|
sgcqHnzqqzgnHnqrstZzqsnSPllRlVVSNpWVNVRgMBlVPW
|
||||||
|
WRQTtHrTrrDRvQDHrbtJlpdhLdGsDllfspLpphhs
|
||||||
|
GzCSqCSmSmVSpsljphlpsL
|
||||||
|
gVwCVGzmNmCNRQTvJQJHnvwQ
|
||||||
|
psBDsswNjBcqtHtsTHsqtM
|
||||||
|
vQrPqZPmvgQZrfgmPrfJQlLvnLzVHLnSnnTLTnnHMt
|
||||||
|
PRCJRPgmqrmZmmqQQDDRwwNwjwDwpFjDDW
|
||||||
|
VtBgCqbVjPbSbHtPRdrssZMFZlrRsBRw
|
||||||
|
LzWmhcDqTDvnDWTFMrwRvwFrGZdGlZ
|
||||||
|
zJLczJDnWDpDNzmDczWLzWzWNCbbttHPCHbSVbqgHSCjffQf
|
||||||
|
TjTfvJjjvcjTQcDzMDfQTLLbLgVVVhMrWWblghbbLN
|
||||||
|
dZHFSpqpqpbWrhhlWh
|
||||||
|
dFwPBHqFSqwZSmZmSlqZjTvvJTmzcJsTTTjfvsfQ
|
||||||
|
qqqNTlfjzbMGJlHMSZtZzZgRZDgZDzdS
|
||||||
|
nLCCVVcmgCdZdSlg
|
||||||
|
cmQscBVpFsppsVlffQGJHjlWHJGq
|
||||||
|
whwVGGZhVLwhsFFDCTrDccCctrcctL
|
||||||
|
CzSSvPSzTBStSWND
|
||||||
|
HllCHvHJPPqjCPvbfdvvbsmhdRRRsmZhsRdMFQMRFQ
|
||||||
|
gFCfCVfCsLCftsBsDbSHrbJRJJtrmrddrd
|
||||||
|
hqQpqWhlNlpMlppfdTRhmbmTdbdHJH
|
||||||
|
NGvvjvpvpfGgGGDCZZBg
|
||||||
|
rmBtgdddtqmmrqBGbLGJlmctWWvbNzvfpsVVfzzSVSTsWNpz
|
||||||
|
RPDRjMhDFljvsvzlSs
|
||||||
|
wDChhnCQwDwmgJclqrgm
|
||||||
|
WHrrDbWHQPzNrrRVMQJMQGvvsvvjnDLvfsjsvwfGws
|
||||||
|
dhdhZhcphZZZmtFFTcZSmcZsnfqjLRnngnpwnGfqfvvnRs
|
||||||
|
FZcZhtmhFCttldFlSSmlSthQJzNVMbRPWWPJzrbbJCNMPH
|
||||||
|
wMFBpvTppLpwfNfjggmNmGTj
|
||||||
|
ddSDDbGHnRDQDZRHSZSdRZDQzjjrzNNNfnmNrllhgglhfgWg
|
||||||
|
bCQqsJqGDZCHbppwvtVMMvJcLL
|
||||||
|
pSpSVdLDFCvDDvCFvJgwjsJbNtmtJgSjmj
|
||||||
|
ZcWNNBQfwjsttsbc
|
||||||
|
WNQMBflQQNGQrFpFVVRDHpCMDR
|
||||||
|
PfPvqLphWpWLtZSWpWLPjwJbmDwJbbDbmJVjPQ
|
||||||
|
lQQnRGMllMjswrmwJM
|
||||||
|
ggRGFFGGdlGGzFFzzFFcNBvSfLQZShZTtdLWWZWSWZSp
|
||||||
|
lCfgHsVHJDdswNRmsMRQ
|
||||||
|
vccvvFVrPcvQNRdnmqdR
|
||||||
|
rctPBrPBTTpPFBLZZcCCgVHJHVjjbLHfCjfS
|
||||||
|
dfGdsGGrlFFlbWjfgblhJhLDLDDMLNvJNLLBnmLB
|
||||||
|
tSppwQQHSSVtwStSpZZVqRJmBDzLvwPmzJznBDDmLBBJ
|
||||||
|
cHvtpRSvptCRbbjrrcfjrWjf
|
||||||
|
BBdHdjgQdjMMsHJscFnrzLpLgznLFzcF
|
||||||
|
wvllmNmVvZfvmZWqcPptPztFSWLFGrrFnt
|
||||||
|
ZbCvqqmNvflfVTbZfNllsjHdjdhhHDTHRBJjjMsc
|
||||||
|
FNCPtPtgLFJwPwflFwSrLFcMczQZTbMVmzzVZMcNVVVb
|
||||||
|
DhRDdhpWQDZmzVSQ
|
||||||
|
vnhBSHppjRBHqpWvrPFtJLJlLvfLPF
|
||||||
|
nmcSnnWjmfCTcHPHJCvh
|
||||||
|
zdDdlrrzGFFLPtPhBBhH
|
||||||
|
NGNGrzrRrzphwwwMmqqfnsfZZNbSjQSN
|
||||||
|
lgznQGWQLQWlnSzHSQlwnlDhCbZhZhZChPChwDcDphcb
|
||||||
|
jTRvVVrMvmLCPNcNZhRNcD
|
||||||
|
jfftvsrVJLsVvJqsmfqjfjlQgzlQWFzHFGGBQgtFgnnH
|
||||||
|
sllpwssrsCwrTRgCHGCTcnZD
|
||||||
|
jjzJtSdhdzbJWhdQqLdzqSHmDZBGZmmcGGgBGTDRBQTD
|
||||||
|
SVjgVhgtbVzJPfFpvvNrNswV
|
||||||
|
StzdmmnnjSRRdhPPdZZd
|
||||||
|
VbTbCqFFMbZTFcNQLgRgQbvvRh
|
||||||
|
pGsqGGGfHGfZVffzwtrHnmJHllznrS
|
||||||
|
NLWJvtLjtLzBjNSvSMDCHfwHSlDMlSSHfZ
|
||||||
|
RTPTVmhpnprfcfgZwgRD
|
||||||
|
PnPGFhGsTphsFpdPnpVdmhwFvBJzbdWNtJJjtNJNjbvJtttN
|
||||||
|
RvmgjDqqjqRgZRMRDpQjQhWsbPLPFnPFFbVVLbdSbnPSvP
|
||||||
|
NwczHBrJTzcBJHrfWJBCJcrCdnPPPNSlLnsnbFnnLlbSFddS
|
||||||
|
rGJwCCCJHwBGGctGDtphQQMppQWZmRpD
|
||||||
|
RPhhSMqRccBDZPPPRhPcNZSzzTLJrWZLmVVQLWZdTQQJWL
|
||||||
|
nwggfwCvbjwvbwpzWLpWVLdrrrQVTm
|
||||||
|
vgnGGCsCtntbFsgqlRVMSqNVBDtPSc
|
||||||
|
mtstjJmvTNBcjRRCHCfH
|
||||||
|
gLpglwwlgHbZbgpgFrdBBBfdfSPBLSSrcS
|
||||||
|
GQGglGWWgMglQFHgbmTmNtDqnDDVJMDMNJ
|
||||||
|
ZMbBZfvVfFfBbMvfMhgbfDsrSTTszcldmTTPmcPFDz
|
||||||
|
QqQQnwrqWQpwRWWpWwJRwNzTTSPpzPPdTPpSPmdSscmS
|
||||||
|
GjjtJRWtwGQjRZVChZMjVCrMMf
|
||||||
|
fJNPTvDPTpHHTPwvjNNHDfTWthhgQQGdBddtlvMsMQMvQh
|
||||||
|
rFbZVZrLmLdGrrhMBQWg
|
||||||
|
FmnzVRFLqVqqVLVRRFZSFmTwfHHjHCNCCDGwjnCDDfNH
|
||||||
|
gQHHQJgCnNJnQFQPRbDQzLRR
|
||||||
|
mwrdpctWtrMvvrrWwGMmGWWPLzFFLSbLnDFsLPdDFbZRLz
|
||||||
|
vGcmGwBBMGtmmrvlMrGlqNghlVjCCnTHHCHgCCjh
|
||||||
|
LmLvVjVjsrmrtmmr
|
||||||
|
tfcnbScRnlMZtHQPCgSQssPdHC
|
||||||
|
RGGGGnRfcwnGbbJRBRcwJfnGtBDhhVptNhDvLLhVvvjBWNvT
|
||||||
|
dZWNQZgQbbNvdWGgZvbTfLrjtrPlGJfrLqLJlj
|
||||||
|
TMmDpwzmVMHpBLfrcccMfqLjct
|
||||||
|
SwnSBTDDTwwzwnnsFSZdRNbQZWRvgSCvbQ
|
||||||
|
WPgZgQLLbMgdBrdnGqqfdhVVvR
|
||||||
|
HzssNTzwlwHHcczwFjMFHjVGrqRqnVThVqrGrGTRqvrf
|
||||||
|
zFzcHFNlzJBLgMQLJCZL
|
||||||
|
nPLNcWtNtlLMccLlWdTjzzbBfBQSzqzBqPqS
|
||||||
|
RbbDZZrGRJhJjgJQSjCfqQCC
|
||||||
|
rrmRbDDwvZDpprbGrbDvtctlVVVHvdtlcMtWHMHV
|
||||||
|
DWrZJrQjWwFcrhzVzbpmpcVqhb
|
||||||
|
MFnFHMNSqbMpMMmG
|
||||||
|
FNngNRBRCgnHCCHRPvLNdgJWwJDlJJDssZDLWWlWQlsl
|
||||||
|
BQqNsGrbBCNbNCrMpGpbHhthRCDRDRJCmDVRhRJP
|
||||||
|
nfvWvcnSWncSTdzzFLJtRmhHmPPVPVTwwHHtTh
|
||||||
|
WfLfnfSJZJvdLFZWngfBMGMppGMrNBbGMpZjrj
|
||||||
|
rccMjBMVJcjjjNNqmmCf
|
||||||
|
LLspTTGsTGntsntTFwnNNfFqQmmNgNqfNQmZvQ
|
||||||
|
tpDTwlGDTGPPsbtsLsnnqGTJzJrJBzHzMVrMRzBMlShVBR
|
||||||
|
PsrNPRjjPbjzjLRWLbjmvtCnMntnpfmtNZNCNv
|
||||||
|
dDlfwwJllhJTcllScSCQvmtCnmtCmQmQmG
|
||||||
|
TTFcdhJwhBFfwJJHhdchVclrsbWsbzqLgbzrrjgVRgsqgW
|
||||||
|
vvcvvDJFcDZPTzwfcwSLczzScz
|
||||||
|
VNnnVVsqGNntsqtBRblqBndSfzCCRzwRfCHSjdfSjzSH
|
||||||
|
pppsMVlGGhhrZwMMDP
|
||||||
|
LltNHMZNHMfNnfgtLHWWbhWjcblSbVbcTWVP
|
||||||
|
vFmCZsqRRBqrVPWsWTWPWb
|
||||||
|
mQBqJRdqQBqQzzRQztgLgntGZttddLMggw
|
||||||
|
ZTCCrCWfGLGBWSwHvHHmHvmTTH
|
||||||
|
bllhnsbjDlqFfqjhnFRppwmvJppmpRRwMNSmmw
|
||||||
|
FlnFDjdtqhDdfZZBrtBrrPLt
|
||||||
|
CRCTHHJcCmJgTSTRcSMcRMVstssSrtprppVFtdrdspNb
|
||||||
|
jjllnvgBLqdsGprtqtFG
|
||||||
|
vQjzWnWZWjBLhjgwcccRJgZPCmJm
|
||||||
|
VRNmBBRNRFcCRcFVRSVSqZLLvvlLqvLfzfMhjJLC
|
||||||
|
TdHsHbDsbHMJLqlLzl
|
||||||
|
bgQGsgWWGGgbDgwGzBNSFrFtVSmwRRNFtn
|
||||||
|
pCCggQPPzWnvlDcWVHGJcNBl
|
||||||
|
LhsLMrwwGlnMBlNG
|
||||||
|
mmhwZmqSLwjLttnFbvgFTpPtPtgFCz
|
||||||
|
TtZSJzFZhZzTFcgFFcmRRmJJQllCHvPshVQsCrshsCssHVHW
|
||||||
|
GjGGDGqdGfbpDBjMdjpBjBNbVHtsWWPHlMlrrrrWWlVlVsCs
|
||||||
|
dBdDdfqLdBjjFRFScRStmLnL
|
||||||
|
GtVppGGPbVgTVFQrZzfrJfJJtMJr
|
||||||
|
DslmNmLsnmNHNNnnqQRZSJSQfqrJzSJn
|
||||||
|
BNljDHsHlvhmBshDljWsDWlHdgvpVTFggVgGcTTpvFPTzGCV
|
||||||
|
GRcnTRtcQTcBTsNtpvhFCmmFhZvFPC
|
||||||
|
bBJMgqWfdwBJfMPPPmvPqhmjvvPC
|
||||||
|
SMJMdJbdfwJgVglMWWVdcQnBzSQDzGGQzRQDTQSB
|
||||||
|
mvjVzLgTzVzvVjJrJgrlMhZRFTtRlRhMRRRtFZ
|
||||||
|
HGqnNNqfnHNGGfCHndBqnqfFlcppsJMZplMFpMtlscRlpC
|
||||||
|
qSnPGqqbnSdVrvQrrSJjSV
|
||||||
|
lWFSWZZvVqnqfnSrJzMcPDjJBJcBMPFJ
|
||||||
|
NGppNgHdHbRsHPbsgGspTwHTMcmMDdJMMmzBDcMBMDQmjMBd
|
||||||
|
TGGLRGwHsGtpHgHpNbpttwrvCnvCrqSSLvWqPqSSnWvn
|
||||||
|
jwcqBNNdZLjSfvPdddRlfb
|
||||||
|
CDVmsgMHCnnDnhVghmDnDCzRRrSrbrlTbsSTlzzlvzPb
|
||||||
|
gCCFmCWDnChGCFHnGCLBcwwjvZQZNtGqqNZc
|
||||||
|
LBDcNstdNJscccVDhLHNDHVtFvdldlFvCSnSvjSSbblgvZjF
|
||||||
|
rWznQqGMMrmmRZbbwvSFgjwbwm
|
||||||
|
RQnTQfWqqTzTLJJLVtBTsc
|
||||||
|
SvwCTHqCqqqHtwtnnHHDtWgrBQLzzVLLzSQVFhbrSFLL
|
||||||
|
cZmPNmPJdmPjPdcclRPPdhBCFVVVrQzQCCLbcgVbBV
|
||||||
|
fNlmfZfpfWMCtGGpnM
|
||||||
|
bSNssNssbPHVccPhclPGpP
|
||||||
|
ffQfZdZZBDDZgLvhmhzVmVppmlpGgh
|
||||||
|
jdQQQJRljSFFTWCT
|
||||||
|
lvlLtvnhnfvMgtrvWjmTmPPzjHcrmdcjdd
|
||||||
|
qCbssCJbppQZQbRJDQSZCJRpzhmcQjdcTBmmGzmdcmjGmdmT
|
||||||
|
SqwSbJZSpwwFJFDDbqtNVMwVMMlVNgNVlLhV
|
||||||
|
DqGFQGNMGMQwCcgtCJcr
|
||||||
|
sVfjWlzzVsmzVZsdVlHrhjppcgpjrhpphcSJ
|
||||||
|
LRdLsZBWWmlZldZRmzPDvDTTDMGTPFPvBTTc
|
||||||
|
jzzzpjgBzTDQQHPH
|
||||||
|
gLLtZVdCdsLfnbZCbdZtHDfHTJJPPmJJfmHQDJqD
|
||||||
|
bVtWndLtcZgnhsvMSBrMFrvBWNrB
|
||||||
|
sfqhLDcqfqRRqQhQRqMcvlJpJwFgzwpjplwbgpwzLz
|
||||||
|
CrGttnhTWtmSnGrtTtSCZGFzbgHHFFFjljHjZHHFwgwl
|
||||||
|
mBnrrTmWWCGStVCmMcDPcPBqcsRhcvPR
|
||||||
|
GLZLBNrGZdGGVgMVJVhnvn
|
||||||
|
dmWlcqcQMWCJVhMn
|
||||||
|
cdpPqtQbcHlmQjmZswFfTRFpBTfwwT
|
||||||
|
ZhtZpvbnbpPbtLHLvdsNdcRLNd
|
||||||
|
jDDjlCflGwsHfdrfTLrrdN
|
||||||
|
MzmljBMBWPtsbtSQtW
|
||||||
|
GHrzPSrNLFnMtSBZjZBB
|
||||||
|
WWbfDmVmwmmlbVDldWslNnBMJJNZZJCtJJJn
|
||||||
|
vwDfffVvmDwdTvDRQvpLNpLpcRFpphhHLPHg
|
||||||
|
scsTslgcnCTCScSTcqLLWlFWLLqbGvRbpL
|
||||||
|
NZMBdBPtNbbrLGqqqGvqZF
|
||||||
|
NttdbhMPfjQfNtbMbMmNjhNcCzczSSCSJTSzTCScnfnzwC
|
||||||
|
pjdjCGGGWPCMSDfS
|
||||||
|
JhFMFcrgBHPnSnWFWDDn
|
||||||
|
HVBBJctBccghsJhgrbwLGTTdtjLdbmTMMb
|
||||||
|
DtGHgDPfGfPhfLwNWSSJQcpHcr
|
||||||
|
dvlMCzdnMRFCCTjnZNpNQJcSbrWzrpSQWS
|
||||||
|
TVvFJJMjJdlMvRvMClllZZgPtPGsftfDqtGfVGsGtqqq
|
||||||
|
jSmmcjmJqcBgwmWMCLLzCsMz
|
||||||
|
TnTQVDGQTpZGNQHDZDHHQDwsCCdLrflsrCVzVrwWzwrr
|
||||||
|
zDFpppnNQtnTQQvZZZNvnhqqjtRccRbgqqbSSSjPRg
|
||||||
|
FwClNSwCFstWZLDLvhvjvtjhhD
|
||||||
|
TmsHmsmrggzmqnnGGvPGjTbbRGBhbB
|
||||||
|
cHVqgcrVzrQqzHmMcrMnczzcWFVCCFNJZWJZswwFCZWwffwS
|
||||||
|
mzbsmbmLRCZTRbSJFvPLPJPJpJffcP
|
||||||
|
QqWqNVNNNllnnWTglqTVlGNPJDvwcJpwfwccPgccPJDfJF
|
||||||
|
HMGnNMltqGMjHGqMzmTSmzTsRSszSm
|
||||||
|
qlGDfljllCTgqCTvCDfBHHQsbrSZZHSHWtvWZB
|
||||||
|
NzpnNpRnLLwRpdwpVhtqQbSbsWQWbSWnrrnH
|
||||||
|
cFqwFNpLdVcDJlDgccTD
|
||||||
|
BRqjnSBNBpRHHpjpBSnHnRBQfQzzCvzWrsWCTvfsvCsCCsfC
|
||||||
|
ZMVbhqbMdlbLTdsWvfPdPC
|
||||||
|
hlZVDMZcwJNSgjJgJFnq
|
||||||
|
CZwZssQQZrmsCmNNDpDGFblclD
|
||||||
|
HMjWMbBVfnnbMbnzMpFhlNSNFFSDcDGSzN
|
||||||
|
LnLLqjnBMjMngHbnWrTgZsCsgZvvvQrvQs
|
||||||
|
RCFCCJQbCQcprRlHHPpHhd
|
||||||
|
tWWLwvswfvZshgqDpdpBgfdf
|
||||||
|
mZtvZtMpjZzwWFjJTcQQbjjnSQ
|
||||||
|
fBfVwtttLDFctDtwFPWfTppWfmHCHdJhdChT
|
||||||
|
bGMRsbsvMQSSzMzZSNzsZvRNWTZJlmgZTJJdhhmppHTJCgTg
|
||||||
|
jssjNSSGMsQHbsRvHNPjtDcDcLPPPPDwLDDV
|
||||||
|
pClhQjJccrpbpqHhMhVhSMqHPt
|
||||||
|
dBZGZdgBzRsBsvMwGGVPVqMGwtVH
|
||||||
|
ZvDddZvDBdDdDmgCmVmbbCNpCCbljW
|
||||||
|
DTMCpdCnwRDwdfMCDDCssfZmGrBrjpttjrNrgctmGpGr
|
||||||
|
VVqJQgSSWzhPGGrPtNNQtm
|
||||||
|
bFvhgWzHJlDdffswTvRd
|
||||||
|
jwCCPPTtCswCCNTsqRNbMqQMVvVzMMMQSGvQqn
|
||||||
|
hprHlmFcHcdhWWLchZzHrLMvvnBvJJSBJMVMnnmMnMMJ
|
||||||
|
WppLcZdHWHplZWlDHhHTfzRzCCsTTtNNgtjgDw
|
||||||
|
vhmDFcDZmczMrwcqrMrmDFrvggtVSWgtSNwsjBtNVSnBsjsS
|
||||||
|
dbbRJHbpCWBBpZVgSS
|
||||||
|
LZLdHlClPmqLGDvMDv
|
||||||
|
mFbWsvsJVtbbRwfTSP
|
||||||
|
BGpQllhLGqhplBGZBfLMTSTLwwfwMJwMPT
|
||||||
|
GlDnDpQZlZZpZBlpWDNcmrgrWmNdNJvc
|
||||||
|
zbtqTtHQbZZpqbPpvGJdvQdhrhQjdQGs
|
||||||
|
qDFLLSNqcWwsGhGDJh
|
||||||
|
LgBcfnFCSFnLccggSVCVtHZlpqPPtTRMftHMbMzb
|
||||||
|
hzrrWnzRZRnbWVRzjcRHMDdqqQdNMHqHQQjlHM
|
||||||
|
sGCpCtppBfCTgwBBCwPBCssQqMQvNlSMMQDQNqHGHvDSbQ
|
||||||
|
tpLFPgfbCsfbzzcnJhRhZLhc
|
||||||
|
qzzGqfpFvWFmRSPjPjRP
|
||||||
|
cwwVssBMtNMNLngstgVBnrsPmHSJJmjllhQdQldmhdrjQJ
|
||||||
|
nDVSsLwcVcMnBGzTDDCvpvfzGT
|
||||||
|
bcTbbcZGZLPgTMWZpLLDQnrvPVnVmmjmRPFVrF
|
||||||
|
HJCJqlzBdsSjzCJRmlrlrnVQQDFnVF
|
||||||
|
BfwffNdNswLtbWbNcpjt
|
||||||
|
smJwSNNFMzFNDrvbrbfJHvbl
|
||||||
|
BRQjqZQcBhrbTsbTnfcn
|
||||||
|
ZLQRZRBjjPWSsmCdSWMgSN
|
||||||
|
NhwlDpbWggdSBvBggLFg
|
||||||
|
fRrZsVfjqljmsQQVmmsnFMFSBLLRvFTFMBSvFF
|
||||||
|
QfqVVzcsQmcQqrcsNwzzzPphHlwNppPH
|
||||||
|
nnFdsjVdmpBsBVFHzjpvlTfQdPcQQPGPcvlGPv
|
||||||
|
DWMDCCWbNJhLtMgJMNLgtMgQflZQlfQGjZZhQZGhTfQcQP
|
||||||
|
rCrtJJgLLMbgDgMDWNRrWRnzsjpFzBzSHmmqHmqnHH
|
||||||
|
rmjjJmmdwSmGhdsjJtsgGNzFWQFnBFVWHdFQcLLcNz
|
||||||
|
RCCbfRlvvPfvCTnHLLnNbNLczHnQ
|
||||||
|
lqZTllRRpDMlpfZRvgQpSmwwtggQjJgtpS
|
||||||
|
LDsGvTSSsswCwTrLZDqQWHMWbphlHMpGGpQz
|
||||||
|
RRPfPRccBdVjPcFlpMpMQWzMWfpF
|
||||||
|
RjPRjRtczcNBJRSCtLDTvTSDCCST
|
||||||
|
pqQNgNnSntwgqzzQCzNwCNBRcWtBjZcZGrBMcHMGvWcr
|
||||||
|
mmJdJPFVbJbPPGZbMRbvvrjcMj
|
||||||
|
lTMVVlLPfLNQhpgqLSLn
|
||||||
|
HlBHFrgBvlfzFzqvnvFqpCJbJfQpQpLcmhbcmtmm
|
||||||
|
jDjPGsRRTMMPjdJmjmLpCLth
|
||||||
|
MRMZMWsNpFFFVFHW
|
||||||
|
RGgwWcppGSWcWSRWmGdWcttHQFJHfbQwBQJTJQBQfJ
|
||||||
|
njjZZCMlCZjqMBFbJQZHJHBQft
|
||||||
|
DsjCPDDvjFNsMNjNqpGspcsGSmcpccrGWS
|
||||||
|
cVwMZGVZwHNPgPwRZwHttThlHllvlzQpptzppl
|
||||||
|
DsCWdqLdDCnfJLSCqsqWRsBdlhjlhzlttzQhhtvlhnhhhbzT
|
||||||
|
JCWWRWCrLDDdBdLsSsLLSCrCNZMVcmMZMFwMZwNZPZVGFPmr
|
||||||
|
hhPzDzPhPNbfpzhBbdNbDhttzqWtwttHWwntjqmwmWFm
|
||||||
|
LgGZSdMMrgTLrZLdgLSgsGTFFjrWtFFmmmFtWjqHFnFtjn
|
||||||
|
vZgdLvZLZQLRQZQQdMZLdQvVpRhNNPfJDbcBbbhVNJNNhf
|
1000
input/04.txt
Normal file
1000
input/04.txt
Normal file
File diff suppressed because it is too large
Load Diff
511
input/05.txt
Normal file
511
input/05.txt
Normal file
@ -0,0 +1,511 @@
|
|||||||
|
[N] [R] [C]
|
||||||
|
[T] [J] [S] [J] [N]
|
||||||
|
[B] [Z] [H] [M] [Z] [D]
|
||||||
|
[S] [P] [G] [L] [H] [Z] [T]
|
||||||
|
[Q] [D] [F] [D] [V] [L] [S] [M]
|
||||||
|
[H] [F] [V] [J] [C] [W] [P] [W] [L]
|
||||||
|
[G] [S] [H] [Z] [Z] [T] [F] [V] [H]
|
||||||
|
[R] [H] [Z] [M] [T] [M] [T] [Q] [W]
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
move 3 from 9 to 7
|
||||||
|
move 4 from 4 to 5
|
||||||
|
move 2 from 4 to 6
|
||||||
|
move 4 from 7 to 5
|
||||||
|
move 3 from 7 to 3
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 5 from 6 to 3
|
||||||
|
move 5 from 9 to 1
|
||||||
|
move 3 from 8 to 4
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 8 from 1 to 8
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 2 from 8 to 2
|
||||||
|
move 5 from 8 to 4
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 6 from 6 to 4
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 5 from 1 to 7
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 2 from 9 to 8
|
||||||
|
move 6 from 4 to 9
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 3 from 2 to 7
|
||||||
|
move 4 from 2 to 8
|
||||||
|
move 4 from 9 to 3
|
||||||
|
move 6 from 5 to 4
|
||||||
|
move 7 from 8 to 1
|
||||||
|
move 10 from 4 to 1
|
||||||
|
move 12 from 1 to 5
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 2 from 9 to 1
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 9 from 5 to 9
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 2 from 7 to 4
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 7 from 5 to 7
|
||||||
|
move 5 from 1 to 3
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 4 from 9 to 2
|
||||||
|
move 12 from 7 to 9
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 6 from 5 to 9
|
||||||
|
move 3 from 7 to 6
|
||||||
|
move 12 from 9 to 6
|
||||||
|
move 5 from 9 to 1
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 14 from 6 to 1
|
||||||
|
move 20 from 3 to 5
|
||||||
|
move 5 from 9 to 5
|
||||||
|
move 3 from 2 to 8
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 16 from 1 to 5
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 12 from 5 to 6
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 29 from 5 to 1
|
||||||
|
move 5 from 6 to 9
|
||||||
|
move 20 from 1 to 3
|
||||||
|
move 4 from 1 to 3
|
||||||
|
move 11 from 3 to 8
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 7 from 1 to 8
|
||||||
|
move 2 from 3 to 2
|
||||||
|
move 2 from 6 to 7
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 10 from 3 to 5
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 3 from 1 to 2
|
||||||
|
move 6 from 2 to 4
|
||||||
|
move 2 from 6 to 3
|
||||||
|
move 4 from 6 to 5
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 6 from 5 to 2
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 24 from 8 to 7
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 5 from 5 to 4
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 2 from 8 to 9
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 6 from 2 to 4
|
||||||
|
move 10 from 3 to 7
|
||||||
|
move 3 from 5 to 3
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 3 from 3 to 8
|
||||||
|
move 4 from 8 to 7
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 13 from 4 to 3
|
||||||
|
move 17 from 7 to 6
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 14 from 6 to 7
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 2 from 6 to 7
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 29 from 7 to 4
|
||||||
|
move 10 from 4 to 3
|
||||||
|
move 6 from 7 to 5
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 4 from 3 to 2
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 11 from 3 to 4
|
||||||
|
move 24 from 4 to 7
|
||||||
|
move 2 from 2 to 5
|
||||||
|
move 10 from 3 to 2
|
||||||
|
move 6 from 2 to 1
|
||||||
|
move 5 from 4 to 7
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 3 from 5 to 1
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 4 from 2 to 3
|
||||||
|
move 5 from 5 to 7
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 32 from 7 to 5
|
||||||
|
move 16 from 5 to 1
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 3 from 2 to 9
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 3 from 7 to 6
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 5 from 6 to 8
|
||||||
|
move 5 from 8 to 6
|
||||||
|
move 2 from 9 to 3
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 9 from 5 to 4
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 2 from 3 to 1
|
||||||
|
move 4 from 3 to 6
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 6 from 4 to 6
|
||||||
|
move 6 from 5 to 9
|
||||||
|
move 1 from 9 to 6
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 17 from 6 to 4
|
||||||
|
move 4 from 1 to 8
|
||||||
|
move 3 from 9 to 6
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 2 from 6 to 2
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 12 from 1 to 9
|
||||||
|
move 8 from 9 to 2
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 6 from 2 to 8
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 18 from 4 to 9
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 3 from 4 to 3
|
||||||
|
move 7 from 3 to 8
|
||||||
|
move 4 from 2 to 7
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 13 from 9 to 6
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 5 from 9 to 3
|
||||||
|
move 9 from 1 to 2
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 3 from 7 to 6
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 9 from 8 to 6
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 2 from 4 to 6
|
||||||
|
move 5 from 3 to 6
|
||||||
|
move 17 from 6 to 9
|
||||||
|
move 7 from 8 to 4
|
||||||
|
move 4 from 2 to 3
|
||||||
|
move 17 from 6 to 2
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 24 from 9 to 6
|
||||||
|
move 4 from 3 to 1
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 20 from 6 to 4
|
||||||
|
move 4 from 6 to 9
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 2 from 4 to 2
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 25 from 4 to 3
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 5 from 3 to 9
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 10 from 2 to 8
|
||||||
|
move 9 from 2 to 5
|
||||||
|
move 21 from 3 to 6
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 2 from 6 to 5
|
||||||
|
move 5 from 9 to 7
|
||||||
|
move 6 from 7 to 8
|
||||||
|
move 19 from 6 to 9
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 8 from 8 to 1
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 2 from 8 to 5
|
||||||
|
move 5 from 9 to 2
|
||||||
|
move 6 from 8 to 2
|
||||||
|
move 2 from 9 to 7
|
||||||
|
move 9 from 9 to 4
|
||||||
|
move 7 from 2 to 4
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 14 from 5 to 9
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 4 from 2 to 9
|
||||||
|
move 16 from 4 to 6
|
||||||
|
move 3 from 2 to 8
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 2 from 8 to 9
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 3 from 2 to 7
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 8 from 9 to 3
|
||||||
|
move 4 from 7 to 8
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 9 from 3 to 8
|
||||||
|
move 10 from 9 to 5
|
||||||
|
move 8 from 6 to 7
|
||||||
|
move 13 from 8 to 4
|
||||||
|
move 8 from 5 to 2
|
||||||
|
move 3 from 6 to 3
|
||||||
|
move 7 from 9 to 6
|
||||||
|
move 7 from 7 to 2
|
||||||
|
move 2 from 4 to 6
|
||||||
|
move 5 from 6 to 2
|
||||||
|
move 3 from 1 to 5
|
||||||
|
move 5 from 5 to 8
|
||||||
|
move 4 from 6 to 2
|
||||||
|
move 4 from 1 to 8
|
||||||
|
move 15 from 2 to 6
|
||||||
|
move 11 from 4 to 9
|
||||||
|
move 12 from 6 to 8
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 5 from 3 to 7
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 6 from 7 to 1
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 4 from 2 to 6
|
||||||
|
move 4 from 2 to 7
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 4 from 1 to 6
|
||||||
|
move 12 from 6 to 7
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 8 from 9 to 6
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 14 from 8 to 1
|
||||||
|
move 8 from 1 to 5
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 5 from 9 to 5
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 5 from 8 to 3
|
||||||
|
move 12 from 5 to 4
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 6 from 7 to 3
|
||||||
|
move 7 from 3 to 2
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 2 from 1 to 3
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 5 from 6 to 5
|
||||||
|
move 5 from 1 to 7
|
||||||
|
move 4 from 4 to 1
|
||||||
|
move 7 from 2 to 8
|
||||||
|
move 4 from 3 to 8
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 4 from 1 to 8
|
||||||
|
move 10 from 7 to 9
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 2 from 8 to 6
|
||||||
|
move 6 from 4 to 2
|
||||||
|
move 5 from 3 to 1
|
||||||
|
move 2 from 6 to 3
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 5 from 2 to 5
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 7 from 5 to 7
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 3 from 2 to 9
|
||||||
|
move 9 from 9 to 3
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 3 from 3 to 1
|
||||||
|
move 9 from 8 to 2
|
||||||
|
move 6 from 3 to 6
|
||||||
|
move 8 from 7 to 9
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 14 from 1 to 5
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 2 from 3 to 6
|
||||||
|
move 12 from 5 to 3
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 7 from 6 to 2
|
||||||
|
move 12 from 2 to 8
|
||||||
|
move 2 from 6 to 2
|
||||||
|
move 6 from 9 to 6
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 2 from 6 to 7
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 5 from 4 to 2
|
||||||
|
move 14 from 3 to 9
|
||||||
|
move 15 from 9 to 4
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 10 from 8 to 6
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 10 from 8 to 1
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 5 from 1 to 2
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 4 from 5 to 8
|
||||||
|
move 5 from 8 to 6
|
||||||
|
move 14 from 2 to 9
|
||||||
|
move 2 from 6 to 7
|
||||||
|
move 3 from 2 to 9
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 3 from 7 to 1
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 2 from 1 to 4
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 16 from 9 to 4
|
||||||
|
move 7 from 4 to 8
|
||||||
|
move 5 from 8 to 1
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 13 from 6 to 7
|
||||||
|
move 2 from 2 to 3
|
||||||
|
move 4 from 7 to 4
|
||||||
|
move 6 from 4 to 5
|
||||||
|
move 4 from 7 to 6
|
||||||
|
move 3 from 1 to 2
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 3 from 3 to 8
|
||||||
|
move 5 from 5 to 3
|
||||||
|
move 2 from 9 to 6
|
||||||
|
move 3 from 3 to 7
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 22 from 4 to 8
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 9 from 6 to 3
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 4 from 3 to 4
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 4 from 3 to 7
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 18 from 8 to 7
|
||||||
|
move 2 from 6 to 5
|
||||||
|
move 2 from 3 to 4
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 30 from 7 to 6
|
||||||
|
move 2 from 1 to 3
|
||||||
|
move 18 from 6 to 8
|
||||||
|
move 12 from 6 to 4
|
||||||
|
move 13 from 4 to 9
|
||||||
|
move 2 from 3 to 8
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 3 from 7 to 2
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 8 from 8 to 1
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 7 from 1 to 3
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 4 from 2 to 1
|
||||||
|
move 16 from 8 to 1
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 4 from 3 to 7
|
||||||
|
move 3 from 7 to 1
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 6 from 3 to 5
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 16 from 9 to 5
|
||||||
|
move 4 from 5 to 3
|
||||||
|
move 15 from 5 to 1
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 3 from 9 to 8
|
||||||
|
move 9 from 8 to 5
|
||||||
|
move 6 from 5 to 1
|
||||||
|
move 4 from 5 to 6
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 3 from 6 to 8
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 21 from 1 to 9
|
||||||
|
move 4 from 8 to 5
|
||||||
|
move 3 from 5 to 7
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 2 from 8 to 2
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 5 from 1 to 8
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 4 from 8 to 4
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 2 from 7 to 6
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 16 from 1 to 5
|
||||||
|
move 16 from 5 to 7
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 14 from 9 to 6
|
||||||
|
move 5 from 4 to 3
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 5 from 1 to 4
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 7 from 9 to 4
|
||||||
|
move 2 from 9 to 7
|
||||||
|
move 10 from 6 to 9
|
||||||
|
move 8 from 4 to 6
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 1 to 9
|
||||||
|
move 14 from 6 to 3
|
||||||
|
move 10 from 3 to 2
|
||||||
|
move 3 from 7 to 8
|
||||||
|
move 6 from 3 to 1
|
||||||
|
move 2 from 7 to 9
|
||||||
|
move 5 from 7 to 9
|
||||||
|
move 10 from 9 to 1
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 16 from 1 to 4
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 2 from 3 to 9
|
||||||
|
move 3 from 8 to 5
|
||||||
|
move 8 from 7 to 1
|
||||||
|
move 3 from 5 to 9
|
||||||
|
move 7 from 4 to 6
|
||||||
|
move 7 from 1 to 5
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 1 from 7 to 8
|
1
input/06.txt
Normal file
1
input/06.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
pnnfhnhshrhmhwwmwzmznmnwmwfmfhfjfcjjtgtbggpdgdjjbjrjsjpjrrmddmgmpmddrhddnfnfzfpfvpfpprhhlffmtffqhhdtdcdsswsdwswmmfvvpdprrnnhhhtffnfbbznbznnvdnnbffjrfrbfrbrgbrrntnggrqqwtqwwgjgsswgwqwtwwsvwvbwvwrwlrlppzfzwfzzpmzzhqqzqlzlglzzmrmwrmwwvmwvvnppjfjttlffhjjjsccbggnffqgfgjjnccmdmzmllvnlnznttlvlttvnvgnvvqvmvqqzrqqcgglzzwtztwwmjmzjjnddsffqrqlrrvsvdvldvvlgvlvccdzczcqcpphggtnthhhtbhtttcjtjcjgcjcbbrhbbfrffgjgdgzddcttczzsccbpcpddcpcggmjgjddtcccthccfrccmdmhmddnwddfldffntnptnpttcptcptpfphhmfmwfwmmlblgbgvbvlltqltldttfcfcclgcllmplmlbbjnjzjnzzttnvvgddshddsqddggsqgqddsggdhghjgjhhgchhdmdjmjddgdhghrrphrrpnnqhhjwwqrrcmmslmmszzpgzpzzrmzmznzllnjnnlnbbdvdsdffbpffcmmnznqqcbbzvvjnjvvwqwgqqpnnzwnzwnzwwwlpwpzzfqzfqqwnqnbnfnqnbqqbggqnqdndrrzzlffbbgqgfgrfrqqsddnqnqjjgssqwqwcqcpcrrqppwpjjfnfpffhphwwmcwwznwznnplptlplnlsnlsldslslsffwtwftwtbtdbbjsjcczwwfllwtlwtlwlvwlwrwppsggvcvrrqcrqqvmqvmmbrrsbsfspspjpnnmpmqmcczgzffqmfmtmpppwzppzrpzrzsrrpqrpqpmpvmpvpttbqtqmtmjttqdqgggcppclcjcpcsppctpplpdpcppcmmdzmzddvhvhnhrrldllcwwbnwnssshlhrhthggtmggbjbjwwbvbttjllvrrfggngvngnmmvzzrrmddmcddztztctfccqpcpcqqvqppqcqdcdhhvhssgfgzgwwzmmnssvwwbqbhbnhnphpqqjcqcddfwfttqjtqtlttglljgjbgjgnnsqqvrvffqvqfqbffljjpffssqdsqstqqqldqqmhmsmsqqwtqwqdqgdgjjfbjffgbbrhhqghgppqgpgmpmmfzfhhfrhffgmfggpzgpzzhtzhhlbhhqbbzvvnvqnntptmmbhbdhdwwmjjcnnmsscqcbbtjtvjvwjvvmsmjmtmpmgghttcztzggpddbfbfgbbdsdrsrrqfqjjqfjjhzhtzzmdzzcgzgdzzmvmmfmjmgjmggmppbdppmzpppvfppzhhfsfwfhhpjpmmrjjpssdccjpjpwjppvdpphcpcjcfjfwjfwfjwfjjqcqcwqqqsmmmbbgdgwwpcwwdfdlflrltlgtthfhfjhhlthtddlgdggsjsrrdpdcppgttphpgpwppmpzmmrjmmvjvgvgfglfgllbqlqhllszzlwwhzzdfdcdtctptwtztfzzmjzjtjtrjrcrnrjjmwmnnbddgvgtgsstjsszmpqdmzgqflrbrspjmtzjcrmlzltmhgblghnwqvwwqwzbpnfrpdpblpjgshfccfbjfsnwvvhnjftsdnsgtzzjtzpmtfdvzrhtqpblhwgmqtgpbfvbdmsnrrrvvbstpsznvbbwgjfqjrhdvwvgptpglpfddhddmtglmjlpwlvfpbtbmgbplbzrlpdlvqzcwhbscpszgfstjpfdvfpmljlngrbgrdnnblzqrfpzsdvblpwbtnhdjclldvwvbwcwzfzbdspgwpfqjfbdbrqcshtlvcrdstnzggbwqnzbrfzbpnrtmvpbvdhcvdsdshgtvhfgdzljflppqbwclnvbhbczvrscjhlbgbfvwdjhnjsgmvwhpfgwbbmnndpnglfrmtfdzvqgfjdqfhgrhvpbqndmqnqccgwswwdsqjnbjtjbjdbqgjnmfbdvlnfwbnrdqgvgzzhmmbbdzfdvvpwhpbwbnzdcdpchrwlhfsjnhhjggvplmqggwjdsvjtpnpnqgldjjdcscrdltssjdrpcrfbgbcjfplhzgwbprfcslhpcngtszrghmwhzdqscbfrhzdwcffzvmjrmcjcstfvhplvrsglgsjnjtrpddsdfqjsndjnfmvdhfgdbzzflqhsrrwmrnlpqzmcddqbqvvzgtlztpgjnddtcnbmqsjlhmcszrmcjvwzpptlfqsmpvgnzvrjdwzpdwqgbmdgdtvjlmfczthjbcgfhbqpnmlbmrwwhfptzlbmfdhssznjcvjbmnjtnvzjhzczlrrdnttmmcbnzhqpplzqwgttwrnwfvmnptgqlfrnzvqpjfgrzwmlcwvtptvcvrlsrdwdgqfvffspmdbnnrqjttpqvhvdpbcrvzptwnhhfsqzchmncvttcdgdnlppcfzpmjpvbvqhlvplwvrmmbbggbwttwmvsqjlllsftprsmtmnzjcqfzblrllzgshfljchrjwjlpvhpbrtrsschzltrblgjnbgdnmwdggjhqggntblnhsvfgsbcblhmctbqzqwmhqnjhpzjfqpjdgwpzhczcftfcpdhvzhzccmwmrfrbqshzmtpqgpbbvfqqbjbmvnlnlwjtzrpmhdlffccrqcfgsjfszbrzrfztntchtmgmbhjgmlsqzcbtqqjzzlghtzzqmlnnvsgsvbbjfgqsqbqmqrdzwpwdgbggpdvhvnlzshhntprjdwhnwfvdjzpqgflwrvwgtmfdmfdztcbtfnjdrvgdwwczdgphnvdgrbdchprqldfjrvcsflcmlcmzqvqgsgnzcgmrhccgcmptcdzhbcdgdtppwztfstzqqzqrdzlnzthggjmpcflmbcmdrrjnnpbpqfmjbzqbtsjjgdlmgncbmgspqqvbrvzrdjscpzjsdtcdvsdwqlmwrngttswnrsbqctvhgfnnwblpcqzdmzpfchplslspmghvgcqntmlrfhgpcbpspvfhnvqvglsqzsnsdzddqpbsjhlclslngbwvvgjhwfcncqsmqwbptzvpzlzslsjjjldjpwpfrdlfbjphqcjtsgqdsdfdjhqgdhcppndwmhmmldvvmblcqcqfqhltbcbvrnghjfmtgqwtwljtczvqlnmgscjhqdhnzwhzvzzqnlsrhqvljqpgpwghfqlhjjrrhvnmnnrbnlhdcjctwtlhmhhmhjvcgzdrzmdjrvqzgnsttjdwglgwlcmbcdnjprgfsbbdzzngbqdrvwwwhbtlnnmzqdjttsrrpvlfdqnfhhtdtvmpcjgdwtbnqmwmtszdqfmbhjsjpqqddzfggwjhbtlnqfgcwbjzdtcpcpzgnrmnvwlpgmwfjlpgppdfrfvvjwsfcdqdnpcpjbqsvhttssgptqjghctrbgntlfjzdrfjccsprsjlrrwrzsmnjsqslmpdtrvhlqbnmgpjthpqdqmnvrtzlhhzzfzbrcclpmpcszhbttgrtcpgcpjwpdbfpfvgspsgtvglwthqcmcvmrfmclwlvjlsptfgmtlrnsvjrnfwzhdcsmgztpzfcvzwdztpppvqpvqfpdrsfnlhrbqwrsqjtwjmhnpwmqmpdgdhbtbpfwnmswffdqffdggrdrpmngvpzplmmwlddnhcvjjzqqfsbbtfmzdwnpvbjrshmllczhgvwwcbcbtfrfnplqjwmjlvpwwgfrtffwddwppsgtnlmpvfnhfzcsgjbqbjmbvpnqppsrvwnlzvcmjqgtbzrdsnrgwbfmrvnflgccrssfvcwgllqqbbcthzmbtnsmbzbcczhtzcvmthttpltrtdmgspctvtpvqbhmnnpnjwmhpqclmjsdrbjwvjbtzcjlqbjsvbgdwqzflnwzcfjwtrhjgfshfmwbjfwpnhjsmtpgbpwlfjjnmdlrhchmnfmgmgcrftmwbzshdwbhndgwtjbrrvbwprqppfmgfmfllpcjgrwdmtzddthsjlgjljv
|
1
input/07.txt
Normal file
1
input/07.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
pnnfhnhshrhmhwwmwzmznmnwmwfmfhfjfcjjtgtbggpdgdjjbjrjsjpjrrmddmgmpmddrhddnfnfzfpfvpfpprhhlffmtffqhhdtdcdsswsdwswmmfvvpdprrnnhhhtffnfbbznbznnvdnnbffjrfrbfrbrgbrrntnggrqqwtqwwgjgsswgwqwtwwsvwvbwvwrwlrlppzfzwfzzpmzzhqqzqlzlglzzmrmwrmwwvmwvvnppjfjttlffhjjjsccbggnffqgfgjjnccmdmzmllvnlnznttlvlttvnvgnvvqvmvqqzrqqcgglzzwtztwwmjmzjjnddsffqrqlrrvsvdvldvvlgvlvccdzczcqcpphggtnthhhtbhtttcjtjcjgcjcbbrhbbfrffgjgdgzddcttczzsccbpcpddcpcggmjgjddtcccthccfrccmdmhmddnwddfldffntnptnpttcptcptpfphhmfmwfwmmlblgbgvbvlltqltldttfcfcclgcllmplmlbbjnjzjnzzttnvvgddshddsqddggsqgqddsggdhghjgjhhgchhdmdjmjddgdhghrrphrrpnnqhhjwwqrrcmmslmmszzpgzpzzrmzmznzllnjnnlnbbdvdsdffbpffcmmnznqqcbbzvvjnjvvwqwgqqpnnzwnzwnzwwwlpwpzzfqzfqqwnqnbnfnqnbqqbggqnqdndrrzzlffbbgqgfgrfrqqsddnqnqjjgssqwqwcqcpcrrqppwpjjfnfpffhphwwmcwwznwznnplptlplnlsnlsldslslsffwtwftwtbtdbbjsjcczwwfllwtlwtlwlvwlwrwppsggvcvrrqcrqqvmqvmmbrrsbsfspspjpnnmpmqmcczgzffqmfmtmpppwzppzrpzrzsrrpqrpqpmpvmpvpttbqtqmtmjttqdqgggcppclcjcpcsppctpplpdpcppcmmdzmzddvhvhnhrrldllcwwbnwnssshlhrhthggtmggbjbjwwbvbttjllvrrfggngvngnmmvzzrrmddmcddztztctfccqpcpcqqvqppqcqdcdhhvhssgfgzgwwzmmnssvwwbqbhbnhnphpqqjcqcddfwfttqjtqtlttglljgjbgjgnnsqqvrvffqvqfqbffljjpffssqdsqstqqqldqqmhmsmsqqwtqwqdqgdgjjfbjffgbbrhhqghgppqgpgmpmmfzfhhfrhffgmfggpzgpzzhtzhhlbhhqbbzvvnvqnntptmmbhbdhdwwmjjcnnmsscqcbbtjtvjvwjvvmsmjmtmpmgghttcztzggpddbfbfgbbdsdrsrrqfqjjqfjjhzhtzzmdzzcgzgdzzmvmmfmjmgjmggmppbdppmzpppvfppzhhfsfwfhhpjpmmrjjpssdccjpjpwjppvdpphcpcjcfjfwjfwfjwfjjqcqcwqqqsmmmbbgdgwwpcwwdfdlflrltlgtthfhfjhhlthtddlgdggsjsrrdpdcppgttphpgpwppmpzmmrjmmvjvgvgfglfgllbqlqhllszzlwwhzzdfdcdtctptwtztfzzmjzjtjtrjrcrnrjjmwmnnbddgvgtgsstjsszmpqdmzgqflrbrspjmtzjcrmlzltmhgblghnwqvwwqwzbpnfrpdpblpjgshfccfbjfsnwvvhnjftsdnsgtzzjtzpmtfdvzrhtqpblhwgmqtgpbfvbdmsnrrrvvbstpsznvbbwgjfqjrhdvwvgptpglpfddhddmtglmjlpwlvfpbtbmgbplbzrlpdlvqzcwhbscpszgfstjpfdvfpmljlngrbgrdnnblzqrfpzsdvblpwbtnhdjclldvwvbwcwzfzbdspgwpfqjfbdbrqcshtlvcrdstnzggbwqnzbrfzbpnrtmvpbvdhcvdsdshgtvhfgdzljflppqbwclnvbhbczvrscjhlbgbfvwdjhnjsgmvwhpfgwbbmnndpnglfrmtfdzvqgfjdqfhgrhvpbqndmqnqccgwswwdsqjnbjtjbjdbqgjnmfbdvlnfwbnrdqgvgzzhmmbbdzfdvvpwhpbwbnzdcdpchrwlhfsjnhhjggvplmqggwjdsvjtpnpnqgldjjdcscrdltssjdrpcrfbgbcjfplhzgwbprfcslhpcngtszrghmwhzdqscbfrhzdwcffzvmjrmcjcstfvhplvrsglgsjnjtrpddsdfqjsndjnfmvdhfgdbzzflqhsrrwmrnlpqzmcddqbqvvzgtlztpgjnddtcnbmqsjlhmcszrmcjvwzpptlfqsmpvgnzvrjdwzpdwqgbmdgdtvjlmfczthjbcgfhbqpnmlbmrwwhfptzlbmfdhssznjcvjbmnjtnvzjhzczlrrdnttmmcbnzhqpplzqwgttwrnwfvmnptgqlfrnzvqpjfgrzwmlcwvtptvcvrlsrdwdgqfvffspmdbnnrqjttpqvhvdpbcrvzptwnhhfsqzchmncvttcdgdnlppcfzpmjpvbvqhlvplwvrmmbbggbwttwmvsqjlllsftprsmtmnzjcqfzblrllzgshfljchrjwjlpvhpbrtrsschzltrblgjnbgdnmwdggjhqggntblnhsvfgsbcblhmctbqzqwmhqnjhpzjfqpjdgwpzhczcftfcpdhvzhzccmwmrfrbqshzmtpqgpbbvfqqbjbmvnlnlwjtzrpmhdlffccrqcfgsjfszbrzrfztntchtmgmbhjgmlsqzcbtqqjzzlghtzzqmlnnvsgsvbbjfgqsqbqmqrdzwpwdgbggpdvhvnlzshhntprjdwhnwfvdjzpqgflwrvwgtmfdmfdztcbtfnjdrvgdwwczdgphnvdgrbdchprqldfjrvcsflcmlcmzqvqgsgnzcgmrhccgcmptcdzhbcdgdtppwztfstzqqzqrdzlnzthggjmpcflmbcmdrrjnnpbpqfmjbzqbtsjjgdlmgncbmgspqqvbrvzrdjscpzjsdtcdvsdwqlmwrngttswnrsbqctvhgfnnwblpcqzdmzpfchplslspmghvgcqntmlrfhgpcbpspvfhnvqvglsqzsnsdzddqpbsjhlclslngbwvvgjhwfcncqsmqwbptzvpzlzslsjjjldjpwpfrdlfbjphqcjtsgqdsdfdjhqgdhcppndwmhmmldvvmblcqcqfqhltbcbvrnghjfmtgqwtwljtczvqlnmgscjhqdhnzwhzvzzqnlsrhqvljqpgpwghfqlhjjrrhvnmnnrbnlhdcjctwtlhmhhmhjvcgzdrzmdjrvqzgnsttjdwglgwlcmbcdnjprgfsbbdzzngbqdrvwwwhbtlnnmzqdjttsrrpvlfdqnfhhtdtvmpcjgdwtbnqmwmtszdqfmbhjsjpqqddzfggwjhbtlnqfgcwbjzdtcpcpzgnrmnvwlpgmwfjlpgppdfrfvvjwsfcdqdnpcpjbqsvhttssgptqjghctrbgntlfjzdrfjccsprsjlrrwrzsmnjsqslmpdtrvhlqbnmgpjthpqdqmnvrtzlhhzzfzbrcclpmpcszhbttgrtcpgcpjwpdbfpfvgspsgtvglwthqcmcvmrfmclwlvjlsptfgmtlrnsvjrnfwzhdcsmgztpzfcvzwdztpppvqpvqfpdrsfnlhrbqwrsqjtwjmhnpwmqmpdgdhbtbpfwnmswffdqffdggrdrpmngvpzplmmwlddnhcvjjzqqfsbbtfmzdwnpvbjrshmllczhgvwwcbcbtfrfnplqjwmjlvpwwgfrtffwddwppsgtnlmpvfnhfzcsgjbqbjmbvpnqppsrvwnlzvcmjqgtbzrdsnrgwbfmrvnflgccrssfvcwgllqqbbcthzmbtnsmbzbcczhtzcvmthttpltrtdmgspctvtpvqbhmnnpnjwmhpqclmjsdrbjwvjbtzcjlqbjsvbgdwqzflnwzcfjwtrhjgfshfmwbjfwpnhjsmtpgbpwlfjjnmdlrhchmnfmgmgcrftmwbzshdwbhndgwtjbrrvbwprqppfmgfmfllpcjgrwdmtzddthsjlgjljv
|
@ -2,4 +2,29 @@ use crate::read;
|
|||||||
|
|
||||||
pub fn run() {
|
pub fn run() {
|
||||||
let input = read("01");
|
let input = read("01");
|
||||||
|
let elves = vec![0];
|
||||||
|
|
||||||
|
let mut elves = input.lines().fold(elves, |mut acc, x|{
|
||||||
|
if x.is_empty() {
|
||||||
|
acc.push(0);
|
||||||
|
} else {
|
||||||
|
let num: i32 = x.parse().unwrap();
|
||||||
|
*acc.last_mut().unwrap() += num;
|
||||||
|
}
|
||||||
|
acc
|
||||||
|
});
|
||||||
|
elves.sort();
|
||||||
|
elves.reverse();
|
||||||
|
|
||||||
|
#[cfg(feature="part1")]
|
||||||
|
{
|
||||||
|
let a = elves.first().unwrap();
|
||||||
|
eprintln!("Part 01: {}", *a);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature="part2")]
|
||||||
|
{
|
||||||
|
let b = elves[..3].iter().sum::<i32>();
|
||||||
|
eprintln!("Part 02: {}", b);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
107
src/day02/mod.rs
Normal file
107
src/day02/mod.rs
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
use crate::read;
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
struct Hand {
|
||||||
|
pub letter: char
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<&str> for Hand {
|
||||||
|
fn from(s: &str) -> Self {
|
||||||
|
Self { letter: s.chars().next().unwrap() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Hand {
|
||||||
|
pub fn score(&self) -> i32 {
|
||||||
|
match self.letter {
|
||||||
|
'A' => 1,
|
||||||
|
'B' => 2,
|
||||||
|
'C' => 3,
|
||||||
|
'X' => 1,
|
||||||
|
'Y' => 2,
|
||||||
|
'Z' => 3,
|
||||||
|
_ => panic!("Unknown hand {}", self.letter)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn outcome(&self, other: &Hand) -> i32 {
|
||||||
|
match self.score() - other.score() {
|
||||||
|
-1 => 0,
|
||||||
|
-2 => 6,
|
||||||
|
0 => 3,
|
||||||
|
1 => 6,
|
||||||
|
2 => 0,
|
||||||
|
_ => panic!("Unknown match {} vs {}", self.letter, other.letter)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn outcome_b(&self) -> i32 {
|
||||||
|
match self.letter {
|
||||||
|
'X' => 0,
|
||||||
|
'Y' => 3,
|
||||||
|
'Z' => 6,
|
||||||
|
_ => panic!("Unknown outcome {}", self.letter)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn for_outcome(&self, enemy: &Hand) -> Self {
|
||||||
|
let letter = match (self.outcome_b(), enemy.letter) {
|
||||||
|
(o, l) if o == 3 => l,
|
||||||
|
(o, l) if o == 0 && l == 'A' => 'C',
|
||||||
|
(o, l) if o == 0 && l == 'B' => 'A',
|
||||||
|
(o, l) if o == 0 && l == 'C' => 'B',
|
||||||
|
(o, l) if o == 6 && l == 'A' => 'B',
|
||||||
|
(o, l) if o == 6 && l == 'B' => 'C',
|
||||||
|
(o, l) if o == 6 && l == 'C' => 'A',
|
||||||
|
(o, l)=> panic!("Unknown pairing {}/{}", o, l)
|
||||||
|
};
|
||||||
|
Self {
|
||||||
|
letter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Round {
|
||||||
|
pub enemy: Hand,
|
||||||
|
pub me: Hand,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Round {
|
||||||
|
pub fn score(&self) -> i32 {
|
||||||
|
self.me.score() + self.me.outcome(&self.enemy)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn score_b(&self) -> i32 {
|
||||||
|
let me = self.me.for_outcome(&self.enemy);
|
||||||
|
me.score() + self.me.outcome_b()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run() {
|
||||||
|
let input = read("02");
|
||||||
|
let rounds = input
|
||||||
|
.lines()
|
||||||
|
.map(|l| {
|
||||||
|
let hands = l
|
||||||
|
.split_once(' ')
|
||||||
|
.map(|c|
|
||||||
|
(c.0.into(),
|
||||||
|
c.1.into())
|
||||||
|
).unwrap();
|
||||||
|
Round {
|
||||||
|
enemy: hands.0,
|
||||||
|
me: hands.1,
|
||||||
|
}
|
||||||
|
}).map(|r|(r.score(), r.score_b()))
|
||||||
|
.fold((0, 0), |agg, cur|(agg.0 + cur.0, agg.1 + cur.1));
|
||||||
|
|
||||||
|
#[cfg(feature = "part1")]
|
||||||
|
{
|
||||||
|
eprintln!("Day 2, Part 01: {}", rounds.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "part2")]
|
||||||
|
{
|
||||||
|
eprintln!("Day 2, Part 02: {}", rounds.1);
|
||||||
|
}
|
||||||
|
}
|
47
src/day03/mod.rs
Normal file
47
src/day03/mod.rs
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
use crate::read;
|
||||||
|
|
||||||
|
fn val(c: char) -> u32 {
|
||||||
|
if c.is_lowercase() {
|
||||||
|
c as u32 - 96
|
||||||
|
} else {
|
||||||
|
26 + c as u32 - 64
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run() {
|
||||||
|
let input = read("03");
|
||||||
|
|
||||||
|
#[cfg(feature = "part1")]
|
||||||
|
{
|
||||||
|
let lines: u32 = input
|
||||||
|
.lines()
|
||||||
|
.map(|l| {
|
||||||
|
let l = l.to_string();
|
||||||
|
let len = l.len() / 2;
|
||||||
|
let left = &l[0..len];
|
||||||
|
let right = &l[len..];
|
||||||
|
let lc = left.chars().find(|c| right.chars().any(|rc| rc == *c));
|
||||||
|
val(lc.unwrap())
|
||||||
|
})
|
||||||
|
.sum();
|
||||||
|
println!("Day 3, Part 01: {}", lines);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "part2")]
|
||||||
|
{
|
||||||
|
let lines: u32 = input.lines().collect::<Vec<_>>()[..] // Not a fan of collect here
|
||||||
|
.chunks(3)
|
||||||
|
.map(|l| {
|
||||||
|
let first = l[0];
|
||||||
|
let second = l[1];
|
||||||
|
let third = l[2];
|
||||||
|
|
||||||
|
let common = first
|
||||||
|
.chars()
|
||||||
|
.find(|f| second.chars().any(|s| s == *f) && third.chars().any(|t| t == *f));
|
||||||
|
val(common.unwrap())
|
||||||
|
})
|
||||||
|
.sum();
|
||||||
|
println!("Day 3, Part 02: {}", lines);
|
||||||
|
}
|
||||||
|
}
|
33
src/day04/mod.rs
Normal file
33
src/day04/mod.rs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
use crate::read;
|
||||||
|
use tuple_map::*;
|
||||||
|
|
||||||
|
fn get_ranges(elf: &str) -> std::ops::RangeInclusive<i32> {
|
||||||
|
let r = elf.split_once('-').unwrap().map(|e| e.parse().unwrap());
|
||||||
|
r.0..=r.1
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run() {
|
||||||
|
let input = read("04");
|
||||||
|
|
||||||
|
let lines = input
|
||||||
|
.lines()
|
||||||
|
.map(|l| l.split_once(',').unwrap().map(get_ranges))
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
#[cfg(feature = "part1")]
|
||||||
|
{
|
||||||
|
let count = lines
|
||||||
|
.iter()
|
||||||
|
.filter(|(a, b)| a.clone().all(|x| b.contains(&x)) || b.clone().all(|x| a.contains(&x)))
|
||||||
|
.count();
|
||||||
|
println!("Day 4, Part 01: {}", count);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "part2")]
|
||||||
|
{
|
||||||
|
let count = lines
|
||||||
|
.iter()
|
||||||
|
.filter(|(a, b)| a.clone().any(|x| b.contains(&x)) || b.clone().any(|x| a.contains(&x)))
|
||||||
|
.count();
|
||||||
|
println!("Day 4, Part 02: {}", count);
|
||||||
|
}
|
||||||
|
}
|
64
src/day05/mod.rs
Normal file
64
src/day05/mod.rs
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
use crate::read;
|
||||||
|
|
||||||
|
pub fn run() {
|
||||||
|
let input = read("05");
|
||||||
|
|
||||||
|
let lines = input.split_once("\n\n").unwrap();
|
||||||
|
let mut stacks: Vec<Vec<char>> = lines
|
||||||
|
.0
|
||||||
|
.lines()
|
||||||
|
.fold(vec![], |mut agg, l| {
|
||||||
|
let length = l.len();
|
||||||
|
let mut idx = 0;
|
||||||
|
while idx <= length {
|
||||||
|
if let Some(s1) = l.chars().nth(1 + idx * 4) {
|
||||||
|
if !s1.is_whitespace() && !s1.is_numeric() {
|
||||||
|
while idx >= agg.len() {
|
||||||
|
agg.push(vec![]);
|
||||||
|
}
|
||||||
|
agg.get_mut(idx).unwrap().push(s1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
idx += 1;
|
||||||
|
}
|
||||||
|
agg
|
||||||
|
});
|
||||||
|
stacks.iter_mut().for_each(|s|s.reverse());
|
||||||
|
|
||||||
|
let re = regex::Regex::new(r"move (\d+) from (\d+) to (\d+)").unwrap();
|
||||||
|
let instructions = lines.1.lines()
|
||||||
|
.filter(|l| !l.is_empty())
|
||||||
|
.map(|l| {
|
||||||
|
let capt = re.captures(l).unwrap();
|
||||||
|
(capt[1].parse::<usize>().unwrap(),
|
||||||
|
capt[2].parse::<usize>().unwrap() - 1,
|
||||||
|
capt[3].parse::<usize>().unwrap() - 1)
|
||||||
|
}).collect::<Vec<_>>();
|
||||||
|
|
||||||
|
#[cfg(feature = "part1")]
|
||||||
|
{
|
||||||
|
let mut stacks = stacks.clone();
|
||||||
|
instructions.iter().for_each(|(count, from, to)| {
|
||||||
|
for _i in 0..*count {
|
||||||
|
let c2 = stacks.get_mut(*from).unwrap().pop().unwrap();
|
||||||
|
stacks.get_mut(*to).unwrap().push(c2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let chars = stacks.iter().map(|s|s.last().unwrap())
|
||||||
|
.collect::<String>();
|
||||||
|
println!("Day 5, Part 01: {}", chars);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "part2")]
|
||||||
|
{
|
||||||
|
instructions.iter().for_each(|(count, from, to)| {
|
||||||
|
let src = stacks.get_mut(*from).unwrap();
|
||||||
|
let range = src.len()-count..;
|
||||||
|
let mut crates = src.drain(range).collect();
|
||||||
|
stacks.get_mut(*to).unwrap().append(&mut crates);
|
||||||
|
});
|
||||||
|
let chars = stacks.iter().map(|s|s.last().unwrap())
|
||||||
|
.collect::<String>();
|
||||||
|
println!("Day 5, Part 02: {}", chars);
|
||||||
|
}
|
||||||
|
}
|
27
src/day06/mod.rs
Normal file
27
src/day06/mod.rs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
use crate::read;
|
||||||
|
use std::collections::HashSet;
|
||||||
|
|
||||||
|
fn check(chars: &[char], len: usize) -> usize {
|
||||||
|
chars
|
||||||
|
.windows(len)
|
||||||
|
.enumerate()
|
||||||
|
.find(|(_idx, w)| w.iter().collect::<HashSet<_>>().len() == len)
|
||||||
|
.unwrap()
|
||||||
|
.0
|
||||||
|
+ len
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run() {
|
||||||
|
let input = read("06");
|
||||||
|
let chars = input.chars().collect::<Vec<_>>();
|
||||||
|
|
||||||
|
#[cfg(feature = "part1")]
|
||||||
|
{
|
||||||
|
println!("Day 6, Part 01: {}", check(&chars, 4));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "part2")]
|
||||||
|
{
|
||||||
|
println!("Day 6, Part 02: {}", check(&chars, 14));
|
||||||
|
}
|
||||||
|
}
|
18
src/day07/mod.rs
Normal file
18
src/day07/mod.rs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
use crate::read;
|
||||||
|
use itertools::Itertools;
|
||||||
|
use tuple_map::*;
|
||||||
|
|
||||||
|
pub fn run() {
|
||||||
|
let input = read("04");
|
||||||
|
let lines = input.lines();
|
||||||
|
let lines = input.split("\n\n");
|
||||||
|
#[cfg(feature = "part1")]
|
||||||
|
{
|
||||||
|
println!("Day 7, Part 01: {}", "TODO");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "part2")]
|
||||||
|
{
|
||||||
|
println!("Day 7, Part 02: {}", "TODO");
|
||||||
|
}
|
||||||
|
}
|
30
src/main.rs
30
src/main.rs
@ -1,17 +1,37 @@
|
|||||||
|
use chrono::prelude::*;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
use chrono::prelude::*;
|
|
||||||
mod day01;
|
mod day01;
|
||||||
|
mod day02;
|
||||||
|
mod day03;
|
||||||
|
mod day04;
|
||||||
|
mod day05;
|
||||||
|
mod day06;
|
||||||
|
mod day07;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let today = Local::now().day();
|
let today = Local::now().day();
|
||||||
let now = Instant::now();
|
let now = Instant::now();
|
||||||
if cfg!(feature ="day01") || (cfg!(feature ="today") && today == 1) {
|
if cfg!(feature = "day01") || (cfg!(feature = "today") && today == 1) {
|
||||||
day01::run();
|
day01::run();
|
||||||
}
|
}
|
||||||
if cfg!(feature ="day02") || (cfg!(feature ="today") && today == 2) {
|
if cfg!(feature = "day02") || (cfg!(feature = "today") && today == 2) {
|
||||||
todo!()
|
day02::run();
|
||||||
//day02::run();
|
}
|
||||||
|
if cfg!(feature = "day03") || (cfg!(feature = "today") && today == 3) {
|
||||||
|
day03::run();
|
||||||
|
}
|
||||||
|
if cfg!(feature = "day04") || (cfg!(feature = "today") && today == 4) {
|
||||||
|
day04::run();
|
||||||
|
}
|
||||||
|
if cfg!(feature = "day05") || (cfg!(feature = "today") && today == 5) {
|
||||||
|
day05::run();
|
||||||
|
}
|
||||||
|
if cfg!(feature = "day06") || (cfg!(feature = "today") && today == 6) {
|
||||||
|
day06::run();
|
||||||
|
}
|
||||||
|
if cfg!(feature = "day07") || (cfg!(feature = "today") && today == 7) {
|
||||||
|
day07::run();
|
||||||
}
|
}
|
||||||
println!("Finished, time taken: {:?}", now.elapsed())
|
println!("Finished, time taken: {:?}", now.elapsed())
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user