Skip to content

Commit d3acbd4

Browse files
committed
Solution for day 3 part 1, refs #4
1 parent dc97abf commit d3acbd4

File tree

5 files changed

+359
-0
lines changed

5 files changed

+359
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
target

03/Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

03/Cargo.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[package]
2+
name = "day3"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies]

03/input.txt

Lines changed: 300 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,300 @@
1+
GGVGlqWFgVfFqqVZGFlblJPMsDbbMrDMpDsJRn
2+
LwzHtwdLHHwDrzPZzzsJbJ
3+
wdLTBvSvHvZVGCjhfN
4+
HsSSnZVHjjssZnJpSJjBHHWgQGcgqqQLQdQFqNgWgqGNDg
5+
rmmRwrtfThtTrbCrGGGcLBDTqDBNQLdL
6+
mwPrrbzPfwvbzhwMMnnjHnBjZlnzMM
7+
gjjdMBgdqdTpJpBcjgRRRlqnvrqfnZtrtZDw
8+
zHShWLhCszCWHVbVzQWCPtQvNZRwtfftfNnrnftlfR
9+
PzPSssHbVhCLFMJFcMFJJMjdJw
10+
ZqJdtpfpjmpJjpnwWdttTCDLLTQFNTzTzrcqrQqc
11+
MsSlBGvBsSGGSlbGsCgggNTgzNLczFQNrNQVQcFzFF
12+
sGHHSGllhvMGhSRGCjtjtjnjnnmHWpWWtJ
13+
tMdjQlHPHsGjsCtsCpwwqfhfnnFMDMrpfD
14+
SbNvWvBRJRWwFSgppgSrfg
15+
RNcNbvzJRcVLRVzTRFLjdHCQttdZdPlHstPl
16+
QWqgpdBflpHNCNWNHHPm
17+
VVMbbJsLFVMhrMJMmRjFNHwHjjCTGSSRFj
18+
mbMsZzsLmVhJZrcLcJhLMtnqvBnZdggplDffvlnlvnDn
19+
prnNnsFnZpnBNdNtFrNnzNQQwTTQZqTHTQJQMwHDMDlZ
20+
jgfgcSmbLmhmcPShghRdmwJTQjTlqGlJQJHqQqGHqQ
21+
hRVhPfbCgbVggLVRSSmRhRPhrrrnCzzsvCvrnvFnNppsvBtd
22+
QJLNDWSWQdLFFFhLdt
23+
npHhHMsfsjpZjznRtmrMCdBwFBFrBdmt
24+
HsjHqRRfnnHRsgfHffZspgzqDGQSWbQTDNGhQhSqNPhDWWbT
25+
bsCmFDsGZCNsDmLDLZBSHSJTHnrZQMQSSQ
26+
jqRpwvfqnnRQrftdBMHddB
27+
phpchwpzjpvwRzwcsnlFsssPCCGzDlsD
28+
rMqzVQfrfVZWZhTdRTQL
29+
cgmtFtjFFJDDtFvSFRZdLlhpHZddmwTZWh
30+
FbcSTtctcvFTJNgtJDGNPnCqMPMfMBfznGVsrMCq
31+
wLJfGJJPZLBfwSLGHbqmhhDHHhFDzfhv
32+
FsnpFjVjplTQCspNlCDbzhMMbqvMvsgmHDqb
33+
lRdlTdTddllpRQFRltVVdFRcwrtrcWWcPrrWPrPSrZWLPc
34+
VGVZhTppGTfPnJVJrFqbsmbSSshHqWqRHF
35+
llzDCzlBLdNcCddlMMNBdCCtWHbFqFRRRsHjWtRwSWqbmjWm
36+
NbcMBBvzzMQLCDBVTQQPVrPQPPZVPp
37+
cdcgfmQdqlqhzzPjzfwpwf
38+
GLBGBDvbvRzGwtnnmPpp
39+
ZRCZBRFSRvLRLFvvbLLFQdHMTHTlQlNqNmqFlWdH
40+
vzjzvHtcHvJcDStLLGSShCbbfF
41+
MWFFTVZRMmMgdQdSQLwQrQwbGw
42+
gFTmgmVZssRsWZRNzJlBHHnnJDvzNPlP
43+
rHrvHpmHZfdGDDGGZd
44+
cTlMsNhllMhGchNPCBlhMQgVDdgDSSWVbWVwRQwRSgbV
45+
lnBjnNNTTMnCTcChPNhMvtzvFGLtJrjFtHHHzHJm
46+
lgpdZZMmGVVzVZzt
47+
HfHLrHqbPbzJJzRJJPTl
48+
HsLWWbDqFrqlqfbsbDqDBncpgFmmvpnmmgpvdvjcdM
49+
GpNVbTpJJNvMBMVvJTGvhnWQQScllnhhWlhVSznV
50+
ZjswwHHLZzGnjWjSjl
51+
sHdftLLtgLfwdtPmHtMbNpMTpNqGRbPvTqPv
52+
sHSNNhNwsllGSGGlWSGWSsFrrVbQrdmFrVrrmnrHmrHr
53+
QQMRZDDRcrcnmRcV
54+
fJfCPMJCzTMZSGsWwsWBwqQf
55+
HwQZZJsHdqqsdJQGRgCgVGgSqgpcGG
56+
ljWWbnPhjBlGpCRCnScSGg
57+
hrrztWlbPjltjMPSdJDZSsHttwsZwD
58+
VzzbmzvpvNhvBDqc
59+
QHSJSQGCwJCGrGQjjcgcBFhdgqdqFdDNNw
60+
rCGJtZrHhhtLRsth
61+
TMWwCLPpMTThrvtMRJjbjRvmJs
62+
fDzcHFfSfFQfZzZRJbdmmqqssqtbSW
63+
WWgGZglcllgPBBCBNVGPNr
64+
wrwwhpTpbqhqrshrrfrFfwfzRJGdNJHNmcFzCCzCRJGzGR
65+
vMggvjQvgPvQjVLMMPSZqWNJGCzcNGdcdzHPPzcmCzPz
66+
qDZWvBZVfDhbTtrp
67+
LpDvHdjVghnjbGrn
68+
FBBBPwwlBlwSfFTWPHPWWhmgngmmnPnmbsngngbGrb
69+
FwftBSCSfWCtwfVQDvHHCMVvdQLQ
70+
ZrQpQlSpNlqQCVnQBmdDqmWDqmWWBDBB
71+
HsZMsJvZzLMHTRwWhgDwmfDBgdhWdf
72+
RZvTzJGzRjFrVNVjlQrS
73+
mqjMwfqlSSPmSrlPhwhVpGRcppWcpcGRcGWv
74+
ssJDJJNgZNDWrRWcRpvr
75+
ZTsTnnsLJQgPnfMwmnMrfm
76+
qsVBvZqWLdfbfvLj
77+
mPNRgmHBBGQrCbSbrdfCCSbC
78+
PlQTGcTTcgGFQQGPTGllpqMzwzpVJZwBMssZ
79+
FWGcNRLRLhwJJQfV
80+
nzbzlDBHSpTDbpDpzHwCqhqwJJghQqQMCCBw
81+
JnzndzpmJFmNsrrFsc
82+
gmRwwDwfnRDJgwZLFQFFNGNQrFBmFbbm
83+
CCVHVWWThSrjVGvbNj
84+
WpdqpplppHCWzlClMMTTZJcJsdscJLLdbDDfZDgL
85+
VNtCCMDllpBqDvtdCczTSgjHlzGSHSGZTZ
86+
hPFPsQhhFhLnbsRnLFssdzcHdsSHSSHgjzHG
87+
QPWPQrPPmbdnbWLFPrrBVrVDBqqNMVwttDtBvD
88+
PPNNRggwgRRgHBhDtwhTwbDs
89+
SFGSFSMCJFMrcrCMSSsbtrTbbZhBvtHhrTHD
90+
MFfSMpflQLQflfLjnLmddsLdddqq
91+
RcgbcrrFscVrwZVCgVGGmHppNNndWnGdNqddqqNqND
92+
jTlSTBSTjLTvlvjjPtvMLlhHnftphtDFNFqDnDHWNddn
93+
QBMQvzzjzvJPjFQMmwZJrgmCCJVRVbbc
94+
CzPJsWCpvsNszsJsNsHlDhMrrJGjhrRVhRGgDDjG
95+
tFFdbqFLFdwctQdfVhjRRghTcrjVRTDW
96+
bwQtFLdLBdFmwnHnWHPBNnHCnp
97+
CNTstGNslRRRstlmNmmTZZqfFwtqgwqgfBPSwSWwqgWq
98+
hpDbcHbpSrcgqqzhhWVfqg
99+
DDcLDjbMjCSsZRNlMv
100+
MhHMCMNbzbMHlcqmGmrmWc
101+
tnPggdZPBPgdtttJpdnwVBnmqQcvlQrQlfGqmfWffBcqWD
102+
VPPwPPLPwLGFGLzCbG
103+
rqBcBmjHTGfPbcVgPG
104+
dlDpsdshzlldlDvsWlWvLQbQBbfLFLbPvbBGQBgG
105+
BlBznnRWzlphphBnhZjZtNNCNmrNqjCqHwHN
106+
mQBvmvBmmLJvvrLtttQrfhGlcRGfRhVGWJVChlRG
107+
MzPswTsbTPPsNgMNszgzMpbMfcRcGflVGRfWSpFRlWWWFhcC
108+
bcPsTbgbbTTwNZzTZzvdjdjtQQndZvdrvdmZ
109+
hQzTQJFFZJrcdcdZFFrGFSVWVRWRwRgRHVMWDCDSWc
110+
lPmpNBnnnsNBnLnfbfnCDWMvwRvDCCMPwwHWvM
111+
HpjmffNlnqqhddTddFZjGJ
112+
BwsLFFbHLbVCSCSFbsbFLsJbqnTtZrRMHTZtrTrZTcRRRRTq
113+
lGhNhpPmmhpztZTBrcpjRqpB
114+
QPzdfzBQNgFJSCwsdLbS
115+
ZsZsSBTgffSCqSSfrMnnMwjqmqmnnnqwMm
116+
bbPPbzVclcPzGNlvzVtmnDBnQmtnQLBjJVLn
117+
zPFGplGGvdPbHplcbzzvdlNBTThgRpCTCTfhfsCCsSRZhR
118+
CVLSVCLVZRsHcnzSRpdZZRCdPlmcMWDDlPNqMqtDMmqPMlDt
119+
TBnGjfQrQJjhfWlPPmPQDNlmlP
120+
fjhhGvjvvrTTBhvTBTbvGVRLzVnbSRZpHddspHRzLs
121+
DDtWjfRfftWMLzSQjzzhWjjwRVPHqFbBbZHVwZBFvFwZvZ
122+
JGllgCJlJsrCGPrCNTPdslvZVVNVbvBqNbbpbbFHpBwZ
123+
CcPdnCdmCJjfcftWhtSL
124+
pgpfddDGHWzDNGNGpRCQjCTFHZZQFQjcRT
125+
bJlhqmMvnlrRQFtTthPVhZ
126+
lvbJrlJMBwfzGNTddB
127+
wpbJGGZpsjvtdWvGWF
128+
HqqhBhBqhhNQHTSHqqNzRHVPvTvddWrjtrjFvrvdTdVP
129+
NRLCRzlqHQtNRBLzQllhhZcgbggwmLDZpsgssDpwwD
130+
pDzFzJFcVMcWJFJFzpLBsqWLZssshsGLGbsS
131+
wqHqfvnfrRwQtdQRthhBbBbZLhPLnBTGsh
132+
CfQqlqvtfHNvMVmzmmMCFDMc
133+
GcgpNHvcSNvpSLphdhsLdQTsdWThhQ
134+
wwzttPrrhQswdhnT
135+
tjJjMJRbRbjztmjtjbgcRsNlgglHpDFSlSvg
136+
VVLvLqqPVlvcqLLdwLbHpzcHSsbRJppHbHpF
137+
CfjjCNGmMWhWjhWHWb
138+
ZmGZffggrDqZvZtlbTqL
139+
TTmmhvBvvHWzHpsPpstpLVdwwsLb
140+
qflfFgNctNcCnCCNDnfFFNDwrslwZbPswwZbJLJZbrlPLL
141+
FgQDDcncStCgtqccjSDTHWMThvhTQMBQhWvWRG
142+
SqhVghPccSBhgSBqWBFNQNsHQHMjCCQQWCwQHN
143+
fLZftnlttcbbtZbZlpZtttQjwsCQjRwwRDQspMRMNNQs
144+
TfLtvbJtZmlbTTTtlJbFvVqPSgBdPqPhFSGBcd
145+
pPPNDptcqtpcDztLDhhngnnJgJTmJwNnwm
146+
HVVCsSClHGBCHslWHbSCGGVngTrJwnnJnQRRBrhQhgJhdm
147+
WTWWWsvVlvGbWCFvjDftPpjqZLLtDz
148+
wWclwtDwRvflvffB
149+
sMMsGdsSTMrJZNqczfdvhvnzCnfv
150+
rspppMjMspSTSMpgLjcPFmwPLmPHwb
151+
tCdSMHtHtRFHdWSSJQSgrrrnghTNJN
152+
BGfcvDsfvsqcvqfGvfGnNLhggBNQJNJQmpgQJm
153+
sGfQDPDZzfDZzclwDzwsDlfjtbdHClFRCMWjbMFMRFWbdj
154+
pJNCcvqCccsVvFCpqsmvWJfCBWgSzBBRrrBRDDgDrSbbgQbQ
155+
TMLnLjjffwfwGdjQjDDBjBrDtztRSb
156+
MdPLGhHnMZhlPHHTFfZvVCpmmmcFcVFC
157+
SwFMfCMRCdQDdMbmdFfdbbnlcVncVCcgLqWcNNnCcWlW
158+
hPjQzzhGzhpPrtPJPpPHrVgnqVVncVVnNHlqVnncNB
159+
ptjGrptztpthtrtJJhTsGwFDZZDQmSdfZSwsRZSwfZ
160+
rSSWWCWrdllHWpjcnFNnRCNjQp
161+
bGwwJqGVGbGJVVhgbBgttGmBQjFsMjpMcMnnMBcQFNnsssvv
162+
bfthwmfJfgwwmmwZqVJPHNHSZHWzSlDPrdDdSH
163+
nmJccvclcbwmlbbvVbvsHwJJPCPNCNPnLBhrBPPLBhLhBgBP
164+
MdRGtdDRTqWDMqtMDtQDRWSdLLBsrhLgBCgrgCgNNLPBfNMf
165+
dRZQdDdRRSQWGsjZmwzjmlzsZH
166+
PBGGMrTQTrTBpPQpLpSlwjwfjtlnfwbmGttw
167+
fCsJCWJcvRCtwwjbCl
168+
NsqcsfcvDHFVDJvdLQTrpdTTzTPpHr
169+
rltrwsBTlrfGZggGBLGGNN
170+
jhMnRQJVphMnbhvQjDZNqqZDNTNHZVHGHq
171+
MRvbhQRQQChpvbjvMSvQnMcsFsfwwmlCwFwWcTWwrmPc
172+
DDvLLLBnvrzvbvbmtv
173+
TMwRjTRMGCwGGwrjQQnmrQrrQdhZ
174+
MJPFHFTwgCGqGqgJMGDfSWcsnBSccgVDlnpW
175+
flzVzNrdLNLJzrGlfdlzjrQDgFTpDgDmmmgFmqFDQjQh
176+
CbnBcsZnPZVSnwvVsZbRhhBDpgFphgmgDgTppq
177+
ZWnsWSnncSZsntZCbsswwJMzdLzlMdNMLtMVfrllMt
178+
ZffSgNfgJgGCHZcZrpHrNJTLhqvSLTqQnvVTLvzvLTjV
179+
tWFtHMwlBlDqjjzjnqvvlV
180+
DRMPDtWHPFDBFFwWMFBmFRPgZpJfsffNGJNrGcsprrsmfg
181+
wRZRmpZmlPqZjzGrdrGq
182+
bBhQQFPQbPDVNzVNzdGWNdrf
183+
QFbcDcDbLHgHBPDFRsSSMtmvRttMpCLS
184+
MpWJVVJMcWvpRShcwpLGflmqzSfNdfNLdQzN
185+
CDBTtCgtbjgCRrBrPBTQqzflNqjGdLzzmqffzq
186+
rFgnnBbttDTPtHCDPrPMnpwVJhJvMZvpMvppRZ
187+
sWTTmpsfsWppPTTsTVZWHVVZNvVcdcJvdN
188+
DjjBzjhRHvvvSzdc
189+
rMBjjrjbjrGDlgMlMrGjBgRLPTTwHMsfnFwFQPMPMnmFFm
190+
QRRbDjjmPzNQwFDNmrQmzCbVHrMhBVrJLJJfMGGLtfJBHh
191+
dsWcsqqWSWvnWnWcWGPJLBqhLBqGhBJHHH
192+
ZWnPWgWgPnlbCDDwmmDbRZ
193+
nfPqqfLqQnfHBSqnzztQjVmjfGRWJNGRWsJWJfmJ
194+
TTMlMMlFDMGVGRsVJH
195+
CbDbFDbvgTFFwgTDlDprhlPSqBzSnPdLPtPPHgznQqBQ
196+
fJmWVfHqjfjhZCQZ
197+
NcNzBNvgszQmzjnthZQC
198+
LsLsgBNFmFgTFgGBBgcdMdvPDPDJWrlpVbGpJWqHDlHJHD
199+
SllDdvzgdFDdlPJvbFDDSzFScPTRTNcwfZRwRhcwwNnRZTtf
200+
WBpWBCLGVpLjHrHGGVhZNwcTVcNhVnRcNZ
201+
LHLQLspHWQGpWCHnBvdzDJFlqvdsqgSgqS
202+
GcTctDMjMhpMDRjLsMMsfDWFfdPCFNbnCPnvCPgW
203+
JmvwqlBwnmfdFPFP
204+
SvZqHSZqqHZZZBlllBwSwsRsMHpLjpLsMGtsMspGRT
205+
ClLnCLfClLVllfLLcQjLBCfCmSHVsttsmtsVStDNVdppdsSp
206+
PFrRMbWqMRwFRqRSqwqvMvMsGtgsdmssrgNtdmpNdDGgdt
207+
bwJbPWPwFFPFSczCZzZZCcfjBJ
208+
MwmBmzwJQTcTmfPVfZPwhhwHPH
209+
jlnrglFLvbrGRFGnvFZdNNFfPZddPThVhdPH
210+
RjbjpgbnLGvpLgzBqBpmWmmzqTMS
211+
FnsSpttPnPbNCFDtsPnFHQZTQZgcwgDDTfrfTHMZ
212+
mRjzRzlvBvhjZrQmMMwfZZNN
213+
ldzddlzLRlRWdhjdRLjhRWtJbJbNtJJpJPbCbGCWNG
214+
wBwmNZBTmzzcVcmpzZqdMgPjnLSVlPgDPdbMdg
215+
flJvGtHffHDddddbHjnb
216+
RstrhfrhhRGFQtRhtftvQhvFZpsmpWwNlWqcWTccBNWswqNp
217+
DPWhbzDlQLLlQbLDlLhPhLFNNJqCFGqnNJCCSCnGPnGN
218+
wvwjtvtdwfssvSJgFFvGGSCFcp
219+
mtdrZwwJsrtddrHRtZWbVThLlBzVTzhHQWhB
220+
TsRRWctsTJMQZllggc
221+
zDvhpbprgGvpvVlVQlZpQMJVlQ
222+
rrrvFvGCDhDSrrrvChCgSstBNTSftWBjTdfWBN
223+
JJdssBcLVGrgbBHWrH
224+
QZTptvmvmlZpRDlMMMZCQvnjjFnrjWGFbjnrnFGWgZrz
225+
TMRplDMggtwlppTlvhsJJqdcqwVPSSNcLd
226+
JjTCCrcRvccPLmMP
227+
NfGFPZlNnwBfPlbbbQZGqLHgzLghSmMBzSgvzmDMhv
228+
ZfbnNQpQnZGlGlGpWTddjdTJdpRPTrCj
229+
gWLblMMggdWsdRJlblMRMMqWDvPvcPPPccJPJVTZVZThmcDP
230+
rQFfGfrCHrjnrtNTcPShTSPvvVLtmm
231+
fQrCfLrpLHnCHwslqzqsslswzqRW
232+
zpJtGlJPMPTlTjGJCDGCDljpdnvhhWnZnZnDwwmvnWDWWvdd
233+
sHrVrSrRRRLNgLVBqSsZmWwvwcvwZjmwngmdbn
234+
QsQQBrrLHTjPpTQzzP
235+
JDlzHHzzptRDmbTMrrVQ
236+
dRRNqnCBnmrQsVQQ
237+
wFPCBNFgwjPwhgFNztftpJRPpzRvvHtZ
238+
DlBhrDBPPwMWwhWchW
239+
ntSqbbSJFJNqzVzjCfMvfSlSRWccRL
240+
mVlHtNVtqldbJVmNHmdTTBBgrQQgGsPQdrDgsP
241+
HWHNbBgvNLdcvQMnSf
242+
wqqqVPDPhqwszFwrrszFfMdWthLcMdfhthSQfJSt
243+
qVPVwTzFwFDpDrPDzDPFDPlCHjBGjTmZGjbWWGZBRTNjjH
244+
GVgdWjllSqgjdgHqqlfmhwcpwCzhvZwMcScv
245+
nsJQbLRQsNnzQDQQPPBbRBRhfZwpZcvwpvvmLCcvpcmfMM
246+
DRJtnnRbBBnPztsrPzRBPbsFFHqqVrqggjFWqrgWjTGgFq
247+
hhZJQPJFHGGlcWWslpNN
248+
VwwwJjvwMtrCnwjDNDzlfscWszWW
249+
nVStCrMqbVwqVqSqwnLPhTJFdRgJHZSFRLTP
250+
vPgMbbRhhvMvNjjLWsWQsHQmHwBrmmBzww
251+
tFctDnVFpppHVBTdzdTQwl
252+
FtSFqSptfJCqqJStZCqDpDJMhvLLgLMgQgjgGZgGgMPLZg
253+
zwsWgSGWLSVhPWhtLgLWhPVNQTmDrDQttZpdQtdpQDDQZQ
254+
fjCHcvvjMDrppCQpVV
255+
VMqRnVJMVLPzbRWhGh
256+
mjRmzQlzDzNHWwDZ
257+
FBfJBGqnnpfSVGnpJbJVfNtCsJHWZvrsNJCZrCNsvN
258+
fZPBnfPqSBqdfpFbVnVSjgdcLLgRLjmgRhLLghlR
259+
FSFnTcppdQtnnDhtzDfg
260+
ZLGVmBLBVwZCVjjGqGhVwVVgzzbMDtNNvszMmMffNDDvtM
261+
VZPJjBZVqBZZBjqwVqllpSTphhQFPShWSQcW
262+
hTRdcLrCLgplLvBFGvlL
263+
nZDZqzbDbDzRZtVNDzDWGwslsllBFpnlpGvJssFG
264+
zbqjNWQVmVPrrRjRdRhS
265+
VpNCbVHlHHZfflVfmchctqFcqQQjZmZM
266+
WDSRGgsSvgJSRrnWgqQhmjBqmhqrtLqmQm
267+
znSGTgDJnsDGzgwCwlpbCNwHzVtl
268+
sTTTrpHFFFqTnQbbvfJdDzHHDLVV
269+
CjMtgMgRvbPfjjvB
270+
mhMvlhhWClvqshNTQQqsNN
271+
tWFtFBzbwdFrpmdhdm
272+
qTqDjJjJQQqMjTDLJjNqNqPNdmpcSmhdmhhmcrWZpdPGddcc
273+
RjNQLJNTTJDDJRHHjQqnMWtlvvVvbtBvRVzgzgwgVg
274+
CGdQjwdJrbBmpmZZZlRWcb
275+
NgtMPVstgSzBLzhgzgLgDRlcmDWRmlZvcSmDSvvp
276+
LhNsgPPLFPPsNzMhhVzPsGJBFqwQGfnqfQjdGdGfwr
277+
CNbNdbzjCZpPNzjmzjsCMRJvnnMRGnsvJGRs
278+
wrtdwTLWFcFWdFgwRRsnJGnGfTGJfMsq
279+
FttcwgBtgVLgPldQSNZBzBpz
280+
DjRZrrRmttRFDvDrFTZsnWnHVSTSSJVZJH
281+
dNNhLqlLLqdCzfMMlCfSncTVVWcHdcVsVdSVnT
282+
QqppMfzMfqWCwbRQrwFrrttQ
283+
dwGjHrtjsdhfCHnPSpfMfDPpPDWS
284+
lmNzzlLbFqcqNgzpWMSvbbvDQDGWDp
285+
LBmglgmqBqmrwCGhCjVtBC
286+
tvHgWZCCprlgpWglCtjPhLmPmhVdJFSzVzdJVmmQ
287+
fBnTTnNNBnwfnNqcBbBBTbGJQQJhSSdQJJsmdJFSQGSmVV
288+
cMcDwFbRfFRlHCRCZrrp
289+
ZFWmgghzBgwgjWBzjzmRWWMmsVwnVrsdVdwNrrpnnVrPCnCP
290+
GLLbtGqllctqvGJvSlQbJGsPnVdsdpsTPLsVppBCTVss
291+
tJBStGSvctvDDfczmRgRZjzDjZmgzH
292+
FMrLmsQQSWzCZBhpQJTQQZ
293+
dPPVncVvPBJDCPhwJD
294+
fvHbbVHvqnvvvBzgLbbGGmrbMr
295+
mrZzrzqDrhZqDddSFrCGLLLPQPQBJPJJBnQq
296+
TgbpGblWlMsjgWlgMfpNRgbRHHBnHHHtLpCJPCPBnBLJtQQL
297+
sbTlblTlvRbbGblbFcdDzccVcDVvzzzd
298+
zMzfzlGwSBMMSCMzhsPgfcPcfcbhjQPt
299+
FHHqJVdJmFmdVrJdJppthscjGtqRPRcccgcQbR
300+
rvNJJpLrvvLnJvNFFvZZZBWznBWGSDCMnCwz

