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