Compare commits
5 Commits
d1d89991ab
...
96053f5345
| Author | SHA1 | Date | |
|---|---|---|---|
| 96053f5345 | |||
| a1c99e8268 | |||
| 726f75d327 | |||
| 510438a247 | |||
| f51e96b5d0 |
25
Cargo.lock
generated
25
Cargo.lock
generated
@@ -5,3 +5,28 @@ version = 3
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "aoc2022"
|
name = "aoc2022"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"nom",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memchr"
|
||||||
|
version = "2.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "minimal-lexical"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nom"
|
||||||
|
version = "7.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
|
||||||
|
dependencies = [
|
||||||
|
"memchr",
|
||||||
|
"minimal-lexical",
|
||||||
|
]
|
||||||
|
|||||||
@@ -6,3 +6,4 @@ edition = "2021"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
nom = "7.1.1"
|
||||||
|
|||||||
300
inputs/day3.txt
Normal file
300
inputs/day3.txt
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
BzRmmzZHzVBzgVQmZLPtqqffPqWqJmPLlL
|
||||||
|
hpvvTDcrCjhpcrvcGGhfLHMlLtMCqflNlWPJlJ
|
||||||
|
hGjhncHhGnhbTHczBBZVVSbRwgSgRV
|
||||||
|
rWVQjPQQjGRWNSrWrPjcptwBpqqJBtJBBcZgMdtq
|
||||||
|
zzmmpzfTCFpTlMlJJwBgMlqMBt
|
||||||
|
TvLszpbhhTLmsnRQPDQGWDWRvQSR
|
||||||
|
zGzvLlGlQHLGBQZlhBWhdjRdmdWRcjPj
|
||||||
|
fTJNfTfNSRWPhjdjfj
|
||||||
|
pbsbVVnpSnbVTprnbqqrzvLLgQlGLPLHll
|
||||||
|
ZCCCsWvNvmsCsCmZLZmgMLRpQMhwQRpQRfphfprpTfpM
|
||||||
|
tlncPjzlndctbzcPPBcjwDphwrfGGDffbDRpDTGG
|
||||||
|
cdqnddwzqjNVWVLZZLZq
|
||||||
|
DTLbDbRrlQbwhhNrmmfwdt
|
||||||
|
zzMJMzjCjJJjvLjMPJpcgPpzfhHdfqWcqddwtwfqdttcNtdN
|
||||||
|
pJCzVpCvDZBLsVRQ
|
||||||
|
STzBBbJzRRBZBRTqCCsfZLtNNLClCsfh
|
||||||
|
jsQnnQjjHcvQFrcPwCmtLCNlvDfftfff
|
||||||
|
sGFscMQQMMpqzqbMbd
|
||||||
|
QlNDWGsjQjgQllWQsbtzqTJczTJcbFmmFJJP
|
||||||
|
MhLrhgLVndRmzJFzVqqJqP
|
||||||
|
pSLnMdwhwdRZRSwhLZwLhdGWQjlsgWjNQWWSvgBsWDlj
|
||||||
|
THjSRFSddTjdBTcPLcVVvVBw
|
||||||
|
GzWnWfndWfznDfsnsBsPVwVwPPLL
|
||||||
|
zNflzJWqqzQDdSStHNZNpFFtbj
|
||||||
|
FSzDmsFSFlDlBzqVjqHHjHHpVgHLbp
|
||||||
|
rTrTtTQQntRQnQJQgggHZttVgHLBLhZL
|
||||||
|
WTJJRRQCRRJTRdBCRdvRNDFSWFMPmDlPPSsNPSzS
|
||||||
|
WQldlMtMVQgVMQHnDGbHGGnRnQmD
|
||||||
|
rqcZPrCFjmHlbGjZ
|
||||||
|
zSScchqwchBzTzFzhhSlcCwNtdVWWJgsVdMtWNgNVWTJTd
|
||||||
|
lMZqjMWllrTTspjprWWSSwgWNSVNDmWGVwFwgN
|
||||||
|
cdCCdLHcnndHJnmCRntLBnRzDvFNtNDVzgSgwDgFNVzFVv
|
||||||
|
BRLcCCJCmJdcRhfjPPZphrlrPqlZ
|
||||||
|
GdGqcrrZGDrvDJJqJHcBvmFFgmFMMgMgBtMLTssLmF
|
||||||
|
NbPVPDlljPmTmsTj
|
||||||
|
VfQDhflCCRWdcrQwJvvnJv
|
||||||
|
RLcWgLCqqPQLcqZwzHgwmmrmmtgwTw
|
||||||
|
DhbhNrMpnJSDJwVTHmmTVnTTVj
|
||||||
|
lrsvblMDlcWcfQPQ
|
||||||
|
PVldlphHwGwJJGdjZZWsRbbsGsNWrWQbNbQR
|
||||||
|
SqcDvTmDLtfmSmtqppfqzTgTQBrRQsbCFWbNNFQFBBrRbLNb
|
||||||
|
MgtmTgtfpqVlnVddZMwV
|
||||||
|
BdmfmPBPSbSNdGSdvWrwcZrccZPPcZnH
|
||||||
|
jzzLsjsMRlQQVHwswvvZrCHrrT
|
||||||
|
VqhzVFzplFlpLwpMphLRQQVRmSqgbdGtNJBmNSmgGbtggSgt
|
||||||
|
DHVpNZjdZjFZWVFHpvFvzmlRzPnlfznFRz
|
||||||
|
lrTBTsBwwMbrrwLPPfwGmGzvRf
|
||||||
|
scrtMhMCtJBBBclbHdHttWZWDSqDSjHj
|
||||||
|
wzqsPmqsbsfqBwPMNRMMZcZmFFNtZM
|
||||||
|
CgCnhlvvLJgcRFNNBdCpWM
|
||||||
|
QnQrVgHSvVHjbjTGBbbTHb
|
||||||
|
HdrVrdqFDdZVmHgRmDRFHMnTdTssMGnLnPJLbPTbCs
|
||||||
|
SczlScjwcNzplNzQSSfjwQSrTGGsbTsnTCnGTMCMLMGGbN
|
||||||
|
wQlfjrhfhQFHqZhRZRtD
|
||||||
|
RsfJDGJvzPNcjpddSWJWMd
|
||||||
|
LLCbBCwCrCmVVnrmhQFmbVhdcdlWpjZzSpMdWSpcWczSBj
|
||||||
|
rrLCbTwnHTvzvNGT
|
||||||
|
wPhPhbCqqSCrtJDlqvlrJr
|
||||||
|
RVVZddLFRZZcQLvJJtzptlgPJp
|
||||||
|
TVQRZGVncFdTGWZdCNShHhfPNwwsWPwb
|
||||||
|
dzLVzPSgrgDDDCMSMLLPwFmdTTcsvmwNwjNsHcFF
|
||||||
|
nWBGntQfGNGBflWBBqlpRQGbWFvjwsbsFswbvTHjjbmHTc
|
||||||
|
tBNJBnGBflQnDPJrPhDgrPVg
|
||||||
|
VtWztWtqpqzWpWzqjNRjNpWTmrrmrSbnmJwSJwnMPrCSJVwM
|
||||||
|
sDHsBDhBdsBZGcHvLHDLhhCSnRSwCJMZrPbmnMbJSCSR
|
||||||
|
ccLRhgsLBdRsdHNTFFNNgqTglqzF
|
||||||
|
hztlmDhPhgPlPNNgmZMCbmwwQjcwjjwMjVCd
|
||||||
|
RSJRrRqnqQJFqvnTGrHCcHHCCHHbHHMcMvdM
|
||||||
|
qGJsnQTRsStsftPlhPNl
|
||||||
|
BFFBLPRCwsLwhlPlRmhcGGrbmmGjfNTTnp
|
||||||
|
VJMVpzgqggJnrjmjNcMjmT
|
||||||
|
VqdSZtQgZvtdzqHqHtVZdVQpCDWWFdwlRPDpWPPBCswlWD
|
||||||
|
fCWCsjPzcbzwRSzVTzhhDLqvdg
|
||||||
|
TmJtrNJrBLSLJqgS
|
||||||
|
ptNTQFHrZlnpFPwsWMbRjCpcjR
|
||||||
|
nJmQNCmbmlllmbClbfMLjMFqbGBsdLFq
|
||||||
|
ZcgTWcTnMqqMTBqF
|
||||||
|
tPgctSnPctZZgDWzZgQHwNmHlhlmzlQhlJlw
|
||||||
|
ZpTCwpffdslvgShCBhqhRz
|
||||||
|
FDMPnNFNmBPzvRPRBg
|
||||||
|
nNgMrnnDGjDmJMmnFdZTTsdsrZrslcwcQr
|
||||||
|
pTmczpCldcdDDnPttpvWSqbpJf
|
||||||
|
jgjRZMGHhGLgQrjvPWzPJgJvzStbbq
|
||||||
|
LGNLLNBBzcDFCBwwFC
|
||||||
|
nJTTqnrNvTzNMzzNfqrTPrJnwpwPpZpsHccZVsBRpcVHwpcp
|
||||||
|
bgDhgbghLWmFmStctVpZtBCVCCpfZp
|
||||||
|
LLSgLGSjggFGbSSbmMnrvqvzjfzTNrJrqM
|
||||||
|
RRpDmmPMTjwfGmJQgQ
|
||||||
|
WsNscdnvvdVZFVnnrZbjjflwljlbzfGFjQjq
|
||||||
|
NnLZsNnrrVVVcvdBLTPCPCRMwhPMBMPhCt
|
||||||
|
lbVvzngGJnVbJHpHtHNPpdSQvc
|
||||||
|
TsMBswFZsWMWBZMNwPtNNtRNHcNpSQ
|
||||||
|
CcZCTrZDsjZTsTsshWhrWrTnfgbLDfJzVVLVVlgfnzfVGV
|
||||||
|
JzTTRtJRZWmWjrMHCT
|
||||||
|
DDFGlLGcGlSSSLsFGBspPBmNMBHMghmWNmWjWCmWtH
|
||||||
|
nSSpnbsGlLDnpPsSSspFtVvffRQdVzqvvbqdfVQwRz
|
||||||
|
sMhzszlHHDsWbthHDqsbJjpLNtmjVJmVLLVLVLBp
|
||||||
|
nrTPrGwfPLdprzJzdL
|
||||||
|
wgPQcTGGzgccwCgnRwgRChFhlWSDqWWQMWhssSsMQl
|
||||||
|
NSNmwtpSpCpvMphCsr
|
||||||
|
PHcRGPLJMrsvzsqG
|
||||||
|
QHjbnRMcfbPbQZmlZgZlgBBQ
|
||||||
|
cPRPbhQjbQRdtPQdLqLHqzFZjCFCqLjC
|
||||||
|
mmfsnnwrfvwrfSNZFzHHLDCFNlLlqDlN
|
||||||
|
wsmrwswwGTffMrBnmQttJtcMZQQtPJPbZc
|
||||||
|
MvBPDDRRdnnvHPCHZLHZsFLL
|
||||||
|
rmJcbVqbcjWwWjQHLzTZFTHSzFrpsz
|
||||||
|
cmwllVqqGJbVVVmmqbQcmgRnRvGhGfgDRDZBBBvRdd
|
||||||
|
nMvMhMnvhnbTZWSSZgHmGJDFmmNDzBmbNmdGBN
|
||||||
|
rCsPLRCssRjrLLsrLlwRVrcNJQfDQfdBmmfNBGJNzmDPfB
|
||||||
|
CRjCpLltgtJgJJWq
|
||||||
|
jshCzJpjzTPpmCWvSlpfwHfSWglf
|
||||||
|
LQMMNMnHtDtLVRvwwgRWlldgWD
|
||||||
|
qHVrQNHVMFQtrrBBQMBcrrZsZbzCZhbbJZJsmmsmFPTC
|
||||||
|
JZQZnsQNMqTngZqJBVfBfPPVBNrwvfPw
|
||||||
|
SSmDstFjpDpCszDjcLLhrPVlGlrGGVBwrvwVPt
|
||||||
|
FSssFcLjFjbmFFCzjLcFLRDnMJnTHRnZZTdWqZZWnMnRnZ
|
||||||
|
GbHRHpldwGMpWhHpCMBlCbRdVSLhnqJLSrDPLPPLPDqVDrhh
|
||||||
|
gvjWWQvgZFtQFFNqLnVnDnSJzzztDD
|
||||||
|
ZccccfTsffHdWWdRWwsw
|
||||||
|
ClCtbHMlnnPPlszV
|
||||||
|
gSDWSLgWQWQJJNWqgtQjPsnfcdVcLVdVdzfzVzff
|
||||||
|
WQgqtFQgDgQSFqJhqhSJvNDRrZMZHwHMCbZhTpZbGHMTMG
|
||||||
|
pZJZlCQtHFhPfdNfCh
|
||||||
|
zcmLSVczwcMcLDNFHdLPhPWH
|
||||||
|
szvVVnBmnTGQtHTQ
|
||||||
|
RVVCNDlNGzlGZqHGHWqWhGqQwH
|
||||||
|
ZFLFTmpLvvmSqsbb
|
||||||
|
TrfpBfJpJMlnnNfNZD
|
||||||
|
qHHlDClHhltMqQsHDhHslGznwdTnzzwDGSdfnwGnwG
|
||||||
|
mZRNcNcLLPNPBFFbbPmLmbZFSCVfJJTVndVfSwnRzznfTwCS
|
||||||
|
CcCWFbbBLCWtgWgHjghqvv
|
||||||
|
TjbzlnlFmfqCFFVVCRWr
|
||||||
|
PhMcLpPDtMLpwPDvLPJbMhSgVCGqggVqQgCqCgCgSWvv
|
||||||
|
btbZbNZhJDJJhDtwtsTTTmBzzBBmlNlmHj
|
||||||
|
FqhjWtqlqmmsnFPTCvMCQMTTCjQd
|
||||||
|
pfffRfLpgrgGgzrNVzzpGVzRCdMCPJbwwcVMbQPCJVMVdbww
|
||||||
|
DGGDZRGrHggzSsFQnnWShmtH
|
||||||
|
vtHVVMMrvVMVrSHvLgvlHcZFCnRCZcccZtRRZfJFCJ
|
||||||
|
rdDjGsdTQDcNZfdncCRR
|
||||||
|
rBDsTwBbjbmbbQswswPhqVmmSvpVhlvvqMhHhh
|
||||||
|
vGBLrqMNvqSLBvvrNbllLHfwStWWtFttccjtRtjtcj
|
||||||
|
MhCDJmhMDzmcRRcjzWfztH
|
||||||
|
ZQDmDhVVCQbBVdVNMvvv
|
||||||
|
ptCtCzhWPWptnhVzzpGZbZTjTjVjFGjVFgVl
|
||||||
|
fQswRRffmRqZlgrqqFjjSgGg
|
||||||
|
HwsQDNNsDsmRLLHmffsfvHptBnhtzCvhWpZWBdhnMdCh
|
||||||
|
RlHzzTqczBPfbnvcpB
|
||||||
|
wVtNwpSZstppwwMsZhsdnLvnbtBBmbnLFFdnmF
|
||||||
|
WNQJMVWsZWwGJWhhSNrQzlgHrDCgQRHpCHrl
|
||||||
|
RrZWpJZRrZpdTGstlchLGGlLMd
|
||||||
|
NqjDPCQPnQCSvtMzSLhhjM
|
||||||
|
nQVQDDDDfwBwNCVCNVFNpWpgJgrRTmLTmTmgRTWF
|
||||||
|
SHMcrMHpcjGcjSrMMbvSvvSvwFTLJwJNtFGFWJNtDLFTLfWN
|
||||||
|
zqRnPfzQCRzqsmRPzznhszzLtLwQwwFTgWWLDLgWFTwTNQ
|
||||||
|
qVPZmRZhsCZPhZlRCqRRRCbfpccMBjvMVjdHjjMjSvdf
|
||||||
|
VVQdHwBZLVltlddtBczhrzvGcWWFRwgsFG
|
||||||
|
TDTTTqqTSSqjqnmTmPqPPmTmGhRszvsrzsjRsccgzrRzgWGF
|
||||||
|
DpJPqpWqHbZpllpt
|
||||||
|
cCSCFsnnZFnscDtNdJFJtJtdmb
|
||||||
|
VgBqBsqRrHtNdzmNrt
|
||||||
|
BGLLVVjRBsqPBfsGwPsMfSSZCSfTZTZQpSphfS
|
||||||
|
plCHCHlgglHHGpNbtngNrDvBDpfQDBQfZDfWZVrr
|
||||||
|
mTmMLhRfwhsLPQvQZDMZQBQWMB
|
||||||
|
cwsssmqRTFFfFgtbCtGl
|
||||||
|
LQPPrCPnMZwqtRMn
|
||||||
|
cWTSlJWlcplJdDTdGdpDlGcGgqmtwwZtqRrNRRmRdNZqmgNq
|
||||||
|
GSJcJSjsjTpsvWGWBHLLvVVBBBrFrzVz
|
||||||
|
NVPCSPMNDSNFVSWCsJJJmpGmZZGLLcpZLHGGtsHt
|
||||||
|
fwzlBBqghqvzqqlDrHbpHjZHmGZbLZrHLb
|
||||||
|
dnBgnDqQvwRnSnnFMFMP
|
||||||
|
BCbPsFFwCRHmDSBmWnvDDj
|
||||||
|
phhZVzdpVfQZphhZpRhSVnjmrcvvnrWtDrvWDS
|
||||||
|
TfQJMfLphMhJdfdzpQJRTPbwHHNlgbGwsTGgCP
|
||||||
|
ttWLlnnvnNnBBtlTqWlpvpndQdZsQQFssFDdsRFdVdRNFQ
|
||||||
|
jSgrScrbGZSGrrCGsFVMssFsPPFcDDMV
|
||||||
|
bzSmJbfCZCbzLwllflwqtvvw
|
||||||
|
zmFTJwFLPmzLztmjDzTJwfNrdFNrFppBSNRGNGdbrpBR
|
||||||
|
gqlhWQgsZMsvqMlMMvsvqsNlLbcdppbrRpdbbcSrrbbr
|
||||||
|
vssCgVgCsggZQZCgsnsqWgWvfJPDLwffwTPPmzTnjTPmPmwJ
|
||||||
|
SpcRTPQLBLWpNNzjmmwwwRrR
|
||||||
|
tGlfvGhfnbDlbqlChnfFMrwsmwNssTMHMHjFwv
|
||||||
|
ZlhtCtffCdWcZWZVVT
|
||||||
|
jTTCcWHWJNgCGTzTmnzrmnGn
|
||||||
|
BwRRbFvtvvQmJJFMpMJr
|
||||||
|
ZBBwLvqbBZsRsbVsZSqbcZdJjHHjhfPCJfJfHhgc
|
||||||
|
VrnDSvvrLrfTdTLGfdRp
|
||||||
|
zcJzmcFcHGfdGmWTVd
|
||||||
|
tHsMhwPVctccHFHFcbSDbbPjnNbBnbvBQB
|
||||||
|
QttWQwLTnLnWTtnffnLQSBFVjNvBjBFNgMdCsVWsjv
|
||||||
|
pDqcmmRPHqgVBddjvN
|
||||||
|
DcclzbcbPbJLnNTfnw
|
||||||
|
plRcpsZDGlGZvWvMCNcLtttq
|
||||||
|
SrfrwSjSVrSjwbmSrHzmHJCQQPQzqttNNQJMzJtqMW
|
||||||
|
wSHVnfHfWwwHWFVfSnfgmmRsslFZZDBBGZsZsDTdGRTp
|
||||||
|
qSFQSgQNgQBrBHHcrW
|
||||||
|
VTmjVJLTwlTmwTVmsMJMVlJmPvcbvvbCBbGBPjGvBbBGWcbb
|
||||||
|
DnJTZwmnZRhnpqNdWt
|
||||||
|
dTVHjZLLZDVCfVHtLDDjQbscjWbSJMJPjsbWWb
|
||||||
|
FnqrnmzzFllmsWwtsFtQMMFc
|
||||||
|
lmqzzzngGmlNNBqGllzlBNRvptHHpTCHpDLpgDZdgvHvDD
|
||||||
|
sdRZQbCfZTSTdlfTZCffccWPHPPcPPwLwctRnLWn
|
||||||
|
BBJDzFVgCDrCJrqDJJhqJVVMLPHwcctFwcWHHGLcwGwGHnWc
|
||||||
|
ghpJgqqjCZbQdZpd
|
||||||
|
tbcpzbHSszcHBgqHGZgJJJhhww
|
||||||
|
jfvdvRTffQQrrFCRFTnGwJRqNRZVpJGZLZggLh
|
||||||
|
nQTjTnMndlTdQFMvnrClCnpzmzDtbbmBbcPSzzlmmtzP
|
||||||
|
BqBqTCSTcqHsJHHM
|
||||||
|
WWPGVPLtzVgWtjWPGzVjzVGcbDhPsRbDcsbJwNRswRDRss
|
||||||
|
VQfWjfLFGWLjdFfVzTZZpJTpnmlTrSQlBl
|
||||||
|
jLNsZjqSHCsGdsmpsm
|
||||||
|
MvnVFzWMwMVWzfnVDwfBMfnnrCtdtPmPlRrdrJCJrtPDrrPD
|
||||||
|
zznfFWwMfMfFMwVTMQFnQjhjgjSZhCNbLSTcHHgbbC
|
||||||
|
GGtssttVmvnnGNMQrrVzgwVrCWMz
|
||||||
|
FdhfhhcCDhHLfzclZMcrwcQMZM
|
||||||
|
HHqqCBhHSSpdmjGqmGjtjtjj
|
||||||
|
bbQLtGMQQtQRQtrDtGprrrbCqwplZhhqSqmdwvdzqqqhSmpS
|
||||||
|
FsJjJBfnsJcFcFfjVPjWBzldqhqnlZZZzzhmnSvSnm
|
||||||
|
JPcFfFWjFHJVVsVjPVscsDlLNRHGDbLRMRCDNrCGbG
|
||||||
|
JdMdlMRJnTwdvcjv
|
||||||
|
CDLHbNSzzLFgHvnTjrswBNBTNT
|
||||||
|
QgbvzSFQmZQPQQRW
|
||||||
|
NTBrNzrpjjjCwGbB
|
||||||
|
FRbQlcvFvcRQQlRsMlRRRZjwCqMwjmjwJZdLJmjCZC
|
||||||
|
cVPPQcvlWDNhrbPz
|
||||||
|
VdbVtbbZJdtJVVdDVZmTLqqTSQvNLjjDShhvSG
|
||||||
|
zplpnBnFpnrrlghGNpLNqHvqvjNj
|
||||||
|
cWncllnlPFWzcMwtWWtsVLVRmJWCds
|
||||||
|
ShLSTnZnTSttTSbLQdfSZTMwcDHwwcHnJvDHnlnlclMM
|
||||||
|
NmPMsssRrVwjDclHJwwR
|
||||||
|
gNNMWGzNmqGdtfZTbGGb
|
||||||
|
sWNNlRHnmJtmntJt
|
||||||
|
brbbBTbbFbCbqqGgBTrCfmQVVZfSSQQSVtJZSrVZ
|
||||||
|
bbFqvbDvvGGLGbCCtBGDLbLlcPNHhhccPNcdPPchlsdR
|
||||||
|
DCFvDvnCnNfMBmMMslDZML
|
||||||
|
SQQQJHwpSgJSJHQWSWHqJWWbmcBBBLLTsmhhTcZbMhmlshcb
|
||||||
|
RJRgpJHssgwSQHRqsQPGGjjtNCrrFvvnFjjPrP
|
||||||
|
mThmsgjzTPjMpcvtWP
|
||||||
|
GNNBVqVGNZbbNbNqqZQVNVNbWcpdtMCcpCtMWCdCPpQccmpp
|
||||||
|
VSmNrmmbBfZVlsrssrLTRhRhTn
|
||||||
|
TdmCvLDCpTRNTdFbbWnnSWCfhjbbzn
|
||||||
|
GrrMsPVGcQHBGMbhjjSgWfHHDbjb
|
||||||
|
BPBVqqrQPsQqwrrmmmJdRLDDqFRplT
|
||||||
|
fpDDJljDlCfDTjprjrfbddWthCSCtdPPQFhSSSWW
|
||||||
|
HsLZgMGbgBBsNzMvGbdVtVQzFRQSthhFPdtP
|
||||||
|
sMBmGBmbNvLHGMnrDppTcJmcjpqljf
|
||||||
|
ptSpSJQqpbNGGDDhcMWrlNHcZZWWls
|
||||||
|
zRLRRRjvvgjHMMsMpWpc
|
||||||
|
vmCPLCgwvwdnCzmvLbpTbVQqJJPbJPpTVq
|
||||||
|
TJCfhhJVFffrJJQQllNWcvWhwvWD
|
||||||
|
GPSGjjpLslBbpLpLqqqPDvdwvwvNzQWGzDDNdzGN
|
||||||
|
msbRjbpPqsRpHnlZrmJlnVHT
|
||||||
|
GGfFsCCTvGDsfTTrhsCMMzptZJMdpdgtrpdMcV
|
||||||
|
LBlwBHPSqjwwlVggHpnMZcVHMt
|
||||||
|
ZlZZlBbRPGGTGfmRsD
|
||||||
|
CtCjbVvzQQZTWVdd
|
||||||
|
MlSqWlmsmGBSHJHTDFHZ
|
||||||
|
pcqsmsplwsqclwRtRWgtRnPPvb
|
||||||
|
zCrzCrsdjrhGDCFqGDjRRPtpWfQQcpfQZcCZPp
|
||||||
|
VSVwVMgLHHLTwMDTMMVnbWPRZQRcRQPptWnpbZcb
|
||||||
|
MNBBBlSMvLVwTlVTFdNdhNhFsqsGDrzm
|
||||||
|
rBLWTwTThWwVVDTwHBsZZWppvpGtpptppmRvFFFMFMfL
|
||||||
|
qPPNCCbqcbcNqbqQjjJQqzjRpptmlpMGmMlJtftmtFHpMt
|
||||||
|
QnCgzzQbbQqPcPQnncbdQdnVTwDssZgrShBTVgZZsBSDHT
|
||||||
|
PFGJFqnfqmPgFJQPWdbLdpDRhbphWjDm
|
||||||
|
rclNHvcrzCNwrWRprjdMMMph
|
||||||
|
wsZHwZNvRRQsQqBV
|
||||||
|
LqlGCPlPLTCPqqQlpqLlWfBfWgcHNRJRfWNsncGH
|
||||||
|
VVtdwVtDDdVmhrdwSBmjbdzNHgfgJnNnsSnHsNffHgRsgR
|
||||||
|
wVzhbjmDbDrwjdbztFDDthMCvqPppZQBQLZQTqTvFTvZ
|
||||||
|
BnQnQFwRmRwmwdBSFDFnmSDVLCJTCTppVVmGLVTCLcgVpC
|
||||||
|
ZlWvhvZjNrbNvqjNhlfPfqjCGHrsspggTpVLpsJCpcJVgg
|
||||||
|
vPzNvqjWhqFzGSnRGMDG
|
||||||
|
wZnMZzzZZchDRtVsqtCtwV
|
||||||
|
WmWpWWmPPWrmrmBmWrTlTFPNVqVCRSDCQHcqVTtTqsSDSTSD
|
||||||
|
PrppdFlWWlfrWmpWFffrdcGjJJGggnnhZGdLLgGGndvz
|
||||||
|
FShHNmNhRhNJmBnQBQJrmP
|
||||||
|
VTgzDTjwfffwzDvwlcczzVSJbQlBQSWBWCnPJPbJWWbC
|
||||||
|
tzSVtzvSvGSRZqqFMNtpRR
|
||||||
|
hPZhGDZpnCGtDhznjmLmdJffdNzJ
|
||||||
|
glwsSrQwBvLdgLzdcj
|
||||||
|
QsRbHllzzlHwHlBszWlTBFbpDPMhbPDVGpGFpPtFPp
|
||||||
|
SRjStRDctgDSBzLvPvNrDhmPLr
|
||||||
|
QqTHGTPJmmHmhNmH
|
||||||
|
TGQZsTqFnQZCJTPsnJnZQMjVRBVtcVRSVRBlwccSCtBS
|
||||||
|
bbsNsvsvnNPTRRllbblLqhtQCqQSLCGGHSqHNC
|
||||||
|
wFpzFgqVzqVJWFDwqJDmSBBmHBHhShLQhCGSBCGH
|
||||||
|
MJVpFMqgwMqRRbZsMbZMrP
|
||||||
|
PPdDhvNDQdmgQPZmQVHHtHGGWVGbffWGvs
|
||||||
|
MMLCTRRLlLclTLRMRLCwMLHWVctbVVHWWWFfVjVGsFWW
|
||||||
|
MRSMMlpTJRqClBCRqBDnzqgQPnqgznZPZqbP
|
||||||
|
MrMNPNNpjvdprWtrpMsthqBfqlnfqcGhVBqFRcnqFG
|
||||||
|
QbDgSSQbgSDDmDVmlqSCRllRcFqnqfBl
|
||||||
|
QVJbVmwwDQbzVTgbppNJNMWNjNNPrdpM
|
||||||
|
WwJJNbtHfpLpVgZZPVFhZh
|
||||||
|
vmmqlDvRvRfqBSrlzmmMjRBhcVhQVZhVghCQQQQTcTrPTP
|
||||||
|
jSqMmqRzMDDjvqlBqsBMBmmwGNJwJnwLNfbGwddswnJtJH
|
||||||
|
RLgRmRggbvbzzPmmRNmzsQWFtSGNtwSNQnntFwnnCw
|
||||||
|
pDBrBHpHhlldphHBHhJVFSLnWWFJttCtQSttSS
|
||||||
|
hfHrpphHBppfTvmzgMmbLbgf
|
||||||
1000
inputs/day4.txt
Normal file
1000
inputs/day4.txt
Normal file
File diff suppressed because it is too large
Load Diff
2
rust-toolchain.toml
Normal file
2
rust-toolchain.toml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[toolchain]
|
||||||
|
channel = "nightly"
|
||||||
7
src/bin/day03_1.rs
Normal file
7
src/bin/day03_1.rs
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
use aoc2022::day03::process_part_1;
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let file = fs::read_to_string("./inputs/day3.txt").unwrap();
|
||||||
|
println!("{}", process_part_1(&file));
|
||||||
|
}
|
||||||
7
src/bin/day03_2.rs
Normal file
7
src/bin/day03_2.rs
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
use aoc2022::day03::process_part_2;
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let file = fs::read_to_string("./inputs/day3.txt").unwrap();
|
||||||
|
println!("{}", process_part_2(&file));
|
||||||
|
}
|
||||||
7
src/bin/day04_1.rs
Normal file
7
src/bin/day04_1.rs
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
use aoc2022::day04::process_part_1;
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let file = fs::read_to_string("./inputs/day4.txt").unwrap();
|
||||||
|
println!("{}", process_part_1(&file));
|
||||||
|
}
|
||||||
7
src/bin/day04_2.rs
Normal file
7
src/bin/day04_2.rs
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
use aoc2022::day04::process_part_2;
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let file = fs::read_to_string("./inputs/day4.txt").unwrap();
|
||||||
|
println!("{}", process_part_2(&file));
|
||||||
|
}
|
||||||
24
src/day00.rs
Normal file
24
src/day00.rs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
pub fn process_part_1(input: &str) -> u32 {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn process_part_2(input: &str) -> u32 {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
const INPUT: &str = "";
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn day1() {
|
||||||
|
assert_eq!(process_part_1(INPUT), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn day2() {
|
||||||
|
assert_eq!(process_part_2(INPUT), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
61
src/day03.rs
Normal file
61
src/day03.rs
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
pub fn process_part_1(input: &str) -> u32 {
|
||||||
|
input
|
||||||
|
.lines()
|
||||||
|
.map(|line| {
|
||||||
|
let compartments = line.split_at(line.len() / 2);
|
||||||
|
let overlap = compartments
|
||||||
|
.0
|
||||||
|
.chars()
|
||||||
|
.find(|ch| compartments.1.contains(*ch))
|
||||||
|
.expect("There should be one overlapping item");
|
||||||
|
|
||||||
|
match overlap {
|
||||||
|
'a'..='z' => 1 + overlap as u32 - 'a' as u32,
|
||||||
|
'A'..='Z' => 27 + overlap as u32 - 'A' as u32,
|
||||||
|
_ => panic!("Invalid overlapping item"),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.sum()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn process_part_2(input: &str) -> u32 {
|
||||||
|
let result = input
|
||||||
|
.lines()
|
||||||
|
.array_chunks::<3>()
|
||||||
|
.map(|[a, b, c]| {
|
||||||
|
let overlap = a
|
||||||
|
.chars()
|
||||||
|
.find(|chr| b.contains(*chr) && c.contains(*chr))
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
match overlap {
|
||||||
|
'a'..='z' => 1 + overlap as u32 - 'a' as u32,
|
||||||
|
'A'..='Z' => 27 + overlap as u32 - 'A' as u32,
|
||||||
|
_ => panic!("Invalid overlapping item"),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.sum();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
const INPUT: &str = "vJrwpWtwJgWrhcsFMMfFFhFp
|
||||||
|
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||||
|
PmmdzqPrVvPwwTWBwg
|
||||||
|
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||||
|
ttgJtRGJQctTZtZT
|
||||||
|
CrZsJsPPZsGzwwsLwLmpwMDw";
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn day1() {
|
||||||
|
assert_eq!(process_part_1(INPUT), 157);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn day2() {
|
||||||
|
assert_eq!(process_part_2(INPUT), 70);
|
||||||
|
}
|
||||||
|
}
|
||||||
74
src/day04.rs
Normal file
74
src/day04.rs
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
use nom::IResult;
|
||||||
|
use std::ops::RangeInclusive;
|
||||||
|
|
||||||
|
pub fn process_part_1(input: &str) -> usize {
|
||||||
|
let (_, assignments) = section_assignments(input).unwrap();
|
||||||
|
assignments
|
||||||
|
.iter()
|
||||||
|
.filter(|(a, b)| range_contains(a, b) || range_contains(b, a))
|
||||||
|
.count()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn process_part_2(input: &str) -> usize {
|
||||||
|
let (_, assignments) = section_assignments(input).unwrap();
|
||||||
|
assignments
|
||||||
|
.iter()
|
||||||
|
.filter(|(a, b)| a.clone().into_iter().any(|n| b.contains(&n)))
|
||||||
|
.count()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn range_contains(haystack: &RangeInclusive<u32>, needle: &RangeInclusive<u32>) -> bool {
|
||||||
|
haystack.contains(needle.start()) && haystack.contains(needle.end())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn section_assignments(
|
||||||
|
input: &str,
|
||||||
|
) -> IResult<&str, Vec<(RangeInclusive<u32>, RangeInclusive<u32>)>> {
|
||||||
|
use nom::character::complete::newline;
|
||||||
|
use nom::multi::separated_list1;
|
||||||
|
|
||||||
|
let (input, ranges) = separated_list1(newline, line)(input)?;
|
||||||
|
Ok((input, ranges))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn line(input: &str) -> IResult<&str, (RangeInclusive<u32>, RangeInclusive<u32>)> {
|
||||||
|
use nom::bytes::complete::tag;
|
||||||
|
|
||||||
|
let (input, start) = sections(input)?;
|
||||||
|
let (input, _) = tag(",")(input)?;
|
||||||
|
let (input, end) = sections(input)?;
|
||||||
|
Ok((input, (start, end)))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn sections(input: &str) -> IResult<&str, RangeInclusive<u32>> {
|
||||||
|
use nom::bytes::complete::tag;
|
||||||
|
use nom::character::complete;
|
||||||
|
|
||||||
|
let (input, start) = complete::u32(input)?;
|
||||||
|
let (input, _) = tag("-")(input)?;
|
||||||
|
let (input, end) = complete::u32(input)?;
|
||||||
|
|
||||||
|
Ok((input, start..=end))
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
const INPUT: &str = "2-4,6-8
|
||||||
|
2-3,4-5
|
||||||
|
5-7,7-9
|
||||||
|
2-8,3-7
|
||||||
|
6-6,4-6
|
||||||
|
2-6,4-8";
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn day1() {
|
||||||
|
assert_eq!(process_part_1(INPUT), 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn day2() {
|
||||||
|
assert_eq!(process_part_2(INPUT), 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,2 +1,7 @@
|
|||||||
|
#![feature(iter_array_chunks)]
|
||||||
|
extern crate core;
|
||||||
|
|
||||||
pub mod day01;
|
pub mod day01;
|
||||||
pub mod day02;
|
pub mod day02;
|
||||||
|
pub mod day03;
|
||||||
|
pub mod day04;
|
||||||
|
|||||||
Reference in New Issue
Block a user