03/src/main.rs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
use std::fs;
2+
use std::io;
3+
use std::io::BufRead;
4+
5+
fn find_duplicate_character(s1: &str, s2: &str) -> Option<char> {
6+
for c1 in s1.chars() {
7+
for c2 in s2.chars() {
8+
if c1 == c2 {
9+
return Some(c1);
10+
}
11+
}
12+
}
13+
None
14+
}
15+
16+
fn main() -> io::Result<()> {
17+
let file = fs::File::open("input.txt")?;
18+
let reader = io::BufReader::new(file);
19+
let mut score: i32 = 0;
20+
21+
for line in reader.lines() {
22+
let line = line?;
23+
// Split the line exactly in half into two strings
24+
let (left, right) = line.split_at(line.len() / 2);
25+
26+
let duplicate = find_duplicate_character(left, right).unwrap();
27+
28+
/*
29+
Lowercase item types a through z have priorities 1 through 26.
30+
Uppercase item types A through Z have priorities 27 through 52.
31+
*/
32+
let prioriy_u8 = match duplicate {
33+
'a'..='z' => duplicate as u8 - 'a' as u8 + 1,
34+
'A'..='Z' => duplicate as u8 - 'A' as u8 + 27,
35+
_ => 0,
36+
};
37+
let priority = prioriy_u8 as i32;
38+
println!("{}: {}", line, priority);
39+
score += priority;
40+
}
41+
println!("{}", score);
42+
Ok(())
43+
}

0 commit comments

Comments
 (0)