diff --git a/d03.cc b/d03.cc new file mode 100644 index 0000000..df3eaf3 --- /dev/null +++ b/d03.cc @@ -0,0 +1,63 @@ +#include +#include +#include + +using namespace std; + +typedef vector> Input; + +Input parse() +{ + Input items; + for (string line; getline(cin, line);) { + vector bag; + for (unsigned char c : line) { + if (c >= 'a') c = c - 'a' + 1; + else if (c >= 'A') c = c - 'A' + 27; + bag.push_back(c); + } + items.push_back(bag); + } + return items; +} + +template +unordered_set intersect(unordered_set &a, unordered_set &b) +{ + unordered_set o; + for (auto x : a) if (b.count(x)) o.insert(x); + return o; +} + +unsigned p1(Input &items) +{ + unsigned sum = 0; + for (auto i : items) { + unsigned len = i.size() / 2; + auto one = unordered_set(i.begin(), i.begin() + len); + auto two = unordered_set(i.begin() + len, i.begin() + len * 2); + for (auto x : intersect(one, two)) sum += x; + } + return sum; +} + +unsigned p2(Input &items) +{ + unsigned sum = 0; + for (auto i = items.begin(); i < items.end(); i += 3) { + auto one = unordered_set(i[0].begin(), i[0].end()); + auto two = unordered_set(i[1].begin(), i[1].end()); + auto thr = unordered_set(i[2].begin(), i[2].end()); + auto inter = intersect(one, two); + inter = intersect(inter, thr); + for (auto x : inter) sum += x; + } + return sum; +} + +int main() +{ + auto input = parse(); + cout << p1(input) << endl; + cout << p2(input) << endl; +} diff --git a/d03_input.txt b/d03_input.txt new file mode 100644 index 0000000..f41c84e --- /dev/null +++ b/d03_input.txt @@ -0,0 +1,300 @@ +TZZjzzZLfZbzgzZNNJZjwCVbwMmhwCbBpCMMBCbM +qRQPDqnWFQDtCCBQmQwmGGVG +FPllWPDPrncZsLVrgSZTSZ +RczPzRzvflVwfplrZQglmmJJDGQJ +nFbBWWFZbZtJDjmgmqqF +bnMNZWnWWHTLBBdwcCwcPCwpCSpPLc +CjpMtptpChnpMnCSGjSShMqpTVVWFFTVNVNLmHwmHLTcFnVT +fglsGJsJssBPszvddgTFVTFFFBwwTVVmHVFF +JgJrDgsPfMDhGhCRQC +PSMDSMhwmPwqDMmzrtttNQvNFmFFGFtLld +nRTCCQjcTVJJTVTbggTnFvtNdGdlFbFvbHtWFLNt +gjfTZZCRCnZJjJRRQBCBszDMPppfsPwMzfMqDsSs +LTmnZTgMmbWWGWZQZb +cHCCHHwsPtsHQtWfWjtGlWjbjt +JNQQzzPwwHsRwNSRdnnddqqvSMqMvDqm +CZFNGZfHvgfgZzFZfNfPVJMBrqVhjrrrhvvSjbqv +czlDnlcDWLnlnLQwTbqJqMwqjhVBbhJhJJ +RDQTTWzLWsDGsNHNNgpZmC +rWzbWWMWcrCbfzbwpDrQNqmqNwTNBN +FvsVggVvLGsHQHfppmwTNBfN +VGhsghvZLjPSLshgFVPGFPVJWCtMCJMflJtdJWCMcttljz +bgScSbJwPNqrQLCgLg +BzTsRVGmTDBZBwRVmzGQNZjrMCqLjWrqWNQNnr +GvdRDdzGzdvdDdmTzfwhfFlFPlbfchvlpl +JlqjMtqtSGGZjqSMlmvZZbChRRQbbPhBhCbRBr +dLfzFNVfLLzwznLdFzzwWQBQVBhWbJDrCPVBBBPP +HLgdNddfMjGJJgJt +nZHZDJHLTDnrHrbGpRrRzR +QmsBjdmBmqQzpRbZbp +ttSjjjdWvsFsmBMBfWWMMtwCNCZJvLCnnnJCZcLTvnhN +bbgngMMPfnwPmPgPDPNZMtptHzHtRRvpVHRz +rsWWhJCWqBHBNJNZpvJtzRvF +rWBrjGGsQQWlQcllCDLfwHQTDDgfQPmnDT +lWDFllmGhbWzCglHHlRHMqCq +fBtjwNwfJfZvJJBwBJZjVLNnnnMRVTzgMVVqTLzT +vJQtJrprvrbcdcpmzDDd +bmhbRmhjwddjHMGHnNtHNQNm +nBzVpgFnzVgLpFfHNGqtGfLGGNfH +BTgVVPPSPBSVlTzpzsbWhjWjnhWZlwsWZR +lBQVBBMDTMSTHHCqgLHCzv +ccWcNhtfpFvphspFcttHwwqzmdsCqLgLzLPdLL +tNjFZpnFtJNZJFfjJNpNNFjVbVDMVGRZMGlbQlQrBrbvQr +bRJtJRfRdwRBbwJzhGGcHpwrpCwDclpHDD +hSgnjPVmVVGcWVGWpV +STmFgSnPqQTjNmqJftLszfMqBhdz +WzjrRLWnlRsVRLLwtGmdhNBmbmwN +ZccgcpMfQTpgcpDDvNbtdhhhMGHtdFBNHB +vpDggvPPTvZTfTvpZcPQSZDsqrlrnRGjsrjRCrSlWRljjS +DbZfRRZfPjWDfDntnzggvgMLmVqMMmlLQjFM +NCJCCfBTThBJssSHcgFMlmMvlVHVqVgmLl +rfTJJcJrJdShscSBZbtpnPRDDdnPDRbt +zrTfLGVVLZsrsJcGJVsvQMhdlmMPfjlhlflflbDP +pCWCwRbWBgHlDhPMDPRjjd +pSggBwBCNSbrJLVTTVNG +CNCMSMgQCgQNQhfMGSGSzgfGJhchrHHwBlnJlHPqBBrHwsww +ZVWDptmTtbptpDvZWsPlwblrJPbnHcqnJwrP +pRFtWZVVpVWWZVWtQLzsLQMLzCfFsGgz +MlcpDmgWNlPqcmmqmcgcPdNDRjhLSRRVLjRRShGFjFWRSLLW +bwQJnzbzJTbvMJSHhGGHRjzLGRjR +wZbBwwQvtbtQtBbnvJwbCnwmsMpNcccgDmdPcsqqqsDqCc +zMhMnRbZMpCblpzLlhJPRjDFcQPtJQPcDdWj +mNSGvgdSsBGwwNDvWtQJWjJWPHFF +GmdgGdgfqqNBgVGrbCMhrMfLLflhpL +PVHHPMLMgLQSLLsnHBCZfhzpRfhTpdRppSfdZf +rgmWvWgFrmGlZGGfphhpZG +bJgDFqFcmmWDJWbvJFtMCPQsHPHBVPVCQPcCsQ +VJJHNNmtGqRmMVVwRfTCRfnQpFTFnF +vSvjSvbBzvldhcGwGffFCQCwgrFd +jLhhlGjvczDhLSlDWjLzctHMZtJtHmqHJZqWmVsMqW +LhchvRJtHzhdTTdJjQLQjQVVnjSmLMLQ +NFpClSPqwqNgPPNPNglllrBQBrQVjQjmBQnfBfjQjC +wWGGpSwSZNpNPFDwPDDhzDdvbvJzHHJbhtzv +gtFtNNmlGzQtNPttfDMwwfbbMR +LVcBjsBjFJrLFWVrBrMbbMSSPpDPPqVDfpPb +JrCBnsdWJJrHZdFmGglmmg +BmCCWSLmWsmtCCSppSmmpcpRfMZjjBgJJGGjBwZfgjZjFwJw +TPTPnTPrPVvQTTzTVdPMrJJZwggjfHwJJgjHZrJFwH +NQvvNnQPDPhNcstcStDMWWWS +hntthHVQVbbbSzgjgZjngjRD +TTvJJCldFJTvFFTBFlpTzvvsRgZWGWSLGrlWWRSGLjRGjRDL +TzCcFcvcsCmqPMQwQPcwPM +DltVvVLvbGPDhjRhhjSZjSSL +CffszNzssHCCqJjJnqRnpgRpZB +CszNWdsfDWtZwwDG +DdbmddmzDDNbsqzvzmdzsdsRJLjqtVWWjWJBBVBwVjWJtB +CnFPCcCcPFFFGffjjCWBVwwtRwNwCw +QNZlphpNDpHsDrvg +gdHSCbCTGgQbtNLvgrjwNMMwrr +BnzVRHFZVHvNhNRNMMhW +zFzFcnlZPHlbQdlT +GmddjTrgFgmgWGmFvmmmFFfwSCVpwHVrHpwhwrpCBfBC +tctRcRRCMtsMsMDPlDtDbMzbQJJbhwHVQJhBHJVQHBbpfB +tPDDtcnRRqzzcCzLPMLPRddWTdqgdZqZTZqdGmjFWv +sWvfGlGqsSggNcNcmf +JBwwVccFJtrzpMwtrMMMLTnNnJngJgQNSgmTJgLN +wtPMHrRrBwtPVRHrrHVPZvqDWWWcsGsvqDlZZd +jBjBBJRhCJbjffCjWlDfmbFQmZFgPpmmgpmbSSQF +dsqGrttGhswQmqpFFqQw +THdsdrdTHzLLdLTsTdtHNshlDffDCHJDjfBcBRlJRfjV +lDNlPBQlccQttcNBcDPvFFJmdTwtFJFdTdFgzg +bCWMLfpZLZLVhMbGLLsVzTwmhvTgSJHwHdTvSFSwJJ +RCZZVZLZWLRZpZsfpVsscjzQRRPQcPcDQzPljzPB +tVfCLfRVCGTRCPtRMPftHGqpnnqpdzqNbHGdqzHd +DlDlWmvDWsWJmMmmsWvWDlSHzHpnpbNqnbnrppbbpprJdd +DvhWDFBhvslFSDFPVPVBfgwgfCtMLV +FtlLQqlDnMmFJRPM +hwlpwBphHplpdHfZnjRRjMmCgfPZgJ +BdpwvzcNpBrDbLTslszG +RjPhcnNzRcLcFlsFNlFRfTffdhJhSTVqqSdDMVMf +ZWtZgrgPCvrbHSSfMqJTDWpdMf +vBvHgCmgHtgvtrHbwcLjNLNFcnPBNcPLQQ +FZhtMtddjCGQSVjmjC +qbvcnvPqBWcPVVCTCmSQLVCq +vVBVzBNpDNhgdZDg +lNVtllQFQVnQNrZpCtQCdZZjSbfRbcDjZqSfTqDffJ +HzBJBvPJLWHvwmBwHWRsbsqfbSbzbTbTTRDs +vLwPHLLMGHwGBWBHLvBgBVCgrQQpdprNVttQJrpQdQ +TbZDQlZDCHjwtbjnRSTRTPPTBWWWPB +GhpgpLJFcvgcMRqfBBmSQggzWq +LcFQpGdGsrjDDDHssl +qzpPgTpnNWRfTBBCWf +rLFsVcFltVBfdGClPdGf +vmtZvwsZrLFFFrPDqzDvjzDqJMjv +lDlzzsMPDssjsSGTjlTTsqbbftfqNwJNfHqqbfDmbW +FFgpFndhQLnhnLRpQCLnVrgtHttvfqJmNbqWWbJHNHtb +pBFrVVrmZGSBBZsz +bGMfcMCPPCtcLqPLCRqPZnjLVTdnjjWsVLHVlllVVL +SwzDBmzgwFSFQzvgBrgvwFdVHjHwWHJsjnVsTWVHHWHJ +FFrBNpQWpFrgFSmmSpQmrQQNZPPRRbfGMqCGcCPGtMqqcZ +PBhcVpBRPcqHfnjRRJJl +GsMrsGTszsrMdnsGZmzMsCfDtvHfHqvjJlvdqfHflvtq +gmrGMGGmGgbmsrrCThnBFSQSFVFhSnVcpg +QCDnqdqVPswpJZMLLCHZMJ +RhchlRBRWlLmZzVWVJGV +VrhfhhBgTcRTVhdDFwdwqTDnnnjw +jVsSsLjJJmSLlmJSlPthrhHZGthLpZLdWZ +nqFTFNbRfnDCRzfnzqPBpGcdGHttWHdcZGRrtchh +bqNzTTbFTnwnTmPjvwsVgQVjgl +BBlNWWMlVWQlLPNjVLWWGMQcJCscFSmwRCSnCFJscwcw +bbHZHvHpHgrqSCcwvSsFFRsv +wwbhdfdwZlWljdtNdW +NmlnhSNwzjjswNvqqqbjgddqtgVt +TQMTMrFJHDFTFBrTMDMQDQgdnCVggtpLpvggnQdvdQ +fJPJHrFZFBHTDPrTJHZrFswsWnWGmmGNlwwlRsmSZN +bdntqdNMQCtcnnbqtNtcgQWWjjFDjhSBSjJDWSfDFWBc +RwsZzRvZQPQsGPWjphzpfjfBffzf +GPsrRQvvQlwlMnHHlTgMNT +TnnnQTLnBPQMRMpgGRLGwp +VNcvvjjVczRRjsZvvqgmpMGwZWZmJSqwwW +tzvsdrsVdFndRDbdbC +qSfbWlZVPdWmmcjvjjwrcwQm +TpTTpPJzTBnNsshnnTsctLwjvQMzrLrjjFMtjv +NPsNBhNJhBJgNnqSSZlSdVgVGqdq +pQsgcsdSpmsJctQhrhqDHPjrjNQH +VVGGbfvvMMBZPjjHqVVrTjmC +fZbfnRLBfbZGblbfMZnBGZFlzJcRdttwtJtdzmdswcJJdpRs +TDqDqTZFFqDqdDvSMwtCbjbFjbmGGwCffG +hQQnchQZpQzCfmGtblfLhw +RnNpRPrcpsRsVWHSDZSqWrDJ +gLqgTfgwTCwmgWWrfCcRdvBCGGBZjGRvvZ +MFbPMPnNzFbssQFpQNNScQSdjvBBBSRllBvZvc +sHMHpzsJnpNMNnHsnMJbWLVwmwgVwDdDJwgDffrJ +QGdbSLSzBVbGRQrJfllDbnfpJfltJl +ZMwPCFPwPmFgCFvZgZmcFwcPhJnphhscQnJhJnsptnDNthts +PHZgCmwggvMjZFWjFvQTBzRGHqSRRTdRVGGQ +zJRppmjPMCjJgtBQWtZZgPtg +tTFsltFtVGWnllQBnn +swLfbFSvsmJCCSRCRt +MZVRQzMwfRQgQQDvncrvrSHHdSfS +tWWBhJbhnBsWCWCGdDbvSpvDpcrrcqHq +NBTCBJsCTFJFjzjFMwnzLR +RBhlNZsgrZNdbfrrmFGbjb +ztJLFLzLQDtnnCLLCzSTwzJmqmGGjddPmSPPmGjpdqGMPj +JcLLFVtLJDTQCsZgscvlWBZHgv +hznggMvgwwPCDwhnCMWsDlHjtJPjtjrZlljtPJjZHt +mvvGVVcvHJtppGpS +bVQvQLfRRbfFFwhMsFshsqsFzM +BBRWFZHWSGRZvQtQRpRtHHBjTTcqhzfnBcfzchjTTnhncT +PbwdVMbmlDZmNPTfjrcfnzjf +sMVLmsdmldLVmJLCDHFgSJgZSSGHtFppFZ +SGwFSCvtwjjDvDGDCjjDCNRnzbbnpnBppHBNhbbTpqbB +rBBllQlgslmnmbzqRm +scQsLMZsPMVfMrFwBZtvvCWFtJwS +nlhLFFSggjMnLnLHTPlMTSBfRzrMQBCBCRDDdCdQrzWr +ZwFcssmNJqNNcZGFzdBrRZCDCdCffDrR +mwbwGNcwwpSjPlFgpPlH +HsvNvddbZJDDsNbDqvsqNsqnjtllczmjjbBjzjQzjlncnc +VTCTPGhpwGLfChfGCpTrnrgQrlntrQGQcrcgQr +WpPfLTPWPhMPhwCNdStvSdWHHWHDdH +hjtjnnbLMCwCMhbgfJpfDZpSsGHDHNSmsf +BqBQBccqFrWcPTWdWTcHHNHJpsHpmDDsHHSFSD +QRcPzqWzzzrdzzWvTqQcBcRgnhmhmCbnhtvMmggbLLgLvg +zdTNLLdRdTPFFJFllQSzwJ +mhmBmBBjtjhHmjvvBhvthThnFwQwwSnWbGwlQbQtnnGJtS +cTvHTgjCmVHZgHvhHHdRfMddfLsrRfZNpsPL +lfLnsHhHJBBfBGrBpS +VPjqqwVVqNjqQVVCVPNNVQpGpmppcBcDmGmpsmsDsCrD +QdQNFwQdvjvRqFFqvRPqLgngshhRJsLnHLWgLRhh +dwRwQVNwwJQNnnhmBtZZdCZhFBrP +MMHTvMjsWlmhhBrrrlhm +jWTcWWDWsWMTgjMGsHvGGMsnJzVNpRQQDDpbJVbnnwNrnV +NcRvJCGnWnNMwtMPlMMF +rqRLrVmTrjjRmBqjQLrjzZgMgDHltVPMgFbMFDbPwMwH +fzjrZQSQzBjnvfnsJcGspR +fHPFZPsmffftTpsTqJGhhDjC +bbBdcbcwNGzzbNdBdcNQqJDDTJhDCNjQpRRCJT +VcWBbgBMWbMdzPmPtGWZmLWPFv +zDWFvgCCvWDgVVmrZppPbCPZ +wdqsBhcMdbJJmlBgHg +hTwTQgLNMTsQstjzvSTTWjvfRW +vGGwWsvjpsCShrjTCCrj +CmMCZCtqzmMzNgZgdZzSrzPFrThnrPPHTcrSnH +VVMtQZdgZqLtqLZVMffwwDRCLGWlCsJvwpwlRv +fJfhpVVzMpgczZSqSSnZ +NvPNvRsmNCRsbsvNbhjqgcDZSqSFFmgGGnZZDg +TChvRBBRPsJLTMHMQfwV +CvNPsrfrjvwwfsjwsrNlgDzzBmgmNhlNBHgg +JVmdMJmcMTSqVlnlnnzBHBGg +SmLqSSWqbcbbWqJqqFcTJfPwPwtwWCfrrPrsQvQZZf +hMRnnvfRntfvcGqccDqhHlSLSgjGLWlLHlWPgWPS +bJsssbJFCZsQCsdQFzJWwSPSdSgdWwvwmHWWmj +QBQbTzFzrrzTTtfvffcfqTDM +fdcRNRvdNwczRFLcvNvzRvDSjhlmhclShjSnmMlSmDSS +VtJqbCqqVCfQqVpJHqZfmGDhgmjlMHmDllmggShG +qqtqTpVqJpVPZbffWTNfwzvRrFLL +mmhccmZGNcNhWNmDDGCmvlLWjpjbJRSpdrnzzbRzSjLJpJJz +BQHBgtZQqwTTtfndpSJJbJfbjjRp +THFVBZqQsqTgwtswWWlMclMDNlNclVVM +GPmLbhQmDbbDHfpCQCfdCfTr +SlWVScMgpzFSjgSMtBjTrNNdrfjrHrBd +ZzzsWWnzWFcsRqpJmPhqsw +cfNQdfdRcNHNFcqRcqqdWmLQgMwwMssLggpLLsmm +rTtGGhBTJSThwssmgssGzpHC +VbTTlJvVHbBJthtVbrJRdFnjljqZdfPqPnRdFN +tLtpstBLtzPnQBtFBtMpnpQPhmGGRRhMhGNRRCCmRJmmbvNJ +ffflfqqVVHllVHDVNVZHlTDGSGbGSvhmvTRCCSTjShShCv +DldDlZgWcDdfDZggfddccsnzLWsnNwPFQzPBwLwzzF +FpRCrNpMrCpNRZCrsCpZrCpqvmJnvnLPBwfvfmvzBJnwswBw +DbbVStQgdbJmLbJm +SHlSShlhSHHWcWlghFMNqcRqcZrFpFppTJ +QFPnsjqjtQPWfCZZlZbT +dwrMzzWRVWJVDDlfDlrfDlhl +BNzVdLWwRNmzwWBRVBVzSQQLtnnqSqssFvtQFsjL +TGfDmTcCMMmDsCspRbCCbsMJvWPvSSjZSwhFwwFgjPJZwG +NNHLHBNHrgVFFjJwFJZLhv +BzzqQQnVtrdnVNrtVNBlppbbDCRmdfggRCgmTscf +rmbcvbRbzrsZZCCNQjwdgRGjwGQGLVML +htDnDtHWnWPjVHQdgdNwHg +PFFTlhllffsNsscl +hFSlSlShLppwNlwH +fjSvvfbzBfDjPQvBDqjfsBGdwwLppMHmmHHHbNNwGnmG +SqzVBZDPPDQVFWgrWJTtCg +ghlqSlFhCFRgFsssSqjhlsVsvNPtcNdndctVzdzJPndQPnJd +TwfBmZmLwLZDfWZTbGQPtvzJzdLNcLdrQrcL +GmGwDbZHbmpBmwBWmGDCpvShClvSjgMjRpMqjv +vDDQpzjbqDQDmJvmRFBgNdWcQtdcHcctWcdN +hTfsLlSMCCSCfGCPlhfnGtgBcBHBdgLdVttvNtBBdg +lZvlfPffnZSnMzDjzzmZzDbwqq +cwgNgWWNccLcHnLGnnHD +JRrPNPNlGHPDtzLv +jmBJljNljRZZbpQZBgZp +WWcWLtwHcHLwWRwPWDwZGrCMvvFvZnDrvF +JVVmdbZmCvzGCvzm +ZQgdjVgdjQhJZQbhblbNQqjJLsPSsppscPPWhhWtSctpHsHs +fZtsGZsQQtpFrLqZrLQGZfHmdBjSMNmmRNddbFcMcbmBcc +vnwnlhlTWllgnJVTTgDTnvTwdcjSbRdbHMdcMMNdVdBNjRHj +zDvHnPvTwhnDDCZpLLftqzffst +hdCvWvQQlvlZzgCcGgjCPSLC +HMTHMDRRtmBNtTRDrRmmPcjGPPrdSzcLjjzdfzzL +tqMsNmmVMTNmtMHbZbnJdblZnlwWbV +bzQNPzMbVrfPfLrjrj +ZvZnzsTmnlnTWnJTvSHSsJDvBrdwwwLBtjrBBRtjwHqqrfLf +zpWDWSnnTnJmDzSMNchQcGNMQpQGGN +McCNssGmscnNmmsNzLwwLTSTRBJBBZLFTz +WTbhQbfPvWThFwFWJHBZWwLH +jThbtbPjvDDvDhqjppdcsgcGGcMmNlNldtNt +VsRLrPMPrrNRRDMDNsDMRdGCdGGZZZwljjCCjHCHQwcG +qhmfBgtqlfqzfTtggSWwbHjcwGjjbwwcTQCC +lnSfStzhvfvzFgvqsLJLrpPpFsRsMNPP +mFfWmmTbcFNFZWbcCftLCsCLGLfCGqGV +DQQMlJhjGqtswZDD +BpBhQSSQRSljRJRvQllnTWNHrWccHrNppbNZWp +llSWcPmCDRCSmjPTCCSPHtLrfJnwrJfVBRfJwrqB +FFFgdFdpGVHtVGwBtn +gMbbsNdvbsQgppppvvszvzWTTTlMCnlPDjTlDCWWccmC +fzMlGqVMwzSSPNRBrRZrFrFRGZ +blnlQnlWFZbmFbHr +CgttsQpstcCtnslqfjhPhVzMgMPz +SrSHtjrJQZjBpvNctmnRvnDm +GWPlhPqFfPsGwCqsnsGszWGwNdMLpRvLmRNcNpmRmvDfpMLM +GPCWWWzbbzqPnnCbPZHbQrQrQgVBVJJVJV +ZVhCwqvFZVpwdhLdqLhtvcGBcSNLRSRBGRBNGNSSmN +lTjnlnjgslsjJTgrMrQQjjTSGSpcGRSmDBNSNJcDSBbRmS +zMrjllgnPrlrnlWrQgTgzgvwqpFwZHChHvPwCtVptCVt +RTjjznsTsnnrzRrmTmrNNCMhwMrCNNCwWhCMGN +DvScpDDVfBPqVcSbDpbfHpqwCWGJCwCJhvFdFFwlMGJWCG +fhHPbhZSpDbDTmsTZTjRzzQz +QbVQvNrrdFcbcMvvdNrcGrrczPnPplPnfnpzwpgmlflRVwwP +jBHLRqZWtLLqWDhBLshBCLsHgpfftfPmmpfpwnwfwJgfpfPn +WCRhsLDsDLBChTLWHChFTTMdGTQGvGQcMQNGMd diff --git a/d03_output.txt b/d03_output.txt new file mode 100644 index 0000000..40516ca --- /dev/null +++ b/d03_output.txt @@ -0,0 +1,2 @@ +8202 +2864