diff --git a/2022/data/day3.expected b/2022/data/day3.expected new file mode 100644 index 0000000..7a00dc0 --- /dev/null +++ b/2022/data/day3.expected @@ -0,0 +1,2 @@ +8252 +2828 diff --git a/2022/data/day3.input b/2022/data/day3.input new file mode 100644 index 0000000..0087426 --- /dev/null +++ b/2022/data/day3.input @@ -0,0 +1,300 @@ +QJRBMDMtRDCtJzBtJMfjNjhwvmNDvwjLVVgh +TPSNNPZGTjgmSmvfjL +bPlpZZbpsTlTsWprpGFCJtRtzMNdMMBBcWnJQB +tppvbQBhpQQdrzMMcLwhMc +gZnWRccRNgFGRGRFRNNgZgJMddddLLLMCPqwLCNPwqPJ +nRRmFSnWmlgZlTlTllSlSWWWTsfvfDQpBfBcpQvpVQpTfQQf +lRlsVFgTlMgRNsSNTlFgmbWnMPppPnMqWZMWPPWW +fDjgBJdCfCHHBnfLWpqnmnpZmf +GjQHHcdvJHQBHSSNsFQFslwwRg +NPwDLDHNwjLLHWjbdSbDfJJQTZsZDS +BcFBcvgFvghnFLrBpvrgcgrJSZJpQdfSTZbCsSdfZZfbCf +VrngVFRmrVWHLGVMlL +SNBBBDlfZDLqNGmgFjjmBsQgCFtF +VPPVbhpbhMhRhncnScRncbrQtCgQQFmjjjsgtRtQHmFQ +nhWcPJVhpbvMvwvwllvSlGlD +wNlNNqtqHHHPhqCz +MMMMcQSWSpQCWFnRRPchLVvPLLzhmhLzhh +CrgRSWrnrQpppRQrCTnRTRtGtBDBfbNBllbTJlZtfNBN +QNbbNrnNnCwHmNPQmzqQNPsCCfBFFGtsBBddBDtCJDJd +gvVgpZWgTWvRvlvLPDDJjGBfdsdpDDJGdd +ZRMWWRMVgRZghTggPSMZzQwwnqwmnzhNnNwHcQHm +VmPHzBmpmQHbVHSpNHBVQCtRPPCPvFFMqqntZCZqMR +dWlDcfcfcjcfDWjlsZfjJhdGvFLGnLsLqsRnvRvRGGRttC +wfJhZTllcfdZdfjJfjdmQzHVSzHzgHQTpHpmpV +qNnqmzmCBfvmDvBm +HcdhtQdttbbhtVcrVVDMfZvdMBTqsWZMBsWZ +HQGtctRblwqpNwRN +SBtBLBMZzPDDNFFDQnVVVnnDmf +dgCjblRdgRvrbwjJGzQQQzwJVJ +WpWbCWWvlgrcCHdvvCdvWbSLZzhhZhtLBPPStSPhMSpM +PlPnGGGzCqqlrqTRsbTmFRWgDPmR +wwpLtjwpzjDwFWRsWTWW +NZtJjHNNhHfnCBcJMBlCSz +wSrwggPrhJhCdddw +tLMNvMTFhDZdhTBh +LtMvFttGbNcWRsLFLsccRRgfnSrPjPnfljSfPWlnPhrS +TSZlwZSSccSHZLHVcllSvmDLmJhjDDffJmGjQjgQQJ +sdBdzsNnBMBstNNMFhNPNbPzgGfDgJrtrfjCjDrCfJmmDQJf +BnnBznRsFRFBsspzzbZpSTqVTpHVhpTvlqVW +VtVjjhdFmCCfhRRzzSDbDzpmgzmvgb +CHJqrswsWvbvJbpD +CqCPcZHGHTcsCBQsBrTGHMFnLVQjMjLVVhdhnFQVRL +tvlPSrlNNvtglTtPccldQdhbQbZdcqqZ +mRmBGHWmDFRsZqHrfbdhqhZZ +jjMGjWrJpttNjtgg +HPtCMJNjvJLMDZRdBgLSBSfsWBgG +VmnrhwwqhbbzrwnDrqpdWBgfdSdfBGgffGWRdh +qmnTFbVnpqVzpnvlDFJZDClNZPZN +NNRFQfzbNWhLHTVh +dGjptnrPqgvqjccvndnnPPhlHrVVTHLWMHlwmrlHMmVTWm +tDggGnPqDcPPpPpddjGhggtJCCSssfJbQsDfbZsbsbRZFQ +bqZWhbvvvqfvhqvQCChhZlllGwlwGjNRrNGrwGwNRQ +PmspSscJVJStzSVzWJlgwlwNlGRLDGrPgNwN +pdHmWMVStWJWFBBCCbMhCfbC +wtwbctGLwGWhGwfWwhNrnLrlrQFNmPNNVrrl +CSdqZRsMStdJMMSZqPnFmVqPQlnjNjqj +TMtsTBSSRZBCJStMJSZTHtfvpgvzzWwhbpwhggbzHpbW +HncMbCwCncHlcbMDMnMFGsNsJVFJGchVTTcmcG +RRfBRNjRLLJTLTThsq +zpBRjWRrRvBpNtRWrgwbrwQPDPMDwCnn +TDcPLTVRjntFwDwDnb +SJJhffHqHZZgHGSFFbdrGTGnGv +NQHWZgJQHNHgHQhlLLLBjpRTjLjMNNLM +sMNnNRNrlGlsZBrGsrFQpclWlWLfpWjtzTfDtpzj +gvhPgwTgdSHtHDtpDPLp +gwhSwdvTSTbSgRrZNrrNFFNBGb +rtZnDHJrrDtGtGHvGHDWfdfwCjcBhjBCffwwLv +lzVlzsTRsmzVNTspVsMMsmwCLcmjmcdbBBChwfBbCW +sVTMpTpppsVMsPRPVzMNFqMFwZtQrHZDGqgHZrSQQrQQJDGn +wGQQMMQvCTPPQnHPBS +FsWdJddszWrrRRJRTmRmpppRHBNPBppNHp +rWdFWlFJzbzzMTwcvvMbGMgc +WTnnTpqSnCLmjGgSgjztgg +rQRHQvbNLwrgtGtrmDglJt +PwHRNvQPsvHvPTTpLTcCLVnq +qTsqJDJHjjfMCSDj +RnGGNFGznzGVnBCWmfSMSLwWRwSj +NnBbVQFVCClctHQc +BHzmfDHfJLGcQBGgQLDcstNttlZgdlltldshgZZg +PwPPSJwPvSNZlvSl +CJwwjnJFFnWRMcMzcHMHRzGL +rmZpvcZcqccsqmqzzzcBRLBZbBBRLBlRGVdfZR +PwjFggwMDgNFwPgTwNFgtFJjfGLhBLsGRGbfBfBLbbTVLbdf +DWJwgDWMJJDWCCNHmrnscmqqcnpWSQ +bsRlVgMhtzHvhRvpzcLSZcTWLGzTTrGc +QJnDjmqjJdmDqqrGWWsZsZTc +nQPsnwCJdBDJDDJvhHhpMRCVlhlgRV +NBNwMCtNgqCHClHClq +JpQmFrQQfHfWjJTfLTjfLRRFRvnvhvnDGDcRcvVGGV +HTzzpzzdHgbBZZtdMB +SWcVvBFBVBjShWhGQtZnHFDHRGGQsR +pMZpmmJPbwbTTQttrDrRrttT +mZflqdlbMVcNjdWLSj +tvjdccdbLjhvhlcjRMvRTCQJmBPBCFRG +qgnqZfHpZDVnCpZzZJQFQBgmmPFJBmRQJQ +SHDZDDzpNVpfsNsHqpDSjLwCbbWLChwtwjtCWc +FsWTbcwmGfFFFrpl +LMhzdfqjLdHQQnSvldGvnS +VZjVNzfNLtjzDMhVDNtqDqwJwRmmmZJgmgcbWgRRwCbJ +ZJbPwwfJcGlwCrrZrMMddMMMtt +pTNvvSSHmmnbpFRp +SLSjSLDSQNLHNDbJbcfJclBzjGsz +WSQCWQWstCWCCgNNsDCZMZDBjjlLPnHMMLPrHlcrcLHHTjTh +bVFJFwfdRFFgjTPgnc +GmzRRqvRddbdRRdfJRJfsqsSSsZDsDBQZtCSgpgt +FPjprPpPCCFpFPHWsWvqnnllQsdLQMMlLtslLQMc +wmzJgzRSRRJghBbwGBBSbtGfLfGlcNnlltdddQtrMd +zDmRBmwDrpVFDTVDVp +FPGqjsZGlDJmzsHcTcTMMs +SQNLSvdbvVbrSbHcftGcrpHGfMmf +CNNGSCCdSCZqjqljZF +GvqpqrpqdqdsdGshSMhhRsSMhhlSlJ +DLCzzjzBwCbQWtQlRRFRRJFptfffgM +WzpLbLDbBcLPjWQWDBzzmnvNndHNqZqZNZNvcrNT +scHCGfWHsvWHVfGsggHfgvVcSLwLLPRwwDLPLllRPDzlPr +tbjqqNNTlPDTTSrD +QntmNbNnnddqJqqbFJHZWWHWJWvZHGVJsSsp +WZjpjwwGBGZQsqBLBHLHSRLP +mJhtdfVtDVJtvVLSmNRSccPPPlNHcH +JJLCFDhLCfVGGwbGGCwrGC +nBnsGSCrptmsLWGhWRvVRJVJ +rllMZZbcWWLJvhTl +MHwzczHwwHqZcdzMdbqSmwsssmtNCrBmtrnQNB +LzwrZNrNzBMrJBzJsfqqntMlVlSfhnhb +HTDPWDHPTgGHWTGcPFRgFpPPtfqmsfqlccmlSmnblbshqnmm +jWGgpRGPFRHjzdBBsrBJvj +hjNghjlwqjzGhwhGwLrMMrsMdsMfczPfsr +ZJQSFZFZpCTQSZHTTFbcWWPbWsWrdLVmrMWMfr +tttHSCpFQBQQpJZSJLgBNNDhqhBqvBvvRq +hLLJJJLcLPLfLwcJDchfhpSmqGbmdQGmGSdbqdbmqGGGdG +zgCCVVvVCNVssdbqmtMWvbnndD +rCCZZCVTjVZNzFZJBlflBLccDhBFFB +wwPPHfCMHQsrcwPbMPMcvQFJvqWgFTZgDFJltgZt +jRBVLhpNqpBmRhhRdNJZJgWTBBtgZWltZJJJ +mSjndhSzphjLRVqmhphNShrGMGrcbGbnGCHGwrwGfbbG +PVBRhBdlwRtRhRBwtBlVzDcGpVcZnggGzGMMsg +fFFWQqbFbLWCWvvFbTjjGnsZMfgsZcZzSZGMpSgD +QJTCCLFFLjFqFbHTbbltmhBNwwcNmthNhlHr +qwPJJsJdbPdwJddQCRCgCTMTRGGwMG +cLFcFBZNWWQLSQRfZjpljTGRCgGR +cFvrcNBFJDhzdQzv +zTsVTqDqQNtNwwMVmN +pHpSzPbRrvbRrGzGMwZwlBJmNtclwJpB +SjHRPfRbffPHqzCCCdTsTzqj +jnbMBnPjjjFtBtMjFPRtGfvvfzgWWHMfWHTlGgHH +dCpdqrVrmdpHfTJTCWGJgG +qVdrppqSTddqNwZcDPPPhZRBPBLBRLjF +VbHqLlGQlgjLjjQsNvCZTsNjMtCZvT +SJtttppwwpwBwdPvsvCvBZrvNrTrvM +JDnWJpDSSpmSwmpPzSwznhDlqGqqtqqHGHLlhblGbR +RqRJJVMPdRVVpqMdFwmvnSMwZcfCGfDSZc +CssQgjssvZvjffmS +zNlbbWTBLWCbCPPFPbVH +nvQsHSsGvNvnQghTRMrrjpjM +ttlLDlzPtGDcRRtpZTFjtgMj +PBLBwPPDzzLwblzffzLlVHHsCCHqsfvCCSsGSNWC +jHrTrThrtHgttThgHTtfgTgsmZZmBSZGSGsSGfZBZFFmQs +qCCPdbcCJddbRcsQSGhFzmZqZGmq +VVNNdVvclDcPbMWMwnnlwhphjp +ZdBgJqFWNNNqnZZNGsBCCCRvrCwCjCssCB +htDPMSPtMPzPTLMzMTMbRRbTbvwRCjfRfsbWWs +LhMmtMDWmHlpppplJZJgNd +mhtsjtbChcpLqmpmzL +DPlPprrfBrpGHHVGNVHRqcNvvLLqLcvJzzTvLc +VFfVPrrBQFPlDDwDwBpBtSgQjnghMhCdbSnnhtMM +DPDMpbsHPDPNtdtrgMtdnQ +WShWlSCJVlzccSBvBvhVZZWlgTNTrNrrQTjQjjjjgDSgSdNt +cvmCDvCJCcsRbmpFmqms +sSfFssmLnLwPtrrmttsFbDvWgCvddVgfgWdRDWlChD +nnGnHBzqHjqBJGChlRClhvghJWDd +jNzNcczMcGntPMwwSsSr +GGPCThCCvCTVWBCBGMVMsTgZJsrZtHNNtrsHJrgH +zjRwcwwfvSjmwznfzQSHDJtgrNrRNrLDsRrHtD +fjvzmcfSlSznwcnmnSQnhdlhWBpGpdBqhGhqhVPd +sHGGqpRqfNRVbDDtVwwzWf +CCLQZllTQLTcSShTQvjhQLnnWrDzVpwtDDwVDnczwMwM +vggZLZTldlhpCTlZlZCRRPNRmqdmGBHPFqsGqN +wwFDFLMDjjCNgNwNlwwgvR +frPbSJMSSPBqrfppSqrBZqMQhHlmNsRZmmslvghsmhsgggtZ +TPSPfBQrdJSfTTqSbbBfTfdcGWjFWWFDWnGMjLjGVFCj +LZRZbHtqnVztHTTTjMBQjQHH +rJcDGpwwgDwCCWFGSFMSffVWfF +cNNNgvhNglDnhdzsbLbmVs +RwmrGVPmNLzdmVpmrVtHDjjgDHHRqjFtngFt +CBlWhQWlTWshsblFGntjHtGbHG +WsTSGZSTQZZJpPNdzSrzwvpr +CVsggSgdwSwghVSTCgVZjJlRvlQNJHJGZVvjvj +qrrnzrrpDFMzbDbbzrMbBcNjRBHHQHGRRllHHPBNBljl +rnFppcpWcqnWMLDNsggSmWmsWfggdg +wjQzPjJcplwmDDBL +vghWhhnfWqzhftWtfnbFBmnGDnLGDbDmmC +zZNvZrNsWfgVftNZhQcSdPHPTcPHQQTTJV +WjvPVbWnbbFvjfLlcplQvLQvCwCl +sJhmrrTRTDDJHhhsmJhmrNDdQwLQQlHllHwwLpCLclBBlcPC +RJTRDdmPmmzNTDhnWtzMfMWtqjqqWM +vvpjqtllDMlHDtDBsPSSfBJFlSffNS +gwTmJrTcJWrNSmsNBBPfmf +VzzJzgTnddzWrwngnWqbHqbtLqjqvpvqhbMd +TlpzwGZGGFmZJdPpRtpHPrpcPs +CMJCMgQjMQvrfMHtMfHv +DjnNjCBqCCNnWWgDBQQDnCZwFJwmwwTznmFVwFmzTJJm +CcDPppDCFdDrFcFsMsdlLVjjLsMHvM +fqSmmtNGqLNffhHHbsMsbjbjNjbv +SthSGmLnmfwfWGWhSQGSQRnGpDpJPCDJrBPTcPrDwPzFcpFT +FdqjDtPWzqPdnPPtPFbssllqLJlqNppsJGppLp +TwfrcvwRgvfTBWRgBssJhspHfffJHlHNGh +MMZCQrrRBwQCCZMQwcTMwPztnFZSDWVWPttPSZzdzd +prHlrpJbdccllrrPbFdrgPzZfZhZVhRZVScNRNWtSZjWRW +LmwCCnvqwGCLMnsWtGRZWVfbfbftRW +bwnvBnLBvbsBvszHzpgBlPzHHlzg +grSJNTSgBHgpqhvCGbbZddGCGbbT +nDLMssQMRLwMtMWRWCZdQfqjfGvZQfCjCc +PqsDWPMLnwlRllJzghmgmSNhpgrl +TQGcWQBDnSzzsBSL +mJJlqJwVJdbSrhlrlhhsLL +JPtwMtdPbJbVqVNpPtmbpwZcQDFFcCccFjCQjpQWSWZg +JfbfpZJmzffmpZnZZwsrwDFvwHPP +RDdQtWTWQQSTGNRhsFsjnvjwrhPjtH +QccddTVQQldcGGRdGlgmVmBzfVpDmbgggmpL +HVnhVcHvpVFWDpmP +QswNZblTTwmqlntDPdqD +sGZzNwsGNThhMrhBBhzn +fQllBlVQncgwLlfWwWDvppZZggZqGpZgpGdvGG +shPTRsFbNFJmvqpGjrpvPDdr +RNFDtRRRssRTStRmTlnzwSVQlVVWfWzcQc +WmCpPCWTjQPCWWSjSTmrqRLGDRFGrTFDRFDLDD +gJnVcnVzdfnZgchvrslMDZGlRRDZLR +fdHhfncwfbfzJbnJzJfcczhhSmLCCNBjSpjmpjHjBQjpmpNW +BDvDPGRwRvCmLssGLmsL +frRjjlldrqtNspLWpqFcCmzm +ndSnVNtllldrdfSjfNvgVRHBwbbVMRbVPJgH +PpgjhpVLghPZhSgZVVzzcJWccPNCrcJzrFsJ +BdBNNMqMdfDnDNTFHHJCqHrJHzrFzF +wfMNtMndlBTlmTBndRpgghhjZRjvSZVjRw +ZQnQMWMcjHDHrWNF +TvtCvvBVgdRdmvBVNzDHlGFjFHjfRfDD +dvtCCbdJmhvhhhhbhVBPMwqZswnZqZjjMccsZJ +DDMzRBBSzRDTMQRZsbvssCbhZtCDtP +dLmwNplnmmwjGvPVCRtVVvVd +NNmjLmqWJjFRwFSrgcrSHBzcTz +TwTwTMBWcWBJJBtTWHddCmfgzlCzClsvmfsM +PPLDnNqPRLQNVnGNVsDQnNmzdhvdddlvdlqgqmdlrfvv +SQQsjPPLGLbDSnGLLNnWTFZJHbcpFctHZpwJWB +FzMltgtMzFpZtmzdjPpnvRTQTvRWTDfnnTlvwW +JcbVcBrqLCVJHJSNCcZVqVqqTRQRWWfNsTfTvDfsWvwTsnwv +rcZqVJVhmhgPmhmd +ttvSnlWvWWgcScMDsHHMPMjPmH +pzLGLfNRpJsvmmfvMDfs +GhpzRqqpZppNrhvFgwSlWnnBFn +sbQcDJQJJDbQhwchSctVnVnqTMvMWSqTMPSMlP +jtjCtNRLNCRgRnlTPPWg +pzpHdLtFNdJbDhJHsQhs +pSqnfqDnWPHNPCCHCp +GdJZQdgZbBvgQLcCZZCCZlPLRH +PzBgQggbvBthtMdMvbzvVfFfzTWqDmWDqzqWrfff +nnJdrfgfrdMCMdgrqMnWdgwNTTTzFhPSSHfSHhllzjzNFT +vBRvmvGZsLZZsHFNFFzTNPzb +LZVRmcDRvpQLmvvVGDGmpntJJwCWCnCPJwgJDrPDqM +QddMvdzlVfvdSQmGhmwLbGbmzbns +JtCCWqqZDsLpGhbGjD +FNrhqCTWMSRSrQQg +ZsBZJFsZSmmJsJSmrJrJrvsrdGdCQGQphMGwRMGQRGdbBChM +FlgfqNNNWnNnHfVnnHdbGwpwGWQhGdRMMdRM +LFnggHlDqDLvjDmZPcPmvP +CRHJWfvJvrQfrCsDlGGBszQBjjGB +LmPHVnMmpLlPssBPlDtd +MmMSZmVnncMFcmSVHvfSrffCwSvfbHWv +wsrJrpdJLsMCZDWL +BbLtGGbNmLQggqgQQtGgMmDCTnWZCZWZTmMmCZnT +qNBGNNgQcbbtGbbFBLVjfcfwHvrHHJHJcr +pCZCpdjBljhjBlpVccCpbDDwRWDsLhLbwDsDwsDw +HNgFSSNvSmdqwsFLFWLGttbw +gMMndNrzNHnzJZVlMCMCTcpc +CfsFNszCrrGzrsggsPfPVNVlqTdSjSqMTdSVTdLL +vRhcHllwJDmnJmDMMdhqSqpVMhdjdp +cvHRvwQBPZZlrQgz +TsFhCtQtQsBBLtBLPvgz +jjWZZjZSMNlNNjljNnlmjjfJLMBGGLvBdzPQpggJJLQzpg +wjbcmmlnQZmlrTsCFVwshwTr +nRGFnFjcdlwLSHSpNNnBfWHN +TgQvPbCMPRhbMPQvtQPvMCRBSHNQHBrQSNfWqpHHrWNWSf +PCgMbPvTZVDgtPRggtCCbgmmFJJLmcGFLjdmJFcDwJmm +dgWPssfdvQCLPLhL +pMtSMtpSmpMpFSMMFZjQCLbLQZZbVbVhNTLblZ +mpqcpzncfWwhzfRf +vntvVnRCsvpBpMjCpTpj +rQdZfhzczNzWcNLTpWgSvjjjpGpMSB +ZqNDQhfcNchLchQqcDqRHJtHVwnwbtvHsbVs +qtJGQgTrqtqQdQDgbGjPzZHWWzVjslPZlG +vBShwRRvvSRSvFvwLSvfcnfBWmHZHVWWHPzlNPWVWjZsWnWV +cLBFBFhCBLlwpFccFBFftqJDQdgdTDJJCbJgCCdg +wfmsPvPwNfvmfLNFvzzJbRMnllhlnLhRLC +gjtqDDTtjgpJcbnMTzCRnCCWhC +SDqtpGSStVtdqpgBVjBGZmFPJNJmffvfPsHZPZQd +HQMBBWrQQmPBvmBWnvrTnMSsbFfcfwgfCgscsmGgwgcJGg +NzzlJLthtlgswGFcwGst +JqNNRqpzhVRWTSQrrvSQ +mFpDZjvmtPPGvFjmmGTzTcFRbHczHTbzQgRS +fNdqhJsNrnnVNhwNVdrdsVczQCcwCMHSTCHgHCRzHgcM +JlgnNhsqVqNqNpPlvZvDDDGlZZ