diff --git a/2022/day-03/input.txt b/2022/day-03/input.txt new file mode 100644 index 0000000..bb85e8f --- /dev/null +++ b/2022/day-03/input.txt @@ -0,0 +1,300 @@ +vJrrdQlGBQWPTBTF +fcpTMnMqMfTnZpgMfPbFBWzHPpBPzbCPPH +mcVMfcsqZgmgVcmfgcmZmqZNJhrlrdhNhDdrRRJSvDTRhJlD +pMFRmLwHMbRPmMbPPddvqqrrNSTFVttdrN +hgfpgCGZcjpcgfvNtdrtjvrdtSrd +gZgsBBBlZggBGhsfhpzlzLDLmLRDRMLDPw +hChhMFCvqtTMwbSSHgTZWHZd +jjBNPjJJNfsNjVnVJJNcNfPwGbSbDZnZZgHrddwHrrgWGb +mBBRRmBBQBmNJWhCzqllzhRCCv +lQgpngNgQvHdSgWwjMRmDjmMDHmm +zCLVzfzzbbCzsZZPbZPLfFJJMDWWRcDsmJRcjmwTmlRj +BblftzBtlFznptSQQQppNG +wJJwqCtCGRcVlqlM +BQpppjBQLczTrvHRjH +QQQFnmQWWRfnpQBpQpfDCwCdbPDCwbNNPtdJPCZw +gpJjshBpgjZGppJqBGJjJZzTwzTmcvzwwcmvwsCFdmcF +WPSSWWSQLVdDDfWltDWLPfttvFCVmzCCTFnmwcnnnCTCzVVv +tLldLltDQfflrRWNqBRjgHBpJNZjHj +bzVJjVnjbCGVLZQLmmsJZZQQ +RrwwzhPScWSwrhvZZvZlZvvSTsQS +HwFhzFWdPHfcPwPWPdhWffnngpjtnjgtpnfGCGnG +CPwQtftDQfPDBPBCfDDDCDptszcpVVddcRczVLVdccRGrLWs +FqlSnhlqhmhMbHqqSQlHbcrRrsWzRdzdWVzLRGRrVF +MbQmSnHZhqZMQMTJCttjCgPCwfgDwT +CCSpvHtZHSwftFtdtbfR +QJmNPmjjJNgNVNSzDlmRqbWlqWWfcqfWqbwfqR +MDhJzmSMDmsZrLhssrvh +ZhznnrLzcHhHSjsjSBSsBnSS +dTwqDdqDRQjNdwqjldggDvBJfmBfTSBbBSvfSJsmff +DjCldNglVwFVgZHHHzhCMcLhMC +vBnShjwwSshmQPmtJLpJtn +rDLFCWrClWCMWWVrbFVJqpQqpHmtbzJPQzJmzb +ZMCCDCMNrTWTrgScgGRhsvcsGLSG +LQpJglQQRjQsppfsQbjfbQlBgBhFhrvghhZCdPZZZthPgv +zVHDMSWVVMVWDzmnVMHDSMMzZvNFFrFvPCdmdFdNdrBPZhhd +ncqqSzMVCcGWVSCTWCDcVTffLLLbJsLLsRLblRQTps +zjGzLQtFzzRgwwLhVrqw +dfClCdHZsmffZDWlBZHCDBmhJbqTgbwgqbTnwrgrqRbT +HsdwPCsWDpDsBpfdWdHldWpsGvvccPvGcvzQvFQvccjNztQt +wmVVgFPrFdwJrlNHQHSHCCHL +tWBtvnBqZZMpcvmmqMBRCQQLCLWCHfNQQCSGWL +BBsnmcpqPswFsTws +BQRpFPJJJJPmPRqZNFVhcczHHzggwjBhghgzHw +snTsTLtrlvSSSslsGdcwmjhgggvjHhmH +nSsWWTtCbbDSnlRRZCfFRNZmCVJf +tRRMCWLtJWQLqLrmLHVLqmqh +JszPjSbGbsnGnSZprVpFhvFqvhrqZZ +zgbGSDBbPsTgbDBzzSDnDnPTcWlWJCQlNttNwwwMcMctcW +hlVRvPvzqqtRdwRRJsst +HHVNVBMBjHLTjVjwDjsbjJwbdmbbss +NBZHMCNVCCpgLTWggBpgNLTvqCPnGhQhCCGlqlhfcvvGfn +mwbfbfbDCqRJZRbCSvmfWTQFczTznnnFTFnrzJsz +BdhHlLjpjjjncSprnsSFWS +ljhVBPjSdHPRfZRZDvVRZM +tGqbqBSsntRgNqwNNVVHVN +hclFvJZvCDFppDpZpHNggMTwdlrMQNVgHM +CCFmcZLDFpvzZhCFJvZvmwjSRWsBLWsnfWjRRGGfnsst +GdGQQFdcMPwMdLFvWsNWFDLfss +SqjhtjnrbVznSztSqtzpjztVvTmNNmmfMMfDDMDDNTqfgsqv +rVhhZjppVrhpVzRbjSnzHPMwlJCJQdcRPPlPPcHJ +JVQLVgVZghFtFlhghtvSzsddmrdvssmzSWtd +HTMJCBMCjnwNBnCbTNwMdWfzvzsrsvffWbdsmfPr +BGnnpDnTjjHJwDBNpqlFQVQFQclcRFQqpR +BRhbrQDttbTTtRDtTRRzLHWZLZHGSqWLCBNWqLNL +fwFPPSjmsmJGLsNH +dvfSdvfVMjPTttTzczgTcd +dZgggwzgvsggtdstZTZgdfnhSJSSJDDhnDBdppnGnhSp +VQWRQWVCRLFGnThJCpFJ +LbmmbQVcHcmmlWjmVlVQNVRzvwwZvTrsrNwNwzZrMvfsqt +lDZQSlHDbLccRPQhCNhG +gtsntgvdvBvvqgsTgBggdrWRNzPhWczPbWcdWCccGGGP +sTBttvrFnnMTMJngbqfLlZLpwFVljwppZZDl +zNNNgqpgmLgqlHBHsMGslH +WdWFrFwhcwWRwhddcRWcdQbcDDslzBDszsHbGBDfbHfzVlVl +ZvhRrvPQwvWFQRZvFdJttSPgCmNppCNzJnJS +fCzRRNGfqNRvwpQhwrGcwZZT +gJnStgMmLhdHndSSTjcTrTpcmrjjcrrw +FFJBbdddFPPhFFNWCF +btrHRSBBSNLLRPLwhbhpqpfWhQppWZ +zCzTvvmgDvgDZhqWZZthtDZh +ttTjMsvCgRRLRSsBRG +LsSFFTTDWdCsmFTlLSsLDDRRQCvhpRQGNGQBJBhGGMNB +zqPtqZnjPPrPvJHBMHrJrMpv +VbqfjZfwgtfjPgZPgtwDLTLcTlcFdWLdcdVTJF +pfMCDmpHbdMQQdQFFG +gdjldRsVFRntQnqR +rlJVsWgWPWjsslSpDbScmSDPHfCd +lnFFGgBFBslDFGbFSjnNTjjppSrQHhnT +zcvmCRcvZmcZzWpTQhQrrTSPtHWH +CRccrZJmdJlwDJwgswGg +hllrrDzggGppgSSLNWgW +jlTlPwwqjjntVpWWPNnP +wjjJqvQjJjQJbTjlFqhBMzfDDmMCGBMHDCGb +jvQPhhtCRtfmqHHjqHHJsl +FFSTcBTBTMwFGCTwMTcGwTVnsHSJzqqJJJplmlpJHszZZzZD +dLMdVMNGBdGFMTNTRRLrQWCQhgWQbhgf +gdRgdgzzrvrzggDwgDGpPLzrbNljMTsbWWjWjZbTjLZMWcWj +tFfCQHJJnJMJTJjNNMjl +HmtffVttqHQmBCBQCqfFnCwRqpDvPRrGppRggNzdwgzp +DHSqzQbzWlRLDzMZNpVLgnpNLggw +cZcdTmPPthPdsvvdhPGTvJgwnpgjjTgNNwMVngNBjNfn +PPdJPvrtGtcFdFFchDRHDqHzZWSQQCrQWQ +BcgnLBLsFvRnGRRRlzfJbbPJzwHPwPFz +hCDjWMDVNfVllfzddw +qqMqpWCMjDTWNWTBLpgsgLvZwtGLLg +zczPgpGzhnbmbchhHwqwhSwfwHCFWw +VJdmVLlLdVJSJWHSTFwH +rlttQLVLdvvZpgcGbmDrzGMD +WSvtpqqtqccttVQpVvJNJSVNCmTlnCWwTTnWlBBBjwCBTlTP +ZgfPHfPfMHsDCwnlGBwTMGBM +rgdffZhPrrLsdLZpvcFSJJNvpJhcJv +qVdqJGvzgJzJgwzgWvdJzpblcRRWmLFFcLBmllFRRMRFRH +TGGSsSssNPTSLlRLcPHMmnPB +tTjTZtNGhrCjQNCjQQDTCSjZvfJbdgqrdpwqfVzwgzvdvVgb +VTmwcTVSMHwbMwbDVBTcMpJfpfnWqdJbZpJldfsjZn +hNtPhtzFzPQGCCGFFCGtnqQqWZWplsjWdlnlldJn +vRCRzvvFFFvhrRthPtLrtNGSwBVDScDSgHHjwwcBgSgTSL +dWCsWbWWchblsmbWVZqqsSpsGfBqBVBB +DtTtjPJrgjjtTTwgPwwjrTgnLqSBZQLqngQppqnfBVQfGp +PJPwwtDwHGGJtJRFHmhCFRCvdmHR +mMsMJSCjllsSSmBBclsMsJHDbcHqqbHpqHGbDZHbqHpb +RnQnGVnzGzFQgzWzpzvpqDHW +QVhRTfGLLFGTTFFwhnQVNfFwJsJsMjsBMrlsjrJlPSPlTrls +JNMJSVSGVCjnWZMZWWcH +gLTcqbqhqbbgzgnjpnjjWHnP +wqlbcrfTwrvcLBwwRtJwsNRstRsCCN +MlBssQBchZDLNJZgmvGg +fdzHMfHSzSprfgSvvJbmvDGNDW +PCHTRfjHnzHMzzfrCPCpMTlFhcFstqVwVCFllQcBtqss +TtFnnFJfDhtdfJJcFtfnsfcFjBjLDjHrDLrCjMjwCLLrZjrS +qQmWmQzvWpRQGvgpGGRGRzmWwZMwBLCHMZjbBBCLwrHSLrqr +MRllgRWWMlsJFnlFclJT +SRRrRDRBRTdbdMRZBZMprTCJCnWGvChJGzLSWWzsGhCs +wwqHPtFwjwTHLHvGTsGW +FlPtqTNVcTVtwtmjRbBZfQbfZbQmRRMR +WSWfQttffsHSfRRRStfnCsQQqlJpbhnrnmNzJbzqNbbrpmnb +FGFPddBcBwDPzpzbWlpzDbbh +ZPdPPLMFdGwFFGdwGdZwcZgTtSTVCsRRSgSRTQWTTtCTtH +vHsfGHTvSvHHHsGHctMgtHrJwbJJwrjgbrdzjWCrdrrw +hqZRLmmZpFhcLhFmrzJQbzzmQQJWJJbm +LNZFcpPlhBRhqDDllRtnMssGfBsnttGTnttT +VDVrLrZZcjrhhFrZppGlglGMPFwFWNQw +bzszSBHBWNGcscpN +TJqBqSfTBBqBHzJqddBqzcLnLjnhCRTvvRrnDrvrvZRn +GLzrNWbtMptHDmNDglgmlD +fZtcfCRvtBcQjdjgmmjj +RhBhhqfSPPpttrnPnVVW +BhVRJGwWqtHjZqTDLZ +gQnfpBdPNpQrPNSfBdndnpTTDFZttDLLzZzTzCLNLZZD +mQQPsgrldpgdBQgSbGVcmcRwGMWhwVwW +DrLCctBCLQtSSQcLbcQHWvvvlWHHnWlWBlNRRB +wqdmpgqsZhzGphwwpZGsppRvfnJsWfHWvfFfWFsfvlNN +mwmhVppTqpGqpNZpqTbSLLttDrDDtPQTtr +qwqmgnglDnlgtQzQJzJQhmWQ +pTpTpssdsVvNsdTSZGdSdjvCRcqcRcVWVczhWChtchzWcR +sGTvPqZvSGdZZGdsvNGdPHrFHFBDlDLwPgBFLLBB +BBBGsGGBrBBrqWVqRnWBBBWpzFwMhjMFSFPzzSwPFPpzzFvg +HtCdDdDctZDtbHCffcbddbNfvjvFSPFjMhMgLwPgjbFhjFFj +NJTDdltNgCNDZJJZCDJZDfJtrWWnQGBqlRVVlrBsnlrqqmnr +PwZhgbZSWSqqGznv +tTPVVmptcsrNrsTNpjRzqfHvvGfGWjfjqGzHWn +RVRtVDRmsRtrctmJDtgBBhBhbFgJPFFMFJgP +jPzzCCPzTtTfzrRtgSNVRHvFQVvbpQppVN +sSnDlBGBwJbFNplVlN +cLwSwdMhSwcBcsBZgWjCTCWfCLffrg +RSNPvTTNqFTSvNrSBvBGJGzmFMslgCMJCgmzlc +fDVfpptLWQfnVLffVHbQDQCclJzGGCtGmmGJmzMshzGh +VfQnWZfZDbdnVHWcfWnfHWVvPrTSNZqSwSqPjjvBwRqrNS +FLRpmRwcpjfzjSnD +tGvPNvBnPQggPQQvPgNHDjSSjDzzthjzfHrjlT +JGqvWNCCGQBWGBQvVLsCMMRLRnRMnwMc +fGJbzgBffCGpPGDVnG +mcTccshvbbdRNRsNjdLjnVlHVnHLqVpDpDqD +wdmsWvWssbZTcWvRhfzMQtrzMgrfrZJgfQ +NfSbvZHZNRSbQbbQgZrMjhLwMrjLjwHLCmmh +NTWdJBFcWJFcdsFJqcqPwqmjpMrLCMpLMwLP +dNJctnFBVfSGgvnfZz +GSnRJfGfRJgMDMGWnfzdmptpFJppLvwLwvLt +hbjZzrQbblqcLtpwlHvFplTH +qrzqbschrQCqqjPcCVcCGDfGMWDgWNGDDSfgnf +vmMpCdTndCvMdmnFcCRJWBJGcZJRJB +NDNwGzshPLrwVVNsjswhGzjFSfFFQQRSJWRBFcFRfsWFQB +NwNhNjVzhhzzrgzdqqvqtnqvlqdggG +MdPLVSSlMMVMmlLBBLFdvZNWqWztStttRRNqzqNGTq +DhJfhghhCgwChJgJwHHzbsHpnZRtTWqqfZRGTnWTZtNqNRWR +hwHpJbprwpQhDHDCbCCzsClBvrLMVFPvmPlMMVMdLrvj +DssDrqRsWsNfzfsWLRzjgTdBlgzFpMlgTFTglT +ttCZnSQmSQmgjGQGQgDlBp +bhDnCmbwVmCwwtZttPwbRWsRJcqWJfcfsfrqVrqq +ldBgTMTRvBDVnCCCTdSRTqNjbjSbPPPPqtfPqtPJFJ +cZHZrszLrrrZHrbNjNtbJCfqNJLt +GZzCzWZGGsGzmzZcmGssZzZVvnVdBDddRRDnVlWgRTDdBM +RjNrrjwGDDqqGJsHtzpMHHGz +QCbWgbShmBCCPClmmWFHzJzTbDdsMJsTtpTD +fffQfnSCWDBfhCDLRrNrwcrqVqwNqn +zmRrDRzqjmLLHzDjLsHLflJlVVJlWWTDTfdMtlWJ +pPQQnbvSpvNbgfgfVtMVJfgdtG +SnpnVFcPnNnPvpNSFNSbhHLhrjhCqRsRBRrHCLhzmC +CZZzlnCZNlGGcbVrbtVlMtct +MgFQDFgQRLLHhJgDFqQJQLgdtVTrttSrPSmcbmTtvSqvVSTV +hFQDDfMDfLgHwWfBzWwwsZGW +bHVDdHVHTPMvnSQnWSDQgDmm +GhrCJfbfrhfbRJcqGqlwZtnBRtBWSQgQWWnWQW +lfcCrqJhlfFqphpplNCrNVMPMPLbsLPLzFVHVLsVdz +VDhFCZhtFdPqwwcp +SvnvHNNnTvbwNNgnHwTHgwBTLcdqmmfmqLGmmTRLPfpdGP +BNWsHJgSnwgMMgMBBWMDVJjtjZrDJZzztJhjQr +HDsSHLRnpjbpbbRDbqLjLjjGGVffMVGMdvnfMcNvfBBGcB +TCzQQztwwNTMqMdBVv +hCQWmtCzZthPPZPrLjSbJqjSjLLFjLpr +ZrrZqJDcZSCFLLHBFcjjHF +TgvnDTlTtQwgBfwwwzLjGLdF +VbnVngMtvDTTVMQDQMDQlsbZJChCmCPhprrZqhqZSZPJ +glMGHBJTJJTplgwcCgcqcFhhbWncFm +sSswtPfRDmWcCqfchq +RZSdSzsVzNPSwSSQsdzSSQpGLjJTMpBGrJrLLrplZBpG +WQqqwLqQlnlWDwtbVbtCNfVbpV +dFTRjBPhcBgBrFhTPhrbVptJpNNbbtJCbJSL +hjcmcRmgPPcRcPDmHHzGLWmsDmzH +rWFmrRmmccSZJWvSLZTH +hDPhGbhSjtbpqJLvJHjLHTqj +pnplBlfBPPhlgfDbDhglPMMrwrRRSSncwccQzddzmC +LbccJCGzbcCJcfGczcnmNnvNmZNLSDZZWPWS +dwstRhTsrsFddPZqvNWP +BBggRrQstBwBRTHWTprRCHHGVljfCGCfcljHjbGV +FHVBSVDvnsFDwwSVwwvGVSMFWhWcWptMWchWMtPPcWtNNWcj +TgqJrJTRmRCNrbcLjprLnp +qQTlfdlZQgmfqqnFVznvQwvnsBsV +TGpDDMQGMZNtfvDJdtWd +jbrmstmllRmNvVhmmvJVhv +tbrRzFFLlRrjFlLlTQgLQwwLMwgTZBTB +QFgFWQQfSgLFGmtnnVmqCPWmPH +TTzjgTbRRqnRsCPCsP +NDMMgZjzcJvbjhMcjZbbbJJNpdpBfBvSBBQwBSQLQSpSplBG +zcRNsQSSMjRsNNZZFBLQHHFFBPWF +tvwCtgvqLJNnNBCH +fNNwqrqNMpTrDlcs +MMHMVPRJHJWvqzWctbtQQdQz +DFfNFffDnTllfTfFfmzsjqcdtQGQpbddQQbssn +mlFNCgFNNNLrmLFCThhhzJBvhSJPVhMgMh +PWjhljbHFhjbFMWhjbPfhbTGZvlGcGlCLvvwtGCNZGvc +SRqBqBrmQWQrgQrrqrJBLZNccLNZmTCtvTGtCvCt +rJDzDSSBrzdqQWDPHFMjMFdjHMVnbM +qqLwvvtrLFqqfqrjjjdBZfBCBBJdlT +ZGZpRZHbQDzDWRRRVdBzSSlBdzjjzdJJ +ZGpgNDQmWGDRmRpZMQbvPPtnnFnLsstFmnFrPL +TdhcfZhdZZdpdbPWttCWrrCN +MBMMqRLgpGpFFWbNsvLwvCPCCP +mpBMnBRMBGqJfZcfZZHZlhfm +CdmGdnMcMwHjhDtFFnrj +vPbVbPBPPpgpgWJpvTjqDZZqSHqVZShrDj +BppjjgvbJjbpNbzPfNcGCLlCRcmLLflllGcc +qDtgVttGFtlslStS +gCZbbHCjvJbZjCbJhHhHJrZcslJcLzLllcLNFssMSsTlSM +CWbWrZgWBQQBBpfdPm +hstPtCGtltlTClllPJLScVdPdJjLPJMV +NHRbDZDQSDFFjjdJ +RqbQpgBmqZvqZNQqgZmmbszpTtthtCswhjslwwpTWC +CVdwBJJdppbbwdBVrJbrJbGPlMFSLrjrPjmPFFmPRRDF +NNWHHhNZTcQWhnNFlmSSlRmLjnPPRF +qWsccHTZccsNsZcvTcNtStpBtbdVwpfBwbVCBq +lPQHNJhMPMPFlNMHBqZBwQwQwQZwcCqw +bWddDzbWbftdDSDbgttgnSDWccLwcvBczqcqGZzLccZTZwwc +spWrssWrnDtDpfSWDtsFqlFPjNMjRJVVNNPJNp +bCCfcWVLTHfSSdHwhH +sGQSZSzQJmmQsphwHHHsndnpHN +zPSqrmZPFCvFTbWMLV +tLtVBGLJqGqVGbzGSCsSsSqQsFvZCSQv +gRgdWlHTBHgjjHlWpWjWjrwdCfQRZFSssQQQZmQmMSvZfFMQ +lPHlpWgjTldprNWHNNdHjTctcLbVcnNJJGbVzBhnbhhJ +zVrSwzzJbVrbqFCVVVwVCztWDDtfTZsWDZTLZZmSWsDm +bpgHlgBbbGGGglBGRNvMpWfTDjmDfWDjfRZZWLtmZs +bGbvQHMpQccFJPPh +VGqCPmPjfGqCdMqVMhjhmPChDJDJzvrrbrBvrdrpnJDpJDQr +TSRsgHRSFHTlHvJvBDvvzlptbv +ZFLTsRRgZTgWscHTfWNWNPPBfGqmmMfV +TvTrrrCVCVwqjPrWfWhjfH +RRmgmnggltRgNpzRsdfqWWjdFdvNHfdh +zZlRzDGGZmbmmZbvGJVccwCMVcVVTLwDwC +QPsNlvvvSccbbNQcSPvDVSvzTLLCgRVzCJgTJpgCpphgzh +MDqHwFrMffgFpgpJLzTz +ZtdrffBrdqmBBmfwMtDtQPPPbjcNvnllnlbNtScn +HbbbcpTHHMMqNTCddCVBQvgPzJPJWQBQjvpBvQ +FFrDGtntFFwhrRFDFthfRhRmSJPJvvJZjZjWJJvJQJnvWjjg +rtfFfLmLRmNgdHqcLNHd +FpFHCFWtFSnCWnBfJJfgMJDGHDGGsG +rhrLrrhLrbtZThLfgsfGNDfgTgNcDs +QmPjbdqjmbbbrmhQqQZrZStRdlnnFdlRzVVVWlnpzR +bBMwwjzhbjhssvsGZBSZLr +JFtnDtRzJtffJHWNtHncRRrvGZvSnllZZZsgvlnvVvlv +RRPHPHFPHHdcHtzNfMQhdCwbqCmbMChhqq +pWGdFSWwwjLdvgNNvggl +mTNbmRPHmmVNmvZhnhBssBlhnb +HPTzRPffJJNzjCFpDWDz +MHlgzsqHlbmzgsHzlsbcRWPdPtjZFqhGGdrPrjPJGrVP +vpwwvQwCnhNQpSnLdVtrrZGZtZjdVSdJ +hfffwvTpvLwDpCLvDnQDHbmRRTcWRHMWWHWMmWMW +WHlNHWWldjpwntnWBPpPQFZFBFhZBZCZ +TqqvgvmgfmvDVLLfqqLsrFBRhrrBFJQBGPgPZGCR +mcDbcDmzLcmDDzfVzTQNjNzNztdzjNdwSHlH diff --git a/2022/day-03/prob1.py b/2022/day-03/prob1.py new file mode 100644 index 0000000..7ed23db --- /dev/null +++ b/2022/day-03/prob1.py @@ -0,0 +1,20 @@ +def char_to_priority(c): + v = ord(c) + if v < 97: + return v - ord('A') + 27 + return v - ord('a') + 1 + + +priority_sum = 0 +with open("input.txt", "r") as f: + for line in f.readlines(): + line = line.strip() + p1, p2 = line[:int(len(line) / 2)], line[int(len(line) / 2):] + p1, p2 = set(p1), set(p2) + in_both = p1.intersection(p2) + + priorities = list(map(char_to_priority, in_both)) + priority_sum += sum(priorities) + + +print(priority_sum) diff --git a/2022/day-03/prob2.py b/2022/day-03/prob2.py new file mode 100644 index 0000000..149e37d --- /dev/null +++ b/2022/day-03/prob2.py @@ -0,0 +1,26 @@ +def char_to_priority(c): + v = ord(c) + if v < 97: + return v - ord('A') + 27 + return v - ord('a') + 1 + + +priority_sum = 0 +with open("input.txt", "r") as f: + lines = [] + for line in f.readlines(): + lines.append(line.strip()) + if len(lines) < 3: + continue + + l1, l2, l3 = lines + l1, l2, l3 = set(l1), set(l2), set(l3) + in_all = l1.intersection(l2).intersection(l3) + + priorities = list(map(char_to_priority, in_all)) + priority_sum += sum(priorities) + + lines = [] + + +print(priority_sum)