- commit
- d7197dd18e5dc958120047f47f9db05fbbe3c16b
- parent
- 6913c30f67ec131180e60bf8ab3b27ea70007972
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2022-12-03 08:14
2022-12-03
Diffstat
A | 2022/03/input.txt | 300 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | 2022/03/part1.rs | 31 | +++++++++++++++++++++++++++++++ |
A | 2022/03/part2.rs | 35 | +++++++++++++++++++++++++++++++++++ |
A | 2022/03/test.txt | 6 | ++++++ |
4 files changed, 372 insertions, 0 deletions
diff --git a/2022/03/input.txt b/2022/03/input.txt
@@ -0,0 +1,300 @@ -1 1 DMwrszrfMzSSCpLpfCCn -1 2 RMvhZhQqlvhMvRtbvbcPclPlncddppLTdppd -1 3 tVMQhFtjjWmsFJsmsW -1 4 trRtvNhfJhSzzSTFVhQQZQhHGphP -1 5 CnLMBWLwDMgMcwwdngdHGPVTQGpTHZdGPGpd -1 6 LLDqcDgwqCMnLWqtvzrzbbtJqPjJ -1 7 wQQwHNQLmbWQbQRHwHNFBbwqPfjqlzRMGRqzpSfvPlzplM -1 8 nCtGCZZtsGsrtDMZpfMpSlMlvlZq -1 9 cJctJCgVJsCJnDTsCthGhGLwBWBbbQmLbgQLQQdWbbbQ -1 10 ZWnNlTNTnhhQQlDNdmmpwrrrqBwjwjZd -1 11 GzvlVRSfvMVMvGlSpdCCdjmfpmBCdsqB -1 12 bzlFlLzJWLHHttLL -1 13 SmzFhVDzrmSrszVDVhSVbhZcCZdfZNcnMfMbZnNN -1 14 PTTRGqwqTqWRwLgTLTZGnCbZbNddZCCtMcNs -1 15 sgPqPqgJgWWqjjwgwLLVFBFSVmvmBBrmJJDSvp -1 16 CBccfSBhcSBddfgtlJmmmwmPRwmh -1 17 FpTzzGWHWprgDtJlDZDPFR -1 18 HbbTzWnTrnWtCbQBbQqQbSjf -1 19 fPHspCjgwZggSvZQ -1 20 RrNhzFZFcNzFLNLNwQlSlLnv -1 21 TRFrcDVrrRmrhFRZzVrczqhRpjqjsssCpfHjsCdpsPfpjCMC -1 22 ZBnBTMVTSbGbTVTGbCPgqsgPtHtgCcPtBB -1 23 ldDrmnnNrzhdhfgcsHqcsfCcsCHg -1 24 zFdrzNdzQNDDhFdWldDrJTbZTbLZJVVVpMVWVnLS -1 25 pLnpQNhBbnWvbsWm -1 26 FrFwjlTPTdTqqrDZWbvmZbpSgmJWvbgS -1 27 RqDqRrdGFpGRFrFFdTNzCcHcHLHBzQCcNNGN -1 28 bvRCtbtCPfSGtCcvCbPNlglqgqlGZMzTgnlZnq -1 29 hrmWWFspsHWrzNwTnFlTMTwFFn -1 30 HpjJDWBQmmQdRffbPtSzdJ -1 31 GpHjFsjMFpCpMWjMGCqWmmqrWQtmthdbDbbD -1 32 fzgLTJwJPSgJgzSzPfhmqmQhQHzQtbQDrrmq -1 33 RNlBRwHfRJHLLfHTwLSBppNGvjNMFFCVpVFcvcFC -1 34 SfQnfSFHfnvMtQQSnHJtMffsdTlZtdZmtllmTlmlRRbBRLDb -1 35 hrwhWWwqzPrcCzwwzmPlRbdmlQDTPPBLDl -1 36 CpwCzrwGzNCWrJnMvpMvfJVFvQ -1 37 rCRPpgSggcpqrhPrCDDTLsMLDSDGLTMGVs -1 38 HdvzmRWmlHzwvWHvRHRvHJbDFsdMssQQVGMDTMDLVLLFLT -1 39 JBlBnnWBJlCqZRRqRBpr -1 40 GtZllZDlfDpGHZtZBGBZpDmzQzzCSVVFHmmmsPCQWWSS -1 41 JvFJJrwvNNcJTnbrTRNRSCzqwSsVPCPQqmCQszVm -1 42 JLMnTbLnMgBhDFDf -1 43 lffDhtgDJzCJNGGTzWTRRnRvBv -1 44 qpbpdwqZwqZSwMPSqdQcQmTRnWvnBnRBQBtVnTvWmB -1 45 SccbbwSbZbFPswpSZtgFlClLhgChhhNfJlFj -1 46 ClmCjCJBjwBVwJGjlGNFJlVMHSrfpDpTfrHMcHTppQVrHp -1 47 dRLZWLvWSHmTccWW -1 48 ggtqzmRZnmhghZhZghntdqsvBbjlbNFFBPwNNJNNCBlwPGBz -1 49 HZmsFZQpvZsWCZQvWrghGrhtgNzdHddHGh -1 50 fWSbqWDJVwcSccNzrNhcBtGcgG -1 51 VqVfTJnbWjqTSqbwDRfRvQvFpFLRpZsssQsCQZ -1 52 FpFZNfplSTJmbZzddGzhDrWh -1 53 LqLPPQjLLRMPqvjLLHQrLqrRWdzHnGhdthttGGbbDWhDDdWz -1 54 sMLMgvRLgscrLrRQvwmTNNfpNplglplfmp -1 55 MPVBmCmWGWRPPqRhLcnjcvjjcpjMvp -1 56 tzwrwsJlrldJsrsrTtrzrTtSNnLJSShnjcncvnvqnSFnqN -1 57 rswrzsbdwDHHbWZqVfWV -1 58 dVmmMTmBPTrCBRMCqFHSWFFHWzCvCz -1 59 jNqfGsDqtsjGjQjDlcJFFFznFtzznvtFpFFp -1 60 fNNhgsDcfNflqchVRdgVrRPRdVTRRb -1 61 HJPLwgLvjttmgHJFjwHgtlsBbNbbNsPpblspTllThT -1 62 MzmcRRrdDMVTzbhNNSszhl -1 63 mCDDVqdVcdDrqfcCnrFwtGwvngwvtWJtFjWW -1 64 dFDpmttBlvNNgWlglNDBFttmTGHTcSSJJHHnMsJsGGSdqcJj -1 65 zLbwMLVQbQRwVsJsSHSsHcJqbj -1 66 wfVZLPzfZZmpMZZMBl -1 67 PZHZMJSTBWHNWSHzVnhhfnhThhpnpC -1 68 jFdBBtrFjpfnjfnf -1 69 ccGrbblbGRDQMlvmQBvmBl -1 70 PCCTsnbPbHDnlDfDNB -1 71 rMjQltgSqtvMjScQggjfVVzBzFHzGfVGDLGBqB -1 72 vdtrMSttcdwcpSQSdglMrtWRRPJZCpsRZJmWRRWChWPh -1 73 pWzbsPCCPPpbptSMCJJwBQQGQt -1 74 cDDmcTTRRqzFRddVTSJwMShMtBwhwQMDwv -1 75 HldqVmVlZdLTcmRFdrngNNzrffjWpPLggP -1 76 JPqvjJmmqvSLmPtpZdcftdmtfdCC -1 77 swwhDRwBBHjFFBtBfZ -1 78 RRzNQDwznDsDwWJjLNlrSPLSTr -1 79 VQmdRLvDlmqZdFrBBJdW -1 80 CMstGsnHnHGGMrMZwMpwBSbW -1 81 GnsshssNfjtsnggnHCGhjtmfLQQczllvDRVTTQllQWlQ -1 82 dhbNbswbwVdNtVdstBtgbNQTBCCSFTmfmMFmfRqQmmQM -1 83 HFljLrvZfMQQQPvm -1 84 WrpznLZZrnplpWbgdFcFsNzszgst -1 85 LjddfTlMccnBfDQBtBQb -1 86 ZRSNchHwhNNCHNSWPQFFFHDBBtnQDH -1 87 CNpZshSZgpwJmpdLMlplMc -1 88 bTmTFmqzgbBntRVsFvVwcv -1 89 CZfMrlZLLLMlfPZRLRHGstnjGwtvGcsSVwtcSGvn -1 90 ClZpMLCRMZMrHMLmWpqQBpzpgQzmbg -1 91 jDmSSGWDDdWdSqqDDqCqpJzqRRqpJnRsMRcMzM -1 92 lPgNPvPrrgNrPhNszFggnRzccbMJgz -1 93 ZQTHQvQTZPrrQlBBrNvQZZGtTtGdsVCGsCTLLGDmLsjt -1 94 rbCfBrbsvQqRFZRNZC -1 95 HLSTcwqwZSQFFgRZ -1 96 wdDwjpMHqJDTMTdqjlfBvGBhsbfhbsnb -1 97 ZhZcHHHlhgchHhlCZZhLCCbGdrsBBGPNBjGbsjNNjnJnPn -1 98 wtJqqwDqQQMQFqSqTzwzVTBnGdsjBdnMdPGBBsBdnrjr -1 99 RVzJzmSVZmLLWpCc -1 100 gdqjQQrlhhQlQrhsnjjhLgmmvmHBBmTmZRsHJzTBHRJv -1 101 NwNnGNbGPbmTGpJzppBG -1 102 nDnVDfMDrQqQStgM -1 103 MLbgbppMMgLmHgQttGQJgJrBShwNShWBBSNNrwNqNN -1 104 GnTFlzCVVwPRrVWhSw -1 105 GnDDdvdnZDTdnGMsHbbttZgttLbc -1 106 mdmPmjClrTzqttfm -1 107 cpFnSbcQQsqNNtqWJzHS -1 108 QFpcMMBcZtLpQBjVjZhlPjjVlwvw -1 109 spVsPjTZZMpZMVLDjmdSQJCLJSmLzdJQdl -1 110 HhRnNrqwMhNhnqnHwGNRFBNBrzSCSdQmQCdddbrQSSclSSbQ -1 111 nFNqGRvqBfjMvTssfZ -1 112 FjjzjnpFqqzFFqgFSZjBhHfHhnHRDDwfdTdLfD -1 113 MmCMGCsMWbtJrtCWCbmsmWWhdLGGwRBwdfdLhdTLhHHTBd -1 114 bJmtrRvRjgzFFvVq -1 115 RWwWmVQGMFGmMGVCVWRRZSBgDdSdJGlSJpcBGGSlpJ -1 116 HHhQThnjBDHfSBlS -1 117 bPhNjbsssQzFNQqWmz -1 118 FTDtrjqwwqGtDbGnfBlcnLcWBZwlWn -1 119 mMhRMvJsJvJnMHCvHmhLZLQlhWQBBfPfLPBZ -1 120 HRCCsdNdvNmCvggFStbzjbGSSjjn -1 121 sLGddsvvcZmLvrLMGcMsVnTTlqlHCsTHHVVgVt -1 122 wRbfJPbpNRffRJMBhpDntTCHFNVgqllFlqggHC -1 123 DpfbPhRDJPMJppJwzfpbbDGSjrGZvdccQdjGvQZdvrLz -1 124 wTwLNLVTqnLMsBwfMsJmCj -1 125 JhlGvcdJhSFvFvvvMfgBpCzjzdCfsMMs -1 126 DSlPPJSGWrDcFPhtFhWJZHQZLTQVnRWRbHbZHQQT -1 127 TmTgTrPDNLNVlDrmlbgNmrSSGbzjZGMvjpZjvvphWMzW -1 128 QtBfdfQcdfHtZcnZnGZzchnp -1 129 HQHwRBGfBCGBtsrCNPDTmTlNLr -1 130 bfNhjhNJDWhlWhlRRR -1 131 SsscnHgnSnZnltqqfWRWrzZv -1 132 cnfTMfmMnTnmFGsnTVLLLpQJbpbbjpdTdN -1 133 BqwZzqRQQRRPSlFRQDDwdfWwhJphnfgfnpMdJfdM -1 134 rcTLrcrvDDChWJhfpTgTJh -1 135 DHGbGNVCZStGqSqS -1 136 dlfdRNNfVdLwrRnwdwRmhLFsbsJJgLqbgCBWBCsW -1 137 PHDppMPMHHDPzmBBCmWJqCmbJD -1 138 HzzZHmZzQcNdRRdZwddr -1 139 wrlshslPsSRfvrQvwbrslCDghtDgCVhDhBVJCFHddt -1 140 mZnGpWpWzGTMqnFqDqJNDNFJVJqH -1 141 LjpzGcjMGcTzcmmznWSRsfRPfcrbFQcfrwcv -1 142 rWBmmmtNmmtBbtlwnhJJVZbw -1 143 FsRcjGdLdvFslZbQJZwQps -1 144 GHFGvMccFPjgDNbmWWBTTHNz -1 145 GhHzmhmwlpbltGBmBmsZsBZsfCWC -1 146 rgrcCCPdsWBgNVBD -1 147 RnRMdQPMCqndSdQdcQhblpLLwhJbbpzGzwpS -1 148 NNQtStFPpJwhRbRzRbqpZZ -1 149 jLnmdJrrdDTdbgWbTbRW -1 150 JHvnMCmDnMnMljLCDmMLjHNFGGNBPVtQQFtSNFQtPQBv -1 151 BFbBRllFZJnPVJbV -1 152 GpGHwgzcLhDcwttwthzzhHcPTjZjMgMVZjgZTMmTnMZWJVJm -1 153 GccwhqcDtlrPqQrRNQ -1 154 gWHWLgHBHQdFhjGGThTQhR -1 155 pZsSMpZMJJSzMszzzqclpfjvrvvcRGGTcTVhbVvRbTGTRG -1 156 lnMwsqZqsslpjlSMSsffZqqJBgHNNPNDWdLLgdDgdLHPWwCw -1 157 qfNvBCBfBqfNMBqCZZfcnmnvtwScpwFSpSsSwt -1 158 HzdVzLWPPGGDdnsswnztsRsnmn -1 159 QddWVQgJPPHJTJbjBtNTTq -1 160 DdRDDPRGGPGccfcbJwsbJWzsnznlLLWzWTLWhVVVVS -1 161 CvCrNCqgFqvmqNZFZqqZvpWlVrlVhlhnTLShlDWnzVBD -1 162 jvqpvpvpQNCQQCZZmmNgZfdGddRjJDPRMHcHJDHPJf -1 163 ttdtBtPPMqWMdgPPBbVGWfTGTTzSVLfVrzCS -1 164 ZpDpvRpZDDcmmjmZfLSrwzRnSVSnwTTR -1 165 ZvQmjFVHJFDcQjDlZcDVHdqMNtqNBPtPJtbhhbdbts -1 166 dGdwwLLpgwgssJpgssNhpJlnbfjnzFfcbfttGjzjlntf -1 167 VQvDvHVVQHrQHDCZVBChrHFtzffnfltFFtncnvFtllMl -1 168 VBShSqDVRVSTmppPwwsP -1 169 fTFDTLNNzlcNrmDcrMDTFPwCSsbCbPPsnCPwLSPvbs -1 170 ttQqhJtBRRGnvgHGnlSnbl -1 171 hZBJlQBRjVRBRjhtRRMNFVmFmfDNrfWcFVmD -1 172 mcTZFBFmqBjmBgPtCtPprmssStCP -1 173 LWDQNqDJfQNJddnWfzhfsPRVppVVsSptftpVMS -1 174 NDGnJDDDbzddWdNbGNQQLQbqqFBBFcjlZBlHjlZHGBTvZB -1 175 PwDzvphPwVwWBqLLwnJWTq -1 176 jdCGCgjmllCrmmlmjrbgmRdgJSSJJFLSSqJfLnqLLLbWffLB -1 177 mRdjcMHgDpZhDqMZ -1 178 cqLjhhrwZwJbBqZhMwbZZdGWdGSllWFvLFGQdnGFQG -1 179 gHHVzzppRVggcgpcGWRQRSvdSvvGWvll -1 180 HmNNHtVggHsHPtrhJsbjbwCrCqJc -1 181 zqPvzLVvzFFQZzWpRLlmHRDHmRCHDH -1 182 dNjnJGGrGdqqMprRlpqB -1 183 GsgtjhSsSvvSFqvP -1 184 pVrfzzjrjWVWTWjrNZvnJSJZqnnqnpSZZS -1 185 bdQVQPRPDdcbRGPFddRVMVlZlMlBqSBBZSvSZwnwvJBS -1 186 bFbcFbCPPCbbVHCCdVgWfrzjmWfrWrNWgHfT -1 187 JgJqLjjjVGgdqGDZGzlGRStStT -1 188 PHrHccmrMrTSMVStRtRR -1 189 HWPWffNsrppfPWNsVFsmPNCJwwjdJdvdvnJwghBLJLpdLJ -1 190 HtHvcnDSDgDcDHtpLrvwjwjfZMjffw -1 191 CPWzdJdqVdWZpnLdwnrfdn -1 192 GNCNmTQnPVRRglSlHsSG -1 193 FJdhjTPbdPJjTPjTjPtSLsSBWWRcCvCvsBWztc -1 194 MfGgrHMDDpMnZGDLCRLScCsBlgWvzB -1 195 HnmpmNNHGZZpZZrnMPFFbNCNbFdTPVFFFN -1 196 TJrrrJQTqJqmTltfRrgfgtgFFg -1 197 jLRzBvBjjcnFBNwWlgBZFt -1 198 RMjMCGpGzGznzhRmmPPDPsmMmPQmJs -1 199 BZqwQCQZGZcVBczqBHtfbbbWfTqNWfMfPNqW -1 200 LLpmFjpvpHrvRFSRDRMWbdbtfPWPbjtMgMtW -1 201 SDnrpDprDFnQhZCVnhcH -1 202 WTsBBQTfQQTTbJBbZbnfTsRFwFrjwjFlrRqvrrlqvWRV -1 203 pGcShcGSLNJNHCLttlpllRFgpRFlRpgRrg -1 204 GzcMLScSGJGtCbsbQfbZbMBnBn -1 205 NGCLGjVjZjQwTGJRQdWM -1 206 cFTcvSrFmnnpSmndMswsRMJWRwMHps -1 207 rrrhhcTznqvzmcccvvmhgzqDgbgttlDtjjjlfVCfZCjZZV -1 208 ccDMHddWNDnnNWMMzdHJJmSQhfQZfvQZflrZQfdVfLLZ -1 209 bgBFRTwFtgqCgpRGFpvpVllZlhjrrlVlvj -1 210 wtbBGPTPtRTgbCTBqFgGRwFnsWJnmDMsWMJJMzHPhDmJzP -1 211 zsbsMtMMdnffBbzNsBtCCWLpLrCrcNLVDWVVcD -1 212 TmPhJRvwmjmhFJwjjRPFPTvJGVCcCGBrDpccpDrCrWCVDVFZ -1 213 QvSTvBhqwjPmwddHgtqMnllzMl -1 214 gftDtqnpqzGZsFcthbtZ -1 215 VlNPrBrRNrLBmdRVFCcGCZTFCsTCsbLL -1 216 VdldlljlSNHBsSlqfgqMDDvzpHJHWg -1 217 tQDLvFLcDrWrcnsHffCGgGHG -1 218 ZRPTPJqhMZJZVllRZJPVZPRHnhCnfdssnCznzGhdgfwCHn -1 219 qPqlPVlTlSqbZZVJplqlPDmrjWFtmLtFWgQvtmtFvp -1 220 zlZzdNRPgGGzsLGCDBBtCDCtSncScP -1 221 vWvHWbqjrFMbvrTWcVnQBBBSjLDcQJcL -1 222 wfLHwfFqLFbhHvWhMWqwbwwRspssmzgpzGgmmNfmzmRGRz -1 223 rPvLrQBvBLsLLdtrgssgZjwFwlnCFMtMFnlllnnb -1 224 mNmmzpWHlzjlJMJb -1 225 TVSVTWpqRWpSTqNbTVRBPDfLLPrSLrsfQrrvsf -1 226 nRjpQWnQnRQzMjRdrtvvPCfmvGtPfMcCtG -1 227 TDbrbhNZVbbbbwhDZDhbTTGfcftqcGVvmmcqcJCcCPmJ -1 228 NLhrSwgwgnsLsQWljW -1 229 JWqVSpGNPdNNzdZJJpMzHzwLgsMwzwQwMBgL -1 230 clrlcvrRfccCtFbHrBWLgwLHmMHsHg -1 231 DbfDFjcvRcvchWZVWdNpGZNqdh -1 232 sdfvFLfmtszQwLfddRpmtDDBjVNWGMNQVQNMJGWJMj -1 233 lccrncTZhqqcqhWggvrjMNMGrJMG -1 234 SblShnZCqSbPhhbcbTTSZFdFsFpmdRwPwzvmswLtmm -1 235 PGwwHpfnFSvVpWqWCQNNjCbbnW -1 236 lmddlhcDRBlLRchdmzbNjqqWTcbNPNWTzz -1 237 RBMrRdRhlDtPrJtfwFHpsvrHpFSrFw -1 238 hhwlglFFSQndLRFbmCbTTz -1 239 NczHMMqzpzPcpfBffcmTrdfGbbRbGrdGrLCL -1 240 qNzNPqMjcqNBWWccBHsZPDhJnllwnwvJvQnJhQsgvD -1 241 mbmvmvbbprZmlFmZbFgLffgQtFNHNhfqQtNQ -1 242 SJcdzjSJBzdBdJDzQhhLQfqzNQQHggRL -1 243 jwDwcTTDThvTZPPW -1 244 FSVBBBvHvCpVVDDGcGwNNhhctwMvMc -1 245 fLLZsZVQmjfTfqQRmQhhtgbbJbGJRghtcGct -1 246 qTsTQdqjVfqdVdZZqVLpCpzSpdppBlSpCFdHSC -1 247 sQQhWsMmQshlhmMQZFDHDJFjgjzHZgcHdH -1 248 LnwnpNRrnrbCqqLpwnqfnLcvFHJFzNcHzJcgJJHgdDgN -1 249 wCbnpCfPCVqwwnrrbbPRGMMlSllmlTTmsThVMlsd -1 250 pzrprfwgbwtwqzrCWbqCwqSMvddHdDSvtHRlDnRRDddD -1 251 zQLzQQjPBPFcLcQFTFsmNQzcMNdDdvnldHHvdvnDnRnlvRnJ -1 252 cTZGzzscLcPrqrfrZqqbVV -1 253 DcSdcTwDLmcwDwvWssGfJfcJQZPGnfcs -1 254 FlHFMgtgNggpsztMHMqpjgBBnCfPflfQnZCQBBCnRPZC -1 255 gpVjqNVrHFtjqqzSLDTSmTDwwrmhbs -1 256 MLMzJTsZzZMgMLgHMmVmdCVhCBlQwDwwhChD -1 257 vtPRQpbqCldwdtBC -1 258 bQqFbnQbcFfjPRFPQnTrMMgcJgJrssrzgrgS -1 259 mtdGJmQRFmdtQvdvtRtdHzHzqZqpHFzZnCzhZjjH -1 260 fPwVlllswMVNPfBDDlNVsMsfcBjchHncqzjZbpzjcqCnpHHn -1 261 rlsNPWNlhWTPMMNPfwNWTLQRvQLLmgvSJvRJgTRG -1 262 TwnqhqqgvQnGBGmBDp -1 263 SMjclJSjjVJgCzCzNgpmdBpmBGspRBmpDDVB -1 264 JjMCgMMHMMZNStllZSNHhPqFhFWfqPPqTqhLFqtL -1 265 lRQPtjPRlDdStDSlPmvllvLsCphFfCHLHggspgFmsFLH -1 266 qwpTNprcbNWVHLrfFssBgFCM -1 267 NTWTnzTTWGZZZVRSRRQGpdDtSQRp -1 268 gpwTPNPBPTdLLLLVGl -1 269 jSHdjzZHMcDVtDvFjtCF -1 270 HqfZMHzbcqRRRWgdqPmBBBNmwW -1 271 PvSBtdFgvSmBPngFBTBjbSjwwpGjsppMjNpMjj -1 272 VZLfVQLzQQQhllpcNcwbssvwwwZj -1 273 vHWLVVqWTmTgttgq -1 274 CNRmNRFNRCWbWNCrlmfGlWqFLsDZQZBZzgwQZsBsDZZCzczB -1 275 MSjdVHvHnDDhHvdwBwssZVzwcgLcQg -1 276 HnMMTdttHSHSpHvDddpSHTjWlNWFlmRtRmRbqGfqGGNNfR -1 277 fBLTDppznrfTndfnfTzTLPvZvvHVbRbggjvzVbzvbV -1 278 mwmDGGlqDhMqthGqhJMWmlNVRZPHjgwjjRZbbHRgRHvv -1 279 DmhsJsshWGhSGlmlmrdcLLsTBBfcfnBppc -1 280 mbCGFFmGmcdTrCTQdh -1 281 MJHfJNLllJffPLRTdBqTRQNcqQGB -1 282 fPJHfSSSWfSLDMLWGHDMLDFmznmsjmvZwzvjZjbvbZ -1 283 pPvpJSfZTTvCzNZczzQZchcj -1 284 svbHWsqsvbsMFtVHgVtcRQcDlQRRRQLjlqjczj -1 285 tBsgvHVMFggbgFrgWnwSndfBmmBJfPSfpn -1 286 jwbwfjSbwjVSjvZPzWSvhvhQlCsBFgLRLLgBLRClLLFQQw -1 287 GdNJHpmHTDnTNJqnFCgBLFLFzFtsQRCd -1 288 NpMJHpnMrDpJGTHqTTmJHTPjfcvbWfrffVzvZfVWSbjz -1 289 wFwpqWwwpqwtqqrbCFtptDmCcfNhNRzRBZRRJRChVNBZBJ -1 290 svlvjHsQlvdlvMLdlvPSSLtzzczcNhJthfNtRcNMJNMc -1 291 HvvPLSHjgltjsvqwbbnmWmDpgwTT -1 292 zhCmPVwwChdCBtsWnNWswBWr -1 293 GJJSfSgFpjJjGgpfpgrcNNstvnBHNnHLtFHr -1 294 jgDTfjpMgZMGMGJTMMJRhzZPCzbhVlPqdNCbhd -1 295 bDbQQmVDRpDNbRQlfQQZnfwTlllfsT -1 296 FChzzBWhVzrgMwffJwlnngnTlJ -1 297 MCvqvhFzcHCChjtpNNVLppGmbq -1 298 bZZzJnccqdzcLhrcQDLrDs -1 299 FfCfWVfjWTFClClfwjWCfGGwhZSDhSLsSSRpZprLph -1 300 mFmTMmFjMMWFfZtttflWjmWTngNHJHggJJHtzgnJvBtBgHdv
diff --git a/2022/03/part1.rs b/2022/03/part1.rs
@@ -0,0 +1,31 @@ -1 1 #[path = "../lib.rs"] mod lib; -1 2 -1 3 fn intersect(vec: Vec<String>) -> Option<u8> { -1 4 let base = vec.get(0)?; -1 5 for c in base.chars() { -1 6 if vec[1..].iter().all(|s| s.contains(c)) { -1 7 return Some(c as u8); -1 8 } -1 9 } -1 10 return None; -1 11 } -1 12 -1 13 fn byte_to_priority(byte: u8) -> u8 { -1 14 if byte >= b'a' { -1 15 return byte - b'a' + 1; -1 16 } else { -1 17 return byte - b'A' + 27; -1 18 } -1 19 } -1 20 -1 21 fn main() { -1 22 let mut score: u32 = 0; -1 23 -1 24 for line in lib::iter_input() { -1 25 let (head, tail) = line.split_at(line.len() / 2); -1 26 let common = intersect(vec![head, tail]).unwrap(); -1 27 score += byte_to_priority(common) as u32; -1 28 } -1 29 -1 30 println!("{}", score); -1 31 }
diff --git a/2022/03/part2.rs b/2022/03/part2.rs
@@ -0,0 +1,35 @@ -1 1 #[path = "../lib.rs"] mod lib; -1 2 -1 3 fn intersect(vec: Vec<String>) -> Option<u8> { -1 4 let base = vec.get(0)?; -1 5 for c in base.chars() { -1 6 if vec[1..].iter().all(|s| s.contains(c)) { -1 7 return Some(c as u8); -1 8 } -1 9 } -1 10 return None; -1 11 } -1 12 -1 13 fn byte_to_priority(byte: u8) -> u8 { -1 14 if byte >= b'a' { -1 15 return byte - b'a' + 1; -1 16 } else { -1 17 return byte - b'A' + 27; -1 18 } -1 19 } -1 20 -1 21 fn main() { -1 22 let mut score: u32 = 0; -1 23 let mut vec = vec![]; -1 24 -1 25 for line in lib::iter_input() { -1 26 vec.push(line); -1 27 if vec.len() == 3 { -1 28 let common = intersect(vec).unwrap(); -1 29 score += byte_to_priority(common) as u32; -1 30 vec = vec![]; -1 31 } -1 32 } -1 33 -1 34 println!("{}", score); -1 35 }
diff --git a/2022/03/test.txt b/2022/03/test.txt
@@ -0,0 +1,6 @@ -1 1 vJrwpWtwJgWrhcsFMMfFFhFp -1 2 jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL -1 3 PmmdzqPrVvPwwTWBwg -1 4 wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn -1 5 ttgJtRGJQctTZtZT -1 6 CrZsJsPPZsGzwwsLwLmpwMDw