From 7be570c4a6e86fb7060f0bc06910ca57003dfe90 Mon Sep 17 00:00:00 2001 From: Orfeas <38209077+0xfea5@users.noreply.github.com> Date: Sat, 8 Jun 2024 13:50:47 +0300 Subject: Update file names and init.sh --- day3/example.txt | 6 -- day3/input.txt | 300 ------------------------------------------------------ day3/solution.nim | 47 --------- 3 files changed, 353 deletions(-) delete mode 100644 day3/example.txt delete mode 100644 day3/input.txt delete mode 100644 day3/solution.nim (limited to 'day3') diff --git a/day3/example.txt b/day3/example.txt deleted file mode 100644 index f17e726..0000000 --- a/day3/example.txt +++ /dev/null @@ -1,6 +0,0 @@ -vJrwpWtwJgWrhcsFMMfFFhFp -jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL -PmmdzqPrVvPwwTWBwg -wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn -ttgJtRGJQctTZtZT -CrZsJsPPZsGzwwsLwLmpwMDw diff --git a/day3/input.txt b/day3/input.txt deleted file mode 100644 index a30889c..0000000 --- a/day3/input.txt +++ /dev/null @@ -1,300 +0,0 @@ -hqBqJsqHhHvhHHqlBvlfpHQQwLVzVwtVzjzttjQVSjMjwL -gRTRnCRsFNGbTzLjwcSTMmSz -dGgsRWPGdWgZJqBBqhfpPq -HNCNJHCWJRRLqNJWlfrrrwsmlwGmmf -dddvLdLjdDvjvswlmGwlZQtjrt -dvcpbLVcvNJJHNPHSp -QDprSpLQRLQrQDmQcQFZjbbhZwdRsRFbbBss -gWGGPgNvJlgJzDlNGHCGPNZZgFBbsjbFFBwZwfhdZbZB -lHTlGMHlGCPNvClzGzJHvGcrMcVtLqMLcrrQVcVDrqrm -SrBpJFfldlFNslFJBZwsmwgVGGsCCVmZZD -jLtjvzLQMtWjbbQvDZZwGRJGgwggGZgv -MzqqjznQPqnnjznnctnFlSddPfHflhfBJFNdHd -mPNNGVCRngnSbgNw -WqsqlTssgvqvZWZzhsTzWhScdHtfJJnfbtSJwfczdtSS -sqTvhpqQvWZQLmDpDGMDGrgL -DQRcLQVLbbcbrFPcRtTBBBJnTZrrnmZTrMgJ -slGjjjdlhMfvdMQTvg -jlzNhWHhhWjHlwwwGLDSDtPQVtRzRbSzpp -DzDgfvzfDczfHCHSlgHLCmWG -PrpNPJtpPMBssmmVdmSVVr -PSRMwPnMpBNtNBTnnZwDqzQFfwhjZZqfhh -fzfBwhBJFbCwbwwg -strtgtrPgmPgFRsMdRnZRMFn -mrmLPDvGmmtSLDgmSqvHchhcHQzcQQJHBfBh -NsgwPPDgsPHqsTqqmLbLrDRhmrRVrbVW -lFpGFtfFlvSFplGFzptSGSSlhZbhjhfrmWbhLhmLbCZVZjWr -ccplJQSGcSSpVFvNqqsqPNqPQPTwqd -HFhPNNZGqSZrCDBVZBCB -RJTtwczTzCRVQrRHpR -mfgblfltwgwwmlJgcHNnGhSbFNnFsFjFqG -tSRqNRHpHnMSTqpcmrWWfqfmrCQCrW -lhGDtbgVVgDsDbhfldfwrzrfcdzwcr -vtDDhsgFBTNZFBHS -LcNpLLBNgdmHGmsBCrRBQDDwnwRj -hSWfZVhfPJJhfVWbhzbnQqQnRRRqPvCCrjvjwj -ztJSSJhzzSTJrZSbzzJTfzbZmLmggdmNMFNpmtmMGFFGNpmt -TRdFfLbTnLvZVlZvznQV -pgJGprJNhghhNjjPgPNrhNqqlVVlQVVQqQjfzBfQvZzB -rmGmSwJPwJprrNDbsfMRsdTDcDWHfM -QMpZZTtwMBttJMMbVqPpqLqbVlbqqN -rjCFGrdGRwdDHSnqflPVLqqVNllrfl -DHGDRvhvwTZhJWBQ -LcQCCpLQVhrdcFQCJrmmmwDwvDtJJnnw -TsZqqTzMRqZjfsjTTDjsNJnmnStRSHnnSJmnJSNH -sMMZZbDjZFdbVCFphV -FCcdFFGBsdDrbMNSmSdmQR -tVttHVLhvVgfTTtffNSMQRMZSRmMQNmHSb -gngvvwJtVVTvVvvvfwvJThhCzGcnsCjmCDmscPcGCsGsmz -fsnzRNZswZszPRZSLflPpDhlhvgWHmjWvJjh -bVcCqjbdjbcMdBrddrQphvHHmHWlggpWpppqJJ -FBTdFQGrTjLNsNtL -MSWWgMdgdbWbbfdgsPmddgCmSLZvSFvLQvnLrFNZvZFLlLLl -hjpJjGthjRNRptwJJqVBllnvrrlTTQFZqnTZnn -tjDGHwhHHjwjjJGpwjwjjJpwsdgffmbgMsmbDNcMcdmCPdsm -MlDrrgnTDLlCCmCRFgRSCR -HHhbbNQMccQFSNBmmpJNSJ -MwbMbshsswVbHQsbcVMcrtDllTlLqfTGVzLGrTlT -gSFzqQTpmVpQVpLFLrzJJRthlsQBlPsZsBhZst -rwrNDdbHdBhRhZbsjB -vvvMHwHcwGCwwNfMVSrqffWpSfSFzLmT -RNgMgRCCgCfPNfvNgVQmhPVWWjWjLLdLBj -JhJqqqwGDchsBVbdjldmBLmG -schZzDwTJzFTsctHFMtfftgMttpM -GHHWqWFWfWHqbRWsFZFmqZbhNjNDNppNjrjDcQdbpddhjr -wCLCVPfwgVSnPNrQhnDcjcNpDD -TPgLlggJLVwPVVPPwgTwvtSCFmzGGqzGZsGRqWBGfFRFJFRB -LfFLmGTPHBfpHmzBLdZfBfZTbWWttWSDJtWVDJDtSWJzVCCV -RssRRRhrRwQqMQQwnPngQrwvVSjttjJSjSVtWWCWjbVb -hQPnnRnQgNcQqqQQcsZTNTLpdZZfpZFHNpBp -VTCVVnwfFTvFmTCvWwJHdlhHWBJhJBRWNHgh -ZbSMZbctGtScQSZsSpZpPpplhBhtdJDRDJjhdtlRJRjNRj -rLsbBQSMBGspPGcMPQvnqmwzwmCVLmqVmwTF -GVrrQVHHHQGTllQjPHGrlCQpZZpJFWZFzzjBssDJghzhFZ -NSMmWmtqMWqSNbcctdLcdghpgpppssZgbgzpFzJJFs -cfLqLwMRdtNLMlQrvflWTQPffQ -FjtGflGsbNqjsmjGGGbmqQQQBQBTjdpTpJTWvJBddj -CPrVRMnvvLSRHLnBpwdWTRBQwQzBzR -SnZMZPcHMlqchsvGGb -nnJnswzPCtmZDCpmhphD -rSVVLQQQGQjwpdmdNmpS -VvBcQvGcQgGLBgWrwznfJsncltJsJnssPM -dhbwLStzSGmmmzJJvFgJNvnrgvhv -VTsTsRscRsVBMRVTTsjZVPCnDNvfrPfDvNCfBrPNDJ -scHHQTpJZjHwzLSHHtqHSt -MHmFsBDmGpGTBfmCfWCffhzgvf -wcjwnRLPZRVbtCjtNttGCh -ZLGVJRrnPPPwQwPppqDHFpBFTpqFDr -GzMgVfGRdRVngDjhqcjctrtrzzzs -QbQSHwHSLbWwJJFwJPLPSWTQjrhqtjflThccsclCcscCCmmj -JFbNSbLvHHLQFLvwQJFWSBVgMNGdBBnBMVfddpGngB -sZHNJwMsvHswwvMWqBzhChWPMBzd -bHQQQRDHRcRcDljttBldlPBdggBCqB -QjnDbDjjjncRjbQnfZpvssZNHnppFNpvvp -NdmfPNMHMdNMHcffHBCwwsvsRRllvwlcqjwscw -VLhVGLpLShgvrjwFhjqfls -pppnnQtVpGZVWtzGgVzgSSfnCCDmdPBMDbmmDMmdNMBmWNmm -rrfgCrrMllfnBhBrdCFfWLFmmVFVWQvWwtwV -TmSGSqNzvwwTFVvj -NSGSmNbDzpmSpbHmSJqqlMgdMndcgdccdpgllRRh -bbPtLnLcLJzTjcJbbTcttLcSgwmvWfVvfVvBgfmWVJMJMJMW -ZsDNNGDRsrHzpNRwMlgRlgmMWvffWM -FGzQpZGGLFjnSFbF -DQZVDdWWNBtgWnJCnL -SSHSmbHRFqGrmqJrbbGzjmzCwrvgvwnBwnCvprwvpwwPvv -qFFFSmsRRzzFjcFsSsjmzJzflhlZTTThdhVflZlVDDhMcN -cdvrFddqDtDvqgCDtFtrvvvFSmShPShJVJmMJSJbVBgTlmbM -GzjpHzGHHfQNfJSlPQbJBSTJBM -HWpspsWjNsGRHfpwNszzLfGqnCnZtdvvcZvwqFCcZqMZCv -rhHhDhhDrRNwDRhNRLRqNPHjHSpVpVlljSSMnlHnjS -sVVBsFBJBtBSPSjtjPPZZS -JmddVTzsffcGNwzCqNqR -nQfqFtZWFZnFJWfpGqhDsGLLPLVbrPhr -CzjwMTgBgTNSGLVVDPbjbS -wMCmgNNdgvzGdRQcFGFdfJ -CbqCDnwFpDpCVfBPmPffPfRfpB -svcsjlGJGnlnvjvzgQQgGzsZPhBRcRPhWfBZBhPhWRRhPN -sJngnjSGGTGzgJGrrbCqLHrCLwSFqV -hnRnJrwMHnQRRRwMhRrnJRBLZtBPdPSdtZZjjstsLHBP -pBBzzcbTbzCcFzTvlSCZLCtSvvttdZ -FWmNzBFNDnRqNRDM -lvzlSPRDSpDJmNwNGgFpfsFN -WBHrtrLBbhWHtdrFwFFsjzwfFjsdsF -HWnrHnTWhWTCTzTBnRZqDDDCqZcclRvSJR -qcdVbpcMFQcdMGcMFjjpbCnCGmCnJHDHDGJChzCJCJ -wWwlSfBRgRNBDPJnCgCrgzms -tBTfTRwlwRLNwTRmWtNwQFZtqcjcdcqpbdQMqMdd -jJRzwDdwFdJddcjjFCFvQLvNlBhSBhCC -gMMpbHpmnHpWfnlCSBQCPmPllQSs -nHWHVfTGdTSjZzDT -sCVTsBPltgDSbLvRMMDT -WNrjNmWZwmZwfVLvLRbRNvMp -mrHGrmnjqVzjGqdmCltlhFFllgsHBPCg -wbglgTFRblnMRltJBNrDDWQbtdbN -dqCpcjPLGfHZQBJNGGvQDZ -SPssjVSqPCLpScfCgFRVmTlRwndlRwTR -hWMWMhTTDgWMzGMszQShGWJPCQmPVCNPffPfVJftqNQC -nbnHHwLrnswwPVCPZV -nsRvFHLsvplvrcsSWDDDddjjDlMTjT -HRCnhWZhCddgwRcwhdWZHHQLJzSLsSzjJwSjztsmtzsmLF -VlVVNNVqTlMVbTVVMqvqvrDTjQfFtjstJmzftfzsSbtStJQb -pQvvPpBqNBccPWWhcWWc -glJTndVWCTDDVFvnVndVlCvwmBmqBBwQmwPwmMPggGsPGm -NhcSrhNZHhZzRtHcNRrSMSMSFBMGmsQQGLMPPF -hcpRzbcHjRhRbZRzZRztzRpJVdCdnfCnlFvdDTnJCVDjWd -dqWvjjBdWWqMjdvvMJjWWjMGgcfchhzrhwbrwShwgzSqNb -mmmmsVTlVlsLQmnpsNcfgfwNLgczhcGhzw -RslpsnGGGlWdCZFMMRWR -pfSpZSrdSMVDVVLMMDDZpdgRWMPGqqPGqmqqGGhGHNRN -wwQBwtjvvJlvsnbTbvBRHgPmlqhlqWWHqZZgNm -JnQwJvjTtzTZwJnbzzfCrfLCfdfdddfD -PZcnljZFTVmQdlQh -JCLLqBBCSNCCqzJNzStBpStBmsdhVTdmVWsWmdhfLhWVdfrR -BpMzzqSzppMMqpJqqgzPFcjZjnTjgcjbPjPDPZ -HLHWmqBHHqWbMHFtbgWcdhspPcPchndPpn -ZRVSQZRfVZGRgnfsdhLgLndL -jzJRwJRSJJvSlZQGRVwlSGZDMqmmCCCmtNbCmtCMzFNLbF -fDhlBhhZmQRRfHwLdjHFFWQQjQ -ZMTssVVzvbCqJddsLwwH -TzgTbgGGzztMbbvzvVbGvSPBrlShRrfnNrnBDlNcRDZRZB -bjfqGfvFfcHvRwGFRHjbgQtddlQljWpWnQgdWWll -TSPVVSVwSzSDTDlntDndnlWddt -hTrrNCBCVrCrrVshThHHbZvFGscwbfFGRJcZ -jNhMjcgvMNgWggvttcFtchvPFFzdPPrQrrGGQQszRPQrRG -wSCqCmmppbTwPnGHrQdrGCCD -LlqwGmGScLcVthVt -dGGrWWDqmCnwCCQMQrMbFHbMHsPFgPVZbgFPgg -tLRTBwfvTBJcZFNFZRHSHPVN -zjJLTvjcwDzqqhGD -DzrWszFFrtBBhnhNCClHlnHbSbmlSn -ZLwLcVVZcLVpvRwLgMLpLJgPmmQSNSTNbtTvQmCHQCClCHCt -cfgZJwwVLJZPPVpRwzhzrrfGGBrGtDrBsf -BTsdCQsQnwwdcCqqdCnsFvGFpFBvGzrLLmmzpvfG -pjZjgPVlJVMVtgJSWLPvfFFFbNNmNbvbmL -ggVplgJtHSSggdCHsscChhdnnR -JddZcSlvvGFJNWVWFgQgVtFWhg -nDqsHqCszwjCCPMnfhfBhtdWggfg -bqppHqqHHbPLjLCppbwDdRNvdmcTmlNZGGbTTcNv -lcZDSvztcHHcMSZVHVvMZBqBNNFNhBNTTmssBqBcFB -bbGJQdQPpGfQJQdJfLFhmznhzLLNTFhNhf -JGpWpPJddbPpPwpjbtZSzltDgWDSgvtrVv -lJcNlNjPcmtFzHtHBJFg -VPZdwGGWVrsdPWhWwhzzCzzFppDFMBtttFCr -wshsLVfWTnGswdhwcmRjRmScqTcjlPNq -BsBshRZQQsVdsZQZSdsPDwJDHNNHBztNNFMGGwMF -nSTpLjcvHppzwwNt -jcqncjjvfmgrCfvqrnZbmdmSsdbVWlsmhRdW -FjjqRZjZFZWFqPvNvvPQpmbPDCmt -GSnHSnrScncHhrtncGshVbmTmbpVvppCmpCTmTCmCC -rHfnddwdfctlzFFgwqlj -wBwlBmmhwRVThVBmFHnvHMnfsmFfHq -jzwGSGJNZCCssHfsCPfv -GJbzbZdbwJdtdQphRVWQ -ztFZccVHFWHHLSDBpSBPhhZw -fmjsCmqnNTJnvbTvLRPDlCpBSPBpRShl -JqsGTSNJGqvqvNvttGQQGdFrQctrrF -mNZqjTFrZqrTNTTGSSSbrhrhRFRHcnLCzcCdHcLBdccHLzRC -JDDfJswJDWsvgVgwpWnRBlBzGCnlCLBlcCDl -vVGpfQWJpsPQMVgvppVwgWPJrqSZTrZqhTQTrhjbjqSSjZqt -fMSDzDHzpDDVsStdDgwwFZFrrMPCNngCZP -WmLnbWmvvWTTLWWQWRGQvLvrPFZJcgJFCZNrCgGCFCPNPF -QLhlqhljWvRQbbqlqnfStnHdBqVVfzpq -qWZtSQTSvJJvBfJVBBVFNDNHbbdRVPdpNFRF -fGcwwmCgsLhgwLchbpHdrrrphdPRPh -gMjllmcjwsLMgcwlMnSWzSqjSZJqZqZfjQWv -cdRHPjRFRdFVHGcFfFTHQTHVLSQBsbsqSCLqllBJqqbSqLJC -WwWppWgtNrnzzWDmrrmNvWJClJSSbqLJJCGbsCgJbLLg -MnvWpmwvWnvtGPjVRcHRRHMj -dLMDhdHGrcLTvvvstB -nPqgGGNPqRgRSjgmlWjbbTTPPBvpvpTcswwsTF -NRGmgjRnWgnZJqllmSqjnqSDhQzVrdQHDfDrDJQDMHDJzM -RgmcPmGNQwwNmSRwPPgfmrBlCDlGbvFFvtrCsvlrBB -nfdVnjHdMWnTqflFtbjrllrlsCDl -TZJVMhnfMnVMHnpRRNRzgJRzSzgwPR -nTbsblzlnGllmsNnbDwbcWQWwWBFJBQcWQvPWFJM -HRZRdSRdCdLdRftrHHZfSQBMWJMgMzQPFWMJCFWgvQ -HVzrLrrjRjLGnlTnlDlsjj -RQdTdZhWqlZhTdWTqblhNmTMVnnrQsnnpvgMVMHMgHMrgP -fjSSfjcCzGNBjCjsnpMVpnpzvpzsHp -GGwLGSccwjwLwBcGLGSqZWmmdLZLWThmRNZmWR -ncmBrmfdfcVcfGnQdVWRBRvgqNvDvWqzLRqg -PlpPbSbLFPLpFstsbqRqZMqWZqMWSDRzvq -sjtjHCwJwlHfdfjccmmLLQ -tGMtLHQGWzLHFVQtVfQtMWtbgrZNbdfSbccggrcTjTrfbm -swRChnwqhBCCCmSjcNSdcd -vnlnqDRlsRnJJqswJvGMFVMMdWtpVJFMQQFL -ffcHLzGmfvqqfWfF -rJrrRSPCPMCrPRQMNNWJQjJCnqFVVVTStqVnSBdqppBVtpqd -jNQQPjQMCRQwwQbRQbjMgwbNhwWZHHmzmlchlHHHDcLmWzhD -JzvrRHHJvCRZFPFnPgsQVVQNzQTQDttVsB -GSMjpqdbGNppBtDhPN -MbmqMwGbZPmPHJmv -ggVSVWzCNbbNCbRM -DfVhVsVQcQDmpmQTTQLjPjMjbDGNlbRMlNGG -sftTFJJccnphcfncTsfBvwZvrzgzZzZvBrVnzq -qqlClBNSCNSRQMvdrwFvnBrr -GDfhDtszhhsThpTDzsfpprMrFvQvrnnfvQrwHFbfFH -VtggWhpsmGVTGJWMjWjNjPWjLL -NSnShnjsswSsRPNsrnwcwMHfFwGqbvqCbFfg -LDJtzzmgVVlvqGbzvFfzff -mlJmQQpmJpZpBJJdjBNhrnnRdTTgNN -RtRRvbhDFPHHlhtPhRvPRtqjmzqzzwLjHQHLLLQVmVjq -WNNBBZfgfWnqVQwNqzmQcm -MZGfzSrTTnWrrWsTWnfSGbGllPCbGlJRvlPllCtt -phgcNfqgfpZsjjpdsS -brHHnWPbDPDbTPlDJJvJJPrMVVzRSdFzwdZZzFnsdzzVdVZs -SbStvJMDQgNmmtgg -lzDMDhfFRlfMFTfMGPMbFTlMpBHrmpjjCFjmBmrqBjtCmjjq -VvVswLLHZnJJwdndNsSSNBpCpjqjmNgrmCNtmmqm -nHcZWcSVsScTDlPPlTPb -DFMQSlMDpSpFDtDFccHvmqzvbHZjJmvzmmQH -CSgffrPssdgqRbqzzRqZ -dsdsfGsrBPsTVcMctMVNNhtStW -MDWRDWpgDvWpNptvNMnJCHJHMwHCndJfZn -blcrqTFmmcbhLTTTmlBZbjBJdBfBnCbQBdfn -TzlnhcnzTmhLRvSDsRzDPzWR -nwmmPnnPDjclhhjfFzzzwqbFFNHwVqVq -vSQrbpWCvMWQQWQMLgFJVHqzBzJVNqzBFL -CvCvQtWWQmcbtntPcb -qzvtzCCtLsLLzmQCHqpSsHSmfrnNrTrNWWMNGnWZTMZGBvWn -PglVFJwPhbcghVTBpBnWWhWnTMhB -FgjcJccVpwDcwFgVDsqzddqLqSDSCQQL -PLHsSVGGPvSLTffjMJWJJBjfBL -gNhwgTqDcqwpDqNhFpDFhFWfnndjcMJjMWzzBtntJBnW -DFhhQRRwbCbwRQChppmTHCVGTlslrsvrrSVZ -hHnRfSMmsSVrFvQqrmDPgr -jjcBzjZLpWccJLczBjZjWGwCnNzDvrgPCgQvFggvqrQFnr -jtZGpLwjWBpBWcfMTttfbHRnHTbT -swSHffFTVrJlHFSWrTpMZMPhMNBqBhTvhhqZ -bQbLQGGjQLdRCcQjGZBzpzBZqMBBBVdBqh -RjQDQGmgmVVbVcjjmjgcnWtJfrwsfrtHlwswnfHSFw -bVHbbMFDcbDbcmbbHVRbMRFgzSmdzSSTBtTjBdQTzlSldQjT -nqpqCMwJffqQSzTBQlqd -wvJhnnfrfsJrCNffvspRrPPFMbPMRRPPMZgZHR -FnJZnssHvMdJWJpW -mlDlllGrSGmttwlGvZgrzZNWgggzTzdT -bCltZCthtRcbcFbjFL -JGmHrJwGzzpllRZdzZLRcW -htbPSbVtFbbgjhffgPSfTVSDcHDDDLWscRdsZjdZcRssWc -vhfFbFvVHbtTVgFPhmJBCvBNrqBBrGCqQB -BcNQcvcBchSQNccLLvhTqbJZTrHrrrzzqTZMZMFZ -tpHDsnDRslllCCHtwnpsfjRgrJrVMfMmMrFrzVJFzrVZbZrr -tnDpjCwPLNSPdhPH -qnjvvBwBhSSFPgDQLVVDqgLr -WbszTbHTbsbHJWHLLMVZmJPQDrvmZL -ctlRbtCWWtvlSfjljjhBnBNB -TsnvssDDQlRbzMzjDMqHwq -tSGjZCfFZtCFLtVGWGZFbcqwHbhWdbzbwHbdwbdw -ZGBFJFZVBLjStZPBBZLRvlmsPTvsgrrnrTllvs -PgQdNsQFsdNwWqQBsQrTrTLpbrnTpGngnbTG -hCzzMJVDmfzmBDMCfSfhTMGcnpnTcjGrpjbMGjbL -CVVfvCflSHNHvPdBHW -DwlMjMNjStgmthMghg -PTlpHnJJTcZvTTbHZWZTvpqdHhmLgrgdfrhLLsmshmsLts -vncqTbPqcpCnbCPvccZbDBCGzzNBwjDlVVGFjjVR -QsdGGCztZVRddPgndf -DrNNBbwNHNwlbjFbbCNjNwDWWDPPVfDMgfmVMfnMWmmP -rvJBbbBNcLCtJZQL -NfLlqLhbNPddLPqLhpgHwFFwFHHTwRHWwPFTrT -MSMSCnjBnBjCscjVDVljTvHmmWnrwTrwFTrvTWTT -JCMMBzDMJcZZCjDzSBDNJgdfdQlqlLNdhgGLhp diff --git a/day3/solution.nim b/day3/solution.nim deleted file mode 100644 index 6df88f2..0000000 --- a/day3/solution.nim +++ /dev/null @@ -1,47 +0,0 @@ -import std/strutils -import std/sequtils -import std/sets - -proc Points(c: char): int = - if c.isLowerAscii(): - return ord(c) - ord('a') + 1 - else: - return ord(c) - ord('A') + 27 - -proc part1(content: seq[string]): int = - let ruckshacks = map( content, - proc(line: string): tuple[first: string, second: string] = - let pivot = int(line.len()/2) - (line[0 .. pivot-1], line[pivot .. ^1]) - ) - - var score = 0 - for ruckshack in ruckshacks: - let - uniqFirst = toHashSet(ruckshack.first) - uniqSecond = toHashSet(ruckshack.second) - - var c = toSeq(uniqFirst * uniqSecond)[0] - score += Points(c) - - return score - -proc part2(content: seq[string]): int = - assert(content.len() mod 3 == 0) - - let ruckshacks = content - var score = 0 - for i in countup(0, ruckshacks.len()-1, 3): - let - uniqFirst = toHashSet(ruckshacks[i]) - uniqSecond = toHashSet(ruckshacks[i+1]) - uniqThird = toHashSet(ruckshacks[i+2]) - - var c = toSeq(uniqFirst * uniqSecond * uniqThird)[0] - score += Points(c) - - return score - -let content = readFile("./input.txt").strip().split("\n") -echo part1(content) -echo part2(content) -- cgit v1.2.3