diff --git a/2022/d03/ex1/ex1.py b/2022/d03/ex1/ex1.py deleted file mode 100755 index 0584617..0000000 --- a/2022/d03/ex1/ex1.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python - -import sys - - -def solve(input: list[str]) -> int: - def score(line: str) -> int: - common_items = set(line[: len(line) // 2]) & set(line[len(line) // 2 :]) - assert len(common_items) == 1 # Sanity check - common = common_items.pop() - return common.isupper() * 26 + ord(common.lower()) - ord("a") + 1 - - return sum(map(lambda line: score(line), input)) - - -def main() -> None: - input = sys.stdin.readlines() - print(solve(input)) - - -if __name__ == "__main__": - main() diff --git a/2022/d03/ex1/input b/2022/d03/ex1/input deleted file mode 100644 index f82eaf1..0000000 --- a/2022/d03/ex1/input +++ /dev/null @@ -1,300 +0,0 @@ -FzQrhQpJtJMFzlpplrTWjTnTTrjVsVvvTnTs -mScqSqqgcfPCqGPZcfGNSvTNsVVNSjNvWSNsNz -fPcPGqgCcHgFzQpJJtHtJH -DZDqqlrjplDHrNCmnBcHBMCRcJzb -RQFLStFvdcBbzdJbJM -PThQtwftTPFvtTPhvtFtfFtpZZllwjRNlsqNqqZjwpGlrZ -pPwtqgwJZPJLgQqSFlqhFFlqMd -DBmCWBBDWTRGvcVRTCCnnfQlFSdlzfhfdMWQfjhhQz -drmBVVCRgprPtrZp -HznjQjvmzDMVrQnMLJMMlfWgPSlJGWWJPl -BdcqqhcdBRpFhhZBthhctdJSJJWfgGFlJCSFgbWPCDJS -NdRTZdNqBwqtthpRBTTRqdtZrsLQVzrrzjzDwDsnmrQrnsrr -HZFZCFzZWszqsRTBZTNMhmthVTmhDppmMQVPpm -wjvSbJddvrvlrvnJSJJvlJmhPlhVPVtGVpQDBVMpphQP -frbrfrcvvnvjfwbcJgrrCBRsCFsNzRgRCHCqssRH -dDFNqNqZqPLNqvqTTvCLSPdZssGHClJQJcRHJGHHcHBcsMsQ -lrjmWgWWrhjgrppQHHMQrsQRJGcBJc -lVlmnwjmdTTSvVFN -FWNFHvQPmLGwwwSHtswwln -RfMJcDdfdcfdddfZjdchrtZmSmCZVtqVnZmrnrtC -JMmJcfjjphcghpgjhRGzGzBBGPFGNBvPTpFL -cVPVwStmmcQPBQPpSCppwhHZNNqHszNBhsNRNjqHzj -MfWdDgvdbnvgMTWgvgZfzmsZJHzNhqjqjRhJ -MDWMWGndMgFDnFLDwQrPPCSrCSVrlmGS -QLZmPdRdWmMsMDWZmsLWWrhMHcHGzHvGzFcvrvzNrc -tplSbLVBlvHHcFNnSr -VqfgwLlCJWmWQTfW -nRWvlvRbtLvdMCPFGL -wrfsJNNGhNzGrTgDMDLgPMLPfq -wcVhJQhwhrrBpmVblBRGSG -HHHcggrZLcQQcQll -GzfzTRTzmmFMwSNSwdSJQtNLNB -TGbmLMFTzVVVTMzmFMfFPMHPZhnjZCpHnhgnZnPWCPZZ -MRwwpVMHRspqVqwmccDlDrcHBBZgBl -jQfQQQjWWFBgmcgDfcZg -hvvSQzSnQQSWWQWSjTZVTRMshwVCssppwV -pvrTvCvtFppCHMMZcdDFdcZM -wLjTQnqljjSnlwjqjRgLcHHHMBDMZhBMHgHcbBDh -mqjqlSNqRqwSRrWCvzGmtfTfzs -TWScDCqCQQVBWDqWHsHswwBgRJzRhhHp -dPttGrvFfGjMjnjvshsJgsJLgghRgH -rFMlGdtjPffNnnrffSNcVCDqQqCQRqQRRN -GmBRbVpPbmJcwggBBgWW -LjsTCNNtddjHqLLgWwccqgfq -nsjNjntNtjHCsDwZmwZZVmmGSvSD -bwDDgNFtMMDbFsMbFwWWVcRcSpcgjgQWhWSp -lfTJJlvdfCffccWppRjRlcSc -RnzGdJJmsMNnMFtM -bsBTFsqqTTmFZTsQBWWznWCRshlJNJlCVh -GjGnDvDjvjPppHwwpwgrPPClJhNVRCzhhzJWlWlhNlvJ -ffdgLrgdLrDjdfHPbbZbttcBbcbLmntn -TNTwwvTTHNtTHNLLVqtqTSZBJnrnhhbrFJjZjnVZgghF -cplWfRlzcWfRCZZhFrGjBfjZjn -pddzDsRpDcclzCQMWBvNSmTTSqdvPPvqwqtT -DQTttwwLtQtVSDMJDRmmSS -ffsWfvrBWrPvwJhPhPSMPMVn -WsvsggFvwNLgHtNQ -llBbVDMTlFVdFDTbVggSVsqZqZZZqqvNJZJRNRWgtv -HhpjcHHvjPsqCsWcNcsq -GfpvnPvwFDTTFFDw -GMmFGMGFFgVwQHQwwM -cJtZNtZTbThcZtcZJJtTZWJPllgNgpPvVgpjHvQpRpHQNg -hWcJZcnhcJznbcBZLqSLDfCmHqnqCLsD -zQpjLpnhnsHTnlQLrMCCHPFrvvCMPcHm -ZfgdSBtNqBwlgSDfZDwtqSFvJCvrPrVvFmwCJFvrmmFV -dfbRNZBqDtgRNBNNNljLLjhGRGGWGLGTRhjz -hhrnfBzhtzZgDgDnBfrfDZsRpMNCNNWjwCCfGQGGNGCGQC -lcdPmHLSPDSdFDpQMLjCQQQCRGpN -lJSSbmPdVdVvdHbvSDFHHPlZqgBnttzgTsssTrqgbZbsTT -FsdsShrgggLDdbSDsgrGrlWHTpfRpTjjfFTzRTRjBWWp -mPvqCmJCqJNnPvPNPCvvLTTVjHjzNWHHTWRBRVTWVz -wJLvqPZmJtccncvZmJqqrghDGQwbdSGdsgGgQgQr -zFwtNJGtNFlpnwHccZjZbcpprsmc -PWQfBWhBgQgTWQRLThBqMSVDSbbDRsVDmsmZsSZDjr -fvQfWBfLqfTqhLhCvNFttJlCwGrrCC -fNrGLNrfNrGjllRRRPmWVL -tbJdcFbSSssZSmmpFcsSbwDWVWBlllVPDnnjBFjDRnBF -ZZJcvZctgNmmvMGhQm -HhhjFRhgrcRTFLvWVJVQWJVHDHQJPP -GwCmwBfGzfSCzCfwtmtzzJVWSVJJZrbWQQQqJJDZVJ -mtfzpGdststtBmfmCwrGRFcTcvjngjFnRcLnpLLn -rrwjdwLgVmVwHrfPCJPQBCBGmPtt -ccNZqbNnMMblNpTlNpnhhBPSJsQhJtJtChPJqS -vTWvNcWNWTFvnnvcgjzDLVQLgHVwWDrW -jNPgbNHbfLJgLzfz -ShvhhFVVDShFVqMSSSvZfffvPLtBBBBJJlpfLJJv -DqhnShhMnZZwCSDCMhChrRnNrNdNQbHNNPmjmdHN -VQVZGQFnzFTSsBfgzgfs -rjlpjtDrtMLZPMtPtpPZPwCsgSHgMHCCmCTWsgBWSBmg -pjvDqLwrlDtwqtqNLvtjpPPwRNbQRncQVQddZhRhJQbJncbG -PsBSqnSdQsFhmmmnppFc -TRhNvrTCvNTHVcfHbJVTpc -rhtWvGWLrjRqdSqqLLqdld -vPhfqPJvrMrnffDDhvpMjdzGMLdLLQpllLGQ -mbmcFSScGbSCcQlzwQQlclsg -BSGVCmCTZWCGGvnvfZHqqrDhHN -GSRfrzGRhzsGChjTBBlqBgjgCTCn -wHQwtDVDHwHHDJcDWJZwzHZBqTnnBFlvjFgBqnljjvBdBZ -JNmVJpVmNtDHJWHrbfPLhbGhrzRbpr -WcWcbzNPbDwBNvWBwRMPQmJZQRQZftRZGP -LhVHFgggTHCFHhfMQQSMMGQRMLLM -qnrqppFVHphqfDsNbzjrzbrN -cwgDrdLSrBrvvhDzCljjTW -VHtVZpspQtMQsVRQppFVQVHtCdPTPTzdjvhTzTTPRvjjvWhn -QQZpMdJsQFJHtMHdScwLwLJGrSScSwqw -ZsjNflGfRfRPrZNRFcffLwJdwcLdDBnwzzzDznVn -CTGvhhTqbtbgTqLJWdDntzWWdnLw -phCMgmQGvvHCvMhbTQQFsNsNFPZSfZjffmNsll -CNpCJHLNhhSSHZPgrFlFFWgpFpmzjj -qQttDVDwQGdQGvqDQfwbcVrrlljjzzmzrVJgrr -nvMDsqqqQvfvsqDnRSZHJPPZHhLHLS -RNNrrPfDNRQwQhjscghMqs -WVZlHvnZqtlLVLvwjwhsggTstMhwTw -vGHWLJlVWlmLVqRCGCFFNfqqGf -MNzqCnvqvqvCVLBvvCVCpVcRssncrPSTWGrPSPdGTcrP -hmHwFmQjFlhtZmHwtZjjddSSGcsdPrrGcQQQRGPW -fHbbFjlhZwmtwhfjmmwmmLbpLqzqvBzLzCvLNRMbNB -tQfLrtQPrrfDSSCVlDfLSrmbBjGvWjjLmWWWpWNNppmv -wdHhRTTndnRThdvnBFGpNBMnpvvp -JdqTHTHHRdqzsJRRzTRHscJdDSGCfDlqQZqlfZrZZCffqSSQ -hQMWLsgGJMMhsCHggQWhgspDWFPzZvPvptDvzvmtdtdF -BrBlrTBrNRbfnjNQlZDztPvpmpppmzvfdd -jQlQlqQVbVcsMgMgChhJVs -MtFMCTWRFRRtCRTTRTMGJddjLdstHvBzBHzHVVpL -lZSDnbDlnZPrbHpzJJsdSVJpBL -nNghhPrlZlgDTFhCfMFJRMQF -RGpPFZPRQZPFRGvpPQPpjvpmhnnCMjhmhgBgVgMVWBVgVM -wLtfNdNHmrNthCBgCbhnngWd -srSfwHfszsNmtswlrqQDGQFDRPJGDvzRppRJ -GVFFGvVWZLFsmssFRNfVvmGGJPpJTTqDBvTpqlpDvqbBtTPl -gQhzzChzrMQhjpzlzWzJpPpBJb -ghgWjcCjMgCHWdQMhdjChCmfwmRRGZZGVHLZHRfmNwVs -DnDVhdnrfSfpcGGjQQGdJddJ -bPWPRbRsRMsHNzDqTZcGBcqZqmmN -HvwPvvzMPwDCChDVwS -vTCCvTfWFDTtRPMvfWFlDFHBqGLpLzbwBgWwqzGqbBbB -cQcSNchSJSZShVJNnZrhSqBpgwGHHtGwqtbwLbqpbr -JNnJVsJscNstNhQsjnVVNlFfMmTMFfCTfjFvfPRPPF -VLFBsgffNFNqRvbz -ChltjTdjDhHpHZvdpjjZhwCpbNrbSzzbrNGMTMMNSMbWWNSN -vQjpttQhHnLsBQVLsQ -mbzQgTzRVVbsVdQgzzVRddmztFGWNGNNWnGtFSGBsrCNWCrC -jfJjvPPwLDcHDPvDDPDppLCWCFBGWntCBnrtFcrFWTGn -wpJPLjvpTTDpwhfgzmVMbqhdhVRgzl -PlcqbWClLmnqZVLq -THwdrrhddhhfJJhwLJhpQnDVnznnmZQQnSpfpD -vrFdvGsGHhhhwHjFGrFGJHdMCCcNgbWMPccRRccMFLNPPP -tbppJqcNtJnZzRJbPFsFPHfZrrshFDjj -GdwgwlLgGCndsDFrhDHHFF -SSlLnmmvqWNqmcqb -ZPFPPTZpZSWzCMMSzPBsFvhtlQvJQQtJhsVs -dmNbmgbrwDNmbcDgwNdcwdLsnhlJlnvtsBJnhVQqqnstLB -bNGfDGgHHVwbwNwVfgmRMzCzzCSHjSRZSZCTRS -dDTffQdqQQLBLnVLLQvL -rrBHZZcgJcrLvNLtLgRLbN -cjjJhrFlhZwFFzwJzmTBBdmTsDPzDsBP -ClGrJJMNCrGQqlcPvWgnDP -ZBvbjHpSwBVVVcWjjjqQ -BLSbbwsHSTBHwmLHHLbBsSTFdrfvCrtmdzfGJzrdzGJddGfh -gljWRwmSjtJWjJtJjgjSZfVSTVVHGZSVHcVchZ -pBzLFQpPsFBGcGBTThfB -pFpQzFLPLpvQFQnLbsqqGddgjbmwRldwtWmlGWwj -PDQDMFQBMfWPvjdLLndLjrmsMj -qZqVzTRRqHtvZGGtVqTTzVjLLsrmJCddnLjrjHsrhdCr -GzwcZtqNzqvNqwzZVGRwSzbpWfFbWPlWFpNDBfQfFNNf -dfRszdzVdsjwdhLwCCqwGllHvPGPwG -SpJtBLFgcGqHQClqZF -JrttrtcTmSSLrmtBTrNgnBJjbNhhbhzRdsVdMhNjhMMhVd -MPFSCfSMqVSBGrtzlvccfQctzbzl -hZNjTHWWTZwshbLvmlWpBzmbmm -dRTTJNDNhjsJqBBMMgrJPVVr -WnVzDMjlDVWwwHgwhmgNhNNsJh -qfvrLNCcbLdvpcvbrPPqCsGhSJGTTBspTshBpTBBms -ZLvvZfrPfPCLbCFFzjVQzRnNNMVzDQ -nllbFTTpTFTBcnCjQPqQdZRQZhCb -tvWszrrztvSmzQQvrDmZRjjjPPDVqPRdZRdCPd -gfzvSsftgQHQHgQl -GVbHRRGRLpdmGWTm -gSPPltPlrlvccFccPlcJNCTpnnmpMCLMMmWfdRmMSS -FzNJRhhvPFRvQwzqjqzBHZZj -PhZSpFBPBFsNmjBVllltBj -JMGLnrrnbfffrdqRqPHnnqLDVTDDjgmRgwtmjDljlDVlwl -LHMqPqPnnqGLWJPMnndrGfSWppzvvFSChFFFvvzQSQZz -RSWWssbvnnCqZnWsRCnssWrTggNhgbNHBgQjhhQBgjNT -mcpzcppzczcDGVcPcDLLGLjmrMNTNtQNHhMHrQBQNTgN -LVpPfcjjWvsFFnFf -MpddpdCpJdJlbdMvBHMnnsHqSRvG -PWvZfFmZrrfmwWwFznBnqRRSGcsBVmVBRG -zjzzhQPQvzjLPQzwffrwrtlTCDtJDlgJLltpTTJlTl -TvTWjjzpznGttFFZccrrPrSZllcB -gNNSqHMqsMHQJHNZCDDCZDqLZdlZBD -SMQNSRNbRRHwhwhsRmtnvWVmmnbGnjmpGn -ccSVQjCQddTsFJcH -gLppBfgfmvCRFdsddTJJgb -WMLMmWGGBZWZLCtvDhlSSDGlwhSPSzSP -TpqVGVHFQGmqSqPZdccNCzzhdwCjNG -fffbbvftMrBMDDcCccCZCjlvhCCd -RLWMnbftDhnMRtfBftRJMtLMgFgHmmpmPmSmmQFPPLHHVTQS -nRvwQSDNcpVJJcJR -qZMjBhjhZMMBzLBGLGrjJbTPVTpbdPPdVbVb -ZZpmFFZlfGqfmmGMzlfmMmnWQDtHtSvnWWNSHSSstFtS -bFDGZjGDbbRSgLtN -CphJVfJWCTBgvfLHNRcwnt -WVhPWBTzzChzhhhBmrpPPCJZDQtdMlrjFQdrFqsjdrQsFG -ZBpVQHHVMMWWdmmLWw -lQhhrjcRttrqbvQLNwdDWzmNSDmStz -QbGqhcbvcsqvCCHnsCZHCnTn -tlWtQTTTJjTQtVnmrbnPWVShVC -MDMGGzsHcwFgGZBqrmmPSnbqVmNVGC -sZFPwHcMZDBRTlvQQJttTQTR -FhVRfGptMGMnZhRFBNRBCCNHHNvTNTRC -zmwrLLSjrbzmNlcvvrHvDPCN -JLwjQdSbjdbSdqJQFGVqFVMgnGHMfGVV -fffZWrJqZSHWTWHqSvrgDhggzRjttsDhpDgs -PGlBLcBBbnnbLLFbGLBjRgjFTFVzshtzpgsppz -TGCPnMPQlGnPmclPlnnQmbmHJvNvfHdqwddwvvZfCNHCfW -ClLwpspTPrTFZCdzFbZdbQ -RRMWfRgWVRMRQBZZScVczVGFbjNb -MfnvMqWmslvDhQPw -hdndSdqsTddBhdcmmNHFDcqHttPF -JjMzzMZQGwZGZJzMzZJQzGJFvPvNPtFmvmNmDvcFtvDHMv -gZwzQwJfGVJQJbGLBsSTSTdTbCWDBSnd -ZZCHZRzMZGRMhMMVVFNThrdd -SgsccSPmmgqssSlqsgcmscSqlhpFdVThjphNrdrhjdwdhFJN -vmttqTcqvLqqmPccmqSBbRWnWzQZZZZBHnQCzHDH -GgPnGdSPBpGsLTBL -rVNJjmwZqtZZshltFTtvRFsL -mqmWrZVqWjrqZMNwPMQQbsddgdsbsgPz -LZLVvjZrggHLJggSZDgrnPnQnRnppVRllntRdPFz -chMCzbqGmhNhhbBCMBdFnpfqFnltRRQnlPpQ -TChmWcMMTmBswJzZZrWrvzgg -gngRNBNRBsNFFBgfgbLLLnqdSLvLTcbLbd -GWtlChlVMllcZSDWSLbdZL -lljjGlhMGrGJpsFdRJfsfzfz -jVTdrnGQcQtTTTFQqBqsgHHFgsqf -ZZLbPLzDzPZCmsgqsBHt -wDzDlPblRDPLPvhvwtdnnhdrnrMGWMVGMThj -spjjpjvjpjmQjrpCMfSlfzrPBl -dHFntHWnnbRVFtnbcqHFzBCCCPzfPMlcCSlgllzc -RLbVWHnnSWtnHFbdbVRdNNtQsjsQTjDLwmGTmTssQwmLGJ -JbJJSLMhRMSLhNqqwFDwFNcFqL -GcpnGnznnpzpzGpffNTNTwTfwdDNNdTFdD -nllnlPGWQWHcGpzzQGGzGvHGJbVVtJSChQVbmtmVJrmrmbRm -GFsFrzwrflmtdtbltG -ggLPDngCJncNLJRDwgnllmJqjWMjhjhjWWmWjj -nBNRNPgpRgDLTgNwfsSHVBQHVHwsZr -WwvnvWvcFtwtSFSF -zBZZZRQSzMBSgSVJGjGTPTGFzCzmmj -fZDrpZZfRfMgSQDDBhgQghDHsnbrcNlWnnLWHLrHsWnllc -ZVncdPPwVPdhZngnqHWHNNvTHvlMvn -fSLjjLSGGBjTTHqvBqrMNT -RSSSDGRtSGZthTTctmtg -rtzrfJbgJHRfGRZLPR -hdVhlllmFlFPLwHmsRGGZP -nTWhRjTBTWlvNQgnJSSbrJtz -JgVTpBpfvgpTDDJFJvTgggtlFlNNMRLNNzNNZRNHMRCLlF -wbPWcSGbGqWDlnNWMMMCLMWZ -wrsGcbrcbcqwDwbcmGvQBQgTTsdVJgJsVdQf -mztrhgJtDrhgcrZmnhbnzbhcMTMPlBCPBGVGTMVGslCCPGDs -FLRQmjjFSQpQwLlPsMsCpvslvPCB -fNLLwSdSwWSWjwmrtczZhhrJzdzh -HHwCwJFmHZttZCfCSffSMHcVDMcPBRPcPRDhPghM -nvQLsTnLslnLvpzGTssnsRPDMhPgVPVgtcVMRPgVQQ -vnsTGWlTLsWTLLvNsGWlsZrwmZCJddjFmtJJNZFftj -hbjSTvSJTfcSwcPSPfTbfHszVVFpGnpJpsHFnHVVls -rtZrcQrRZZQrmZBQlCGppnppHzpVFCGR -WmLqmgNtcLNQWTbPvfPwbbdb -HzZgsdHglHlzdHsFtsNNJSlNcSpjcjlrrNVv -wqqWRPPqwmbcqPjQVvSPJJrVpv -qqBBqmWRhqRLqcBnhzzztgnTdDHnHsFsHn -rJPFVwwsrJwmdVrLWJvvRBWBvbzWlb -nDZcNGNpjTpHncvpZCDnTNZGhlWzQhWbpRRQlQhpWWSWLlQb -CDNntnCCHnvmqPfwtFdVqd -gqBwgBjCswwgqNBNCVDDTVdhlSDTDcZc -HvRRFMzRRRRMpHrtTllfhZHHSShHTf -PmlGLPrppMrrmFFmLMWRjbsjnsjwQNJWnbQjWgBN -pDggpFgRghZjBFPPnPPFrt -cwTfLwBVwCWbLcVTVVvrdndGjMHrnGJtnttdMC -NTVcWNvcBSpgNqspRQlN -DLDgFlDmNZfjfnJZSF -tctvttzvGGzvrHqtVVdwnJGSSnnjjZdWTdwW -zvpcrbpHpqJJsPbPlLlhmhglPQ -pvHHvssFCFZQNCftttdQdd -VgTGTTVGgLjDjlLGzgPVMTNwmcwQmMQfQtmdcmwMJwNm -TPjTDjfGWTLLljgzrWpZZbsqrFqhqbps -ppVLcfcwSLgpSLVLgWwtfshDNDqvWvGvlQZvDNHQHjqq -MPrzmdRrPPrCJFnMnMRRFRPdqqZQNQvjvZDGDlHhQvGNDG -BmBMBBJTMmPBJMMFCCFJRmrsTlVpVbpwLSVwLsgcwTVlVc -SSGzmFRzmRGLgSSmGMJFnvfvJnJVnJQnMl -cBpjHtjwNfcpNZtppHtCMlMPMlJBVlVQlvJPvJ -dNtNZwqWfqtqZWtHttsqHqrRrrdRTLbmmzSLmTGGmbrg -RrrddnrgnRbbgWdGrfnwgQwjDjDpvTpBQTwBPP -MHCStZJzSwvPjWQD -mcJWVHCCLcGLbdcn -PlMsdjPdGMjdPSrSjgddbLbmHHTszHZzpHmsTFvmpzZzmN -ntRJQVRfcQhcQWhnchBJWntTFTTTNTSpFtztmZFDTpDZ -hQfcfCBSwCccVJhSJnrPPGLqPlbPLCrqldgb -vgvWDMZvGpcqgqsP -tSdtjLHLQLHjdFdDddQSQhwlsGqwQlqqqhQsPhGc -tbRjtTLFRvTZDBrMrV diff --git a/2022/d03/ex2/ex2.py b/2022/d03/ex2/ex2.py deleted file mode 100755 index bf98bac..0000000 --- a/2022/d03/ex2/ex2.py +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env python - -import sys -from typing import Iterator - -Group = tuple[str, str, str] - - -def solve(input: list[str]) -> int: - def score(lines: Group) -> int: - common_items = set(lines[0]) & set(lines[1]) & set(lines[2]) - assert len(common_items) == 1 # Sanity check - common = common_items.pop() - return common.isupper() * 26 + ord(common.lower()) - ord("a") + 1 - - def iter_3() -> Iterator[Group]: - args = [iter(input)] * 3 - yield from zip(*args, strict=True) # type: ignore - - return sum(map(score, iter_3())) - - -def main() -> None: - input = sys.stdin.read().splitlines() - print(solve(input)) - - -if __name__ == "__main__": - main() diff --git a/2022/d03/ex2/input b/2022/d03/ex2/input deleted file mode 100644 index f82eaf1..0000000 --- a/2022/d03/ex2/input +++ /dev/null @@ -1,300 +0,0 @@ -FzQrhQpJtJMFzlpplrTWjTnTTrjVsVvvTnTs -mScqSqqgcfPCqGPZcfGNSvTNsVVNSjNvWSNsNz -fPcPGqgCcHgFzQpJJtHtJH -DZDqqlrjplDHrNCmnBcHBMCRcJzb -RQFLStFvdcBbzdJbJM -PThQtwftTPFvtTPhvtFtfFtpZZllwjRNlsqNqqZjwpGlrZ -pPwtqgwJZPJLgQqSFlqhFFlqMd -DBmCWBBDWTRGvcVRTCCnnfQlFSdlzfhfdMWQfjhhQz -drmBVVCRgprPtrZp -HznjQjvmzDMVrQnMLJMMlfWgPSlJGWWJPl -BdcqqhcdBRpFhhZBthhctdJSJJWfgGFlJCSFgbWPCDJS -NdRTZdNqBwqtthpRBTTRqdtZrsLQVzrrzjzDwDsnmrQrnsrr -HZFZCFzZWszqsRTBZTNMhmthVTmhDppmMQVPpm -wjvSbJddvrvlrvnJSJJvlJmhPlhVPVtGVpQDBVMpphQP -frbrfrcvvnvjfwbcJgrrCBRsCFsNzRgRCHCqssRH -dDFNqNqZqPLNqvqTTvCLSPdZssGHClJQJcRHJGHHcHBcsMsQ -lrjmWgWWrhjgrppQHHMQrsQRJGcBJc -lVlmnwjmdTTSvVFN -FWNFHvQPmLGwwwSHtswwln -RfMJcDdfdcfdddfZjdchrtZmSmCZVtqVnZmrnrtC -JMmJcfjjphcghpgjhRGzGzBBGPFGNBvPTpFL -cVPVwStmmcQPBQPpSCppwhHZNNqHszNBhsNRNjqHzj -MfWdDgvdbnvgMTWgvgZfzmsZJHzNhqjqjRhJ -MDWMWGndMgFDnFLDwQrPPCSrCSVrlmGS -QLZmPdRdWmMsMDWZmsLWWrhMHcHGzHvGzFcvrvzNrc -tplSbLVBlvHHcFNnSr -VqfgwLlCJWmWQTfW -nRWvlvRbtLvdMCPFGL -wrfsJNNGhNzGrTgDMDLgPMLPfq -wcVhJQhwhrrBpmVblBRGSG -HHHcggrZLcQQcQll -GzfzTRTzmmFMwSNSwdSJQtNLNB -TGbmLMFTzVVVTMzmFMfFPMHPZhnjZCpHnhgnZnPWCPZZ -MRwwpVMHRspqVqwmccDlDrcHBBZgBl -jQfQQQjWWFBgmcgDfcZg -hvvSQzSnQQSWWQWSjTZVTRMshwVCssppwV -pvrTvCvtFppCHMMZcdDFdcZM -wLjTQnqljjSnlwjqjRgLcHHHMBDMZhBMHgHcbBDh -mqjqlSNqRqwSRrWCvzGmtfTfzs -TWScDCqCQQVBWDqWHsHswwBgRJzRhhHp -dPttGrvFfGjMjnjvshsJgsJLgghRgH -rFMlGdtjPffNnnrffSNcVCDqQqCQRqQRRN -GmBRbVpPbmJcwggBBgWW -LjsTCNNtddjHqLLgWwccqgfq -nsjNjntNtjHCsDwZmwZZVmmGSvSD -bwDDgNFtMMDbFsMbFwWWVcRcSpcgjgQWhWSp -lfTJJlvdfCffccWppRjRlcSc -RnzGdJJmsMNnMFtM -bsBTFsqqTTmFZTsQBWWznWCRshlJNJlCVh -GjGnDvDjvjPppHwwpwgrPPClJhNVRCzhhzJWlWlhNlvJ -ffdgLrgdLrDjdfHPbbZbttcBbcbLmntn -TNTwwvTTHNtTHNLLVqtqTSZBJnrnhhbrFJjZjnVZgghF -cplWfRlzcWfRCZZhFrGjBfjZjn -pddzDsRpDcclzCQMWBvNSmTTSqdvPPvqwqtT -DQTttwwLtQtVSDMJDRmmSS -ffsWfvrBWrPvwJhPhPSMPMVn -WsvsggFvwNLgHtNQ -llBbVDMTlFVdFDTbVggSVsqZqZZZqqvNJZJRNRWgtv -HhpjcHHvjPsqCsWcNcsq -GfpvnPvwFDTTFFDw -GMmFGMGFFgVwQHQwwM -cJtZNtZTbThcZtcZJJtTZWJPllgNgpPvVgpjHvQpRpHQNg -hWcJZcnhcJznbcBZLqSLDfCmHqnqCLsD -zQpjLpnhnsHTnlQLrMCCHPFrvvCMPcHm -ZfgdSBtNqBwlgSDfZDwtqSFvJCvrPrVvFmwCJFvrmmFV -dfbRNZBqDtgRNBNNNljLLjhGRGGWGLGTRhjz -hhrnfBzhtzZgDgDnBfrfDZsRpMNCNNWjwCCfGQGGNGCGQC -lcdPmHLSPDSdFDpQMLjCQQQCRGpN -lJSSbmPdVdVvdHbvSDFHHPlZqgBnttzgTsssTrqgbZbsTT -FsdsShrgggLDdbSDsgrGrlWHTpfRpTjjfFTzRTRjBWWp -mPvqCmJCqJNnPvPNPCvvLTTVjHjzNWHHTWRBRVTWVz -wJLvqPZmJtccncvZmJqqrghDGQwbdSGdsgGgQgQr -zFwtNJGtNFlpnwHccZjZbcpprsmc -PWQfBWhBgQgTWQRLThBqMSVDSbbDRsVDmsmZsSZDjr -fvQfWBfLqfTqhLhCvNFttJlCwGrrCC -fNrGLNrfNrGjllRRRPmWVL -tbJdcFbSSssZSmmpFcsSbwDWVWBlllVPDnnjBFjDRnBF -ZZJcvZctgNmmvMGhQm -HhhjFRhgrcRTFLvWVJVQWJVHDHQJPP -GwCmwBfGzfSCzCfwtmtzzJVWSVJJZrbWQQQqJJDZVJ -mtfzpGdststtBmfmCwrGRFcTcvjngjFnRcLnpLLn -rrwjdwLgVmVwHrfPCJPQBCBGmPtt -ccNZqbNnMMblNpTlNpnhhBPSJsQhJtJtChPJqS -vTWvNcWNWTFvnnvcgjzDLVQLgHVwWDrW -jNPgbNHbfLJgLzfz -ShvhhFVVDShFVqMSSSvZfffvPLtBBBBJJlpfLJJv -DqhnShhMnZZwCSDCMhChrRnNrNdNQbHNNPmjmdHN -VQVZGQFnzFTSsBfgzgfs -rjlpjtDrtMLZPMtPtpPZPwCsgSHgMHCCmCTWsgBWSBmg -pjvDqLwrlDtwqtqNLvtjpPPwRNbQRncQVQddZhRhJQbJncbG -PsBSqnSdQsFhmmmnppFc -TRhNvrTCvNTHVcfHbJVTpc -rhtWvGWLrjRqdSqqLLqdld -vPhfqPJvrMrnffDDhvpMjdzGMLdLLQpllLGQ -mbmcFSScGbSCcQlzwQQlclsg -BSGVCmCTZWCGGvnvfZHqqrDhHN -GSRfrzGRhzsGChjTBBlqBgjgCTCn -wHQwtDVDHwHHDJcDWJZwzHZBqTnnBFlvjFgBqnljjvBdBZ -JNmVJpVmNtDHJWHrbfPLhbGhrzRbpr -WcWcbzNPbDwBNvWBwRMPQmJZQRQZftRZGP -LhVHFgggTHCFHhfMQQSMMGQRMLLM -qnrqppFVHphqfDsNbzjrzbrN -cwgDrdLSrBrvvhDzCljjTW -VHtVZpspQtMQsVRQppFVQVHtCdPTPTzdjvhTzTTPRvjjvWhn -QQZpMdJsQFJHtMHdScwLwLJGrSScSwqw -ZsjNflGfRfRPrZNRFcffLwJdwcLdDBnwzzzDznVn -CTGvhhTqbtbgTqLJWdDntzWWdnLw -phCMgmQGvvHCvMhbTQQFsNsNFPZSfZjffmNsll -CNpCJHLNhhSSHZPgrFlFFWgpFpmzjj -qQttDVDwQGdQGvqDQfwbcVrrlljjzzmzrVJgrr -nvMDsqqqQvfvsqDnRSZHJPPZHhLHLS -RNNrrPfDNRQwQhjscghMqs -WVZlHvnZqtlLVLvwjwhsggTstMhwTw -vGHWLJlVWlmLVqRCGCFFNfqqGf -MNzqCnvqvqvCVLBvvCVCpVcRssncrPSTWGrPSPdGTcrP -hmHwFmQjFlhtZmHwtZjjddSSGcsdPrrGcQQQRGPW -fHbbFjlhZwmtwhfjmmwmmLbpLqzqvBzLzCvLNRMbNB -tQfLrtQPrrfDSSCVlDfLSrmbBjGvWjjLmWWWpWNNppmv -wdHhRTTndnRThdvnBFGpNBMnpvvp -JdqTHTHHRdqzsJRRzTRHscJdDSGCfDlqQZqlfZrZZCffqSSQ -hQMWLsgGJMMhsCHggQWhgspDWFPzZvPvptDvzvmtdtdF -BrBlrTBrNRbfnjNQlZDztPvpmpppmzvfdd -jQlQlqQVbVcsMgMgChhJVs -MtFMCTWRFRRtCRTTRTMGJddjLdstHvBzBHzHVVpL -lZSDnbDlnZPrbHpzJJsdSVJpBL -nNghhPrlZlgDTFhCfMFJRMQF -RGpPFZPRQZPFRGvpPQPpjvpmhnnCMjhmhgBgVgMVWBVgVM -wLtfNdNHmrNthCBgCbhnngWd -srSfwHfszsNmtswlrqQDGQFDRPJGDvzRppRJ -GVFFGvVWZLFsmssFRNfVvmGGJPpJTTqDBvTpqlpDvqbBtTPl -gQhzzChzrMQhjpzlzWzJpPpBJb -ghgWjcCjMgCHWdQMhdjChCmfwmRRGZZGVHLZHRfmNwVs -DnDVhdnrfSfpcGGjQQGdJddJ -bPWPRbRsRMsHNzDqTZcGBcqZqmmN -HvwPvvzMPwDCChDVwS -vTCCvTfWFDTtRPMvfWFlDFHBqGLpLzbwBgWwqzGqbBbB -cQcSNchSJSZShVJNnZrhSqBpgwGHHtGwqtbwLbqpbr -JNnJVsJscNstNhQsjnVVNlFfMmTMFfCTfjFvfPRPPF -VLFBsgffNFNqRvbz -ChltjTdjDhHpHZvdpjjZhwCpbNrbSzzbrNGMTMMNSMbWWNSN -vQjpttQhHnLsBQVLsQ -mbzQgTzRVVbsVdQgzzVRddmztFGWNGNNWnGtFSGBsrCNWCrC -jfJjvPPwLDcHDPvDDPDppLCWCFBGWntCBnrtFcrFWTGn -wpJPLjvpTTDpwhfgzmVMbqhdhVRgzl -PlcqbWClLmnqZVLq -THwdrrhddhhfJJhwLJhpQnDVnznnmZQQnSpfpD -vrFdvGsGHhhhwHjFGrFGJHdMCCcNgbWMPccRRccMFLNPPP -tbppJqcNtJnZzRJbPFsFPHfZrrshFDjj -GdwgwlLgGCndsDFrhDHHFF -SSlLnmmvqWNqmcqb -ZPFPPTZpZSWzCMMSzPBsFvhtlQvJQQtJhsVs -dmNbmgbrwDNmbcDgwNdcwdLsnhlJlnvtsBJnhVQqqnstLB -bNGfDGgHHVwbwNwVfgmRMzCzzCSHjSRZSZCTRS -dDTffQdqQQLBLnVLLQvL -rrBHZZcgJcrLvNLtLgRLbN -cjjJhrFlhZwFFzwJzmTBBdmTsDPzDsBP -ClGrJJMNCrGQqlcPvWgnDP -ZBvbjHpSwBVVVcWjjjqQ -BLSbbwsHSTBHwmLHHLbBsSTFdrfvCrtmdzfGJzrdzGJddGfh -gljWRwmSjtJWjJtJjgjSZfVSTVVHGZSVHcVchZ -pBzLFQpPsFBGcGBTThfB -pFpQzFLPLpvQFQnLbsqqGddgjbmwRldwtWmlGWwj -PDQDMFQBMfWPvjdLLndLjrmsMj -qZqVzTRRqHtvZGGtVqTTzVjLLsrmJCddnLjrjHsrhdCr -GzwcZtqNzqvNqwzZVGRwSzbpWfFbWPlWFpNDBfQfFNNf -dfRszdzVdsjwdhLwCCqwGllHvPGPwG -SpJtBLFgcGqHQClqZF -JrttrtcTmSSLrmtBTrNgnBJjbNhhbhzRdsVdMhNjhMMhVd -MPFSCfSMqVSBGrtzlvccfQctzbzl -hZNjTHWWTZwshbLvmlWpBzmbmm -dRTTJNDNhjsJqBBMMgrJPVVr -WnVzDMjlDVWwwHgwhmgNhNNsJh -qfvrLNCcbLdvpcvbrPPqCsGhSJGTTBspTshBpTBBms -ZLvvZfrPfPCLbCFFzjVQzRnNNMVzDQ -nllbFTTpTFTBcnCjQPqQdZRQZhCb -tvWszrrztvSmzQQvrDmZRjjjPPDVqPRdZRdCPd -gfzvSsftgQHQHgQl -GVbHRRGRLpdmGWTm -gSPPltPlrlvccFccPlcJNCTpnnmpMCLMMmWfdRmMSS -FzNJRhhvPFRvQwzqjqzBHZZj -PhZSpFBPBFsNmjBVllltBj -JMGLnrrnbfffrdqRqPHnnqLDVTDDjgmRgwtmjDljlDVlwl -LHMqPqPnnqGLWJPMnndrGfSWppzvvFSChFFFvvzQSQZz -RSWWssbvnnCqZnWsRCnssWrTggNhgbNHBgQjhhQBgjNT -mcpzcppzczcDGVcPcDLLGLjmrMNTNtQNHhMHrQBQNTgN -LVpPfcjjWvsFFnFf -MpddpdCpJdJlbdMvBHMnnsHqSRvG -PWvZfFmZrrfmwWwFznBnqRRSGcsBVmVBRG -zjzzhQPQvzjLPQzwffrwrtlTCDtJDlgJLltpTTJlTl -TvTWjjzpznGttFFZccrrPrSZllcB -gNNSqHMqsMHQJHNZCDDCZDqLZdlZBD -SMQNSRNbRRHwhwhsRmtnvWVmmnbGnjmpGn -ccSVQjCQddTsFJcH -gLppBfgfmvCRFdsddTJJgb -WMLMmWGGBZWZLCtvDhlSSDGlwhSPSzSP -TpqVGVHFQGmqSqPZdccNCzzhdwCjNG -fffbbvftMrBMDDcCccCZCjlvhCCd -RLWMnbftDhnMRtfBftRJMtLMgFgHmmpmPmSmmQFPPLHHVTQS -nRvwQSDNcpVJJcJR -qZMjBhjhZMMBzLBGLGrjJbTPVTpbdPPdVbVb -ZZpmFFZlfGqfmmGMzlfmMmnWQDtHtSvnWWNSHSSstFtS -bFDGZjGDbbRSgLtN -CphJVfJWCTBgvfLHNRcwnt -WVhPWBTzzChzhhhBmrpPPCJZDQtdMlrjFQdrFqsjdrQsFG -ZBpVQHHVMMWWdmmLWw -lQhhrjcRttrqbvQLNwdDWzmNSDmStz -QbGqhcbvcsqvCCHnsCZHCnTn -tlWtQTTTJjTQtVnmrbnPWVShVC -MDMGGzsHcwFgGZBqrmmPSnbqVmNVGC -sZFPwHcMZDBRTlvQQJttTQTR -FhVRfGptMGMnZhRFBNRBCCNHHNvTNTRC -zmwrLLSjrbzmNlcvvrHvDPCN -JLwjQdSbjdbSdqJQFGVqFVMgnGHMfGVV -fffZWrJqZSHWTWHqSvrgDhggzRjttsDhpDgs -PGlBLcBBbnnbLLFbGLBjRgjFTFVzshtzpgsppz -TGCPnMPQlGnPmclPlnnQmbmHJvNvfHdqwddwvvZfCNHCfW -ClLwpspTPrTFZCdzFbZdbQ -RRMWfRgWVRMRQBZZScVczVGFbjNb -MfnvMqWmslvDhQPw -hdndSdqsTddBhdcmmNHFDcqHttPF -JjMzzMZQGwZGZJzMzZJQzGJFvPvNPtFmvmNmDvcFtvDHMv -gZwzQwJfGVJQJbGLBsSTSTdTbCWDBSnd -ZZCHZRzMZGRMhMMVVFNThrdd -SgsccSPmmgqssSlqsgcmscSqlhpFdVThjphNrdrhjdwdhFJN -vmttqTcqvLqqmPccmqSBbRWnWzQZZZZBHnQCzHDH -GgPnGdSPBpGsLTBL -rVNJjmwZqtZZshltFTtvRFsL -mqmWrZVqWjrqZMNwPMQQbsddgdsbsgPz -LZLVvjZrggHLJggSZDgrnPnQnRnppVRllntRdPFz -chMCzbqGmhNhhbBCMBdFnpfqFnltRRQnlPpQ -TChmWcMMTmBswJzZZrWrvzgg -gngRNBNRBsNFFBgfgbLLLnqdSLvLTcbLbd -GWtlChlVMllcZSDWSLbdZL -lljjGlhMGrGJpsFdRJfsfzfz -jVTdrnGQcQtTTTFQqBqsgHHFgsqf -ZZLbPLzDzPZCmsgqsBHt -wDzDlPblRDPLPvhvwtdnnhdrnrMGWMVGMThj -spjjpjvjpjmQjrpCMfSlfzrPBl -dHFntHWnnbRVFtnbcqHFzBCCCPzfPMlcCSlgllzc -RLbVWHnnSWtnHFbdbVRdNNtQsjsQTjDLwmGTmTssQwmLGJ -JbJJSLMhRMSLhNqqwFDwFNcFqL -GcpnGnznnpzpzGpffNTNTwTfwdDNNdTFdD -nllnlPGWQWHcGpzzQGGzGvHGJbVVtJSChQVbmtmVJrmrmbRm -GFsFrzwrflmtdtbltG -ggLPDngCJncNLJRDwgnllmJqjWMjhjhjWWmWjj -nBNRNPgpRgDLTgNwfsSHVBQHVHwsZr -WwvnvWvcFtwtSFSF -zBZZZRQSzMBSgSVJGjGTPTGFzCzmmj -fZDrpZZfRfMgSQDDBhgQghDHsnbrcNlWnnLWHLrHsWnllc -ZVncdPPwVPdhZngnqHWHNNvTHvlMvn -fSLjjLSGGBjTTHqvBqrMNT -RSSSDGRtSGZthTTctmtg -rtzrfJbgJHRfGRZLPR -hdVhlllmFlFPLwHmsRGGZP -nTWhRjTBTWlvNQgnJSSbrJtz -JgVTpBpfvgpTDDJFJvTgggtlFlNNMRLNNzNNZRNHMRCLlF -wbPWcSGbGqWDlnNWMMMCLMWZ -wrsGcbrcbcqwDwbcmGvQBQgTTsdVJgJsVdQf -mztrhgJtDrhgcrZmnhbnzbhcMTMPlBCPBGVGTMVGslCCPGDs -FLRQmjjFSQpQwLlPsMsCpvslvPCB -fNLLwSdSwWSWjwmrtczZhhrJzdzh -HHwCwJFmHZttZCfCSffSMHcVDMcPBRPcPRDhPghM -nvQLsTnLslnLvpzGTssnsRPDMhPgVPVgtcVMRPgVQQ -vnsTGWlTLsWTLLvNsGWlsZrwmZCJddjFmtJJNZFftj -hbjSTvSJTfcSwcPSPfTbfHszVVFpGnpJpsHFnHVVls -rtZrcQrRZZQrmZBQlCGppnppHzpVFCGR -WmLqmgNtcLNQWTbPvfPwbbdb -HzZgsdHglHlzdHsFtsNNJSlNcSpjcjlrrNVv -wqqWRPPqwmbcqPjQVvSPJJrVpv -qqBBqmWRhqRLqcBnhzzztgnTdDHnHsFsHn -rJPFVwwsrJwmdVrLWJvvRBWBvbzWlb -nDZcNGNpjTpHncvpZCDnTNZGhlWzQhWbpRRQlQhpWWSWLlQb -CDNntnCCHnvmqPfwtFdVqd -gqBwgBjCswwgqNBNCVDDTVdhlSDTDcZc -HvRRFMzRRRRMpHrtTllfhZHHSShHTf -PmlGLPrppMrrmFFmLMWRjbsjnsjwQNJWnbQjWgBN -pDggpFgRghZjBFPPnPPFrt -cwTfLwBVwCWbLcVTVVvrdndGjMHrnGJtnttdMC -NTVcWNvcBSpgNqspRQlN -DLDgFlDmNZfjfnJZSF -tctvttzvGGzvrHqtVVdwnJGSSnnjjZdWTdwW -zvpcrbpHpqJJsPbPlLlhmhglPQ -pvHHvssFCFZQNCftttdQdd -VgTGTTVGgLjDjlLGzgPVMTNwmcwQmMQfQtmdcmwMJwNm -TPjTDjfGWTLLljgzrWpZZbsqrFqhqbps -ppVLcfcwSLgpSLVLgWwtfshDNDqvWvGvlQZvDNHQHjqq -MPrzmdRrPPrCJFnMnMRRFRPdqqZQNQvjvZDGDlHhQvGNDG -BmBMBBJTMmPBJMMFCCFJRmrsTlVpVbpwLSVwLsgcwTVlVc -SSGzmFRzmRGLgSSmGMJFnvfvJnJVnJQnMl -cBpjHtjwNfcpNZtppHtCMlMPMlJBVlVQlvJPvJ -dNtNZwqWfqtqZWtHttsqHqrRrrdRTLbmmzSLmTGGmbrg -RrrddnrgnRbbgWdGrfnwgQwjDjDpvTpBQTwBPP -MHCStZJzSwvPjWQD -mcJWVHCCLcGLbdcn -PlMsdjPdGMjdPSrSjgddbLbmHHTszHZzpHmsTFvmpzZzmN -ntRJQVRfcQhcQWhnchBJWntTFTTTNTSpFtztmZFDTpDZ -hQfcfCBSwCccVJhSJnrPPGLqPlbPLCrqldgb -vgvWDMZvGpcqgqsP -tSdtjLHLQLHjdFdDddQSQhwlsGqwQlqqqhQsPhGc -tbRjtTLFRvTZDBrMrV