Initial commit
This commit is contained in:
commit
038f6841b3
15 changed files with 5750 additions and 0 deletions
19
.fleet/run.json
Normal file
19
.fleet/run.json
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "cargo",
|
||||||
|
"name": "run-main",
|
||||||
|
"cargoArgs": ["run","--"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cargo",
|
||||||
|
"name": "build-dev",
|
||||||
|
"cargoArgs": ["build"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cargo",
|
||||||
|
"name": "build-release",
|
||||||
|
"cargoArgs": ["build", "--release"]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
0
.fleet/settings.json
Normal file
0
.fleet/settings.json
Normal file
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/target
|
323
Cargo.lock
generated
Normal file
323
Cargo.lock
generated
Normal file
|
@ -0,0 +1,323 @@
|
||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "adventofcode2022"
|
||||||
|
version = "2022.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"clap",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bitflags"
|
||||||
|
version = "1.3.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cc"
|
||||||
|
version = "1.0.77"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "clap"
|
||||||
|
version = "4.0.29"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4d63b9e9c07271b9957ad22c173bae2a4d9a81127680962039296abcd2f8251d"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"clap_derive",
|
||||||
|
"clap_lex",
|
||||||
|
"is-terminal",
|
||||||
|
"once_cell",
|
||||||
|
"strsim",
|
||||||
|
"termcolor",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "clap_derive"
|
||||||
|
version = "4.0.21"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014"
|
||||||
|
dependencies = [
|
||||||
|
"heck",
|
||||||
|
"proc-macro-error",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "clap_lex"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8"
|
||||||
|
dependencies = [
|
||||||
|
"os_str_bytes",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "errno"
|
||||||
|
version = "0.2.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
|
||||||
|
dependencies = [
|
||||||
|
"errno-dragonfly",
|
||||||
|
"libc",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "errno-dragonfly"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "heck"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hermit-abi"
|
||||||
|
version = "0.2.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "io-lifetimes"
|
||||||
|
version = "1.0.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"windows-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "is-terminal"
|
||||||
|
version = "0.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "927609f78c2913a6f6ac3c27a4fe87f43e2a35367c0c4b0f8265e8f49a104330"
|
||||||
|
dependencies = [
|
||||||
|
"hermit-abi",
|
||||||
|
"io-lifetimes",
|
||||||
|
"rustix",
|
||||||
|
"windows-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.137"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "linux-raw-sys"
|
||||||
|
version = "0.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "once_cell"
|
||||||
|
version = "1.16.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "os_str_bytes"
|
||||||
|
version = "6.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro-error"
|
||||||
|
version = "1.0.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro-error-attr",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro-error-attr"
|
||||||
|
version = "1.0.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro2"
|
||||||
|
version = "1.0.47"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-ident",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quote"
|
||||||
|
version = "1.0.21"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustix"
|
||||||
|
version = "0.36.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cb93e85278e08bb5788653183213d3a60fc242b10cb9be96586f5a73dcb67c23"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"errno",
|
||||||
|
"io-lifetimes",
|
||||||
|
"libc",
|
||||||
|
"linux-raw-sys",
|
||||||
|
"windows-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[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",
|
||||||
|
"unicode-ident",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "termcolor"
|
||||||
|
version = "1.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-util",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-ident"
|
||||||
|
version = "1.0.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "version_check"
|
||||||
|
version = "0.9.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi"
|
||||||
|
version = "0.3.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-i686-pc-windows-gnu",
|
||||||
|
"winapi-x86_64-pc-windows-gnu",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-i686-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-util"
|
||||||
|
version = "0.1.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
|
||||||
|
dependencies = [
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-x86_64-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows-sys"
|
||||||
|
version = "0.42.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
|
||||||
|
dependencies = [
|
||||||
|
"windows_aarch64_gnullvm",
|
||||||
|
"windows_aarch64_msvc",
|
||||||
|
"windows_i686_gnu",
|
||||||
|
"windows_i686_msvc",
|
||||||
|
"windows_x86_64_gnu",
|
||||||
|
"windows_x86_64_gnullvm",
|
||||||
|
"windows_x86_64_msvc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_aarch64_gnullvm"
|
||||||
|
version = "0.42.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_aarch64_msvc"
|
||||||
|
version = "0.42.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_i686_gnu"
|
||||||
|
version = "0.42.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_i686_msvc"
|
||||||
|
version = "0.42.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_x86_64_gnu"
|
||||||
|
version = "0.42.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_x86_64_gnullvm"
|
||||||
|
version = "0.42.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_x86_64_msvc"
|
||||||
|
version = "0.42.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
|
8
Cargo.toml
Normal file
8
Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[package]
|
||||||
|
name = "adventofcode2022"
|
||||||
|
version = "2022.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
clap = { version = "4.0.29", features = ["derive"] }
|
2269
data/day-001
Normal file
2269
data/day-001
Normal file
File diff suppressed because it is too large
Load diff
2500
data/day-002
Normal file
2500
data/day-002
Normal file
File diff suppressed because it is too large
Load diff
300
data/day-003
Normal file
300
data/day-003
Normal file
|
@ -0,0 +1,300 @@
|
||||||
|
gtZDjBcmpcDgpZcmmbgtdtqmCGVCGGsvhCFCCqvmCMMM
|
||||||
|
JrhfzfLTNfJhPnhQnfzHfCFFQFSGvMFCGQFsQSMSVs
|
||||||
|
TllTRrfNNlfzwhtZBZgtRDBp
|
||||||
|
vMdwjZdjwjvjdTZZvCcQMGnQMQcbcgLLCL
|
||||||
|
rsVhfmssPWzDVGCLJSbCgPLSQG
|
||||||
|
lfWNDHDgfszFRTFtwwNjdv
|
||||||
|
GLPqVqdVGCLCdczjMjzMfzld
|
||||||
|
JnWQvJDmvWBtlMzhrzfHQgcz
|
||||||
|
tDtJDDDDtWRRmBwJwWtpPRsGCGScLPGSqspNCS
|
||||||
|
ChVzZzfNDzNJmBQfjjJfmH
|
||||||
|
MrTMPMncGMJvPPvPWTbrMWvgmBgQwgdpwmdpdpjwpHQcdw
|
||||||
|
SPvvvbqrFvMvZzJzsFVzVJNV
|
||||||
|
mvBbvMFqbMMVVmtCBHpDdDPTDspdNWPDVP
|
||||||
|
zjSfftcQtwtSfQSpNDppsNsjPNdRPP
|
||||||
|
fgfStJShrgvvCLLv
|
||||||
|
GmFnNNwbFFbhQQGQnGwwwfBgnMMqVDBZVVBMfMVzVz
|
||||||
|
vWzRRHzTHcgfZDVfBgfH
|
||||||
|
SSTvrvRcPpcvjFGwNGbNpbwQwz
|
||||||
|
FFgbZZFZgFmpstLgmbtzqNrwVPlMPlSWWrMPNp
|
||||||
|
QQhTvjhcvjjvTcTcTfCcSRwwWzwzPMrzWNNWVVhwrwWq
|
||||||
|
GRQBfCRnGGTcDvBfGvffCCjnFZtFFgStJLbLHbFLJZdgmd
|
||||||
|
pppdjcrMMRDJLJdRcwRDrwssqHGGDHsZHHsvBVtvmVHV
|
||||||
|
nlCFWzGzzQFlSlhGWnPzFbSsBZmsssmVVmsBvnHqvNVqqm
|
||||||
|
lFTTTCSQSTrdGJJLJG
|
||||||
|
jpsGMgsmghQwQsMmhlQshjtTNTRTnFqRWnnqRfFnnt
|
||||||
|
SLBCHrcvZHbSvSZrSvSWnfvVNvftVlFRTqnRTq
|
||||||
|
JrzdZbBcHBCrrlHrrSsMgmGpJPDPQmpgQgPG
|
||||||
|
cmcZHgwgMgHSLmtjLfWPNNrWBNfffp
|
||||||
|
JTqGTsClHslVVRVCVGVJGnBrjdnnrdBNvjPNBNBrWvnW
|
||||||
|
VVlQlqTFJlzzlsVGsRCZMthHDbwbFhgcbwHchg
|
||||||
|
qgZjgjjbssqgsjlNqjhTtdrfQdTdWLLnDVfHtHWd
|
||||||
|
zcGMBDDzcLnztfQQQz
|
||||||
|
JSppJcBScMmMFFBRCpRCMmGlggvjhbhlNlglwbslCZjhDZ
|
||||||
|
hvhmqcqwwcTBvvwQnRQnRnTRFzFzQz
|
||||||
|
jWLPPtPsgMtpdLMLWllpgLLQFQhFJjnVrzFrVFhnRzJJrJ
|
||||||
|
WPWffgtSdspdhSMdlSdtfBbHmSvqbNBCCmcBmcvcCH
|
||||||
|
frVcrVcggfSZJfbbJvBd
|
||||||
|
hwWQnwhWQmQmThTSsdvvSMBTBzcb
|
||||||
|
wGnFFCGlQwntGtCtwntwDmFwRgLrHqNRqqcNNgRrHHLggCjp
|
||||||
|
wRSwwHDMsRGHvNBNjTgvjgJD
|
||||||
|
mcLcFCclWQWQpPQWVQcQcvvNJjrNBTrvgJgBvTRvCg
|
||||||
|
VFPbQLchQLSRfbMtdHGH
|
||||||
|
lfVrhnlRRqrJZVDJdHSWCvJCJSbj
|
||||||
|
BFsgcgMNNQgSvbfCff
|
||||||
|
ffNPcMtzqPlnmRGh
|
||||||
|
ZJplFmRJmWRJRWmTJCvtTtnLCtndCqtqnr
|
||||||
|
SQsVPQHBQZNSNSLCfSLrcLcrrr
|
||||||
|
VMjPjbNMDsVHmRllmZpZWmjh
|
||||||
|
LcTLRbJhhdhLJbbclfVvfWQVWFRWFFfq
|
||||||
|
rZNttSNvtgsPPFsqBFPWQF
|
||||||
|
HGCSmHrrwNnHGMLpDhbzzpmJJv
|
||||||
|
VlSWzRtWSJqWdfhdqBdF
|
||||||
|
mTDHsmmmcHpgrCgCrTsMMtqfsFNsZqfdMZMNbd
|
||||||
|
TDcpvrpHCprCpHrmcQvTHgTQzSnLJnPPJlLzwJtRVJwLjJ
|
||||||
|
vZSWZJZJFvhZldZHdvvlphZSNGNnmzwCPNHNHGNrrRHGCPmP
|
||||||
|
bjfgcbjTQTFQBnGRRBCBNwBnCz
|
||||||
|
csqscsbssQLsgQcLgLQLQTQpFdlhdvdZdpZWhJplShWWtq
|
||||||
|
QgQvHnfflfBwQCfwlfglnQQccNcRqGGcjmcsGjddwdzsJc
|
||||||
|
DhZbTLZTDMVTsRzsqsRjszTz
|
||||||
|
FSZVtMLMMWbSgqSvPQlnpH
|
||||||
|
MMPllnnBmfSHvBgCLf
|
||||||
|
whZjGRJdjcNjjhRjCvgCfbSvCZLHfpZs
|
||||||
|
RRWGWwNRWwhwclmrgFmngFPMWm
|
||||||
|
VVHQGDGDGsdRrmZBQZRCVHZCNcSTTPMwwvTTwSSNqBqvgMvN
|
||||||
|
nfhdLfjFnJpblLbJjWhtnjWPScNnwSTPTPqTvgngNNvSvS
|
||||||
|
fpWljtpLjflfLfzlhZGQHZQVddHrrQRDRz
|
||||||
|
VCHCjwCwMSZSqQzhhQqcWZJD
|
||||||
|
GGGrFFgNRNNgmfnTdgmWQpczvPvQPWQJGDpzzc
|
||||||
|
lgTttRTgmfNRntrTTngrCbjCwJCHjLBBHlMVMsbB
|
||||||
|
szgPPlCblggVszhLmzvcvNrqpjNqmrqqpGvG
|
||||||
|
wBQDtBfQDtFvLjjctLqTMr
|
||||||
|
ZFWWdDLQFwSfDSBSQQBWnnnQVdbhgRVbsHzsshbClzzCVggb
|
||||||
|
VpVsHVcqcMVMMNHpsspstbMqzBztJZTBBfJfzTvZfvWJWSTv
|
||||||
|
mDDQgCQQQHdrwgSvZSmJJZvWfJJf
|
||||||
|
drCjggDlPdgrlbjNcnhcHsbpsj
|
||||||
|
cNNDRRpDcNcTpppsqHLQGLfRLvHzLH
|
||||||
|
lFntJjtbFFlsmsjvnGqHWLfhfqzzQh
|
||||||
|
sgPbjBJtPgbPJblblJgbgbwdBTwDCwpwrdZZVcCcDppc
|
||||||
|
GGclMjLnnjCMchcChLMLcnnzRFJDZJSRSzzzzDSShszPRS
|
||||||
|
VHgFQgwVwfNNpQVfHzQsPPPJDbmZbJDJbS
|
||||||
|
HfNVWdHVvgHgVWVNppNWVHwTlvBFcClBCjcTLTlBnnLrTL
|
||||||
|
GTLdlJhffQwDRvWLrp
|
||||||
|
HVZVNjjsPqzNjNNmNgDWMrRQpWvWRHrDHBWp
|
||||||
|
VCqVzjPjCpVqCVPCsbctcnblcGlTbGnlbFJf
|
||||||
|
flHdfdBNdZcflBMjqMjBNfZQhvJbGvqvsshJQsJCJDWvvD
|
||||||
|
gFTzRRpzRTwbgbLmtCvsJhWsChrWCrtWCC
|
||||||
|
VzzzFbVRLPznmRBffPNBHNMdlZfl
|
||||||
|
FFFMwCqJFFmrRwgnbLrL
|
||||||
|
GpjGpQHQpfjdjDRnLrbrRQmJzzgg
|
||||||
|
BphfhDcNcHNvPBvSqJMWJS
|
||||||
|
NndbWpDBNbjvWLZqWsWQ
|
||||||
|
JPFFTSPfgcMgftQQGjvTmsGqzssG
|
||||||
|
gPgcfcVFgcHqSqVhbBCHlpbbpDlhDD
|
||||||
|
FSdfWFTTBnjsDCjsmrrT
|
||||||
|
pQzLRVLppLGcQjqbmVDJsChCvCbVsm
|
||||||
|
qHLRGqqZzGjLqBNMFdnHlNlBFN
|
||||||
|
DjqbfBTchDjqqCjjCTWNTbdzSVzGZQGBwZnQnVwpSSnQ
|
||||||
|
ssJlPrtvMsRLrrJQGNZJSpZpGzSG
|
||||||
|
rlFssHsvPRPMvFmtHvtqjhTgjbqhWqNmNqgDNh
|
||||||
|
vcpnRqwwLLbvvcGpDQWDFSCgMrWWQWRR
|
||||||
|
gtNfBfllrFlHrlrl
|
||||||
|
ZPzftBmsNBNBPJBZPmZPNtmPdGLsqbwqpqcndVLLGpVGvqgV
|
||||||
|
vRBfQqqBQPfbrFvPBvPbhLDVDVDQZVVtZtlWLLLt
|
||||||
|
jcJmFFwnhJVZLWVl
|
||||||
|
sHTcmNNHzncmcjmdsBCrBCPCrBBqCFrqzb
|
||||||
|
bbZRnGmNnBGGMNRTgCmWWGGSrvSvFHvzFvFQDF
|
||||||
|
LjwphpdPdLpLJVqfJrQzDzfrvQHSvDcQrQ
|
||||||
|
DJphdwDsnmbZsTZM
|
||||||
|
rdNrZNBSzSztnNzWCcNpHlMwlwHWlM
|
||||||
|
QqLGLJvLjtvQWhgHgchHwHJw
|
||||||
|
GtjTGtDRqvfLRGnrzsmZmfrVFBrV
|
||||||
|
TdMhZrTTNvwphcLL
|
||||||
|
WnnmffmDWnWPsPCJNpNcpNVNQp
|
||||||
|
fsjbWfFFfnmmDsFDnnflSSdczlMdTHTzTTRRBdtT
|
||||||
|
cMcPcMcwgWJMjWWhFWCCQCmqCFdh
|
||||||
|
bSLVLblnNnLbVfnsbSbCChSQdChptpdqZrmCmZ
|
||||||
|
DLGNfnGVDNDHbfzjRcRgqHMRBJPc
|
||||||
|
HVFVlVHjzjjlCJjHjCjnvDrggrgLdqzddMqrzz
|
||||||
|
SSfBTmtNdLqngvrm
|
||||||
|
TwnNfPWWpBSBNtTHZCGlPHCQJHZHPV
|
||||||
|
prvccpFQpMcQBwsvssshdwSTPD
|
||||||
|
qbGHVbNJGqwdPgDrTsDJ
|
||||||
|
fGbGqqlGGHflqLlzZBBrRcrtrZlp
|
||||||
|
fCSPhltMBmPmbdgd
|
||||||
|
DjvJJscvTsHHDbWzBWsWbdwgLB
|
||||||
|
VVHDZvTppRcJVFFppvvRJDJqMSGqCtZdthttrnthSZMGCr
|
||||||
|
ZcSrSdrhDjBDDCmZdZmZjhwVHwqVVsMwgswVVwMfhw
|
||||||
|
PNvzTPNbnzcPbGQNJTvqwsWgVgVMMWpQqwgHpp
|
||||||
|
JTPGPTzNttnbRTPlPtNNRlFrFmBcmDljjmBFSCmLZZBr
|
||||||
|
mNvRRCVMtNRdFNtMtBHHprpHgJgJWwpBnprg
|
||||||
|
LZDDlSLlTslDfbcpJJWndwcscnwr
|
||||||
|
qdZZGSDhMVRCGtmC
|
||||||
|
VGFjjgBShGdGzQczcGRG
|
||||||
|
MppqCDfCMwfLDfvNmrtWstRcMPzRMRsRsPQS
|
||||||
|
NwDCffLppbqqrqvTBngSbnBHglZllH
|
||||||
|
vdllJVDzmVDVqvvWvdqJlcWrCsfCsfSSsSJfCSfQQCCbCQ
|
||||||
|
jnTHZPZHMjZhMjTpHgMpgnbNqBstnfrtSSrBSNssCrfN
|
||||||
|
LHLTFLjTMTTTwjHhpHTcwmDcWVDlvRDmvqwWlW
|
||||||
|
rqQsSStdmsdLqlNNPGlGlV
|
||||||
|
FpFpzJNTcHzRHRHlGwFVLFBLFGVvlw
|
||||||
|
WCCjWRNJTJWhQhbhrbnd
|
||||||
|
jsQjfrRTRwzSsRTgNchlnlhqcnlQmQ
|
||||||
|
dFDtdFBDddHLJpVpHHtVbtHFCWlWlGlNlmGggNqgglmcchqb
|
||||||
|
dLDHMVdLtBBDBFVJBFthtJHRTvsMSvsTrTSRvPPjPzSwRP
|
||||||
|
CSPpSrLlrlPrPchLnSlbDbbRttDVhbGRDDJRtD
|
||||||
|
fzfvmzTMmfsFszsHZsHMHVfwtbjBDDGjtRBjQQGGJb
|
||||||
|
HmvmTFmqmTsHqzzzzdTsMMScndccdLppnLCSPcCLrVgr
|
||||||
|
pfMflRnfrnjrpjnFzDpfDMmMLRTLZVTgLsvdZgLLZHSVWZRd
|
||||||
|
tBGNhwPGcNBBWwZddsSTTPgVLPdT
|
||||||
|
JwthtwbbhNBQhwhbBCrzpnprnWnprlzWlClD
|
||||||
|
PPnZZjnFNDjlJJhtMddfTTdD
|
||||||
|
QGLHFWvQJtzfpvCt
|
||||||
|
swqSmmQWLQwFWLwwRcqNNBnnbgPqbPNbglVZ
|
||||||
|
GCLSjjZGZhpvGtBgjJlnJDhhJMVDPnJlJP
|
||||||
|
mNtQQwNzQRHWdJHnPTsddlln
|
||||||
|
zQrfmbtNbcQcrzmrRBZqBcvpjSGLZGLZBB
|
||||||
|
zGNzgsjDssvNbPlWJfJq
|
||||||
|
RLMVSRMLhCLZSMZHDSJWvpcqfbfhvpJqcWPv
|
||||||
|
dMVHLFHLZMLRLLFRHHHVZMgDTntgstGwznzGGnzjDFwG
|
||||||
|
wCLCHLBwzBtQRLHLbNFFfdqdDqVrVfBN
|
||||||
|
JGvljmgGZvMlfDRRnnnZnfND
|
||||||
|
GppRlgJlSllSgjMsmllpTjcCLczWztPWPwwwzWThtcQh
|
||||||
|
WvHbvvWnFHszDRSltcCctCFD
|
||||||
|
gCmJmCCPTPqpgrZtjdRtDRplcSjS
|
||||||
|
rJJrQPPJQmrmrhGTznCfLMMbfvWfbCWQ
|
||||||
|
TqBWtTbFBNNRRtwQpJJvvvZPpTSQ
|
||||||
|
fRMfsMssrGhSmMwSQvvZJm
|
||||||
|
VggcVlsCgHnVFnndbbnR
|
||||||
|
NdrSSWBNPPSWWHPPlwlLZHLZLMhjlLLH
|
||||||
|
pVptMTgVTzLwZTzlbF
|
||||||
|
qsRmRJtsMvMqgqgRvCdcSrWSPcWrDmmdBN
|
||||||
|
nbJnfqWcmCMnSBSHwzWBsHHz
|
||||||
|
dVpdvdppdptppDlvlHcczSgNcgww
|
||||||
|
VGTdTVtGtRLFPTDbcfCmmcCQJQjcrT
|
||||||
|
VTjrjrjTlTjQMdpGrWMSHvSG
|
||||||
|
wnNJbDmttnwnhNwcJmNGdvWvMSfvMfhSSppSdp
|
||||||
|
JznFnNsGnzzGFDJsFNmLgVVQZBlLZjQTLTjTls
|
||||||
|
hpngHwcpWHgjjfhzTJBfBB
|
||||||
|
RFFbFlQlSdRsbRQQMGPRGdSGjBvvNTvzZMBvjzBBTJTvMBBT
|
||||||
|
GPSSPDDDFzGlGGRzLzGGPRWqnprcgCHwCHpwHWVcncLV
|
||||||
|
LLlLGffQLPRThRwP
|
||||||
|
MpZjbmznWqmqZznmzmpZqZnMRgPBCTPfgRTTwTjhwBPPghjP
|
||||||
|
VnZpMsMMJnWsmnJpJmzrtFlGQFrHGvSvfHStNV
|
||||||
|
MQqHMQPnqmpDdTLLRnDjsj
|
||||||
|
NGFzwgtLBtFFGrrCtzgfgCNgSsdTDSSTsdssjDdSlZRjTSBs
|
||||||
|
zCwNLthfrbCgzzhqhmccJPhQHVmV
|
||||||
|
SndBVcgdqcRBRcdPBBcVcQTSSMLMlTssMNMWsHMsLQ
|
||||||
|
GmJvZvhqpvZtNwwWLTTLwMMm
|
||||||
|
JFJpzFGZqjvhGZcjBPcCBBPnnVBc
|
||||||
|
rJWbqTvwvJNbPDPPvLcZvPDp
|
||||||
|
QMnfBsjmFPLcHRDfPp
|
||||||
|
lQlMlmtFsMMBstljlnGhtMhmGNqJqTcWNNbWdGwdNNJCrTrq
|
||||||
|
LcjcNCQNQWDpRDjRTj
|
||||||
|
vWvszVVSsBGWsTJRFHRJTTSTRJ
|
||||||
|
vvGbtqbGVVBqtzbqvBdzVLWNLClwnwMLWlQNMfdPQP
|
||||||
|
TWBZsWrjzZzWBrBsrrsTLNNJvFnJVmlSFFQnGpmnSJJS
|
||||||
|
qdCggdqqqhhqwhRbCwbCPqhlJFPPGJQVvvvnpVVmPnnFvS
|
||||||
|
ffgCfghDqDdCsGWZjTsLrsfW
|
||||||
|
QzQSSQmzSsLQcLmrcsLzccgqCnwqCtZDnDnrZwgnqTTT
|
||||||
|
hFRHHRPRPMtWPGVPRlMljRPCgWBBDTgJBgnwqTZDBZDWDB
|
||||||
|
jPjPHRMjjvdjVFhdNfbsbbQfbcddmNtL
|
||||||
|
jJlTqMqJtdztJqzcSJSlTdSlprLsRRHwcRRrsrHbrnnRHsHL
|
||||||
|
VVVMWNNWmNmLnPLRHrLp
|
||||||
|
NGhfvvVWBNfNNCNCQTMqjzgTQBSSSqll
|
||||||
|
SSSRMRSRpnMRHLqWLfPlDGlGWldD
|
||||||
|
hbNtlmvrNrsVDWsGPfPfqG
|
||||||
|
jvbBNmvlJjRcCzHFppCJ
|
||||||
|
hhWWPjnBGBGnjqBWSnhhsNLllLNcLczJcqcTlLTlfl
|
||||||
|
FHvFFMHwdmvrDbwCbbvHwdHnZTMLzTNTczflJTZclzNLlLcJ
|
||||||
|
HdFFvdDvpCDdrnwrGhBQhWRRpsjQWWQW
|
||||||
|
sBsvtJtdRdjNbWWrTllqlNgg
|
||||||
|
nSZSnPPZzMSnSlScWWWgrVWCrqgrWMWr
|
||||||
|
lzSncQcLZLzlwDvtdDdFdFJJhHvJ
|
||||||
|
lpsTLDlTtFtlWHPDvvgPfgMrQQJM
|
||||||
|
zmNbzcNjzldjwmbdbhhjcjRgfwrgvMwMMSRJSvQQvrRf
|
||||||
|
ZhjqcjzNhmzNqBqNznmcWHplCFGnpCtFsGWHHWsH
|
||||||
|
ZPGQBFHFbhSrHqtfSrSr
|
||||||
|
nMdznzzMDTnjMQrMWtrMptplqpqS
|
||||||
|
wzjczJmccTJCmcVghZBJbPBQBbVh
|
||||||
|
wLLMJbqSBBnnJhbvbFSSRRlztTrHzrrrrd
|
||||||
|
QNNGVPjWPGVqltTHWCqCdH
|
||||||
|
sjNGmmGVGgQNGDVmsVpgqQVpMDhvbLwMffZfhZbLnfLLLZwb
|
||||||
|
gQLcQrMtBPdwSBsSlmBm
|
||||||
|
TfCpTJnTbfqgsgwgppsSzp
|
||||||
|
jVbvTnvWfJnJjjbfCjWWjrFPrLMtcDPgLMQQRtgZVF
|
||||||
|
gwpHvpgwngGHcnvNvgnmsqCzmMzlfqmmqzHHCm
|
||||||
|
JrdSLdBVPRDtRtPfPPzCJhjqmljzmmqszzsM
|
||||||
|
SWLDDtVdrZWtSBRZfRcwgFGnpNFpnTnWnTvT
|
||||||
|
rpcnHrwrhWccNZDDBBgBVCSW
|
||||||
|
nmzFRRjFmmJQNDJC
|
||||||
|
qznMlqGnzRtRGvqGFRPrdMhwTpTLfLcppLHp
|
||||||
|
wthvbmhmChWMRJLJzngZpzLLNC
|
||||||
|
SsdBVjSTjBdffBFfcSdVHfTrnDZGpQgNZHNnLZGpJngJGLng
|
||||||
|
sSdTcdVScdcrccjcrBPrBSjcvmRRwlWPhwmqtgWhMPtmMMqR
|
||||||
|
CJJBdBCrHdBhtRHctBQhRMrBwZpwZWNZNSNTwSNpQWpZsSSW
|
||||||
|
LVFnvnbDjLsDPsPqFFvPvDnTzSTwNwPZpSmpSpgmgZWNTW
|
||||||
|
LjlflbFjsvVlrHcrHtrfcChH
|
||||||
|
tVLJGNRtfBBNGBrfrbzmfhPsrsPC
|
||||||
|
DWWDQHQgllSFqFzcsJmzzSSzmrrs
|
||||||
|
MJFQDgMqnHlDvFdGNBNNZGNVVvjV
|
||||||
|
wnNwGCBBFNWBqjFBnLLGVDHhHmDPHvZTjTvTrPvD
|
||||||
|
bMbttVScMJQtdgSgstbJRSPmrTHmHmrmmSDZlrPrPDhv
|
||||||
|
cMbgpsbVbzbdRMRFWLqzBfLGwwwwfW
|
||||||
|
JpSnGSGpbGgsWWPHJrdfsT
|
||||||
|
MNsRqNNvMQDTLWHlffNHLN
|
||||||
|
qqmtRzRvCRRQDqjqjDmsmRpZwSZbcwbnCcCSBBnSSnnC
|
||||||
|
TWqlqpRqRptqlRhrmtGGzhbSrSdz
|
||||||
|
VgsBVMvgVZfZvPsMVNvfZfvVbSPdhFPFhbzLhJdGFJmLhhhL
|
||||||
|
QZgvZgvHwbwHbMsMRllRjDRDnQRqlRjl
|
||||||
|
fsPQwnHnHLLfnBBnwwGtjTGRWTWTWwhV
|
||||||
|
jblbdjZFDMbGllqTGTtVlq
|
||||||
|
gmdMgZMbjpZDcrrDgdmszsPLpQfpBPPnNQNLLz
|
||||||
|
HRsPPGMhLPMrnPchPSwStjbSttSvtHSqQw
|
||||||
|
dfsCfpCJVJCvdFBFwStwjj
|
||||||
|
gTNWmWfTNVZVJzZWpWJgTpfhnDrMnDclgDlDrDRnRcMLDs
|
||||||
|
ZQZQJMqdwmZvqfPmwRjpBBjHjnshnjtt
|
||||||
|
zcTPTLDTFWLGTrTSWPcDSSHjRlhRsDhHslslssBRljjj
|
||||||
|
TrNFLbTWrGNZvmvVQPQV
|
||||||
|
htfLgmtSLcTWNLcT
|
||||||
|
slbHlBBGbqRsblBHvdNJJcjFFNBTVWWWcn
|
||||||
|
bbQsHMMblHrMsGRqvQhwCTQCwtQCzSpfmS
|
||||||
|
zmqdphmFmSpTzhdqhFmwjjGbtcvDbcGGjllGQjSP
|
||||||
|
HJFrMCsVLrHRRMCNrVMVnctvstlGcQlPtGGjQtGlvP
|
||||||
|
RFLHLVWrNgVJzwzwfgffwdfp
|
||||||
|
vdMjSmMMpmMWhRpndRmZnhvHqLpGHcJGGGDLHHLGcfcLfc
|
||||||
|
lPBwwrsCgLFggcqqLW
|
||||||
|
TWszsWNBTNdmSRvjbZZT
|
||||||
|
zFlBGpzzzLLNjBwPcwwmcNPfWNQn
|
||||||
|
VHSHRJTJDSVVnmcVVPpWmpnf
|
||||||
|
DMZHHrDHHrJrrZrShZsHGbMBbFgGjGCgjpFlBzzb
|
||||||
|
FVMpsvTqvqMssVsWZSrqWFvwlGDGwQzwfwQQNLzDlwlZwf
|
||||||
|
hPbgBHhJJcJPwCwDpNllCCHC
|
||||||
|
pnjbBmjgbgmqtSmsTtsF
|
||||||
|
DHZHmfTmCfjDZHMZmzffHHnQwwTBdQwbSdBGBQwhBQTQww
|
||||||
|
cqstRFWNtLrNFwdVShlBSlhBRl
|
||||||
|
StJWpLptNWLtJcpqPrFHDjZzzvnDDHPCZjPvvz
|
||||||
|
hzffhGVGGhzRqTBLTqHL
|
||||||
|
sFFFsMQlwJMsmrBFSNHTHNqrTS
|
||||||
|
pbdsJMdJMJbwbmJJtbTtgnffGgVVChvD
|
||||||
|
FvJnFnCpQTddSSmFdFpPPsVhppDjBzjDVhDV
|
||||||
|
RgZMZbsgzlDPlhjb
|
||||||
|
cHHHRgRZgfHHZGZfHZcLLHrrCrmJCmddrsvdJsmvFFQG
|
||||||
|
dpJDdZwLnvdvFmFMmHjslMLH
|
||||||
|
CGCztgPhWCWhzzzNNPGfrrWfmbbsmmHjFHDMsbHMsjFPjbHm
|
||||||
|
rNQDGzzhCCfNrzrDzChTcZZvQcTRJpTwdvQpVc
|
||||||
|
VpvNGhGHGNhHbPsbVbvfFtLCzSCFSBsCFSFCLB
|
||||||
|
MlqJwTnrRRrRnMlQMHfHzHzWFWtmTzLWFC
|
||||||
|
ljZDDHqqjqRbpNhjNNgcgc
|
||||||
|
qrQtDzcQzbrcfdbqrQrthtscSsvpvnsSHpTpLpspmsSs
|
||||||
|
CVwNNVRNBSHsLSFBTv
|
||||||
|
CVVVNZjlVlGwlGlljNlWJVrrfqbPQQqHqJhhftbfDJqf
|
||||||
|
lpmrPDPDjPlmWrVzPztZwFjtFbBnRtZbbcRL
|
||||||
|
dnqJCCgQdNqbqRbRbBLt
|
||||||
|
QGhGddGCTdMHNTGgshgJhzvSmWWPSsnprpPzWzsWlr
|
||||||
|
hCJHTdJJNvTdSSNssjvfwgntwDgtgwDGCtZwtRRB
|
||||||
|
mbllFmFMFbMVWWLpbpZwwBZTZnnVwnTggtDB
|
||||||
|
MmzLQpFPTmPzHvfJNNzhNs
|
||||||
|
dzgBwzlgrrBrVLLlwLBgBlgRScDMMDDswMsHZRGDsZGZmM
|
||||||
|
HPfPbjCFJjCvfnnsjsDDcccmZsRSMc
|
||||||
|
hCvHfWPPnvJhPWpqNNhqLqzLqLLd
|
34
src/cli/commands/day001.rs
Normal file
34
src/cli/commands/day001.rs
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
use crate::cli::PathBuf;
|
||||||
|
use crate::util::read_lines;
|
||||||
|
|
||||||
|
pub fn subcmd_day001(file: &Option<PathBuf>, top: &i32, total: &bool) {
|
||||||
|
if let Ok(lines) = read_lines(file.as_ref().unwrap().as_path()) {
|
||||||
|
// Consumes the iterator, returns an (Optional) String
|
||||||
|
let mut nutri: i32 = 0;
|
||||||
|
let mut hist: Vec<i32> = Vec::new();
|
||||||
|
|
||||||
|
for line in lines {
|
||||||
|
if let Ok(num) = line {
|
||||||
|
if num.is_empty() {
|
||||||
|
hist.push(nutri);
|
||||||
|
nutri = 0;
|
||||||
|
} else {
|
||||||
|
nutri += num.parse::<i32>().unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
hist.sort();
|
||||||
|
let hist_len = hist.len();
|
||||||
|
let mut top_total: i32 = 0;
|
||||||
|
for x in 0..*top{
|
||||||
|
let index: usize = hist_len - 1 - usize::try_from(x).unwrap();
|
||||||
|
top_total += hist[index];
|
||||||
|
println!("{:?}", hist[index]);
|
||||||
|
}
|
||||||
|
if *total{
|
||||||
|
println!("Total:");
|
||||||
|
println!("{:?}", top_total);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
209
src/cli/commands/day002.rs
Normal file
209
src/cli/commands/day002.rs
Normal file
|
@ -0,0 +1,209 @@
|
||||||
|
use crate::cli::PathBuf;
|
||||||
|
use crate::util::read_lines;
|
||||||
|
#[derive(Debug)]
|
||||||
|
enum Shape {
|
||||||
|
Rock,
|
||||||
|
Paper,
|
||||||
|
Scissor,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Shape {
|
||||||
|
fn get_value(&self) -> u32 {
|
||||||
|
match self {
|
||||||
|
Shape::Rock => 1,
|
||||||
|
Shape::Paper => 2,
|
||||||
|
Shape::Scissor => 3,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
enum EncrypedShape {
|
||||||
|
A,
|
||||||
|
B,
|
||||||
|
C,
|
||||||
|
X,
|
||||||
|
Y,
|
||||||
|
Z,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl EncrypedShape {
|
||||||
|
fn from_str(s: &str) -> Self {
|
||||||
|
match Some(s) {
|
||||||
|
Some("A") => EncrypedShape::A,
|
||||||
|
Some("B") => EncrypedShape::B,
|
||||||
|
Some("C") => EncrypedShape::C,
|
||||||
|
Some("X") => EncrypedShape::X,
|
||||||
|
Some("Y") => EncrypedShape::Y,
|
||||||
|
Some("Z") => EncrypedShape::Z,
|
||||||
|
_ => panic!(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_shape(&self) -> Shape {
|
||||||
|
match self {
|
||||||
|
EncrypedShape::A | EncrypedShape::X => Shape::Rock,
|
||||||
|
EncrypedShape::B | EncrypedShape::Y => Shape::Paper,
|
||||||
|
EncrypedShape::C | EncrypedShape::Z => Shape::Scissor,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn predict_result(&self) -> RpsResult {
|
||||||
|
match self {
|
||||||
|
EncrypedShape::X => RpsResult::Loss,
|
||||||
|
EncrypedShape::Y => RpsResult::Draw,
|
||||||
|
EncrypedShape::Z => RpsResult::Win,
|
||||||
|
EncrypedShape::A | EncrypedShape::B | EncrypedShape::C => panic!(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_value(&self) -> u32 {
|
||||||
|
self.get_shape().get_value()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
enum RpsResult {
|
||||||
|
Win,
|
||||||
|
Draw,
|
||||||
|
Loss,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct RPSPair {
|
||||||
|
op: EncrypedShape,
|
||||||
|
me: EncrypedShape,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl RPSPair {
|
||||||
|
fn from_vec(v: Vec<&str>) -> Self {
|
||||||
|
RPSPair {
|
||||||
|
op: (EncrypedShape::from_str(v.first().unwrap())),
|
||||||
|
me: (EncrypedShape::from_str(v.last().unwrap())),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn my_shape_by_predicted_result(&self) -> Shape {
|
||||||
|
match self.op.get_shape() {
|
||||||
|
Shape::Rock => match self.me.predict_result() {
|
||||||
|
RpsResult::Win => Shape::Paper,
|
||||||
|
RpsResult::Draw => Shape::Rock,
|
||||||
|
RpsResult::Loss => Shape::Scissor,
|
||||||
|
},
|
||||||
|
Shape::Paper => match self.me.predict_result() {
|
||||||
|
RpsResult::Win => Shape::Scissor,
|
||||||
|
RpsResult::Draw => Shape::Paper,
|
||||||
|
RpsResult::Loss => Shape::Rock,
|
||||||
|
},
|
||||||
|
Shape::Scissor => match self.me.predict_result() {
|
||||||
|
RpsResult::Win => Shape::Rock,
|
||||||
|
RpsResult::Draw => Shape::Scissor,
|
||||||
|
RpsResult::Loss => Shape::Paper,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_points(&self, alt: &bool) -> u32 {
|
||||||
|
let extra_points: u32;
|
||||||
|
let r: RpsResult;
|
||||||
|
let mv: u32;
|
||||||
|
if *alt {
|
||||||
|
r = self.me.predict_result();
|
||||||
|
mv = self.my_shape_by_predicted_result().get_value();
|
||||||
|
} else {
|
||||||
|
r = self.get_result();
|
||||||
|
mv = self.me.get_value();
|
||||||
|
}
|
||||||
|
match r {
|
||||||
|
RpsResult::Win => {
|
||||||
|
extra_points = 6;
|
||||||
|
}
|
||||||
|
RpsResult::Draw => {
|
||||||
|
extra_points = 3;
|
||||||
|
}
|
||||||
|
RpsResult::Loss => {
|
||||||
|
extra_points = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mv + extra_points
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_result(&self) -> RpsResult {
|
||||||
|
match self.me.get_shape() {
|
||||||
|
Shape::Rock => match self.op.get_shape() {
|
||||||
|
Shape::Rock => RpsResult::Draw,
|
||||||
|
Shape::Paper => RpsResult::Loss,
|
||||||
|
Shape::Scissor => RpsResult::Win,
|
||||||
|
},
|
||||||
|
Shape::Paper => match self.op.get_shape() {
|
||||||
|
Shape::Rock => RpsResult::Win,
|
||||||
|
Shape::Paper => RpsResult::Draw,
|
||||||
|
Shape::Scissor => RpsResult::Loss,
|
||||||
|
},
|
||||||
|
Shape::Scissor => match self.op.get_shape() {
|
||||||
|
Shape::Rock => RpsResult::Loss,
|
||||||
|
Shape::Paper => RpsResult::Win,
|
||||||
|
Shape::Scissor => RpsResult::Draw,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn subcmd_day002(file: &Option<PathBuf>, alt: &bool) {
|
||||||
|
if let Ok(lines) = read_lines(file.as_ref().unwrap().as_path()) {
|
||||||
|
let mut my_score: u32 = 0;
|
||||||
|
for line in lines {
|
||||||
|
if let Ok(ln) = line {
|
||||||
|
let pair: RPSPair = RPSPair::from_vec(ln.split(" ").collect::<Vec<&str>>());
|
||||||
|
let my_points: u32 = pair.get_points(alt);
|
||||||
|
let my_value: u32;
|
||||||
|
let my_shape: Shape;
|
||||||
|
let my_result: RpsResult;
|
||||||
|
if *alt {
|
||||||
|
my_shape = pair.my_shape_by_predicted_result();
|
||||||
|
my_value = my_shape.get_value();
|
||||||
|
my_result = pair.me.predict_result();
|
||||||
|
} else {
|
||||||
|
my_shape = pair.me.get_shape();
|
||||||
|
my_value = pair.me.get_value();
|
||||||
|
my_result = pair.get_result();
|
||||||
|
}
|
||||||
|
my_score += my_points;
|
||||||
|
println!(
|
||||||
|
"op: {:?}({:?}), me: {:?}({:?}), result: {:?}, points: {:?}",
|
||||||
|
pair.op.get_shape(),
|
||||||
|
pair.op.get_value(),
|
||||||
|
my_shape,
|
||||||
|
my_value,
|
||||||
|
my_result,
|
||||||
|
my_points
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("My Total Points: {:?}", my_score)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn subcmd_day002_op(file: &Option<PathBuf>, alt: &bool) {
|
||||||
|
if let Ok(lines) = read_lines(file.as_ref().unwrap().as_path()) {
|
||||||
|
let mut my_score: u32 = 0;
|
||||||
|
for line in lines {
|
||||||
|
if let Ok(ln) = line {
|
||||||
|
let pair: RPSPair = RPSPair::from_vec(ln.split(" ").collect::<Vec<&str>>());
|
||||||
|
my_score += pair.get_points(alt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("My Total Points: {:?}", my_score)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn subcmd_day002_iter(file: &Option<PathBuf>, alt: &bool) {
|
||||||
|
if let Ok(lines) = read_lines(file.as_ref().unwrap().as_path()) {
|
||||||
|
let points:u32 = lines
|
||||||
|
.into_iter()
|
||||||
|
.map(|line| RPSPair::from_vec(line.unwrap().split(" ").collect::<Vec<&str>>()))
|
||||||
|
.map(|pair| pair.get_points(alt))
|
||||||
|
.sum();
|
||||||
|
println!("My Total Points: {:?}", points)
|
||||||
|
}
|
||||||
|
}
|
4
src/cli/commands/day003.rs
Normal file
4
src/cli/commands/day003.rs
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
use crate::cli::PathBuf;
|
||||||
|
pub fn subcmd_day003(file: &Option<PathBuf>, alt: &bool) {
|
||||||
|
|
||||||
|
}
|
3
src/cli/commands/mod.rs
Normal file
3
src/cli/commands/mod.rs
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
pub mod day001;
|
||||||
|
pub mod day002;
|
||||||
|
pub mod day003;
|
61
src/cli/mod.rs
Normal file
61
src/cli/mod.rs
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
mod commands;
|
||||||
|
use clap::{arg, Parser, Subcommand};
|
||||||
|
use commands::day001::*;
|
||||||
|
use commands::day002::*;
|
||||||
|
use commands::day003::*;
|
||||||
|
//use std::ffi::OsString;
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
#[derive(Parser)]
|
||||||
|
#[command(author, version, about, long_about = None)]
|
||||||
|
#[command(propagate_version = true)]
|
||||||
|
pub struct AdventOfCode2022 {
|
||||||
|
#[command(subcommand)]
|
||||||
|
command: Commands,
|
||||||
|
/// makes the commands more verbose
|
||||||
|
#[arg(short, long)]
|
||||||
|
verbose: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Subcommand)]
|
||||||
|
pub enum Commands {
|
||||||
|
/// Solution for the first day
|
||||||
|
Day001 {
|
||||||
|
file: Option<PathBuf>,
|
||||||
|
/// option to get more than the biggest value
|
||||||
|
#[arg(short, long, default_value_t = 1)]
|
||||||
|
top: i32,
|
||||||
|
/// calc the sume of all wanted top positions
|
||||||
|
#[arg(long)]
|
||||||
|
total: bool,
|
||||||
|
},
|
||||||
|
/// Solution for the second day
|
||||||
|
Day002 {
|
||||||
|
file: Option<PathBuf>,
|
||||||
|
#[arg(long)]
|
||||||
|
alt: bool,
|
||||||
|
/// select implemetation 0 = nomarl with debug, 1 = only result, 2 iter based
|
||||||
|
#[arg(short, long, default_value_t = 0)]
|
||||||
|
mode: u8,
|
||||||
|
},
|
||||||
|
/// Solution for day 03
|
||||||
|
Day003 {
|
||||||
|
file: Option<PathBuf>,
|
||||||
|
#[arg(long)]
|
||||||
|
alt: bool,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn execute_cli() {
|
||||||
|
let aoc2022 = AdventOfCode2022::parse();
|
||||||
|
match &aoc2022.command {
|
||||||
|
Commands::Day001 { file, top, total } => subcmd_day001(&file, &top, &total),
|
||||||
|
Commands::Day002 { file, alt, mode } => match mode {
|
||||||
|
0 => subcmd_day002(&file, &alt),
|
||||||
|
1 => subcmd_day002_op(&file, &alt),
|
||||||
|
2 => subcmd_day002_iter(&file, &alt),
|
||||||
|
_ => panic!(),
|
||||||
|
},
|
||||||
|
Commands::Day003 { file, alt } => subcmd_day003(&file, &alt),
|
||||||
|
}
|
||||||
|
}
|
8
src/main.rs
Normal file
8
src/main.rs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
pub mod util;
|
||||||
|
mod cli;
|
||||||
|
|
||||||
|
use cli::execute_cli;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
execute_cli();
|
||||||
|
}
|
11
src/util.rs
Normal file
11
src/util.rs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::{self, BufRead};
|
||||||
|
use std::path::Path;
|
||||||
|
|
||||||
|
pub fn read_lines<P>(filename: P) -> io::Result<io::Lines<io::BufReader<File>>>
|
||||||
|
where
|
||||||
|
P: AsRef<Path>,
|
||||||
|
{
|
||||||
|
let file = File::open(filename)?;
|
||||||
|
Ok(io::BufReader::new(file).lines())
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue