Compare commits
54 Commits
Author | SHA1 | Date | |
---|---|---|---|
0d4c2a7b4e | |||
3de6c685b3 | |||
c6e5343b52 | |||
|
7ea1b80afe | ||
|
f2d6ff15e8 | ||
|
1c41e885ad | ||
e40e06510b | |||
8a2aa96881 | |||
052d21f132 | |||
c09126a27e | |||
dfb8421dec | |||
d42491f71a | |||
8ae3092389 | |||
a0b13e4f3e | |||
|
8787215fdf | ||
|
bf4760a83c | ||
|
2f467ae7d7 | ||
|
fe66170e3e | ||
|
1e9d553c22 | ||
|
982dac721f | ||
|
df71a1f787 | ||
ad889622d5 | |||
a3d1031b05 | |||
d23fee8c4b | |||
ab0889b661 | |||
8509a884ff | |||
b4f9e56227 | |||
17733c951f | |||
|
5ee94b1a86 | ||
|
e1ebbedc27 | ||
|
7a1141f5ee | ||
|
cb204b8d62 | ||
|
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"
|
||||
}
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="RUST_MODULE" version="4">
|
||||
<component name="CheckStyle-IDEA-Module" serialisationVersion="2">
|
||||
<option name="activeLocationsIds" />
|
||||
</component>
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
|
163
Cargo.lock
generated
163
Cargo.lock
generated
@ -4,9 +4,9 @@ version = 3
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "0.7.19"
|
||||
version = "0.7.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
|
||||
checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
@ -25,7 +25,12 @@ name = "aoc-2022"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"indextree",
|
||||
"itertools",
|
||||
"peg",
|
||||
"regex",
|
||||
"sscanf",
|
||||
"tuple-map",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -42,9 +47,9 @@ checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.76"
|
||||
version = "1.0.77"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f"
|
||||
checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
@ -77,6 +82,26 @@ dependencies = [
|
||||
"unicode-width",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "const_format"
|
||||
version = "0.2.30"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7309d9b4d3d2c0641e018d449232f2e28f1b22933c137f157d3dbc14228b8c0e"
|
||||
dependencies = [
|
||||
"const_format_proc_macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "const_format_proc_macros"
|
||||
version = "0.2.29"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d897f47bf7270cf70d370f8f98c1abb6d2d4cf60a6845d30e05bfb90c6568650"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.8.3"
|
||||
@ -85,9 +110,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
|
||||
|
||||
[[package]]
|
||||
name = "cxx"
|
||||
version = "1.0.81"
|
||||
version = "1.0.83"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "97abf9f0eca9e52b7f81b945524e76710e6cb2366aead23b7d4fbf72e281f888"
|
||||
checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cxxbridge-flags",
|
||||
@ -97,9 +122,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cxx-build"
|
||||
version = "1.0.81"
|
||||
version = "1.0.83"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7cc32cc5fea1d894b77d269ddb9f192110069a8a9c1f1d441195fba90553dea3"
|
||||
checksum = "d2eb5b96ecdc99f72657332953d4d9c50135af1bac34277801cc3937906ebd39"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"codespan-reporting",
|
||||
@ -112,21 +137,27 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cxxbridge-flags"
|
||||
version = "1.0.81"
|
||||
version = "1.0.83"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ca220e4794c934dc6b1207c3b42856ad4c302f2df1712e9f8d2eec5afaacf1f"
|
||||
checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12"
|
||||
|
||||
[[package]]
|
||||
name = "cxxbridge-macro"
|
||||
version = "1.0.81"
|
||||
version = "1.0.83"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b846f081361125bfc8dc9d3940c84e1fd83ba54bbca7b17cd29483c828be0704"
|
||||
checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "either"
|
||||
version = "1.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
|
||||
|
||||
[[package]]
|
||||
name = "iana-time-zone"
|
||||
version = "0.1.53"
|
||||
@ -151,6 +182,21 @@ dependencies = [
|
||||
"cxx-build",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "indextree"
|
||||
version = "4.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "497f036ac2fae75c34224648a77802e5dd4e9cfb56f4713ab6b12b7160a0523b"
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.10.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
||||
dependencies = [
|
||||
"either",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "js-sys"
|
||||
version = "0.3.60"
|
||||
@ -161,10 +207,16 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.137"
|
||||
name = "lazy_static"
|
||||
version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
|
||||
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.138"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
|
||||
|
||||
[[package]]
|
||||
name = "link-cplusplus"
|
||||
@ -215,6 +267,33 @@ version = "1.16.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
|
||||
|
||||
[[package]]
|
||||
name = "peg"
|
||||
version = "0.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a07f2cafdc3babeebc087e499118343442b742cc7c31b4d054682cc598508554"
|
||||
dependencies = [
|
||||
"peg-macros",
|
||||
"peg-runtime",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "peg-macros"
|
||||
version = "0.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4a90084dc05cf0428428e3d12399f39faad19b0909f64fb9170c9fdd6d9cd49b"
|
||||
dependencies = [
|
||||
"peg-runtime",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "peg-runtime"
|
||||
version = "0.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9fa00462b37ead6d11a82c9d568b26682d78e0477dc02d1966c013af80969739"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.47"
|
||||
@ -257,10 +336,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.103"
|
||||
name = "sscanf"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
|
||||
checksum = "887a5b09bbf30cc01d059ccb4b7a0b508a0cef3028df2f2ee0d745bc9e624c56"
|
||||
dependencies = [
|
||||
"const_format",
|
||||
"lazy_static",
|
||||
"regex",
|
||||
"sscanf_macro",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sscanf_macro"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b124cd4c68600cc3188a26987b1c3bed8cadcfd1be93124026096c668f2c0ee8"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"regex-syntax",
|
||||
"strsim",
|
||||
"syn",
|
||||
"unicode-width",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.105"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -278,15 +389,21 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "time"
|
||||
version = "0.1.44"
|
||||
version = "0.1.45"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
|
||||
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"wasi",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tuple-map"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "23d5919d7121237af683b7fa982450597b1eaa2643e597aec3b519e4e5ab3d62"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.5"
|
||||
@ -299,6 +416,12 @@ version = "0.1.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-xid"
|
||||
version = "0.2.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.10.0+wasi-snapshot-preview1"
|
||||
|
52
Cargo.toml
52
Cargo.toml
@ -7,33 +7,39 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
chrono = "0.4.23"
|
||||
indextree = "4.5.0"
|
||||
itertools = "0.10.5"
|
||||
peg = "0.8.1"
|
||||
regex = "1.7.0"
|
||||
sscanf = "0.4.0"
|
||||
tuple-map = "0.4.0"
|
||||
|
||||
[features]
|
||||
default = ["a", "b", "today"]
|
||||
a = []
|
||||
b = []
|
||||
default = ["part1", "part2", "today"]
|
||||
part1 = []
|
||||
part2 = []
|
||||
today = []
|
||||
01 = []
|
||||
02 = []
|
||||
03 = []
|
||||
04 = []
|
||||
05 = []
|
||||
06 = []
|
||||
07 = []
|
||||
08 = []
|
||||
09 = []
|
||||
10 = []
|
||||
11 = []
|
||||
12 = []
|
||||
13 = []
|
||||
14 = []
|
||||
15 = []
|
||||
16 = []
|
||||
17 = []
|
||||
18 = []
|
||||
19 = []
|
||||
20 = []
|
||||
day01 = []
|
||||
day02 = []
|
||||
day03 = []
|
||||
day04 = []
|
||||
day05 = []
|
||||
day06 = []
|
||||
day07 = []
|
||||
day08 = []
|
||||
day09 = []
|
||||
day10 = []
|
||||
day11 = []
|
||||
day12 = []
|
||||
day13 = []
|
||||
day14 = []
|
||||
day15 = []
|
||||
day16 = []
|
||||
day17 = []
|
||||
day18 = []
|
||||
day19 = []
|
||||
day20 = []
|
||||
visualize = []
|
||||
|
||||
|
||||
|
||||
|
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
|
1004
input/07.txt
Normal file
1004
input/07.txt
Normal file
File diff suppressed because it is too large
Load Diff
99
input/08.txt
Normal file
99
input/08.txt
Normal file
@ -0,0 +1,99 @@
|
||||
000110211310120301121312200301013204213433321324454125534120411314221421432204213123312010120220212
|
||||
020012220322312203320423330100141123432232555552131513413333243201041414120414404222300212031212210
|
||||
012220223030033030244430211234220045555352514254335343332514243345202201013120303123003031322301122
|
||||
122212123203002004034001203313232515112543525251445353434224414533524014020242242322320223010131111
|
||||
221102333103333221411324203034235135343455415425134251221521352512445343444242410343133031022213111
|
||||
012230110220232130043321130142424543415542352534155145434324432553532253510101043422110311302133322
|
||||
121211332110331222432012225134422432341112144421535153351545122134242232152130110334114400332212301
|
||||
021003020222222304114022552315552411255554221162455263643351112333322235214353424140101110301013303
|
||||
211101331332303134320025235254523341134225246335554356533426415514344521433235223100024100322012213
|
||||
333121033001133202211331144545334545442426462335662255342342626524313432432255113203322322002312200
|
||||
010322322141333044304115552115413253563353625666244464226452656243424545525555553333333441121311231
|
||||
032330304041422420432124324244236264255242536445626642464646454324353143112245143242140134012131113
|
||||
113222323414023431235314252222246225364232452564335525523344525664226653522112244131121334130320322
|
||||
121002342323322351314412423235433523643565644552335525522462425253643354453342113152132444223043001
|
||||
303334322134140123154241513636446642663346536533667552624355222224332425555525121255313000110224301
|
||||
220002230431013514545542433426226364623335746773567356566543235364324426533313525143244100121033121
|
||||
000021230222223532342154546526322562455734556753354636566447345465225625536633243334425112234211423
|
||||
100240131421551532143146364665353436655665676767645757767765365733656436442643144352144332403323231
|
||||
231322213332442222125662224633422364634335777574764763343776757435645252662432644231412254011230044
|
||||
120320134105242421434423353553635756666465645446464476746533434474737333355643266531333324433212400
|
||||
040301032133333254244335264252755376435754666436667554445363634375377335452223443455551432333010144
|
||||
122213043542434415443363356663454534757746355453573654756377543673443533255466446625122132310014334
|
||||
404243133333412213345434336533364653576735676667576876848337555643553537554265552455111211141430132
|
||||
443341301142235415336322424546477554637688787745866488887577434344636437734332223546335121555322312
|
||||
010101032453544354452355447644336446437444776676584487868688446743777537543333245666541212524431033
|
||||
130342114125121245655353346445355733446776587588784546588474685553536367574445523434254125522412333
|
||||
201242125553223436463223777745535566487874456667845657466784588644655657455355352552555444112241410
|
||||
234243354255336642454256767534444878687668756444875858587854778474484437455656353656253411335452400
|
||||
314411514514125254223353563444477554768588585448654748855456656667558676453446723446433551542333323
|
||||
320425133145356325256655577477467888556845884576957768675647786647464447677575756555366251552252023
|
||||
402024545131232242524557435777674845786545558766585956759687647846545584454443736545244555225513404
|
||||
221122211244626363325464534767668748756767978988996968588875755867566656577763547532353323245443324
|
||||
241532435425235552535674564444576465866975867987658575886697775645646467874734565535246546512244511
|
||||
003324252512442566553463345787864877859757886699855979689556865965885747456343365533654353244413223
|
||||
212315155352232566544737454548674574998798699555866589956966599795788486474536636336336342425134412
|
||||
415441242523246256336374766665674457785867567956675565789686897696764587674446666642422423644424325
|
||||
003554554162525244354667375865755578679858897996697678587867758755877644755534673566366364215111142
|
||||
125233324364265264545556378688676958976975966767698999896779575577774547466453456456443363332524521
|
||||
133515233335323373765654467667486986756665797876767877886899897979969475847765767637544446523515551
|
||||
423321431443554355375376748446757899656688998798978687676986796699688855776746674753723255464344423
|
||||
135533214666522656775554775567665797957679899988997898976779768787598768878445373375735633533152423
|
||||
424233114545442654745646856857767575855668667669968786879669768579688844877458655735443652256255431
|
||||
122311356255465443775736754747756597959866677969777897778796669799996864878444747533472262262432453
|
||||
444412515423634374457557568574698568569796689667999968899788697787968667768664344766546653236143151
|
||||
152311513646633365333568844555559779697686687699777998989779788768756594585758837374575424224211225
|
||||
432411444656462746443756865787956975798986999787977978996987778795768586656655473453364365634145515
|
||||
512553242524235344467755668868885977997876879978998878787888776866887566586456466377353633526612112
|
||||
115351124324666765477575484768566785899876668997898988879879687896986577677786744336653645225533134
|
||||
521325356522544377445774755666867759866698988779997998778687879779588576866784766376455535443334445
|
||||
433451166554445354353554886675567598968878879979777887878988976979689787756548837435743345242455141
|
||||
251112342434644676347767747746557587886869778877788877789787767787779598548856756754774536542212331
|
||||
255533535452264557543768667886686886969966689777797988888776799775755889645756557644656535253352415
|
||||
324425154344254736457678866646677886667896679787789878898879666995998757877665757356457366362624453
|
||||
133124434355236446553476678549686757888986787979777777777688968798699766877778645555763233323653111
|
||||
222452162524456534544666745659767986569977869888798889797967869896588579678645466757742223536551125
|
||||
424113153224246464437444666655586769888767899997999998888899787785789988565667547344466324245444121
|
||||
342222535222265477673374467445978889589796696777887788896778866766575958886864746654456432465143345
|
||||
343222443646553344666565758455597897568767997897989877768698886656896987444854633767335332566315312
|
||||
031554353342263455343465844688566996587977697767668887776787776985778754456646747553435562222553224
|
||||
433344426223464443364358688754655656655796979887796696799797776855755885854676557736723432655514323
|
||||
013424132332422364434378758577758958968878668787687777668989797955778846555856344635566224523432451
|
||||
425553255655633236466566556555858699675969687978968799698978595977567446657483654746364253324544543
|
||||
432514124535636275635556647685849565689989686678799779666769657669586678877883365364425535653142315
|
||||
234213331454244233774547658465845955685598696976697898886596997865578648447647767565654326321345225
|
||||
033142335256632253667547655784646566787758855877679696866998778855965474867574633636266434253231343
|
||||
433312355254243222736457466486484557878576698897857857878667659897748755645557367664665624322214245
|
||||
414352553244643424464634565857556876595979575859559697897855757678648446474443347476454343621315123
|
||||
142445323134524455344767565745845466776955777775867689676669795765547875554364474423523255433452550
|
||||
420122443552465225677645453567777645666955697588578797786675779777688864467444476525625534353143351
|
||||
013443533555256553426677376778475746848576769888786588999657647784787744733675443533555552342334414
|
||||
041143134325455654456573473653567744748677959966765568889765584875786654736746477425243323345412331
|
||||
432143141143446546334633656476476747668864878778688989957788768655568457357565474424624643255141123
|
||||
433102225554544652566677347757675544755546776854548575485655786465456345347635444252452425412221021
|
||||
323443424115135364655624436464533765445864646766688454775574785855547635756475456566323553413444404
|
||||
040133323452356462366536677466667655766665575477656846545868855587636377637445452653223313533353431
|
||||
112321424255322325434562636744647576545484488884676746485886457756657434733352222326531315442212112
|
||||
414000041225332224365336457576353475444476854684468466666787764643346356664452563552325454125532334
|
||||
333211225554233356326636546733667664766764488678465547455847554453346674333644366565122142144303010
|
||||
201332104431213354534342624674574463634343535468776645455555777363557644444632234452452514524001241
|
||||
221121011452151314652546563557737463367364573534653347663557476557753774362253653622553112413343020
|
||||
301020124355152323443536262535766773343757377576554465333456475773466764562232455333212154220142002
|
||||
322244112312155113454636553224336764436375336773533577673334677767346562553664626122341142230310021
|
||||
023103242244551224134442622342463557736536665447475654776476664656746264566536561531213151202033312
|
||||
000241244142514451335326646524645362354365656733573556434643567466354436652444155224421243124420312
|
||||
211134103233321112311333366243566524426453645455335474755773645624422266326533321441535122300041202
|
||||
010100412012005141235135226623364644564632374554665337675444336522352336344211133431343203034321031
|
||||
120100431404011341421515543345452262445624345326474644544443332326425454424431513314250240023131303
|
||||
302230432233042151414231553363365325522333634334265345542443426352642445554145124343411121104121203
|
||||
303233311431323211311335332253563563355242335445366433543356662343656654554132224132234403131422203
|
||||
113031120441440344151555331254253525425556245652343434526624622453624343111341315343030233140303323
|
||||
113030023221043232305142142324135442534246224522233522334666345254334253143442354430224400423233033
|
||||
031102021123340100023323433221314345163424223524353422623255522232122453215412122243144210131021220
|
||||
123100111112040244104314311535251111141234335442354234236235354514311422435123332031213231120131013
|
||||
221222103112033302010413133424335241315253243263446652241133155434215112225523013040443233102021312
|
||||
000012122130221202130324443534215451343511144224113442315342555214421524454224402343214132100123030
|
||||
112012230223002044203111222225321532514541153222214115443212344354545231533442344002011210202230120
|
||||
221200232013222231032340233141433354514311213113224441111332422254143133440204220101431230200002121
|
||||
211212213121303211020441232042142451254444244521121152121224435112515234204202321124222332312210022
|
||||
202120032200122003044340422223002041534554215334252122413441432141223402244034330212233311001312221
|
2000
input/09.txt
Normal file
2000
input/09.txt
Normal file
File diff suppressed because it is too large
Load Diff
145
input/10.txt
Normal file
145
input/10.txt
Normal file
@ -0,0 +1,145 @@
|
||||
noop
|
||||
noop
|
||||
addx 5
|
||||
addx 21
|
||||
addx -16
|
||||
noop
|
||||
addx 1
|
||||
noop
|
||||
noop
|
||||
addx 4
|
||||
addx 1
|
||||
addx 4
|
||||
addx 1
|
||||
noop
|
||||
addx 4
|
||||
addx -9
|
||||
noop
|
||||
addx 19
|
||||
addx -5
|
||||
noop
|
||||
noop
|
||||
addx 5
|
||||
addx 1
|
||||
addx -38
|
||||
addx 5
|
||||
addx -2
|
||||
addx 2
|
||||
noop
|
||||
noop
|
||||
addx 7
|
||||
addx 9
|
||||
addx 20
|
||||
addx -3
|
||||
addx -18
|
||||
addx 2
|
||||
addx 5
|
||||
noop
|
||||
noop
|
||||
addx -2
|
||||
noop
|
||||
noop
|
||||
addx 7
|
||||
addx 3
|
||||
addx -2
|
||||
addx 2
|
||||
addx -28
|
||||
addx -7
|
||||
addx 5
|
||||
noop
|
||||
addx 2
|
||||
addx 32
|
||||
addx -27
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 7
|
||||
noop
|
||||
addx 22
|
||||
addx -19
|
||||
noop
|
||||
addx 5
|
||||
noop
|
||||
addx -7
|
||||
addx 17
|
||||
addx -7
|
||||
noop
|
||||
addx -20
|
||||
addx 27
|
||||
noop
|
||||
addx -16
|
||||
addx -20
|
||||
addx 1
|
||||
noop
|
||||
addx 3
|
||||
addx 15
|
||||
addx -8
|
||||
addx -2
|
||||
addx -6
|
||||
addx 14
|
||||
addx 4
|
||||
noop
|
||||
noop
|
||||
addx -17
|
||||
addx 22
|
||||
noop
|
||||
addx 5
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 2
|
||||
noop
|
||||
addx 3
|
||||
addx -32
|
||||
addx -5
|
||||
noop
|
||||
addx 4
|
||||
addx 3
|
||||
addx -2
|
||||
addx 34
|
||||
addx -27
|
||||
addx 5
|
||||
addx 16
|
||||
addx -18
|
||||
addx 7
|
||||
noop
|
||||
addx -2
|
||||
addx -1
|
||||
addx 8
|
||||
addx 14
|
||||
addx -9
|
||||
noop
|
||||
addx -15
|
||||
addx 16
|
||||
addx 2
|
||||
addx -35
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 3
|
||||
addx 4
|
||||
noop
|
||||
addx 1
|
||||
addx 4
|
||||
addx 1
|
||||
noop
|
||||
addx 4
|
||||
addx 2
|
||||
addx 3
|
||||
addx -5
|
||||
addx 19
|
||||
addx -9
|
||||
addx 2
|
||||
addx 4
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 3
|
||||
addx 2
|
||||
noop
|
||||
noop
|
||||
noop
|
55
input/11.txt
Normal file
55
input/11.txt
Normal file
@ -0,0 +1,55 @@
|
||||
Monkey 0:
|
||||
Starting items: 54, 82, 90, 88, 86, 54
|
||||
Operation: new = old * 7
|
||||
Test: divisible by 11
|
||||
If true: throw to monkey 2
|
||||
If false: throw to monkey 6
|
||||
|
||||
Monkey 1:
|
||||
Starting items: 91, 65
|
||||
Operation: new = old * 13
|
||||
Test: divisible by 5
|
||||
If true: throw to monkey 7
|
||||
If false: throw to monkey 4
|
||||
|
||||
Monkey 2:
|
||||
Starting items: 62, 54, 57, 92, 83, 63, 63
|
||||
Operation: new = old + 1
|
||||
Test: divisible by 7
|
||||
If true: throw to monkey 1
|
||||
If false: throw to monkey 7
|
||||
|
||||
Monkey 3:
|
||||
Starting items: 67, 72, 68
|
||||
Operation: new = old * old
|
||||
Test: divisible by 2
|
||||
If true: throw to monkey 0
|
||||
If false: throw to monkey 6
|
||||
|
||||
Monkey 4:
|
||||
Starting items: 68, 89, 90, 86, 84, 57, 72, 84
|
||||
Operation: new = old + 7
|
||||
Test: divisible by 17
|
||||
If true: throw to monkey 3
|
||||
If false: throw to monkey 5
|
||||
|
||||
Monkey 5:
|
||||
Starting items: 79, 83, 64, 58
|
||||
Operation: new = old + 6
|
||||
Test: divisible by 13
|
||||
If true: throw to monkey 3
|
||||
If false: throw to monkey 0
|
||||
|
||||
Monkey 6:
|
||||
Starting items: 96, 72, 89, 70, 88
|
||||
Operation: new = old + 4
|
||||
Test: divisible by 3
|
||||
If true: throw to monkey 1
|
||||
If false: throw to monkey 2
|
||||
|
||||
Monkey 7:
|
||||
Starting items: 79
|
||||
Operation: new = old + 8
|
||||
Test: divisible by 19
|
||||
If true: throw to monkey 4
|
||||
If false: throw to monkey 5
|
41
input/12.txt
Normal file
41
input/12.txt
Normal file
@ -0,0 +1,41 @@
|
||||
abaaaaacccccccccccccccccccccccccccccccccccccccaaaaaaaccccaaaaaaaaaaaaaaaaacccccaaaaaacccccccccccccccccccccccaaaaaaaaccccccccccccccccccccccccccccccccaaaaaa
|
||||
abaaaaaacccaaaacccccccccccccccccccccccaccccccccaaaaaaaaccaaaaaaaaaaaaaaaaccccccaaaaaacccccccccccccccccccccccccaaaaccccccccccccccccccccccccccccccccccaaaaaa
|
||||
abaaaaaacccaaaacccccccccccccccccaaaaaaaacccccccaaaaaaaaacaaaaaaaaaaaaacccccccccaaaaacccccccccccccccccccccccccaaaaacccccccccccccccccccaaaccccccccccccaaaaaa
|
||||
abaaacaccccaaaaccccccccccccccccccaaaaaacccccccccaaaaaaaccccaaaaaaaaaaacccccccccaaaaacccccccccccccccccccccccccaacaaaccccccccccccccccccaaacccccccccccccccaaa
|
||||
abaaacccccccaaacccccccccccaacccccaaaaaaccccccccaaaaaaccccccaacaaaaaaaacccccccccccccccccccccccaaccccccccccccccacccaaaaacccccccccaaccccaaacccccccccccccccaaa
|
||||
abccccccccccccccccccccccccaaaaccaaaaaaaacccccccaaaaaaaccccccccaaaaaaaaaccccccccccaacccccccccaaaccccccccccccccccccacaaacccccccccaaaaccaaacccccccccccccccaac
|
||||
abccccccccccccccccccccccaaaaaacaaaaaaaaaaccccccaaccaaaaacccccaaaaccaaaaccccccccccaaacaacccccaaacaaacccaaccccccccaaaaaaaacccccccaaaaakkkkkkcccccccccccccccc
|
||||
abccccccccccccccccccccccaaaaaccaaaaaaaaaacccccccccccaaaaaaccccacccaaaaaccccccccccaaaaaaccaaaaaaaaaaaaaaaccccccccaaaaaaaaccccccccaaajkkkkkkkaccccccaacccccc
|
||||
abcccccccccccccccccccccccaaaaacacacaaaccccccccccccccaaaaaaccccccccaaaacccccccccaaaaaaacccaaaaaaaaaaaaaaaaaccccccccaaaaaccccccccccjjjkkkkkkkkccaaaaaacccccc
|
||||
abcccccccccccccccccccccccaacaacccccaaacccaccccccccccaaaaaaccccccccaaaacccccccccaaaaaaacccccaaaaaacaaaaaaaacccccccaaaaacccccccjjjjjjjooopppkkkcaaaaaaaccccc
|
||||
abcccccccccccccccccaacaacccccccccccaaaaaaacccccccccccaaaaacccccccccccccccccccccccaaaaaaccccaaaaaaccaaaaaaacccccccaaaaaacciijjjjjjjjoooopppkkkcaaaaaaaacccc
|
||||
abccccccccccaaaccccaaaaacccccccccccccaaaaacccccccccccaaaaccccccccccccccccccccccccaacaaaccccaaaaaaacaaaaacccccccccaccaaaciiiijjjjjjoooopppppkllcaaaaaaacccc
|
||||
abccaaccccccaaaaacaaaaacccccccccccccaaaaaacccccccccccccccccccccccccccccccccccccccaacccccccaaaacaaaaaaaaacccaaccccaaaaaciiiiinoooooooouuuupplllaaaaaacccccc
|
||||
abcaaacccccaaaaaacaaaaaacccccccccccaaaaaaaaccccccccaacaccccccccccccccccccccccccccccccccccccaccccccccccaaccaaaccccaaaaaciiinnnooooooouuuuuppplllaaacacccccc
|
||||
abaaaaaacccaaaaaacccaaaacccccccccccaaaaaaaaccccccccaaaaccccccccccccccccccccccccccccccccccccccccccccccccaaaaacaacaaaaaaiiinnnnntttoouuuuuupppllllcccccccccc
|
||||
abaaaaaaccccaaaaacccaaccccccccccacccccaaccccccccccaaaaaccccccccccccccccccccccccccccccccccccccccccccccccaaaaaaaacaaaaaaiiinnnnttttuuuuxxuuupppllllccccccccc
|
||||
abaaaaacccccaacaaccccccccccccccaaaccccaacccccaacccaaaaaacccccccccccccccccccccccccccccccccccccccccccccccccaaaaaccaaaaaaiiinnnttttxxuuxxyyuuppppllllcccccccc
|
||||
abaaaacccccccccccccccccccccaaacaaaccccccaaacaaaaccacaaaacccccccccccccccccccccccccccccccccccaacccccccccccaaaaaccccaaaccciinnntttxxxxxxxyyvvvqqqqqlllccccccc
|
||||
abaaaaaccccccccccccccccccccaaaaaaaaaacccaaaaaaacccccaaccccccccccccccccccccccccccccccccccccaaacccccccccccaacaaaccccccccciiinntttxxxxxxxyyvvvvvqqqqljjcccccc
|
||||
abccaaaccaccccccccaaacccccccaaaaaaaaaccccaaaaaacccccccccccccccccccccccccccccccaacccccccaaaaacaaccccccccccccaacccccccccchhinnnttxxxxxxyyyyyvvvvqqqjjjcccccc
|
||||
SbccccaaaacccccccaaaaaacccccccaaaaaccccccaaaaaaaaccccccccccccccccccccaaccccccaaaaccccccaaaaaaaacccccccccccccccccccccccchhhnnntttxxxxEzyyyyyvvvqqqjjjcccccc
|
||||
abccccaaaacccccccaaaaaaccccccaaaaaacccccaaaaaaaaaacccccccccccccccccccaaccccccaaaaccccccccaaaaacccccccccccccccccccccccccchhhnntttxxxyyyyyyyvvvvqqqjjjcccccc
|
||||
abcccaaaaaaccccccaaaaaacccccaaaaaaaccccaaaaaaaaaacccccccccccccccccaaaaaaaacccaaaacccccccaaaaaccccccccccccccccccccccccccchhmmmttxxxyyyyyyvvvvvqqqjjjdcccccc
|
||||
abcccaaaaaacccccccaaaaacccccaaacaaacaaaaaaaaaaccccccccccccaaacccccaaaaaaaaccccccccccccccaacaaacccccccaacaaacccccccccccchhhmmmtswwwyyyyyyvvvqqqqjjjjdddcccc
|
||||
abcccccaacccccccccaacaacccccccccccacaaaaaccaaaccccccccccaaaaacccccccaaaacccccccccccccccccccaaccccccccaaaaaacccccccccccchhhmmssswwwwwwyyywvrqqqjjjjdddccccc
|
||||
abcccccccccccccccccccccccccccccccccaaaaaccccaaccccccccacaaaaaacccccaaaaacccccccccccccccccccccccccccccaaaaaacccccccccccchhhmmssswwwwwwywywwrrqjjjjddddccccc
|
||||
abcccccccccccccccccccccccccccccccccaaaaaccccccccaaacaaacaaaaaacccccaaaaaaccccccccccccccccccccccccccccaaaaaaaccccccccccchhmmmsssswwsswwwwwwrrkkjjddddcccccc
|
||||
abccccccccccccccccccccccccccccccccccaaaaacccccccaaaaaaacaaaaaccccccaaccaacccccccccccaaccccccccccccccaaaaaaaacaacaaccccchhhmmmsssssssswwwwrrrkkjddddaaccccc
|
||||
abcccccccccccccccccccccccccaaaaaccccaacccccccccccaaaaaacaaaaacccccccccccccaacccccccaaaaaacccccccccccaaaaaaaacaaaaaccccchhgmmmmssssssrrwwwrrrkkddddaaaccccc
|
||||
abcccccccccccccccccccccccccaaaaacccccccccccccccccaaaaaaaacccccccccccccccaaaaaaccccccaaaaaccccaaccccccccaaacccaaaaaaccccgggmmmmmmllllrrrrrrrkkkeedaaaaccccc
|
||||
abcccccccccccaaccccccccccccaaaaaacccccccccccccccaaaaaaaaacccccccccccccccaaaaaaccccaaaaaaacccaaaacccccccaaccccaaaaaaccccggggmmmmllllllrrrrrkkkkeedaaaaacccc
|
||||
abcccccccccccaaacaacaaaccccaaaaaaccccccccccccccaaaaaaaaaacccccccccccccccaaaaaaccccaaaaaaaaccaaaacccccccccccccaaaaaccccccgggggglllllllllrrkkkkeeeaaaaaacccc
|
||||
abcccccccccccaaaaaacaaaacccaaaaaaccccccccccccccaaacaaaaaaccccccccccccccccaaaaaccccaaaaaaaaccaaaacccccccccccaaccaaaccccccgggggggggffflllkkkkkkeeeaaaaaacccc
|
||||
abaccccccccaaaaaaaccaaaacccccaaacccccccccccccccccccaaaaaacaccccccccaaccccaaaacccccccaaacacccccccccccccccaaaaaccccccccccccccgggggffffflllkkkkeeeccaaacccccc
|
||||
abaccccccccaaaaaaaccaaacccccccccccccccccaaaccccccccaaacaaaaaccccccaaacccccccccccccaaaacccccccccccccccccccaaaaaccccccccccccccccccaffffffkkkeeeeeccaaccccccc
|
||||
abaaaccccccccaaaaaaccccccccccccccccccccaaaaaacccccccaaaaaaaacaaaacaaacccccccccaaaaaacccccccccccccccccccccaaaaaccccccccccccccccccccaffffffeeeeecccccccccccc
|
||||
abaacccccccccaacaaaccccccccccccccccccccaaaaaaccccccccaaaaaccaaaaaaaaacccccccccaaaaaaaaccccccccccaaccccccaaaaacccccccccccccccccccccaaaffffeeeecccccccccccaa
|
||||
abaacccccccccaaccccccccccccccccaaccccccaaaaacaaccaacccaaaaacaaaaaaaaacccccccccaaaaaaaaccccccaaacaacccccccccaacccccccccccccccccccccaaaccceaecccccccccccccaa
|
||||
abaacccccccccccccccccccccccccccaaaaaacccaaaaaaaaaaaccaaacaaccaaaaaaaaaaaaacccccaaaaaaacccccccaaaaaccccccccccccccccccccccccccccccccaaacccccccccccccccaaacaa
|
||||
abcccccccccccccccccccccccccccccaaaaaccccaacaacaaaaacccaaccccccaaaaaaaaaaaacccccaaaaacccccccccaaaaaaaccccccccccccccccccccccccccccccaaacccccccccccccccaaaaaa
|
||||
abcccccccccccccccccccccccccccaaaaaaaccccccccaaaaaaaaccccccccccaaaaaaaaaaccccccaaaaaaccccccccaaaaaaaaccccccccccccccccccccccccccccccccccccccccccccccccaaaaaa
|
449
input/13.txt
Normal file
449
input/13.txt
Normal file
@ -0,0 +1,449 @@
|
||||
[[[6,10,[],[8,1,6],6],[],[[1],7,1,0]],[9]]
|
||||
[[[5]],[[[5],[7],[1],8],2,2,1]]
|
||||
|
||||
[[[3,[2,1,4],2,[],[4]],[1,[]]]]
|
||||
[[1,[],[[3,8,9],9,2,[3,6,5]],[2,[7,1,3,0,9]],9],[[[4],4,7,3,[7,5,1,10]],1,[[5,10,7],[5,3,2,1],[4,5,0,10,9],[2],7],[7,8,5,[10,4,10]]],[4]]
|
||||
|
||||
[[3,8,0,6,[10,6,[10,0]]],[[[3,4],[7,9],[]],9],[10],[]]
|
||||
[[1,10,2,3],[4],[]]
|
||||
|
||||
[[1,0],[[[5,3],10,[],[4]]],[[],8,9],[[2],[[6,5,10]]],[[[2,10],2]]]
|
||||
[[9,[0],[],5,6],[2],[],[1,[4,[7,4,3,8,0],[1,5,1,1],[3],7],[4,10,5,[4,10]]]]
|
||||
|
||||
[[[[],2,[7,5,4,7,7],10],[[3],[2,8],1,6,[]],2],[[9,[3,6,5],[9,10,1,6]]],[],[[[3,10,5,6,0],[],[4,4,9,6,6],1,[8,4,7,1,0]]]]
|
||||
[[1,[2,5,[10,6]],0,10],[[0,3]]]
|
||||
|
||||
[[9],[3],[2,4]]
|
||||
[[],[],[],[]]
|
||||
|
||||
[[[3]],[[]],[[1,[],[6,8,5,8,8]]]]
|
||||
[[],[[2,0,7],[]],[]]
|
||||
|
||||
[[],[[[5,5,6,0,4],[6,0,8,2]],4],[[10,3,2,3]],[[[6]]],[[]]]
|
||||
[[],[[7,1,[],[2,1],7],[[9],0,5],[10,[7,6,3,7],[9,3],9]],[],[[[9,4,9,4],[5,1,1,5]]],[10,5,7,0,[[3,8],[],2]]]
|
||||
|
||||
[[[],[7,[],4,0,[7]],[1]],[[5,[8]]],[],[5]]
|
||||
[[],[[[6,7,7],1,4,[7,6,6],0],[[2],9],[[3,4,5],2],[7],4],[[[9,1,4,0,3],[3,9,4]],[[7,8,7,10,1],9],[0],9,3],[[],[],[],[4],[[2,6,5],[5,4,8,7],[1],1]]]
|
||||
|
||||
[[],[[],[9,[1,8,8,7,6],2],0,[[0,0,7],[1,5,2,8,4],[8,5],0],[]],[[[10],0],2,[9,[2,10,0,5],3],1]]
|
||||
[[[6,5]],[[[3],[3,3,4,5]]]]
|
||||
|
||||
[[3],[10],[[],[0,5,[2,2,4],8,[]],[[0,3],6,0],0]]
|
||||
[[[],10,[[5,2,0]]],[10,2,9]]
|
||||
|
||||
[[],[[0,10,1,9],[2,[9,9]],[0,8,10,6]],[0,3,6,[[5,5,0],9,4]],[[7,[3,7]],5,4,[[8,6,0,1,10],[],[0],[],10],7]]
|
||||
[[],[8,1,1]]
|
||||
|
||||
[[[2,[4,7,10]],3,1,[]],[],[[0,[6],4,1],2,[2,3,[5,7],9],9],[[8,[],[1],5],8,[[9],2,10,1],[[3,1],1],[[9,6,1,8]]],[3,3,4,3,[[],[10],1]]]
|
||||
[[9,0,8,[[4,3,4,7,10],[8,9,6],2],[]],[9,[[1,0],9,7,9,[0,10,7]],[[8,10],[5,2,0]],4],[5,8,[7,[7,6,9,8,8]],[]],[2,[],2]]
|
||||
|
||||
[[],[6,5]]
|
||||
[[10,5,2],[[1,8]]]
|
||||
|
||||
[[2,1],[9,[5]],[1,0,8,[]],[],[[4,5,[8,9,9],2,8],5,[0,[0,9],6,8],[],[3,10,4]]]
|
||||
[[1,10],[]]
|
||||
|
||||
[[[0,9,[4]],[[7,8,9,8],[7],10]],[9]]
|
||||
[[[[8,7],[2,5],8,6,9],10,7,[10],1],[6,0,0,4,0]]
|
||||
|
||||
[[[9,[3,4,10,8,0]],2],[[6,[0,6,10,9,10],0,[2,0,6,0],[4]],2,0],[[0],[[1,10,10]],[10,[6,5,2,9,9],[9],[8,8,7,1]],[5,5],6]]
|
||||
[[[9],0,3,[[]],[[8,9,4]]],[]]
|
||||
|
||||
[[9],[8],[[8,5,2,4]],[],[[10,3,[8,3,3,1]],[[],0,[5,8,3,6],[]],[3]]]
|
||||
[[],[[[0],[],10,[4,9]]],[[[3,2,3,2],1]]]
|
||||
|
||||
[[4,1,2,[[6],[8]],7],[7,0,[[7,5,3,10,7],[4,10,4,7,9]]],[0,[],[1,9],[8,2]],[7,3,[[4,3,4,0]],2,[8,[8,2,7],[3,2,0,4,6]]]]
|
||||
[[],[]]
|
||||
|
||||
[[3,8,8,[],[[6],[9,9,1,0,3],[6,4,3]]]]
|
||||
[[7,[[7,7,0],5,[1],10,10]],[2,7,[],3,[[],[5,8,7]]],[],[0,1],[[9,2,[0,1],[4,8,3,6]],[5,2,5,6],[9,[5,1,6,1,4],[8,5,9,4,9],[8,8]]]]
|
||||
|
||||
[[],[[8]],[8,[5,9,4,7],4,[8]],[2,[2,0],6,[[2,2,8],[9,7],10,5,[5,7]],[[9,6,0],7]]]
|
||||
[[9,4],[[1,4,1,[6,9],5],4],[0,[9,7,[]]],[[[10,10],[9,2,7]],[0,6],[5,8],[]]]
|
||||
|
||||
[[[6,[10],[7,4,9,3]],[[],[5,0],[5,1,2,10,3],[]],3,[],3],[[],[7,8,2,10,[8,3,4,2]],1,[7,[6,3,9,6],2,4],10],[[]],[[],[[6],[5],[7],[9]]],[10,7,6,8]]
|
||||
[[],[[4,[5,1,9],6,10],[[3,8,3,5,9],9,[7,6,10,9],10],[[3,7,8],9,[],8]]]
|
||||
|
||||
[[6,8,9,[[4,10,4,6,8]]],[],[[[],[7,6],8,[5,8,7,5],[7,3,0,1,1]],2,3],[5,10,[7,2,[5,5,2],[3],3]],[]]
|
||||
[[],[1,9,8],[9],[7,[1],1]]
|
||||
|
||||
[[],[4,[[9,7,10],6,7]]]
|
||||
[[[[6]],[[],3,0]]]
|
||||
|
||||
[[4,1],[],[5,3,3,[4]]]
|
||||
[[[[10,7],10,[5,4,5,6,5],[8,2,5,4],[5]],[[8],[],9],[5,[2]]],[[[2,6,4],[1,5,4,10],[10,7],0,8],[6,6,[]],3,[[5,7,9,2],10],10]]
|
||||
|
||||
[[4,7,0,2]]
|
||||
[[4,[],[2],[5,4,0],4],[[],9,[[7,1],2,9]],[10,1,[0,5,[6,2,7,1]],[[8]],[[9,9,7,8],5]],[],[[[4]],3]]
|
||||
|
||||
[[8,[],5,[[1],[3,5,7]]],[]]
|
||||
[[[0],[5,5]]]
|
||||
|
||||
[[[8,[0],[0,2,6,9]],10,[],1]]
|
||||
[[8,4,0],[],[7,9,[[10,4],10,10,0],[],0],[],[3,5,3]]
|
||||
|
||||
[[3,6,7],[4,5,6,[9,6],7]]
|
||||
[[2],[[[6,6,4,5],[1,9]],[8,4,[5,5]],6,[3,[0,0,7],[3,9],[8,3,9],[2,0]]],[[[5,1,4,0,5],[10,5,9],3,2],[[4,0],[4,6],[4]]]]
|
||||
|
||||
[[6,4],[],[[]],[[[],1,2,0,[10,2]],6,4,5]]
|
||||
[[1,[[],[3],[1,5]],[10,[],[2,8,4,10],[9,2]],[7,4,3,5,0],0]]
|
||||
|
||||
[[[[5,1,7],4],[]]]
|
||||
[[[7,2,[]],[]],[[6],4,5,[[]],[[7,0,8],[0]]],[10,1,1,[[4,9],6,[10,2,3,9,0],[2,3,4,3]],3],[0,2,[7],5,2]]
|
||||
|
||||
[[4,3,[1,[9,0,8,7],1],[[],[],4,[5,7,10,6],10]],[]]
|
||||
[[1,[4,5,[6,0,9,4,9],[],[1]],3,9]]
|
||||
|
||||
[[[],[6]]]
|
||||
[[4,9,[3,[3,10,2,8],0,10,[2,3,2,10]],3,[2,[]]],[2,6],[],[6,0,5,[[6,1,3,5],5],[[3,8,1,9,10],[2],[1,4,10]]],[[[0,2],[7],[10,9,4,1],[4,2]],4,[]]]
|
||||
|
||||
[[[4]],[6,[[4],[8],[2],[4,0]],[4,9,[3]],[[8,10,6,10],[9]],9]]
|
||||
[[[],5,[8,10],[4,[4,6,7,4],6,[4,10,5,4],[8,10,4]],8],[[[3,4,1],[1,6,6]],4,[[6,9,9],7,[],0,[1,4,7,2,1]],10,[[7,1,2],[6,3,3,8,10]]],[[[2,9,0,4,5]],[[9,0],4,[8,7]],[5,[3,9,2,8],9,[1]]],[6]]
|
||||
|
||||
[[[[8,10,10,1,7],[],1]]]
|
||||
[[[3,3],[],[4],[]],[],[],[[],[7,8,3],10]]
|
||||
|
||||
[[],[0]]
|
||||
[[8,[]],[6,[[1,10,7]],[2]],[],[],[[1,[],1,10],3]]
|
||||
|
||||
[[[6,7,4]],[2,5,[0,7,0,[],1],[10,4,[0,6],[5],[9]],[[5,7],[0,10,7,9]]],[[[1],6],[0,3,10]]]
|
||||
[[[[9,0,1],7,[3,6,5,1],3,8],[[10,10],4,[4,8,1,10,2],[5,2,9]]]]
|
||||
|
||||
[]
|
||||
[[]]
|
||||
|
||||
[[],[],[[[1,8,3],8,3,[9,6,1,9,1],1],[],2,4],[[0,[1,8]],8,[[5,0],[0,2,9],10,[5]],[[1],[],[9,2,1,0,7],6],5],[2,[5,7,8,[3],[1]],[[10,9,10],5,3]]]
|
||||
[[2,10,6,4,[5,[]]],[0,[9,5,[2,6,10,3,8]],[]],[6,7,[[0,6,6],5,[4,3,0],[],3],6],[6,9,[[7,6,0,0,9],[9,10],7],[[],2],[4,2,7,[4],[4,6,2]]]]
|
||||
|
||||
[[2,5,[[2,0,5,8]],[1,[0,0,10],9,6,[1,9,3]],[[8,2,0,8,8],[9,10,3,9,7],[0]]],[6,[3,[1,2,1,7,4],[6,10,10,1],[10,0,9,7,2],8],9,8,[[],2,8,8]],[],[]]
|
||||
[[4,9,[[3,1,2,5,0],5,[9,0,9,7],[8,5,7]],8],[[],2,[],[3,8]],[0,8,1,[[7,5,7,1],7,[10,9],4,8]]]
|
||||
|
||||
[[],[7]]
|
||||
[[],[[3,[10,3,5,8]],[[0,9]],[[],10]],[[],0],[]]
|
||||
|
||||
[[2,9,0],[8,5],[[1,[0,1],7]],[[8,[2,9,6,4],9,[8,4],4],7]]
|
||||
[[[[6,5,5,5,8],[9,1,1,0],[],[1],[2,5,2,7,10]],10]]
|
||||
|
||||
[[[[4,4,10,5],2,[]],[9],[[9,7],[2,0,1,1,5],0,10],10,5],[],[3,7,[9,9],4,2],[[[5,9],[],4],[[],[0,8]],[[10,4,6],7,3,[],[]]],[3,[0,2],[[0],7,[],6],3]]
|
||||
[[],[9,[[6,3,2,8],[8],[2,8,0]]]]
|
||||
|
||||
[[[9],[[3,9,8,1,0],[3,10,7]],[5,[10,10],5,[],[1,6]],[[6,0,0,10,10]]],[],[5,[9,[1,3],[4,9,0,10],[8,5],[10]],[]],[[2,8,[5,1,6,1,4],10],6,[[4,6,6],8,[4,8,10],[10]],10,2]]
|
||||
[[[[8,9,0,0],1,10],4],[6,5,0,[5,[6,0,9],[3,9,5],10,[4,8,3,6]],[]]]
|
||||
|
||||
[[[10],[5,[2,10,4],9,7,[6,5,10,7,6]],[9,[],[],[0,4]]]]
|
||||
[[],[[9,[8],9],[[1,3,5],[5],[4,6,10,4],[7,8,10,9]],[[4,0,7,5],6,[]],[0]],[[[2,4,5,8]]],[5,[8],[[6,2,8,2,3]],[5,[],[2,0,4,1,4],[8]],6],[[8,0,6]]]
|
||||
|
||||
[[[],9,[[5,4]],4],[]]
|
||||
[[3],[[[4,5],[2,1,8,9],[9,9,2]],6],[1,[10,4]],[10,[3],[[9],2,[10,0,8,5],4],[],8],[2,9]]
|
||||
|
||||
[[[2,5],7,8],[0,1,[],2]]
|
||||
[[1,6],[[],9,7,0]]
|
||||
|
||||
[[[5,1,[3,2,6]]],[10,1,9,1],[]]
|
||||
[[8,10],[],[[[8,7]],[10,[0,3,9]]],[[8,[7,3,2],[7],[2,1],[1]]],[4,0,1]]
|
||||
|
||||
[[[[2],[4],9,[0,1,0,1],6],[],[8,[4],5,9]],[]]
|
||||
[[[5,[10,1]],[6,2,[6,4],[6,1],8]]]
|
||||
|
||||
[[[5],[6,0],1],[[[8,7],[1,6]]],[0,9],[],[0,0,[9,0,[],3]]]
|
||||
[[[[8,10,3,0],[4],[0],[5,2,7,2],[4,7,5,5,4]],[[4,10,9,9],[1,1,4,8,0],10,[2,10]]]]
|
||||
|
||||
[[[[5,4,5,4,2]]],[8]]
|
||||
[[[8,7,6],1,3,9,[[3,4,2,7],[],[10,10],[8,7,7,10,10]]],[5,8,3]]
|
||||
|
||||
[[4,[0]],[5,[5,1,1],[[2,1,6,4],[8,1,8,6,6],[10],7,1]],[],[],[5,9,3,3]]
|
||||
[[6,[1,[5,1,4,8],[],[6,0,4,0,7]],9,[[6,5],[4,5,8],[4,10,8,7],[3,0],6]],[[3],[],7,9,[[6,10,1,2]]],[[],5,[[7],3,10],3]]
|
||||
|
||||
[[[0,[2],[8,4,4,2],[8,5,8,3,6]],[[6,4,0,8,1],[],4,[3,2]]]]
|
||||
[[4],[[[6,0,1,3],[5,2,4,4],6],[[],1],[8,[]],7,[]]]
|
||||
|
||||
[[[[0,0],[3,4]]],[]]
|
||||
[[[9,[10,0,9,10]],2],[4,6,[[8]]]]
|
||||
|
||||
[[],[[[8],[8,1,5],9,[9,0,1],[5,10,3,0]]],[]]
|
||||
[[[1,[8,5],6,[]],[10,1,1,[2,10,4]],[],[8],[[4,10,6,3,0],[2,10],6,8,[0,10,10]]],[[[1,4,4,7,6]],9,8,[[6],4,[8,9],[0]],[[9],[4],3,3,[6,5,6,0,3]]]]
|
||||
|
||||
[[9],[[10,[5,2,8,0],7,[9,7,6,2,1],[5]],[9,[5,3],[4,10],[5,4,6,9]],[5,[6,8,4,4,7],[0,9,5,4],[1,0],3]],[],[[8],[[5,7,0]]]]
|
||||
[[[8],[],4,9,1],[[1,[5,6,3,1],[8,6,0,5,0]],8,2,[[7,5,1]],1],[[[10,6,4],[8,6,1,4,9]],[[]],9,[7,[9,4,6],8,[6,4],7],[8,3,9,[10,6]]],[[7,8,[2],[7],[6,4,9,3]],10,[4,8,[0,6,2,1],6]]]
|
||||
|
||||
[[[4,1,6],3,[6,7]],[0,[6,0,[7,9,9],5],[10,2,[2,2,1,9],[4,0],[2,1]]],[[]]]
|
||||
[[],[8,6,7,[9,[6,9,2,4,7],[10,0]],[]],[1,[5,3,10,[6],[8,6,3,6]],2,3],[[],[[9,3,10,0]],2,[[9,3,10,6],4],0],[[[0,5,10,9],6,[2],[1,2,2]]]]
|
||||
|
||||
[[[[],[8,1,5],[1,6],[2]],8],[[]],[1,5,[6],[[]]]]
|
||||
[[],[[],[5,9,[3],[0,6,5],5],10,4,[8,[],6]],[8,0,[[3,4,1,10]],0]]
|
||||
|
||||
[[7,2],[],[[5,7,3],[],[[2,2],[],9,[2,6,7]]]]
|
||||
[[[[2,9,2]]],[]]
|
||||
|
||||
[[4,3,10],[0,[1,9,[1,10,5]],8,[[8,6],[3,1],[9,8],1,[4,8,4,5]],3],[[[2,2],[8,5,5,2,0],3,[5]],[1,[3,10]]],[8,[[],[3,8],1]],[[]]]
|
||||
[[[4,5,[],[10,3,10,4,10],8],[9],2,4,6],[[6,[10]]]]
|
||||
|
||||
[[[6],8,4,2],[1,[]],[[],10,[]]]
|
||||
[[2,6,1],[[[7,6],7,[],[2,0],[3]]],[10],[[9],10,[7,3,[],9,7],6,9]]
|
||||
|
||||
[[0,6,9,[[0,10,1]]],[[[],7,3],[]],[],[8,9,2],[1,[0,8,[9,8]],[[3]],[1,7,7,1,[5,4,4,10]]]]
|
||||
[[7,8,[]],[4,[8,[6,3],6],0],[2,9,7,[10]],[5,[[],0,3,[9]]],[]]
|
||||
|
||||
[[],[0,[7,6,[2,6],[7,2]],[4,3,6,7,8],7,1]]
|
||||
[[[[3],7,[],2,[3,9,4]],[[0,4,10,8,0],0,9,[4,6,4,0],[4,6,2,8]],[[5],[2]],1,[]],[[3,7,6,7,10],[[10,3,9],[4,1,7],0],7,[0]],[3,7,6],[7,[8],7,[[0],5,9,9,1],0]]
|
||||
|
||||
[3,2,7,8]
|
||||
[3,2,7,8,2]
|
||||
|
||||
[[[6,[10,3],0],4,[[1,7,9,9,10],1,3,[1,4,4,5]],[[8],[],9,9],[[6,8,9,7,3],9,[0],[2,7],0]],[3],[[10,[],6],[]],[[[9],10]]]
|
||||
[[9],[10,7],[[0,[9,10,10],10],7,10]]
|
||||
|
||||
[[8,9,2,[],[9,7]],[[2,[7,6,2,3],8,6],[[7,7,9,4,5],[],[6,2,7,2],4,2],10,4],[4],[]]
|
||||
[[10,0,[[],9,0],[[7,3,7,1],8,[0,3,8,5]]],[9,[4,0,10,9]],[]]
|
||||
|
||||
[[[[6,1,4,0,2],[4],[5,1,0]],[5,[1,7,2]],5,7,[[]]]]
|
||||
[[],[[[],0,4],[[0,8,5,10]],[5],[4,8,10],6],[[5,10,[8,8,4,4],7,[6,8,10,7]],10,[],[[7,6],[1,8,10,10,0],2,[1],5]],[[6,[],0,2],0],[7,[[9,7,0,0,2],[3],0],9]]
|
||||
|
||||
[[[[1,1,8,8],5,[1],[5,3,6],[1,7,7,10,7]],10],[[1,[8,0,5,4],8],[[],6,5]]]
|
||||
[[],[5,[],[6,8,5,[4]],[[4],[7,8,10,4],[6],[4,5,0]]],[3,[[3],[6,0,7,1,6],3,8,[6,10]],8,7],[[4,5,[2,8],[]],9]]
|
||||
|
||||
[[[7,0,7,3]],[],[6,1,[0],9]]
|
||||
[[[8,10,9]],[7,[7,[],[9,3,6],[1,2,4,7]]],[0,2,[]]]
|
||||
|
||||
[[[[4],[7,4,6,7,1],8,6,9],6],[4,[],[1,[6,7,5],[7,7,4],8],9],[[9,10,7]]]
|
||||
[[[0,[],[0,2,10]],7],[6,1,[[4,0],2,4,[10,3,5],10],9,[4]],[0],[[[6,3,4,4]],[[],[10,10],[8],9],0],[]]
|
||||
|
||||
[[[9,[1,2,6,6,2],[9,7,0,3,4],[5,9,10,4,0],5],7,[[5],0,[2,7,4]],[[9,6,10,5,10],8,5,[3]]]]
|
||||
[[3,[4,1,7,5],[9,4,[2,6],[7,5]],[[9,0,6,6]],3],[[]],[],[5,[],9,8]]
|
||||
|
||||
[[0,5,[[],[8],[2,5]],4],[[1,[8,3,10],[6,3,8,1],[4,10,6,5],[9]]]]
|
||||
[[0,3,2,4,4],[1,[],[[2,8]]]]
|
||||
|
||||
[[[[9],8],7,5,[0,[8,6]],[6,3,[10],[]]],[[1,[]],[[9,10]]],[[[10,2,10,5,5]],[],4],[[7],6]]
|
||||
[[],[6,[],[],5,4],[[3,[1,5,10],7],[4,[6,4,4,0,5],[0,4,2,9]],[2,8,4,[6],[0]]],[[],[7,[4],[]]],[[],[[]],[[6,6,9],[9,5],8,[3,2,3]],[[8],6],10]]
|
||||
|
||||
[[[],5,1],[[[2,1,3,10],4,[],[4,1,4],10],7],[8,5,[6]],[[],0,[4,[7,1,2,4]],1,1]]
|
||||
[[[[0],1],[2,[4]],[[],9,[3,7,6,2],[5,10,7,0]]],[],[[[1]],[[0,5],[0,6]],[[1,10],[0,7],[6,9,4,10]],5,[[3,6,5]]],[]]
|
||||
|
||||
[[[0,[0,6,7,6,3],2,[]]]]
|
||||
[[7,5],[3,3,8,[8,[9,7],[2,2],[2,10,5,7],[7,1,8]]]]
|
||||
|
||||
[[[6,[3,4,8],[4],[1,1,1],9],3,[[7,5],4,[9,8,0],[1,6,4,10,3]],[3]],[[3,[1,5,3,3,1],9,8],6,[0,[2,10,7,3]],[7,2,[6]]],[9,4,[],[[10,4,4,10,8],7,[3,2,0,1,0]]],[[4,9]]]
|
||||
[[[[7,5,9],[1,3],1,0,8],[[10,2]],5,4],[[[],4,[],6,[0,3,1,6,10]],1,2]]
|
||||
|
||||
[[9,9,[[],[7,5,4,3]]],[3,3,[],[4,[9,0,0,1]],8],[6],[[],6,[4,3,[],[1,7,6,9,6]]]]
|
||||
[[10],[],[],[8],[9]]
|
||||
|
||||
[[4],[[0,[10,1],[2,7,9,4,6],3],5],[[[1,4],[3,8,10,4],8,[7,8,1,4,8],[]],3]]
|
||||
[[],[3],[1,[0,[2,7,0],2,8,[3,8,6,1,8]],9],[]]
|
||||
|
||||
[[10],[],[[[3,9,9],[],[7,8,6,7,5],6],6,8,[4,[10,10,2,9,9],9,4,1]]]
|
||||
[[6],[1,4,5,[[10,6],[],9,6]],[[0,[2,5],[5,9],7],[[0],3,1]],[[10],7],[[[8,4,2,7]],4,7]]
|
||||
|
||||
[[[7],1,[],[[],5,1],4],[],[0],[2,[1,[0],5],3,8],[10,[7,9,4,[2,5,1,7]],0]]
|
||||
[[[],4,9,[1]],[6,10,[[9,7],[4],[0,10,6]],[1,10],8]]
|
||||
|
||||
[[[[],9,3,[5]],1,[4,[6,10,6,5,2],[],[6,7]],[10]],[2,[],4],[[10,8,0,[],2],[[],6,1,[5,6,8,7],[10,1,1]]],[[5,[2,9]],8,10,[7,10,[0,9],[8,5]]]]
|
||||
[[[[6],0,8,2,[4,8,1,9]],[8,10,7],0],[4,[]],[9,2,[10,[]],6],[8,9,[5]],[]]
|
||||
|
||||
[[[[],8],[1,[4],[8,1,8,4,0],[9,7,4,1]],10,8,[[3,1],[10,0,9,10,10]]],[[]],[6,8,[[10,3],8,6,[0,9,5]],3,[]],[[6,8],1,6,[[4,10],[],5],[[3,8,6,1,1],[10]]],[[],[[7,1,3,8],0,[]]]]
|
||||
[[8,[[9,9,4]],[[6,4,8,10],1,[6]],3]]
|
||||
|
||||
[[[[3,5],8,[0,0],2],[6,[2,5,5,7],[4,10],[6,6]],[[3,4,2,6]],[[1,7,2,6,0],[4],10,[9,2]],10]]
|
||||
[[[[7,6,8,5,10],[7,0,9,8,9],5,[7,7],[2,8,1,0,5]]],[7],[],[[4,3,[2]]],[[[10,1],0,1],6]]
|
||||
|
||||
[[0,[[10,7,8],3,9,[10,4,2,0]],[10,7]],[0,10],[[]],[[[6,9],9],10,6,5,4],[[[],6,9],4,2]]
|
||||
[[[9],[[]]],[5,[8,9,[4,9,6,6,6],1,[]],[0]],[[],5,[7,7,7,3,0]],[[8],6,4,7,[[9,4,7,8]]],[[[10,6,0,6,3],9,[7,7]],[9,1,[],9],[[3,4,10,8],5,9,2,5]]]
|
||||
|
||||
[[5],[]]
|
||||
[[[10,[9,3,2],0,[7,10,8,0,1]]]]
|
||||
|
||||
[[[[],0,0,8,[5]],[8],[0,[2,7],[10]]]]
|
||||
[[[[10,7,1,8],8,[],1],4,10,2],[[[9,3,10]],5,[[3,5],[4],[]]],[1]]
|
||||
|
||||
[[[3,[7,7,0],9],[5,[7,1],[4,5,1,1],8]],[[1],[7,5,1,9]],[[],[[5,10,0,1,5],3]]]
|
||||
[[4,9,[5,[10,9,9,3,7],3,[4,1,3,3]],4,10],[],[[]],[[5,[10,3]],[[10,0,7],[2,1]],[8,[],4],4],[9,[0],[],[6,[1,9]],9]]
|
||||
|
||||
[[[],8,4,[1]],[[[2,1,2,1],[10]],10,7,4],[[5,8,[8,3,1,5,1],[5,6,8]],[[2,10],[]]]]
|
||||
[[[9,[2,4,9],[10,5],[],3],0,[0,[],4],[8],3],[],[9,[9],2],[],[]]
|
||||
|
||||
[[10],[[]],[3,[],1,8,9],[0,[5,[8,7,8,6],8,[10,9,3,0]],[[],3,[8,1,7,8],2,7]]]
|
||||
[[],[[4],3,[[8,8]],[],1],[],[4,0,4,[9,10]],[[9,[7,4,5],7],8,[6,[8,7,5,7,9]]]]
|
||||
|
||||
[[[[3,1,9,7,2]],1,3],[3,1,[[],[10,7,1,5,1]],[[2,5],[1,9,9]]],[10],[],[[[5,8,8,4,3],0,[2],[5,9]],2,2,[]]]
|
||||
[[[[7]],2]]
|
||||
|
||||
[[7,[9,6],[[4,1,1,8],9,[]],[[],9],[0,0,[8,6,0,2]]],[[],[1]]]
|
||||
[[4,7],[],[10,1,[9,0,[5,9],[0,5],7],[8,0,7],[[8,1,4,5],8]]]
|
||||
|
||||
[[10,[[8,10,4]],9,[]],[],[[10],7],[3,4,5,10,[[6,4,8,7,9],3,[0,5]]]]
|
||||
[[9,[6,[2,8,9],3,[2],[0,1,5,0]]],[5],[[[9,8,1,9,8],[],[9,4,8],1,6],4,[3]],[[8,10,3,3,10],8,1,4],[]]
|
||||
|
||||
[[8],[[1,9,4],[9],0],[[],5,0],[3],[[9],3]]
|
||||
[[0,5],[0,[[9,6,8]],8]]
|
||||
|
||||
[[1,[],[[8,10,2,5],6,[5,0,7,2,8],2]],[]]
|
||||
[[6,5,10,9,[5,7,8,[2,3,9,8,10]]]]
|
||||
|
||||
[[],[8],[[4],[1,9,1,3],3]]
|
||||
[[1,[[],[],10,[10,2],6],0,[]]]
|
||||
|
||||
[[[],10,[[7],[1,0,9],7]]]
|
||||
[[1,2],[],[[[4,10]]],[[1,[6,9,1,0],4,[7]],4,[[8,10,0,5,5],1,6,[8,7,10,0],[5]],7]]
|
||||
|
||||
[[[],[5,9,[2,4,7,7],[10],7]]]
|
||||
[[[1],2,[7,0,[7,9,3,5,10],6,[6,3,3,0]],[],[2,5]]]
|
||||
|
||||
[[],[[9,4,[5,5],[]],5,2,[6,10,10,[0,1,3],10],6],[10,[[5,3,0],[],2],[[1]],4]]
|
||||
[[[[4,6,9]]],[[10,0,[8,1,5,3,6],[],10],2],[8,[[2,3,10,5,10]],[[9,1,3,3,2]],[[7,2,8],1]],[]]
|
||||
|
||||
[[],[[[],[],5,[1],[2,7,1,7,2]],7,9,[[6,2,3,4,0],8,2],2]]
|
||||
[[],[4,2,5,[[1,3],1,[6,5],[3,5,7],[5,5,8,10,5]]],[],[]]
|
||||
|
||||
[[7,[2,[4,0,6,6],0],3]]
|
||||
[[3,3,[[1,5]]]]
|
||||
|
||||
[[[[4],[5,5],[9,10,2,6],[4,2,1,4]],0,0,10,[[],[6],[3,4,4,2,6],[2,8],[]]]]
|
||||
[[2,[[10],10,7,[],7],[[2,3,2,9],[2,2,8,6,2],[5,5,2,9,1]]],[[],2,8,1,[2,[4,5,9,5,1],8]],[[[]],6,[10,[6,5],[6,10,9,5,5],2]]]
|
||||
|
||||
[[4,[9,[3,2,2],[3,2,2,10],3,[10,8,5,2]]]]
|
||||
[[0,9,8,[[2,1],[0,7,2,9,4],[6]]],[[5,9,[3],7],0,7,[0,[8,1,2],[2,10,9,3,6]],7]]
|
||||
|
||||
[[[1,[7,5],7],0],[2,0,4,1,7],[[2,9,4,[8,3,8],[2]]]]
|
||||
[[],[[6,10],6,7],[0,9,6,4,[2,1,[5,1],[]]],[[],[[7],2,5,[6,0,6,2]],[[0,9,2,3],3]],[[[],10],0,6,8]]
|
||||
|
||||
[[],[],[2],[[4,[10,10]],[1],[7,3,[9,9],0],[[3,7],10,[5,1],9]]]
|
||||
[[7,[[6,9]],4,6,2],[[],[],[6,6]]]
|
||||
|
||||
[[[10,5,10,7,7],4,3,1,3],[],[4]]
|
||||
[[3,[5,2,7,[5],5],[[5]],0,2],[[],[[6,7,0],[0,8]],7,[2,0,8],[[0,2],[]]],[1,7,10,[7,3,1],[]],[4,[[9,1,10,7],[7,9,3]],[],[1,1,9,5]],[9,4,5,[[3,2,7,0],[1],7,4,6]]]
|
||||
|
||||
[[[[3,4,4,8],[],[5,9,10,4,3],[1]]],[2],[4,3,[],[4],[[3,3],3,[8,8],[1,4,10],[3]]],[[[0,7,10],[10,9,3,0,10],6,7,6],0,[9,4,0,0,[9,10,0,7]],[6],[]]]
|
||||
[[3,[[]],0,[5],4],[6,8,10,6,[[8,1,5,5,7],3,0,[],4]]]
|
||||
|
||||
[[[5,4,5,8,1],6,[8,[],[0,6,0],[3,8,10,0]]]]
|
||||
[[[[10,4,1,4],[2,5,9,2],[6,3,2,5,2],[],8],[10],2],[[2]]]
|
||||
|
||||
[[[7,[7,10,2,7],[]],[4,7,[0,10,10],4,10],[],10],[3,4,9,[],2],[[8],9,[7,[8,7,2],[2,4,6],4,[8,4,6]]]]
|
||||
[[6,6,[[3],[3],[1]],8],[[9,[8,8,3,9],10]],[[5,5,4,[]],9,[]],[8,[[3],6,6],[1,[3,7],0,9,0],[[],[],9,3],[2]],[[[3],[6,6,4,9,6],[7,5],[3],8]]]
|
||||
|
||||
[[0,3,[7,10],[7,[7,1,5,4]]],[[7,7,10,[7,1,5]],[4,[2,3],[1],9,[]],4]]
|
||||
[[4,[[3,6,10,8]],9,9],[[[6,0,9,7],[0,9,5,3],9]]]
|
||||
|
||||
[[[4,1],[1,1,[6,5,7],3,[9]]],[8,8,0,[6]],[0,[[8,8,4,0,0],[8,9,1,8,8],[2]]]]
|
||||
[[9,1],[5,1,[[7],[6,5],[],[7]],10,3],[2,3],[1,5,[],[]]]
|
||||
|
||||
[[[[5,9,0,6]],[0,[9,9],0,[]],6],[[]],[[[6,4],10],10,0]]
|
||||
[[],[[]],[[1,3,[7,8,6]],[[3]],8],[[[],[2,3,8,5,4]],8],[9,6,[5,[]],[9,[6,9,7,3]],9]]
|
||||
|
||||
[[5,3,1],[2,5,[[],1,[1,10,9,0,7],[],[]]],[5],[3,10,[[8,4],[5,7]],5],[[5,8],[[1,6,4],10,6,3,[7,5,1,8,3]],[],[[],[3,7],2,[5,7],[10,7,3]],[[5,10],1,[5,8]]]]
|
||||
[[[1,[5,0],0,0],10,7,[],3],[[[0,0,6,9,0],[10,4,9,0]],3],[8]]
|
||||
|
||||
[[6,6,3,[6,0,10,[1,6,0,6],6]],[1,[[2,9,2,5,1],9],[6,[1],0,4,7]],[[[1,10,8]],[1,3,[2,1,10,0],10],0,8],[[[8,1,2,9,5],[4,6,10,8]],6,0,[],6]]
|
||||
[[[[0,8,2,2],[9,1,5,8,6],8],1,0,[2,[0,4],[10]],[[9,4,2,3,3],[4,6,0],9,7]],[[6,[],0,[5,7,4]]]]
|
||||
|
||||
[[[[2],[8,9,1,3,3],[3,8,5,6],[7,3],5],[10,5,[8,0,5,7,8]],[],3],[4,[[0,4,7,4],1,[8,0,7,3],9,[10]]]]
|
||||
[[[[7,1,8,1]],10,[10,[1,8,1,5],[9,9,9],[5,10,10]],5,[]],[],[],[[10],[[0,1,8]],2,[[],9,[0],5,[]]]]
|
||||
|
||||
[[0,0],[[],3,[[4,8,4,6],3,[1,5,0,0]]],[[],10],[[8,[5,8,7],8],2,0,[]],[8,5,[[],[]],2]]
|
||||
[[10,[10],[],7,10],[[9,[10,6],2,4],[[6,9,6,0],4,7,1],[8,9,[]],[[5,3,10]],7],[8,[[5,1,1,1,5]],[[1,6,3,5]],[[4,5,7],[],3],[[7,1,5,4],[0,10,10],[1]]]]
|
||||
|
||||
[[6,1],[],[4,[[9,10,7,8,2],[8,2],10],3,10,[[8,8,3],4,7,[2,1,5,5,3],[8,6,7,5,0]]]]
|
||||
[[[0,[4],[4],[2,5,4,7,7],5],0,[]],[]]
|
||||
|
||||
[[[],3,8,[[7,5,3,8,9],3,[8,10,4,7]]],[[[10],10,[0,9,3]],5,[[10,2,10,10,6],10,7,[7,4,7,9,9]]],[],[[7,[],5],9,[10,[4,9,0,2],[9]],[5,[1,10,2],[4,4],[8,2]],[[3,7,8],5,[9,2,5,5,5],[2,10,2]]],[[[9,9,9,10],[9],[10,10,9],[8]],8]]
|
||||
[[],[[9,[10,7,7,4]],10],[[1,5,9,4],[[6,6,3,10],[],5],3,[[],9,[6,7,3],3,4],10],[[0,[6,8,10],10,[1]],[[2,2,5,5]]]]
|
||||
|
||||
[[8,0,9],[0,1,[0,1,4],0],[3,4],[[[0,1]],1,[9,5,9],[5,[3],5,[3],[2,1,6]]]]
|
||||
[[[[10,3,10,2],7,3],4,[[1,5,6,4,5],[9,4,6,9],3,[9]],[[1,5,7],[4,10,7],[4,2],10,[9,6,0]]]]
|
||||
|
||||
[[5,5,[1,[9,6,9],4],1,0],[[[8,4],[6],5,[4,3,9,7],3]],[5,4,7,5,[]],[3,2]]
|
||||
[[2],[9,[[3,7,1],[2,3,4,9],3,6,[1,2,9,0,4]],8]]
|
||||
|
||||
[[1],[[2,[2,2],[3,3,1,3]],1,[[8],[0,5]],[7,8]],[[[10,5],3,[9,6],2,[9,6,8,6]]],[[4],9,5],[3]]
|
||||
[[6,[],[4],[[3,0,9],[4,9],[4,4,6],0,10],9]]
|
||||
|
||||
[[[8,7],2,[[]],6],[10,8],[1,3,8],[3],[4]]
|
||||
[[7,[4,7,8,[0,2]],1],[[[10,9,9,6],9,[9],7,1],5,[[8],1,[10,4,10],6],9]]
|
||||
|
||||
[[[[2,5,1,8,0],10,7,[5,4,10,0]],6,6,[[4,6,7,9],2,[],[6,10,7,9]]],[[8,[8,6,10,0],4,5],6,4,[[4,2,3],8,6,3,3],[[9],[1,4,7,5,5],[4],7]],[[],[6,2,[6,5,4,6]],10,8],[3,[4,8,[0,2,10,10,9],4],[6],[[]]],[[]]]
|
||||
[[[[3,7,2],10,10],6,[1,4,0,0,[]],[[0,5]]],[[0,[5,2,1,0,10]],[2],[0,[7],8,3]]]
|
||||
|
||||
[[],[6,5,3,6,[3,4,[7,2,9],0]],[3],[7,[[],4,[]],7,[]],[[[10,10,6],10],[[8],4,[9,9,0,10,7],4,4],9,[[1,8,10,7,4]],6]]
|
||||
[[],[10,[6,2],[5,3],2],[4],[[7,[7]],8,[2,9,[10,2,0],2],[],[[7,1],1,9,[4,2]]]]
|
||||
|
||||
[[[],8,[9,0]],[],[4,2,[1,[1,5,7,4]]],[1,4,0,[[],5,4,9,[10,9]]],[[],[4,10,[1,10]],9,[]]]
|
||||
[[[[7],[7,0,10]],[3],[[]],[]],[[[6],[],[6,0],1,[9,5]],[10,[5],[],1],[[1,8],[],9,[7],[1,8,8,8]],[],[0]],[[[]]],[1,[],[6,[],7,[5,5,2],1],8]]
|
||||
|
||||
[[8,[],7,[]],[5,6,[],9,[[7,9,9],1]],[3]]
|
||||
[[[4,[3],[9,4,4,9],1,6],[10],2],[[0],[],[[2,3,7,2,3]],[[3,9],10,[4]]]]
|
||||
|
||||
[[[[2,3,9,1,6],[10],[10]],[0,9,[0,4,10],7,[3,2,7]],5]]
|
||||
[[[7,[9],5],4,10,[[3,9,8],[5,6,1,0,9],9,[]]],[1,[[7],[5,10]],8,[[4,8,5],2,9]]]
|
||||
|
||||
[[[[3],9,2,8,[]],[10,[1,10,6],[10,7,9],4,[10]],[2,[3,6,9,6],[5,0],[3,5,10],8],4]]
|
||||
[[7,[[10,10,3],1],4,[0,[8,9,6],9,[6,3,9,1,6]]],[]]
|
||||
|
||||
[[[8,[3,1,3,2,3],5,10],[3,2],9],[8]]
|
||||
[[4,7],[],[7,6,[[10,5,0,3,4],9],7,[[0,5,9,5],7,2,[5,8]]]]
|
||||
|
||||
[[2,[],2],[2,[5,[2,2,10,2,4],[3,3,5,10],[6,1]],[6,[6]],2,8]]
|
||||
[[[7,3,4],4,[[7],[10,6,9],[],[]],[[2,7,5],[8],[4,7,10,9,6],[]],[3,0,8]]]
|
||||
|
||||
[6,4,3,7,0]
|
||||
[6,4,3,7]
|
||||
|
||||
[[[[0,2,5],9],1,8]]
|
||||
[[[1,[4],[8,7,5,7,3]],10],[]]
|
||||
|
||||
[[8,[5,[9,1,2],5,10]]]
|
||||
[[[4],7,8]]
|
||||
|
||||
[[7,[]]]
|
||||
[[[[9,5],[2,10,6,7]],2,4,[],[10,6,8,3,8]],[[[]],9,[[2,9],10,3,6],[[1,10],[9]]]]
|
||||
|
||||
[[5,[[1,7,9],10],8],[[6,[7,1,9,2],10,[5],[6,4,9]],[10]]]
|
||||
[[[2,8,6,[]]]]
|
||||
|
||||
[[9,8]]
|
||||
[[3,9,[[0,2,0,3,3],[9,6,7,3,9],3,10,4]],[1,3,[[],[1,7,5],[8,4,8],0,[2,2]],9,6],[]]
|
||||
|
||||
[[[],[[0,4,9]],[[1,10,9,8,7],6,[5,1,6,10],4]],[[[],[9,0,2],10],[3],9,[]],[2,6],[[],1,[9,8,[5,3],[],[4]],6,10]]
|
||||
[[0]]
|
||||
|
||||
[[1,3],[7,[],[[2,6,8,7,5],2,[],[7,0,6]]]]
|
||||
[[[6,[],7,3],5,[2,[],[9,8,1,4],3]],[[[0,7]]],[10,[[6,0,1,7],[],[8,2,5],7],1],[]]
|
||||
|
||||
[[[],[],5,[],[[8,5,10]]],[10,[[0,3],[1],[6,3,1],[5,4,1]],4,1],[1,[],[],[[3],1,[9],5]]]
|
||||
[[[7,[4,10],10,[0,3,10],6],1]]
|
||||
|
||||
[[[[3,4,6],7,[0,1,6,8,10],7],[[1,9,5,10]],9]]
|
||||
[[[6,[2,7,5,9],0]]]
|
||||
|
||||
[[8]]
|
||||
[[[[1,0,6],2,[3,10,1,9]],6]]
|
||||
|
||||
[[[7],0,[4,[4,0,7,8],[7,10,4,6,10],[]]]]
|
||||
[[[10,7,[8,10,2,0,6]],6,[8,4,[8]],1,5],[8,[1,6],3]]
|
||||
|
||||
[[8,[7]],[7,0,0,6],[[[4,8,9,7],8,[6,0,1,3],9],1,1,10,7],[2,[7,[4,9,2,9,4],5,[10,9,5,4]],[5,[10,3,6,7],[8],[4,6],[3,1,1,5]],9,4],[4,[[8,7,2,2,0]],[[3,10]],[],[10,0,7,8]]]
|
||||
[[[[5,4,9,4,9]],[[7,6,2,8],[3,9,10],2,3,9],9,[[10,2,8,2,0]]],[9,[4,[1],9],4],[],[5,5]]
|
||||
|
||||
[[[[8,2,4],[8,7,3]]],[7,[2,10,8,[7]]],[9,[[6,3]],[],8,6]]
|
||||
[[[[],[0,1,0],[6,9,8,7,2]],[[3,1,0,10]]],[[6,[0,10],[],5,[4,2,1,6,5]],[]],[1],[3,[6,1,[6,7]],4],[[[],3,10,[10,1]],7]]
|
||||
|
||||
[[[10,[1]],8,5,[]],[9]]
|
||||
[[[3,[1],10],[10,9]],[10],[1,9,[[7,2,1,8,7],[]],3,0]]
|
||||
|
||||
[[[],[[3,5,5,7,7],[9],2],[[10],0],8],[7,[[6,6,5,8],0,2,[4,7,3,5]]],[[1],2,[[2],[7,3,7]],6]]
|
||||
[[],[3]]
|
||||
|
||||
[[4,[],[[2],[6,7],0],4],[10,[[9,4,7,6,10],[0,0,1,10,6],6,1,3]]]
|
||||
[[4,1,0,1],[],[],[[1],[],[[9,10,5,0],[10,7,4],[10,9,1,10,3]]]]
|
||||
|
||||
[[[[4,8,8,0],[7],3,2],8,[[10,9,1]]]]
|
||||
[[[1,6,[10,4,2]],1],[1,[4,[2,7],6,[7],2]],[3,9,10,9],[]]
|
||||
|
||||
[[[[10,1,4,6,5],[2,8,10,6],3],2,2,[6,3],[[4]]],[4,[[7,6,8,0],[4,0,3],0,[10,9]],[3,8,10],1]]
|
||||
[[[2,5]],[[5,[8,7,2,0],8,[9,1,5],[9,8,0]],10,10,[9,3,[10]],3],[[2,2,7,[3,10,7,10,8],7],8],[4,0,[6,2,10],[10,3,0,[4,6,5,4,2]]]]
|
||||
|
||||
[[[],2],[0,6,[[2,7,7,2,4],[7,1]],6,2]]
|
||||
[[3,[],[[10,2,1,5]]],[]]
|
||||
|
||||
[[],[8,[[5,10,5]],9]]
|
||||
[[[[2,8,4],[2,0],4,6,4],2,[[10,5,10],1,[10,9,1,1]]],[2,7],[],[[[3,1,4,8,4],4,[0,5,9,3],4,[]],[],[8,2]]]
|
173
input/14.txt
Normal file
173
input/14.txt
Normal file
@ -0,0 +1,173 @@
|
||||
480,150 -> 485,150
|
||||
459,100 -> 464,100
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
504,19 -> 508,19
|
||||
467,59 -> 472,59
|
||||
463,103 -> 468,103
|
||||
472,68 -> 477,68
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
470,103 -> 475,103
|
||||
479,36 -> 479,40 -> 477,40 -> 477,48 -> 489,48 -> 489,40 -> 483,40 -> 483,36
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
467,128 -> 467,132 -> 462,132 -> 462,138 -> 477,138 -> 477,132 -> 472,132 -> 472,128
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
452,112 -> 458,112 -> 458,111
|
||||
460,115 -> 460,117 -> 456,117 -> 456,125 -> 469,125 -> 469,117 -> 464,117 -> 464,115
|
||||
486,25 -> 490,25
|
||||
471,109 -> 476,109
|
||||
467,179 -> 467,180 -> 472,180 -> 472,179
|
||||
487,150 -> 492,150
|
||||
501,16 -> 505,16
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
479,36 -> 479,40 -> 477,40 -> 477,48 -> 489,48 -> 489,40 -> 483,40 -> 483,36
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
464,109 -> 469,109
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
489,22 -> 493,22
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
460,115 -> 460,117 -> 456,117 -> 456,125 -> 469,125 -> 469,117 -> 464,117 -> 464,115
|
||||
471,55 -> 471,56 -> 479,56
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
498,25 -> 502,25
|
||||
467,128 -> 467,132 -> 462,132 -> 462,138 -> 477,138 -> 477,132 -> 472,132 -> 472,128
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
498,13 -> 502,13
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
472,144 -> 477,144
|
||||
466,150 -> 471,150
|
||||
479,36 -> 479,40 -> 477,40 -> 477,48 -> 489,48 -> 489,40 -> 483,40 -> 483,36
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
507,22 -> 511,22
|
||||
467,128 -> 467,132 -> 462,132 -> 462,138 -> 477,138 -> 477,132 -> 472,132 -> 472,128
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
479,36 -> 479,40 -> 477,40 -> 477,48 -> 489,48 -> 489,40 -> 483,40 -> 483,36
|
||||
498,19 -> 502,19
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
458,68 -> 463,68
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
475,65 -> 480,65
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
492,19 -> 496,19
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
460,115 -> 460,117 -> 456,117 -> 456,125 -> 469,125 -> 469,117 -> 464,117 -> 464,115
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
467,128 -> 467,132 -> 462,132 -> 462,138 -> 477,138 -> 477,132 -> 472,132 -> 472,128
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
466,100 -> 471,100
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
464,62 -> 469,62
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
456,103 -> 461,103
|
||||
484,28 -> 484,30 -> 481,30 -> 481,33 -> 488,33 -> 488,30 -> 487,30 -> 487,28
|
||||
467,179 -> 467,180 -> 472,180 -> 472,179
|
||||
467,128 -> 467,132 -> 462,132 -> 462,138 -> 477,138 -> 477,132 -> 472,132 -> 472,128
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
467,106 -> 472,106
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
474,50 -> 474,51 -> 486,51
|
||||
468,65 -> 473,65
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
479,68 -> 484,68
|
||||
476,147 -> 481,147
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
453,106 -> 458,106
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
484,28 -> 484,30 -> 481,30 -> 481,33 -> 488,33 -> 488,30 -> 487,30 -> 487,28
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
484,28 -> 484,30 -> 481,30 -> 481,33 -> 488,33 -> 488,30 -> 487,30 -> 487,28
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
483,147 -> 488,147
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
501,22 -> 505,22
|
||||
465,68 -> 470,68
|
||||
479,144 -> 484,144
|
||||
484,28 -> 484,30 -> 481,30 -> 481,33 -> 488,33 -> 488,30 -> 487,30 -> 487,28
|
||||
484,28 -> 484,30 -> 481,30 -> 481,33 -> 488,33 -> 488,30 -> 487,30 -> 487,28
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
474,106 -> 479,106
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
471,55 -> 471,56 -> 479,56
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
475,141 -> 480,141
|
||||
460,115 -> 460,117 -> 456,117 -> 456,125 -> 469,125 -> 469,117 -> 464,117 -> 464,115
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
484,28 -> 484,30 -> 481,30 -> 481,33 -> 488,33 -> 488,30 -> 487,30 -> 487,28
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
457,109 -> 462,109
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
467,128 -> 467,132 -> 462,132 -> 462,138 -> 477,138 -> 477,132 -> 472,132 -> 472,128
|
||||
504,25 -> 508,25
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
495,22 -> 499,22
|
||||
492,25 -> 496,25
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
467,128 -> 467,132 -> 462,132 -> 462,138 -> 477,138 -> 477,132 -> 472,132 -> 472,128
|
||||
460,106 -> 465,106
|
||||
469,147 -> 474,147
|
||||
450,109 -> 455,109
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
452,112 -> 458,112 -> 458,111
|
||||
461,65 -> 466,65
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
467,179 -> 467,180 -> 472,180 -> 472,179
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
460,115 -> 460,117 -> 456,117 -> 456,125 -> 469,125 -> 469,117 -> 464,117 -> 464,115
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
462,97 -> 467,97
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
510,25 -> 514,25
|
||||
495,16 -> 499,16
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
458,81 -> 458,77 -> 458,81 -> 460,81 -> 460,73 -> 460,81 -> 462,81 -> 462,80 -> 462,81 -> 464,81 -> 464,77 -> 464,81 -> 466,81 -> 466,78 -> 466,81 -> 468,81 -> 468,73 -> 468,81
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
479,36 -> 479,40 -> 477,40 -> 477,48 -> 489,48 -> 489,40 -> 483,40 -> 483,36
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
472,176 -> 472,175 -> 472,176 -> 474,176 -> 474,174 -> 474,176 -> 476,176 -> 476,174 -> 476,176 -> 478,176 -> 478,175 -> 478,176 -> 480,176 -> 480,166 -> 480,176 -> 482,176 -> 482,172 -> 482,176 -> 484,176 -> 484,167 -> 484,176
|
||||
460,115 -> 460,117 -> 456,117 -> 456,125 -> 469,125 -> 469,117 -> 464,117 -> 464,115
|
||||
448,94 -> 448,87 -> 448,94 -> 450,94 -> 450,93 -> 450,94 -> 452,94 -> 452,91 -> 452,94 -> 454,94 -> 454,88 -> 454,94 -> 456,94 -> 456,91 -> 456,94 -> 458,94 -> 458,86 -> 458,94 -> 460,94 -> 460,86 -> 460,94 -> 462,94 -> 462,89 -> 462,94 -> 464,94 -> 464,90 -> 464,94
|
||||
479,36 -> 479,40 -> 477,40 -> 477,48 -> 489,48 -> 489,40 -> 483,40 -> 483,36
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
464,163 -> 464,158 -> 464,163 -> 466,163 -> 466,154 -> 466,163 -> 468,163 -> 468,153 -> 468,163 -> 470,163 -> 470,160 -> 470,163 -> 472,163 -> 472,162 -> 472,163 -> 474,163 -> 474,159 -> 474,163 -> 476,163 -> 476,155 -> 476,163 -> 478,163 -> 478,159 -> 478,163
|
||||
473,150 -> 478,150
|
||||
471,62 -> 476,62
|
||||
484,28 -> 484,30 -> 481,30 -> 481,33 -> 488,33 -> 488,30 -> 487,30 -> 487,28
|
||||
479,36 -> 479,40 -> 477,40 -> 477,48 -> 489,48 -> 489,40 -> 483,40 -> 483,36
|
||||
478,109 -> 483,109
|
||||
474,50 -> 474,51 -> 486,51
|
||||
460,115 -> 460,117 -> 456,117 -> 456,125 -> 469,125 -> 469,117 -> 464,117 -> 464,115
|
@ -2,4 +2,29 @@ use crate::read;
|
||||
|
||||
pub fn run() {
|
||||
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));
|
||||
}
|
||||
}
|
66
src/day07/mod.rs
Normal file
66
src/day07/mod.rs
Normal file
@ -0,0 +1,66 @@
|
||||
use crate::read;
|
||||
use indextree::Arena;
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Directory {
|
||||
pub size: usize,
|
||||
pub name: String
|
||||
}
|
||||
|
||||
pub fn run() {
|
||||
let arena = &mut Arena::new();
|
||||
let mut current_directory = arena.new_node(Directory {
|
||||
size: 0,
|
||||
name: "/".into(),
|
||||
});
|
||||
let root = current_directory;
|
||||
|
||||
for line in read("07").lines().skip(1) {
|
||||
if line.starts_with("$ cd") {
|
||||
current_directory = match line.split_once("cd ").unwrap().1 {
|
||||
dirname if ".." == dirname => arena.get(current_directory).unwrap().parent().unwrap(),
|
||||
dirname => current_directory
|
||||
.children(arena)
|
||||
.find(|c|arena.get(*c).unwrap().get().name == dirname)
|
||||
.unwrap_or_else(||{
|
||||
let nc = arena.new_node(Directory {
|
||||
size: 0,
|
||||
name: dirname.into(),
|
||||
});
|
||||
current_directory.append(nc, arena);
|
||||
nc
|
||||
})
|
||||
};
|
||||
} else if line.chars().next().unwrap().is_numeric() {
|
||||
let filesize: usize = line.split_once(" ").unwrap().0.parse().unwrap();
|
||||
arena.get_mut(current_directory).unwrap().get_mut().size += filesize;
|
||||
}
|
||||
}
|
||||
let total = root.descendants(arena).map(|desc|{
|
||||
desc
|
||||
.descendants(arena)
|
||||
.map(|d|arena.get(d).unwrap().get().size)
|
||||
.sum::<usize>()
|
||||
}).collect::<Vec<_>>();
|
||||
|
||||
#[cfg(feature = "part1")]
|
||||
{
|
||||
println!("Day 7, Part 01: {}", total.clone().iter()
|
||||
.filter(|s| *s <= &100000)
|
||||
.sum::<usize>());
|
||||
}
|
||||
|
||||
#[cfg(feature = "part2")]
|
||||
{
|
||||
let total_used = root.descendants(arena)
|
||||
.map(|d|arena.get(d).unwrap().get().size)
|
||||
.sum::<usize>();
|
||||
let free_needed = total_used - 40000000;
|
||||
|
||||
println!("Day 7, Part 02: {}", total.iter()
|
||||
.filter(|s|*s >= &free_needed)
|
||||
.min()
|
||||
.unwrap());
|
||||
}
|
||||
}
|
||||
|
83
src/day08/mod.rs
Normal file
83
src/day08/mod.rs
Normal file
@ -0,0 +1,83 @@
|
||||
use crate::read;
|
||||
|
||||
pub fn run() {
|
||||
let grid: Vec<Vec<u32>> = read("08")
|
||||
.lines()
|
||||
.map(|l| {
|
||||
l.chars()
|
||||
.map(|c| c.to_digit(10).unwrap())
|
||||
.collect::<Vec<_>>()
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let width = grid.first().unwrap().len();
|
||||
|
||||
let res = grid
|
||||
.iter()
|
||||
.enumerate()
|
||||
.skip(1)
|
||||
.flat_map(|(row, row_vec)| {
|
||||
row_vec
|
||||
.iter()
|
||||
.enumerate()
|
||||
.skip(1)
|
||||
.map(|(col, height)| {
|
||||
let values = [
|
||||
if let Some(sc_score) = (0..col)
|
||||
.rev()
|
||||
.map(|col_left| (col - col_left, row_vec[col_left]))
|
||||
.find(|(_sc_score, other_height)| other_height >= height)
|
||||
{
|
||||
(1, sc_score.0)
|
||||
} else {
|
||||
(0, col)
|
||||
},
|
||||
if let Some(sc_score) = (col + 1..width)
|
||||
.map(|col_right| (col_right - col, row_vec[col_right]))
|
||||
.find(|(_sc_score, other_height)| other_height >= height)
|
||||
{
|
||||
(1, sc_score.0)
|
||||
} else {
|
||||
(0, width - col - 1)
|
||||
},
|
||||
if let Some(sc_score) = (0..row)
|
||||
.rev()
|
||||
.map(|row_above| (row - row_above, grid[row_above][col]))
|
||||
.find(|(_sc_score, other_height)| other_height >= height)
|
||||
{
|
||||
(1, sc_score.0)
|
||||
} else {
|
||||
(0, row)
|
||||
},
|
||||
if let Some(sc_score) = grid
|
||||
.iter()
|
||||
.enumerate()
|
||||
.skip(row + 1)
|
||||
.map(|(row_below, l)| (row_below - row, l[col]))
|
||||
.find(|(_sc_score, other_height)| other_height >= height)
|
||||
{
|
||||
(1, sc_score.0)
|
||||
} else {
|
||||
(0, grid.len() - row - 1)
|
||||
},
|
||||
];
|
||||
let is_visible = values.map(|e| e.0).iter().sum::<i32>() < 4;
|
||||
let scenic = values.map(|e| e.1).iter().product::<usize>();
|
||||
(is_visible, scenic)
|
||||
})
|
||||
.collect::<Vec<_>>()
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
#[cfg(feature = "part1")]
|
||||
{
|
||||
let count = res.iter().filter(|e| e.0).count();
|
||||
println!("Day 8, Part 01: {}", count);
|
||||
}
|
||||
|
||||
#[cfg(feature = "part2")]
|
||||
{
|
||||
let max_score = res.iter().map(|e| e.1).max().unwrap();
|
||||
println!("Day 8, Part 02: {}", max_score);
|
||||
}
|
||||
}
|
117
src/day09/mod.rs
Normal file
117
src/day09/mod.rs
Normal file
@ -0,0 +1,117 @@
|
||||
use crate::read;
|
||||
use std::collections::HashSet;
|
||||
use itertools::Itertools;
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Default, Clone, Hash)]
|
||||
struct Position {
|
||||
pub x: i32,
|
||||
pub y: i32,
|
||||
}
|
||||
|
||||
impl Position {
|
||||
pub fn move_right(&self) -> Self {
|
||||
Self {
|
||||
x: self.x + 1,
|
||||
y: self.y,
|
||||
}
|
||||
}
|
||||
pub fn move_left(&self) -> Self {
|
||||
Self {
|
||||
x: self.x - 1,
|
||||
y: self.y,
|
||||
}
|
||||
}
|
||||
pub fn move_up(&self) -> Self {
|
||||
Self {
|
||||
x: self.x,
|
||||
y: self.y - 1,
|
||||
}
|
||||
}
|
||||
pub fn move_down(&self) -> Self {
|
||||
Self {
|
||||
x: self.x,
|
||||
y: self.y + 1,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn follow_head(&self, head: &Position) -> Self {
|
||||
// Based on jenarvaezg/aoc2022
|
||||
// https://old.reddit.com/r/adventofcode/comments/zgnice/2022_day_9_solutions/izi6s4p/
|
||||
if self.x.abs_diff(head.x) < 2 && self.y.abs_diff(head.y) < 2 {
|
||||
self.clone()
|
||||
} else {
|
||||
Self {
|
||||
x: self.x + (head.x - self.x).signum(),
|
||||
y: self.x + (head.y - self.y).signum(),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct Chain {
|
||||
pub knots: Vec<Position>,
|
||||
visited: HashSet<Position>
|
||||
}
|
||||
|
||||
impl Chain {
|
||||
pub fn new(num_knots: usize) -> Self {
|
||||
Self {
|
||||
knots: vec![Position::default(); num_knots],
|
||||
visited: HashSet::with_capacity(10000)
|
||||
}
|
||||
}
|
||||
pub fn num_visited(&self) -> usize {
|
||||
self.visited.len()
|
||||
}
|
||||
|
||||
pub fn move_knots(&mut self, direction: &str, count: usize) {
|
||||
let move_head_func = match direction {
|
||||
"R" => Position::move_right,
|
||||
"U" => Position::move_up,
|
||||
"L" => Position::move_left,
|
||||
"D" => Position::move_down,
|
||||
_ => unreachable!(),
|
||||
};
|
||||
for _c in 0..count {
|
||||
self.knots[0] = move_head_func(&mut self.knots[0]);
|
||||
for i in 1..self.knots.len() {
|
||||
self.knots[i] = self.knots[i].follow_head(&self.knots[i - 1]);
|
||||
}
|
||||
|
||||
self.visited.insert(self.knots.last().unwrap().clone());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn run() {
|
||||
let res = simulate(vec![2, 10]);
|
||||
#[cfg(feature = "part1")]
|
||||
{
|
||||
println!("Day 9, Part 01: {}", res[0]);
|
||||
}
|
||||
|
||||
#[cfg(feature = "part2")]
|
||||
{
|
||||
println!("Day 9, Part 02: {}", res[1]);
|
||||
}
|
||||
}
|
||||
|
||||
fn simulate(chain_sizes: Vec<usize>) -> Vec<usize> {
|
||||
let chains = read("09")
|
||||
.lines()
|
||||
.filter(|l|!l.is_empty())
|
||||
.map(|l|l.split_once(' ').unwrap())
|
||||
.map(|(dir, count)|(dir, count.parse::<usize>().unwrap()))
|
||||
.fold(chain_sizes
|
||||
.iter()
|
||||
.map(|c|Chain::new(*c))
|
||||
.collect_vec(),
|
||||
|mut chains, (dir, count)| {
|
||||
|
||||
chains
|
||||
.iter_mut()
|
||||
.for_each(|chain|chain.move_knots(dir, count));
|
||||
chains
|
||||
});
|
||||
chains.iter().map(|c|c.num_visited()).collect()
|
||||
}
|
21
src/day10/mod.rs
Normal file
21
src/day10/mod.rs
Normal file
@ -0,0 +1,21 @@
|
||||
use crate::puter::Puter;
|
||||
use crate::read;
|
||||
|
||||
pub fn run() {
|
||||
let input = read("10");
|
||||
let mut device = Puter::new();
|
||||
device.run(&input);
|
||||
|
||||
#[cfg(feature = "part1")]
|
||||
{
|
||||
println!(
|
||||
"Day 10, Part 01: {}",
|
||||
device.signal_strengths().iter().sum::<i32>()
|
||||
);
|
||||
}
|
||||
|
||||
#[cfg(feature = "part2")]
|
||||
{
|
||||
println!("Day 10, Part 02: \n{}", device.output().join("\n"));
|
||||
}
|
||||
}
|
104
src/day11/mod.rs
Normal file
104
src/day11/mod.rs
Normal file
@ -0,0 +1,104 @@
|
||||
use crate::read;
|
||||
use itertools::Itertools;
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Hash)]
|
||||
enum Operation {
|
||||
Multiply(u64),
|
||||
Add(u64),
|
||||
Square,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Hash)]
|
||||
struct Monkey {
|
||||
pub items: Vec<u64>,
|
||||
pub operation: Operation,
|
||||
pub test: u64,
|
||||
pub throw_to: [usize; 2],
|
||||
pub inspected: usize,
|
||||
}
|
||||
|
||||
impl Monkey {
|
||||
pub fn parse(s: &str) -> Self {
|
||||
let (_, items, operation, operand, test, throw_true, throw_false) = sscanf::sscanf!(
|
||||
s,
|
||||
"Monkey {usize}:
|
||||
Starting items: {str}
|
||||
Operation: new = old {str} {str}
|
||||
Test: divisible by {u64}
|
||||
If true: throw to monkey {usize}
|
||||
If false: throw to monkey {usize}"
|
||||
)
|
||||
.unwrap();
|
||||
let items = items.split(", ").map(|i| i.parse().unwrap()).collect_vec();
|
||||
let operation = match operation {
|
||||
"*" => match operand {
|
||||
"old" => Operation::Square,
|
||||
n => Operation::Multiply(n.parse().unwrap()),
|
||||
},
|
||||
"+" => Operation::Add(operand.parse().unwrap()),
|
||||
_ => unreachable!(),
|
||||
};
|
||||
Self {
|
||||
items,
|
||||
operation,
|
||||
test,
|
||||
throw_to: [throw_true, throw_false],
|
||||
inspected: 0,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn simulate(monkeys: &mut Vec<Monkey>, is_part_1: bool) {
|
||||
let test_product: u64 = monkeys.iter().map(|m| m.test).product();
|
||||
let rounds = if is_part_1 { 20 } else { 10_000 };
|
||||
for _ in 0..rounds {
|
||||
for i in 0..monkeys.len() {
|
||||
let items = monkeys[i].items.clone();
|
||||
for mut item in items {
|
||||
item = match monkeys[i].operation {
|
||||
Operation::Square => item * item,
|
||||
Operation::Add(n) => item + n,
|
||||
Operation::Multiply(n) => item * n,
|
||||
};
|
||||
item = if is_part_1 {
|
||||
item / 3
|
||||
} else {
|
||||
item % test_product
|
||||
};
|
||||
let other_monkey =
|
||||
monkeys[i].throw_to[if item % monkeys[i].test == 0 { 0 } else { 1 }];
|
||||
monkeys[other_monkey].items.push(item);
|
||||
}
|
||||
monkeys[i].inspected += monkeys[i].items.len();
|
||||
monkeys[i].items = Vec::new();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn calculate_monkey_business(monkeys: &[Monkey]) -> usize {
|
||||
monkeys
|
||||
.iter()
|
||||
.map(|m| m.inspected)
|
||||
.sorted()
|
||||
.rev()
|
||||
.take(2)
|
||||
.product()
|
||||
}
|
||||
|
||||
pub fn run() {
|
||||
let input = read("11");
|
||||
let mut monkeys = input.split("\n\n").map(Monkey::parse).collect_vec();
|
||||
|
||||
#[cfg(feature = "part1")]
|
||||
{
|
||||
let monkeys = &mut monkeys.clone();
|
||||
simulate(monkeys, true);
|
||||
println!("Day 11, Part 01: {}", calculate_monkey_business(monkeys));
|
||||
}
|
||||
|
||||
#[cfg(feature = "part2")]
|
||||
{
|
||||
simulate(&mut monkeys, false);
|
||||
println!("Day 11, Part 02: {}", calculate_monkey_business(&monkeys));
|
||||
}
|
||||
}
|
BIN
src/day12/.DS_Store
vendored
Normal file
BIN
src/day12/.DS_Store
vendored
Normal file
Binary file not shown.
103
src/day12/mod.rs
Normal file
103
src/day12/mod.rs
Normal file
@ -0,0 +1,103 @@
|
||||
use crate::read;
|
||||
use itertools::Itertools;
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Hash, Default)]
|
||||
struct Coord {
|
||||
pub row: usize,
|
||||
pub col: usize,
|
||||
}
|
||||
|
||||
pub fn run() {
|
||||
let input = read("12");
|
||||
let lines = input.lines();
|
||||
let mut start: Coord = Default::default();
|
||||
let mut target: Coord = Default::default();
|
||||
let map = lines
|
||||
.enumerate()
|
||||
.map(|(row, l)| {
|
||||
l.chars()
|
||||
.enumerate()
|
||||
.map(|(col, c)| match c {
|
||||
'S' => {
|
||||
start = Coord {
|
||||
row,
|
||||
col,
|
||||
};
|
||||
0
|
||||
}
|
||||
'E' => {
|
||||
target = Coord {
|
||||
row,
|
||||
col,
|
||||
};
|
||||
25
|
||||
}
|
||||
c => (c as u8) - ('a' as u8),
|
||||
})
|
||||
.collect_vec()
|
||||
})
|
||||
.collect_vec();
|
||||
|
||||
#[cfg(feature = "part1")]
|
||||
{
|
||||
println!("Day 12, Part 01: {:?}", bfs(&map, start, target.clone()).unwrap());
|
||||
}
|
||||
|
||||
#[cfg(feature = "part2")]
|
||||
{
|
||||
let min = map
|
||||
.iter()
|
||||
.enumerate()
|
||||
.flat_map(|(row, v)| {
|
||||
v.iter()
|
||||
.enumerate()
|
||||
.filter(|(_, vv)| **vv == 0)
|
||||
.map(|(col, _)| Coord {
|
||||
row,
|
||||
col,
|
||||
})
|
||||
.collect_vec()
|
||||
})
|
||||
.filter_map(|start| bfs(&map, start.clone(), target.clone()))
|
||||
.min()
|
||||
.unwrap();
|
||||
println!("Day 12, Part 02: {:?}", min);
|
||||
}
|
||||
}
|
||||
|
||||
fn bfs(map: &Vec<Vec<u8>>, start: Coord, target: Coord) -> Option<usize> {
|
||||
let mut visited = vec![vec![false; map[0].len()]; map.len()];
|
||||
let mut queue = std::collections::VecDeque::new();
|
||||
queue.push_back((start, 0));
|
||||
|
||||
while let Some((next, path_length)) = queue.pop_front() {
|
||||
if next == target {
|
||||
return Some(path_length);
|
||||
}
|
||||
for coord in [(1, 0), (-1, 0), (0, 1), (0, -1)]
|
||||
.iter()
|
||||
.filter_map(|(dr, dc)|make_coord((next.row as isize) + dr, (next.col as isize) + dc, &map)) {
|
||||
if map[next.row][next.col] + 1
|
||||
< map[coord.row][coord.col] || visited[coord.row][coord.col] {
|
||||
continue;
|
||||
}
|
||||
visited[coord.row][coord.col] = true;
|
||||
queue.push_back((coord, path_length + 1));
|
||||
}
|
||||
}
|
||||
None
|
||||
}
|
||||
|
||||
fn make_coord(row: isize, col: isize, map: &Vec<Vec<u8>>) -> Option<Coord> {
|
||||
if row >= 0
|
||||
&& col >= 0
|
||||
&& row < map.len() as isize
|
||||
&& (col as usize) < map[row as usize].len() {
|
||||
Some(Coord {
|
||||
row: row as usize,
|
||||
col: col as usize
|
||||
})
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
95
src/day13/mod.rs
Normal file
95
src/day13/mod.rs
Normal file
@ -0,0 +1,95 @@
|
||||
use crate::read;
|
||||
use itertools::Itertools;
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Hash)]
|
||||
pub enum Content {
|
||||
Number(i32),
|
||||
List(Vec<Content>),
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Hash, PartialOrd, Ord)]
|
||||
pub struct Packet {
|
||||
pub content: Vec<Content>,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Hash)]
|
||||
pub struct Pair {
|
||||
pub first: Packet,
|
||||
pub second: Packet,
|
||||
}
|
||||
|
||||
impl Pair {
|
||||
pub fn in_order(&self) -> bool {
|
||||
self.first < self.second
|
||||
}
|
||||
}
|
||||
|
||||
impl Ord for Content {
|
||||
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
|
||||
match (self, other) {
|
||||
(Content::Number(a), Content::Number(b)) => a.cmp(b),
|
||||
(Content::Number(a), Content::List(b)) => vec![Content::Number(*a)].cmp(b),
|
||||
(Content::List(a), Content::Number(b)) => a.cmp(&vec![Content::Number(*b)]),
|
||||
(Content::List(a), Content::List(b)) => a.cmp(b),
|
||||
}
|
||||
}
|
||||
}
|
||||
impl PartialOrd for Content {
|
||||
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
|
||||
Some(self.cmp(other))
|
||||
}
|
||||
}
|
||||
|
||||
pub fn run() {
|
||||
let input = read("13");
|
||||
|
||||
#[cfg(feature = "part1")]
|
||||
{
|
||||
let p1 = input
|
||||
.split("\n\n")
|
||||
.map(|pair| pair.split_once('\n').unwrap())
|
||||
.map(|pair_lines| Pair {
|
||||
first: packet_parser::packet(pair_lines.0).unwrap(),
|
||||
second: packet_parser::packet(pair_lines.1).unwrap(),
|
||||
})
|
||||
.enumerate()
|
||||
.filter(|(_, pair)| pair.in_order())
|
||||
.map(|(idx, _)| idx + 1)
|
||||
.sum::<usize>();
|
||||
println!("Day 13, Part 01: {:?}", p1);
|
||||
}
|
||||
|
||||
#[cfg(feature = "part2")]
|
||||
{
|
||||
let div1 = packet_parser::packet("[[2]]").unwrap();
|
||||
let div2 = packet_parser::packet("[[6]]").unwrap();
|
||||
let mut p2 = input
|
||||
.lines()
|
||||
.filter(|l| !l.is_empty())
|
||||
.map(|l| packet_parser::packet(l).unwrap())
|
||||
.collect_vec();
|
||||
p2.push(div1.clone());
|
||||
p2.push(div2.clone());
|
||||
p2.sort_unstable();
|
||||
let product =
|
||||
(p2.binary_search(&div1).unwrap() + 1) * (p2.binary_search(&div2).unwrap() + 1);
|
||||
|
||||
println!("Day 13, Part 02: {:?}", product);
|
||||
}
|
||||
}
|
||||
|
||||
peg::parser! {
|
||||
grammar packet_parser() for str {
|
||||
pub rule packet() -> Packet
|
||||
= content:content() { Packet { content }}
|
||||
|
||||
rule value() -> Content
|
||||
= content:content() { Content::List(content) } / int:int() { Content::Number(int) }
|
||||
|
||||
rule int() -> i32
|
||||
= n:$(['0'..='9']+) {? n.parse().or(Err("u8")) }
|
||||
|
||||
rule content() -> Vec<Content>
|
||||
= "[" content:(value() ** ",") "]" { content }
|
||||
}
|
||||
}
|
248
src/day14/mod.rs
Normal file
248
src/day14/mod.rs
Normal file
@ -0,0 +1,248 @@
|
||||
use crate::read;
|
||||
use itertools::Itertools;
|
||||
|
||||
use std::{
|
||||
collections::*,
|
||||
hash::{Hash, Hasher},
|
||||
};
|
||||
#[derive(Debug, Clone, Eq)]
|
||||
pub struct Coord {
|
||||
pub x: i32,
|
||||
pub y: usize,
|
||||
pub is_rock: bool,
|
||||
}
|
||||
|
||||
impl Hash for Coord {
|
||||
fn hash<H: Hasher>(&self, state: &mut H) {
|
||||
self.x.hash(state);
|
||||
self.y.hash(state);
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for Coord {
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
self.x == other.x && self.y == other.y
|
||||
}
|
||||
}
|
||||
|
||||
impl Coord {
|
||||
pub fn down_left(&self) -> Self {
|
||||
Coord {
|
||||
x: self.x - 1,
|
||||
y: self.y + 1,
|
||||
is_rock: self.is_rock,
|
||||
}
|
||||
}
|
||||
pub fn down_right(&self) -> Self {
|
||||
Coord {
|
||||
x: self.x + 1,
|
||||
y: self.y + 1,
|
||||
is_rock: self.is_rock,
|
||||
}
|
||||
}
|
||||
pub fn down(&self) -> Self {
|
||||
Coord {
|
||||
x: self.x,
|
||||
y: self.y + 1,
|
||||
is_rock: self.is_rock,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn run() {
|
||||
let input = read("14");
|
||||
let lines = input.lines();
|
||||
let mut rocks: HashSet<Coord> = lines
|
||||
.flat_map(|line| {
|
||||
line.split(" -> ")
|
||||
.map(|c| {
|
||||
let nums = c.split_once(',').unwrap();
|
||||
Coord {
|
||||
x: nums.0.parse().unwrap(),
|
||||
y: nums.1.parse().unwrap(),
|
||||
is_rock: true,
|
||||
}
|
||||
})
|
||||
.tuple_windows()
|
||||
.flat_map(|(s, e)| {
|
||||
let mut path = vec![];
|
||||
for nx in s.x..=e.x {
|
||||
for ny in s.y..=e.y {
|
||||
path.push(Coord {
|
||||
x: nx,
|
||||
y: ny,
|
||||
is_rock: true,
|
||||
})
|
||||
}
|
||||
}
|
||||
for nx in e.x..=s.x {
|
||||
for ny in e.y..=s.y {
|
||||
path.push(Coord {
|
||||
x: nx,
|
||||
y: ny,
|
||||
is_rock: true,
|
||||
})
|
||||
}
|
||||
}
|
||||
path
|
||||
})
|
||||
.collect_vec()
|
||||
})
|
||||
.collect();
|
||||
|
||||
// Hide cursor
|
||||
print!("\x1B[?25l");
|
||||
#[cfg(feature = "part1")]
|
||||
{
|
||||
#[cfg(feature = "visualize")]
|
||||
print!("\x1B[2J\x1B[1;1H");
|
||||
|
||||
let _count = p1(&mut rocks.clone());
|
||||
|
||||
#[cfg(not(feature = "visualize"))]
|
||||
println!("Day 14, Part 01: {:?}", _count);
|
||||
}
|
||||
|
||||
#[cfg(feature = "part2")]
|
||||
{
|
||||
let floor = rocks.iter().map(|r| r.y).max().unwrap() + 2;
|
||||
(-1000..=1000)
|
||||
.map(|x| Coord {
|
||||
x,
|
||||
y: floor,
|
||||
is_rock: true,
|
||||
})
|
||||
.for_each(|coord| {
|
||||
rocks.insert(coord);
|
||||
});
|
||||
// Clear screen
|
||||
#[cfg(feature = "visualize")]
|
||||
print!("\x1B[2J\x1B[1;1H");
|
||||
|
||||
let _count = p2(&mut rocks);
|
||||
|
||||
#[cfg(not(feature = "visualize"))]
|
||||
println!("Day 14, Part 02: {:?}", _count);
|
||||
}
|
||||
// Restore cursor
|
||||
print!("\x1B[?25h");
|
||||
}
|
||||
|
||||
fn p1(rocks: &mut HashSet<Coord>) -> usize {
|
||||
let bottom = rocks.iter().map(|r| r.y).max().unwrap();
|
||||
let sand_start = Coord {
|
||||
x: 500,
|
||||
y: 0,
|
||||
is_rock: false,
|
||||
};
|
||||
let mut count_p1 = 0;
|
||||
|
||||
loop {
|
||||
let mut sand = sand_start.clone();
|
||||
|
||||
loop {
|
||||
if sand.y > bottom {
|
||||
#[cfg(feature = "visualize")]
|
||||
print(rocks, &sand, 1, count_p1);
|
||||
return count_p1;
|
||||
}
|
||||
let d = sand.down();
|
||||
let dl = sand.down_left();
|
||||
let dr = sand.down_right();
|
||||
|
||||
if rocks.contains(&d) {
|
||||
if rocks.contains(&dl) {
|
||||
if rocks.contains(&dr) {
|
||||
count_p1 += 1;
|
||||
rocks.insert(sand.clone());
|
||||
#[cfg(feature = "visualize")]
|
||||
print(rocks, &sand, 1, count_p1);
|
||||
break;
|
||||
}
|
||||
sand = dr;
|
||||
} else {
|
||||
sand = dl;
|
||||
}
|
||||
} else {
|
||||
sand = d;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn p2(rocks: &mut HashSet<Coord>) -> usize {
|
||||
let sand_start = Coord {
|
||||
x: 500,
|
||||
y: 0,
|
||||
is_rock: false,
|
||||
};
|
||||
let mut count_p2 = 0;
|
||||
|
||||
loop {
|
||||
let mut sand = sand_start.clone();
|
||||
if rocks.contains(&sand) {
|
||||
#[cfg(feature = "visualize")]
|
||||
print(rocks, &sand, 2, count_p2);
|
||||
return count_p2;
|
||||
}
|
||||
|
||||
loop {
|
||||
let d = sand.down();
|
||||
let dl = sand.down_left();
|
||||
let dr = sand.down_right();
|
||||
|
||||
if rocks.contains(&d) {
|
||||
if rocks.contains(&dl) {
|
||||
if rocks.contains(&dr) {
|
||||
count_p2 += 1;
|
||||
rocks.insert(sand.clone());
|
||||
#[cfg(feature = "visualize")]
|
||||
print(rocks, &sand, 2, count_p2);
|
||||
break;
|
||||
}
|
||||
sand = dr;
|
||||
} else {
|
||||
sand = dl;
|
||||
}
|
||||
} else {
|
||||
sand = d;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "visualize")]
|
||||
fn print(rocks: &HashSet<Coord>, sand: &Coord, part: i32, count: usize) {
|
||||
let (min_y, min_x, max_y, max_x) = (10, 442, 182, 514);
|
||||
|
||||
if sand.x < min_x || sand.x > max_x || sand.y < min_y || sand.y > max_y {
|
||||
return; // Don't render if not displayed
|
||||
}
|
||||
|
||||
let status = format!("Part: {}, Count: {}", part, count);
|
||||
let bounds = " ".repeat((max_y as usize) - (min_y as usize) - status.len());
|
||||
let mut out = format!("{}{}\n", status, bounds);
|
||||
|
||||
for x in (min_x..=max_x).rev() {
|
||||
for y in min_y..=max_y {
|
||||
let testing = &Coord {
|
||||
x,
|
||||
y,
|
||||
is_rock: false,
|
||||
};
|
||||
let c = match (sand == testing, rocks.get(testing)) {
|
||||
(true, _) => "\x1B[31mo\x1B[0m",
|
||||
(_, None) => " ",
|
||||
(_, Some(coord)) if coord.is_rock => "#",
|
||||
_ => "\x1B[33mo\x1B[0m",
|
||||
};
|
||||
out += c;
|
||||
}
|
||||
out += "\n";
|
||||
}
|
||||
out += &bounds;
|
||||
// Clear terminal, position cursor at (1,1)
|
||||
print!("\x1B[1;1H{}", out);
|
||||
let ms = if part == 1 { 34 } else { 8 }; // Go faster in part 2, takes too long otherwise
|
||||
std::thread::sleep(std::time::Duration::from_millis(ms));
|
||||
}
|
55
src/main.rs
55
src/main.rs
@ -1,7 +1,21 @@
|
||||
use chrono::prelude::*;
|
||||
use std::path::Path;
|
||||
use std::time::Instant;
|
||||
use chrono::prelude::*;
|
||||
mod day01;
|
||||
mod day02;
|
||||
mod day03;
|
||||
mod day04;
|
||||
mod day05;
|
||||
mod day06;
|
||||
mod day07;
|
||||
mod day08;
|
||||
mod day09;
|
||||
mod day10;
|
||||
mod day11;
|
||||
mod day12;
|
||||
mod day13;
|
||||
mod day14;
|
||||
mod puter;
|
||||
|
||||
fn main() {
|
||||
let today = Local::now().day();
|
||||
@ -10,8 +24,43 @@ fn main() {
|
||||
day01::run();
|
||||
}
|
||||
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();
|
||||
}
|
||||
if cfg!(feature = "day08") || (cfg!(feature = "today") && today == 8) {
|
||||
day08::run();
|
||||
}
|
||||
if cfg!(feature = "day09") || (cfg!(feature = "today") && today == 9) {
|
||||
day09::run();
|
||||
}
|
||||
if cfg!(feature = "day10") || (cfg!(feature = "today") && today == 10) {
|
||||
day10::run();
|
||||
}
|
||||
if cfg!(feature = "day11") || (cfg!(feature = "today") && today == 11) {
|
||||
day11::run();
|
||||
}
|
||||
if cfg!(feature = "day12") || (cfg!(feature = "today") && today == 12) {
|
||||
day12::run();
|
||||
}
|
||||
if cfg!(feature = "day13") || (cfg!(feature = "today") && today == 13) {
|
||||
day13::run();
|
||||
}
|
||||
if cfg!(feature = "day14") || (cfg!(feature = "today") && today == 14) {
|
||||
day14::run();
|
||||
}
|
||||
println!("Finished, time taken: {:?}", now.elapsed())
|
||||
}
|
||||
|
105
src/puter/mod.rs
Normal file
105
src/puter/mod.rs
Normal file
@ -0,0 +1,105 @@
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Hash)]
|
||||
pub(crate) enum Command {
|
||||
AddX(i32),
|
||||
Noop,
|
||||
}
|
||||
impl Command {
|
||||
fn from_str(s: &str) -> Self {
|
||||
match s {
|
||||
"noop" => Command::Noop,
|
||||
s => {
|
||||
let (c, i) = s.split_once(' ').unwrap();
|
||||
match (c, i.parse::<i32>()) {
|
||||
("addx", Ok(i)) => Self::AddX(i),
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn num_cycles(&self) -> usize {
|
||||
match self {
|
||||
Self::Noop => 1,
|
||||
Self::AddX(_) => 2,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) struct Puter {
|
||||
register_x: (i32, i32),
|
||||
cycle: usize,
|
||||
pixel_row: [bool; Puter::LINE_WIDTH],
|
||||
rows: Vec<String>,
|
||||
cycles_processing_left: usize,
|
||||
|
||||
signal_strengths: Vec<i32>,
|
||||
}
|
||||
|
||||
impl Puter {
|
||||
const LINE_WIDTH: usize = 40;
|
||||
const SPRITE_WIDTH: usize = 3;
|
||||
const SPRITE_WIDTH_HALF: usize = Puter::SPRITE_WIDTH / 2;
|
||||
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
register_x: (1, 1),
|
||||
cycle: 1,
|
||||
pixel_row: [false; Puter::LINE_WIDTH],
|
||||
rows: Vec::with_capacity(6),
|
||||
cycles_processing_left: 0,
|
||||
signal_strengths: Vec::with_capacity(6),
|
||||
}
|
||||
}
|
||||
|
||||
fn execute(&mut self, cmd: Command) {
|
||||
match cmd {
|
||||
Command::Noop => {}
|
||||
Command::AddX(v) => {
|
||||
self.register_x.1 += v;
|
||||
}
|
||||
};
|
||||
self.cycles_processing_left = cmd.num_cycles();
|
||||
}
|
||||
|
||||
pub fn run(&mut self, program: &str) {
|
||||
let mut lines = program.lines();
|
||||
loop {
|
||||
if self.cycles_processing_left == 0 {
|
||||
match lines.next() {
|
||||
Some(s) => self.execute(Command::from_str(s)),
|
||||
_ => return,
|
||||
};
|
||||
}
|
||||
|
||||
self.cycles_processing_left -= 1;
|
||||
|
||||
let pixel = (self.cycle - 1) % Puter::LINE_WIDTH;
|
||||
let is_lit = pixel.abs_diff(self.register_x.0 as usize) <= Puter::SPRITE_WIDTH_HALF;
|
||||
self.pixel_row[pixel] = is_lit;
|
||||
if pixel == Puter::LINE_WIDTH - 1 {
|
||||
self.rows.push(
|
||||
self.pixel_row
|
||||
.map(|l| if l { '#' } else { ' ' })
|
||||
.iter()
|
||||
.collect(),
|
||||
);
|
||||
} else if pixel == (Puter::LINE_WIDTH / 2) - 1 {
|
||||
self.signal_strengths
|
||||
.push(self.cycle as i32 * self.register_x.0);
|
||||
}
|
||||
|
||||
if self.cycles_processing_left == 0 {
|
||||
self.register_x.0 = self.register_x.1;
|
||||
}
|
||||
self.cycle += 1;
|
||||
}
|
||||
}
|
||||
|
||||
pub fn signal_strengths(&self) -> Vec<i32> {
|
||||
self.signal_strengths.clone()
|
||||
}
|
||||
|
||||
pub fn output(&self) -> Vec<String> {
|
||||
self.rows.clone()
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user