diff --git a/inputs/day2.txt b/inputs/day2.txt new file mode 100644 index 0000000..94e4cac --- /dev/null +++ b/inputs/day2.txt @@ -0,0 +1,2500 @@ +A Y +A Y +B X +A Y +C Y +B Y +B Z +B Y +A X +B X +C Z +B Y +B Y +B Y +B Y +C X +A Z +B X +A Y +A Y +B Y +A X +C X +B Y +A Y +B Y +C X +A Z +B Y +A X +A Y +B Y +A Y +A X +B Y +B Y +B Y +B X +A X +C Y +A X +C Z +B Z +A Z +A Z +C X +A X +A X +B Y +B Y +C Y +B Y +B X +B Y +B Y +B X +C X +A X +A X +A Z +C X +A Z +A X +B Y +B Y +A Y +A Z +B Y +B X +B Y +B Y +B X +C Z +A X +B X +B X +A Y +B X +C Z +B Y +A X +C Z +A Y +B Y +B Y +A X +A Z +B Y +B Y +A Z +A Z +B Y +A X +A Z +C Y +A X +B Y +C X +A X +B Y +A X +A Z +C X +A Y +A X +B X +A X +B Z +B X +B Y +A X +A Y +B Y +B Z +C X +B X +A X +C Z +C Y +A Y +B Y +A X +B Y +C Y +B Y +C Y +B Y +C Z +C X +A Y +B Y +B X +A X +A X +A Y +A Y +B Y +A Z +B Y +A X +C X +B Y +B X +C X +A Y +B Z +B Y +B X +B Y +B Y +C Z +B X +B Z +A X +B Y +A X +B Y +C Z +A X +A Y +B Z +A X +B X +A Z +B Y +A Y +A X +B Y +C Z +B X +B Y +C X +B X +A X +C X +B X +B Y +B Z +B Y +B Y +A X +B Y +A X +A X +B X +A X +A X +B Y +B Y +B Y +C X +B Y +A Z +A X +B Y +A Y +A Z +B Y +A Z +C X +B Y +C X +B Y +B Y +A X +B Y +A X +B Y +B X +B Y +B Y +B Z +B Y +A Y +A X +A X +A X +C Z +A Y +A X +C Y +A X +B Z +B Y +B Y +B Y +A Z +B Y +B X +A Z +B Y +A Y +B Y +A Z +B Y +A X +B Z +A Z +C X +B Y +B Y +B Y +B X +A X +B X +A Y +B X +B Y +B Y +A X +B Y +B Z +B Y +B Y +B X +B X +C Z +A Y +B Y +B Y +B Y +B X +A X +B X +A Y +A Z +A Z +A Z +A X +A Y +B Y +C Y +A Z +A Z +A Z +C X +A X +C X +A Z +B X +A Y +B Y +A Z +B Y +B X +C Y +A Z +A X +C X +C X +C X +B Y +A X +A Y +C X +B Y +C Z +B Y +B Y +A Y +B Y +A Y +B Y +B Y +B X +A X +A X +A Z +A Y +B X +B Y +A Z +C X +A Y +A X +B Y +B Y +B X +A Z +B Y +A X +A X +B Y +A X +C X +A Z +A Z +B Y +A Z +A Y +A Y +A Y +B Y +A Y +A Z +A Y +A X +A Z +B Y +B Y +C X +B X +C Z +B X +A Z +C Y +B Y +A X +B Y +A Y +A X +B Y +B X +C Z +A Z +A Z +B Y +A Z +B Y +B Y +A X +A X +A X +B Z +A Y +B Z +A Y +C Y +A X +B X +A Y +B X +B Y +A X +A Y +A X +C X +C Z +B Y +A Y +B Y +B Z +A X +B Y +C Y +A Y +A Z +B Y +A X +A Z +A Y +B Y +B Y +A Z +C Z +B X +A Y +C Y +A X +A X +A X +B Y +C Z +A X +A X +B X +A X +A X +A Y +A X +C X +A X +A Y +B Z +A X +C X +A X +B X +A Y +A X +A X +A X +C Z +A X +A X +B X +B Y +A Y +A X +A Z +A Y +A Y +A Y +A Z +B X +A X +A X +A X +A Z +B Y +A X +A Y +B X +C X +B Y +A Z +A Z +A Z +B Z +B Y +A Z +A Z +A X +A Y +A X +A X +A X +A Y +A Z +B Y +A Z +B X +B X +A Y +A X +B X +B X +C Z +B X +A X +A Z +C X +A X +A X +B Z +A X +B X +A X +A X +A X +B Z +A Z +A Y +A Z +B Y +A X +A Y +A Y +B X +C Z +A X +A X +A X +B Y +B Y +A X +A X +B Y +A X +B X +A Y +C X +B X +B Y +C Z +B Y +A X +C Z +B Z +B Y +A Z +B X +B Y +B X +B Y +B Y +B Y +B X +B Y +A X +B Z +B Y +C X +B Y +C X +A Z +B X +A Z +A X +A Z +A Y +A X +A Z +B Y +B X +B X +B Y +B X +B X +B Z +B Z +B Y +A X +C X +B Y +B X +B X +C X +B X +B X +B Y +A Z +A Z +B Y +C Y +A Z +B Y +B Z +A Z +C Y +C X +A X +B Y +A Y +B X +B Y +B Z +A Y +A Z +A X +A X +C X +B Z +A Y +A Z +B Y +A Y +A Z +B Y +A Z +C Z +B Y +A X +A Z +B Y +B Y +A Y +A X +C Z +B Y +B X +A X +C Z +B Y +B Y +B Z +B Y +A Y +B Y +A Z +C Z +B Y +B X +B Z +B X +A X +A Y +A Z +A Z +A X +A X +B Y +B X +A Z +A X +B Y +B Y +B X +A Y +B Y +C Y +B Y +A X +B Y +B X +B Z +A X +B Y +B Y +A X +A X +A X +C X +B X +A Z +B X +C X +B Y +A Y +B Y +C X +B Y +B Y +B X +A X +A X +A X +A X +B Y +B Y +B Z +A Z +A Z +A Z +A Y +B X +A Y +B Y +C Z +C X +B Y +B Y +B Y +B Y +A X +A X +A Z +C Y +B X +A Y +B Y +B Y +C Z +B X +A X +A X +A Z +C X +B Y +B X +C Z +B X +A Y +B X +B X +B Z +C X +A Z +B Y +B X +B Y +B Y +A X +B Y +A X +A X +A Y +A Z +B Z +B Y +A Y +A Y +C Z +A Y +A X +B Y +B Y +C Z +B Y +A X +B X +A X +B Y +A X +A Z +B Z +B Y +A X +C X +A X +A X +B Y +A Y +A X +A Z +B Y +C Z +C X +A X +B X +B X +B Y +B X +B Y +B Y +A Z +A Y +A Z +A X +B Y +B X +B Y +C X +B Z +B X +C X +B Y +A X +A Y +A Y +B X +A X +B Y +B X +A X +B X +B Y +C Y +A Z +C Z +B X +B X +B Y +A Z +C Y +B X +A Z +B Y +A Y +A Z +B Y +A X +A Y +C Z +B Y +A X +B Y +B X +A Y +B Y +C X +A Y +B Y +B Y +A X +C Z +B Y +B X +A X +B X +B Y +A X +B Y +B Y +B Z +A X +C Z +A Y +B X +A X +C X +B Z +B Y +A Z +B X +A Z +B Y +C Z +A X +B Y +B X +B Y +A X +B Y +A X +A Y +A Y +A X +B Y +A X +B Y +A X +A Y +A Y +C X +B X +B Y +A Z +B X +A X +B Y +A Y +B X +B Y +A Z +B X +B X +A Y +B Y +A Z +B X +B Y +A Y +A X +A X +B X +C Z +A Y +B Y +A Z +A Z +A Z +B Y +A Y +A X +A Z +B X +B Y +C Y +A X +A X +C X +A Z +B X +B Y +B X +B Y +B Y +B Y +A X +B Z +B Z +B Z +B Y +A X +A X +B Y +A Z +B Y +C Y +B X +B X +B X +B Y +B Y +A Y +A X +B X +A X +A Z +A Y +C Y +B Y +B Z +B Z +A Y +B Y +A Z +B X +B Y +B Y +B X +B X +B Y +A X +C Z +B Y +A X +A X +A Y +B X +B Y +A Z +A Y +B Y +A Y +A X +A Z +A Y +A X +A X +A Y +B X +A X +B Y +B Y +B X +B Y +B Y +B Y +A Y +B X +A X +C Y +A Y +B Y +C X +C X +B Y +B Z +A Z +A Y +B Y +B Y +A Y +B Z +A Z +A X +B Y +A X +C Z +B Y +B Y +A Z +A Y +B Y +A Z +B Y +A Z +A Y +A Z +C Y +A Z +A X +A X +A Z +A X +B Y +A Z +B X +A Y +B Y +A Z +B X +B Z +B X +A Y +A Y +B Y +A Z +A X +B X +A Z +A X +B Y +B X +C X +A Z +C X +C X +B Z +A X +B Y +A Y +A Y +A Z +B Y +C X +A Z +A X +A Y +A Z +A X +A Y +A Y +A X +C X +B Y +B Y +B Y +A Z +B Y +A Z +B Y +C X +B Y +A X +B X +B Y +C X +A Z +B Y +B Y +B Y +A X +C Z +A Z +B Z +A X +A X +A X +A X +B Z +A Y +B X +B Z +A X +B X +A Y +A Y +C Z +B Y +B Y +A X +C Y +B X +B Y +A Y +C Z +A X +B X +A Z +C Z +C Z +B X +A Z +A X +B Z +A Z +B Y +B X +B Y +A Z +A Y +B Y +B Z +A X +B Z +A Z +A Y +C Y +A X +B Y +C Y +A Z +A Z +B X +B X +C X +A Y +B X +B X +B Y +A Y +C Z +A Z +A Y +B X +B Y +B Y +A X +C X +B X +A X +A Z +B Y +B Y +A X +A Y +B Y +C Z +A X +A X +B Y +A Y +A X +C Z +B X +C Y +A X +A X +A Y +B X +B Y +A X +B Y +A Y +B Y +B Y +B Y +B X +C X +A Z +A Z +A X +C Y +A Y +C X +A Z +A X +A X +B Y +A X +A X +B X +B Y +A Y +B Y +A X +B X +B Y +B Y +B X +C X +A Z +B Y +A Y +A Z +B Y +B Y +B Z +B Z +A X +B Y +A Y +A Z +A Y +A X +A Z +B X +A X +B X +A Y +C X +C X +A X +B X +A X +C X +A X +A Z +A Y +B Y +C X +A Y +A Y +B Y +B X +B Y +B Y +A Z +A Y +A Z +C X +B Y +B Y +A X +A X +B Y +A X +B Z +B X +B Y +A X +A Z +B Y +A Y +B Y +A X +C Z +A Z +A Y +B Y +B Y +B Y +B X +A Z +A Y +A X +B X +A Y +B Y +A Y +B Y +A Z +A Z +B Y +B X +B Y +A Y +C Y +B Z +B Y +A Y +C X +A Y +B Y +B Y +B Y +B Y +A X +B X +A Z +B Y +A Y +B Z +C X +B Y +A X +B X +B Y +B Y +A Y +A X +A Y +C X +B Y +A Y +A X +B Y +C X +A Y +B X +C Z +B Y +B Y +C Z +A X +A X +A X +A X +B Y +A Z +A Z +B X +A Z +A Z +A X +C Y +A Z +B Y +B Y +A Z +A Z +C Z +B Y +B X +C Z +C Z +B Y +B X +A Z +B X +C Z +C X +B Z +A Y +C Z +B Y +B Y +A Z +B Y +C X +C Y +B Y +C X +A X +A X +B Z +A Y +B Z +B Y +A X +B Z +A X +C X +B Y +A Y +A X +A X +B X +A X +A Y +A Y +B Y +B Z +B Y +A X +A Z +B Y +A Y +B Y +C Y +A X +B X +A X +B Y +A X +A X +B X +B Y +A Z +A Y +A X +C X +B X +C X +B Y +A X +B Y +A Z +A Z +C X +A Z +B Y +A Y +B Y +C X +B Y +B Z +A X +B Y +B X +A Z +B Z +B Y +A X +A Y +A Z +A Y +B Z +A X +A Y +A Z +A Y +C X +B Y +C Z +B Y +B Z +B X +B Y +A Z +C X +C Z +A Y +A Z +B Y +B X +B Y +B X +B X +A Y +A X +B X +B Y +A X +A X +B X +B Y +C X +A Y +C Y +A Z +C X +A Y +A Z +A Y +A X +A Z +B Y +C X +B Y +A Z +A Y +B Y +B Y +B X +B Y +C Z +A X +B X +A X +A X +A X +B Y +A X +B Z +B X +B Y +B Y +A X +B Z +A X +A Y +B Y +A X +B X +B Y +B X +A Z +A X +B Y +C X +B Y +A Z +B X +B Y +A Y +B X +A X +A X +A Y +A Y +B X +B Y +B Y +A X +A Y +B Y +A X +A X +A X +B X +B Y +A Y +A X +B Y +A X +B X +B Y +B Y +A Z +B X +B Y +B Z +A X +B X +A Z +A X +A Y +A X +B Y +B Y +A X +B Z +A X +B Y +B Z +A Y +A Y +A Z +A Y +B Y +A Y +B Y +A X +C Z +A Y +B X +B X +A Y +A X +B Y +C X +B X +B Z +A Y +A Y +C X +A X +B X +A X +A X +A Y +C X +A X +B Z +C Z +B X +B Y +A Z +C X +A X +B Y +B Y +A Y +B Z +B Y +B Y +A X +A X +C Z +B Y +B Y +B Y +A Z +A Z +B X +A X +B Y +A X +B Z +A X +B Y +B X +B Y +B Y +B Y +B Y +B Z +B Y +A Z +A X +C X +B Y +B Y +A X +B Y +B Y +A Z +A Z +A Z +A Z +A X +A Z +B X +B Y +B X +C Y +A Y +C X +B X +C X +A Z +B Y +B Y +A Y +B X +B Y +A Y +A X +A X +B Y +B X +A Y +B Y +B Y +C Z +C X +B X +B Y +A Y +A Z +B Y +A X +C Z +B Y +A Y +B Y +B Z +A X +A Z +A Y +A X +A Z +B Z +A Z +B Y +A Y +A X +A Z +B Y +B Y +B Y +B Y +B Y +A Z +B Y +C X +B Y +A Y +B X +B X +B Y +B Y +C X +C X +B Y +A Y +B Y +B Y +B X +A Z +B Y +B Y +B Y +A X +B Y +A Z +B Y +A X +B Y +B Y +A Z +B Y +A Z +C Z +B X +B Y +A Y +C Z +B Y +B X +B Y +A Z +A Z +B Y +C X +B Y +A Y +B Z +B Y +B Y +B X +A Z +A X +B Y +A X +A X +B X +B Y +A Z +B Y +C Z +A Z +A X +C Z +B Y +B X +C X +A X +A Z +A X +B Y +B Y +B X +A Z +B Y +B Y +C Z +A X +B Y +B Y +B X +B Y +B Y +C X +B Z +B Y +A X +B X +B X +B Y +A X +A Z +B Y +A X +A Z +A X +B Y +C Z +C X +C Z +A Z +B X +B Y +A X +B Z +A Y +A Z +A Z +A Z +A X +C Y +A X +B X +A Y +C Z +A X +B Y +B Y +A X +A Z +B Y +A Z +A X +A Z +B Y +A Y +B Y +A Y +C Y +B X +A Y +B Y +A X +B X +B Y +A Y +B Y +C Y +C X +B Y +B Y +B Z +B X +A Y +B Y +B Y +A X +C Y +C X +A X +B Y +B Y +B X +A X +B X +B Y +B Y +C X +B Y +B X +B X +A X +A X +B Y +B Y +B Y +B Y +B Y +C Z +A Y +B Y +C Z +B Y +C X +B Z +B Y +A X +A Z +B Y +A Y +A X +B Y +B Z +A X +C Y +B Y +B Y +A Z +A Y +B X +B Y +B Y +B Y +A Y +C Y +B X +B Y +B Y +B Y +B Y +B Y +A Y +B Y +A Z +B X +A Y +B X +B Y +B Y +A Z +B Z +B Y +C Y +A X +A Z +A X +B Y +C X +C Z +C Z +B Y +B Y +B Y +A Y +B X +B Y +C X +B Y +A Y +A Z +A X +A X +A Z +B Y +A Z +A X +B X +B Y +B Y +B Y +A Y +B Y +A Y +A Z +C Y +B X +C X +C X +A Y +B Y +A X +A X +A Y +A X +B Y +B Y +C X +B Y +C X +C X +C X +B Y +B X +B Z +A Y +C X +A Y +B Y +A Z +A Z +C Z +C X +A X +A X +A Z +B Y +C Z +B X +B Y +B Y +B Y +A Z +B Y +B X +B Y +B Y +A Z +A Z +B X +A X +B Z +A X +B Y +A Z +B Y +A Y +A X +B Y +B Y +C X +A X +B Y +C Y +B Y +B Y +A Y +A X +B X +B X +B Z +C X +B Y +B Y +C Y +B Y +A Y +B X +B Y +B X +A X +C X +C X +A X +A Y +A Y +B Y +A X +A X +B Y +A X +B Z +C X +B Y +A X +B Y +B Y +A Y +B Y +B Y +A X +B Z +B Y +B Y +A Z +B Z +B Z +B X +B Y +A Y +A Y +A X +B Y +A Y +B Y +A Z +B Y +A X +C Z +C Z +C X +B Y +B Z +B Z +C Z +B Z +B Y +C X +A Y +B Y +B Y +A X +C Z +A Y +A X +A Y +C X +A X +B X +C X +A Z +B Y +A X +A X +B Y +B Y +A X +B Y +A Z +A X +C X +B Y +C Z +B X +B Y +C Z +A X +B Z +A Y +A Y +B Y +C X +C Z +A X +A X +A Y +A Y +A Y +B Y +A X +A X +B Z +C Y +A Y +B Y +B Y +B Y +A X +A X +C Z +B Y +B Y +A X +B Y +B Y +A Y +A X +A Z +A Z +A Z +B X +A X +B Y +C Y +B Y +C Y +B X +A Y +C Z +A Y +B Y +A X +C X +A X +B Y +C X +A X +A X +B X +A Z +B X +C Z +A X +B X +A Y +C Y +C X +A X +A Y +A X +A X +B Y +A Z +A X +A Z +A Y +B Y +A Y +A X +B Y +A Y +A X +A X +B X +B Z +B Y +B X +C X +A Z +C X +B Y +A Y +B X +A Z +B Y +A Y +B Y +C X +B Y +B Y +C Z +B Z +B Y +A Z +A Y +B X +A X +A Z +A X +A Y +B X +A Z +A Y +A X +A X +B X +B Y +A X +C X +C Z +B Y +C X +B Y +A X +A X +B X +A X +A Z +B X +B Y +C X +B Y +B Y +A Z +A Y +A X +B X +A Z +A Y +C Z +A X +A X +A Z +C X +B Y +A Z +A Y +B Y +A Y +B X +B Y +C Y +B Y +C X +B Y +B Y +B Y +B X +C X +A X +B Y +B X +B X +B Y +A Z +B Y +A X +A X +A X +A X +C Y +A Z +A Y +C X +B X +A X +B Y +C X +C Z +B Y +A Z +B Z +B Y +B Y +A Y +B X +B Y +C X +B Y +A Y +B Z +A Z +A X +A X +A Y +C X +B Y +A Y +B X +B X +B Y +B Y +A Z +A Y +A Z +B Y +A Y +A X +B Y +C X +A X +B Y +A Y +A X +B Y +B Y +C Y +A X +A Z +A Y +B Y +B X +B X +B Y +A X +B Y +B X +A Y +B X +B Y +B Y +B Y +A Z +B Y +B Z +C X +A Z +B Y +B Y +C Y +A Y +B X +B Z +B X +A Z +B Y +B X +A Y +B X +B Z +A Z +C X +B X +B X +B Z +B Y +B Y +A Y +A Y +A Y +A Y +B Y +B Z +C X +A X +B Y +B X +A Y +C Z +B Y +A X +A Z +C X +A Z +A Z +C Y +B Y +A X +A X +C X +A Z +B Y +B Y +B Z +B Y +A X +C X +A X +A Z +A X +A X +A Y +C X +A Z +A X +C Y +A Y +C X +B Y +B Y +A X +B Y +A X +B Y +C X +B X +A X +A Z +A X +B Y +A Y +B Y +C X +B X +C Z +B Y +B Y +B Y +A X +B Y +A Y +A Z +C Z +A Y +B Y +C Y +C Z +A X +A Y +B Y +A Y +B X +C X +C Z +B X +A Z +A Z +B Y +A Y +A Z +B Z +C X +A Z +C X +B X +B Y +A Y +B X +A Z +A Y +A X +A X +B Y +A Y +C X +B Y +A X +B Z +B X +B Y +A Y +B Y +B X +A Z +A X +A X +B Y +A Z +B X +A Y +C Z +A Y +A X +B Y +B X +A Z +C Z +B X +A Z +A Y +A Z +B Y +B Y +C X +B Y +A Y +A Y +A Y +A X +B Y +B Y +A Z +A X +B X +A X +B Y +B Y +A Y +A Y +A X +B Y +B Y +B Y +C Z +B Y +A X +C X +A X +C X +B X +A X +A X +B Y +B Y +A X +B Y +B Y +A X +A Z +A Y +B Y +A X +C Y +C X +B Y +B X +B Y +B Z +B Y +A Y +B Y +A Z +C Z +A Y +A Y +B Y +B Y +A X +B Y +B Y +A Y +B Y +B Y +A X +A Z +A Z +A Y +B Y +A X +A Z +B Y +A X +B X +C Y +A X +A Y +B X +A X +A Y +A Z +C X +A X +A X +B Y +B Y +B Y +A X +A Z +A X +B Y +B Y +C Y +C Z +B Y +B Y +B Y +C X +B Y +A Z +A X +B X +B Y +C Z +A Z +A Z +B Y +A Z +A X +A Z +B Y +A X +C X +B X +A Y +B Y +C Y +A X +A X +B Y +A Z +A X +A X +A Y +A Y +A Y +B Y +A Y \ No newline at end of file diff --git a/inputs/day3.txt b/inputs/day3.txt new file mode 100644 index 0000000..d0ad78f --- /dev/null +++ b/inputs/day3.txt @@ -0,0 +1,300 @@ +PcPlnShmrLmBnmcwBhrmcmbHNGFGpwdFFwGNjNbGqNHH +tzQfRJfWZZztWzVtCTfRzFZjpFjNZjGLHbdHLDdjpb +CCQTzRLzvQVVfRzJfMPsnBlglgPmBgPmvSrl +RMfvbbszHTsssFPzDQPggpQJPQ +NSNcqVtLVGgDlpQBClVB +hmStGNNLhjNrpWLGSjWrZssbZTMMvTfMnThbRRTs +fTrTPGTbfftWBBmLjrJL +DqHwVMqVplDslmlZmpHVwNnShWZFdBBdjWBtWtdtWJSSLS +MNslpDvVHlwsmpQRgQgCfTTcvcRQ +pBBhRgDsMsswprBhvgRglZtFGFFRqZtZmRtNqtZPPN +TdmmzzmdZdqdGFtF +nmSccCVmSCpDCswMwl +NptqDsQtDTQzCvlzCpRlRp +jmZcndmjbZcjrmDvFMFFlwCvzFnF +jjgLVLrGcdDBNhWQTgHg +mLVhhfSMSTmMwClHGdpjDHjGdV +zPrZgJCgbsnrPtZzsCsbpRDjBRHnjGDRldRHppcG +JJrbsFrZqrgWbbqbrgWzJPNTwhTNCmmvfWCShhhmwwfm +ftgfljvgfgBTNvtggFDDGLGRDnMDzcQzncGt +VdbpbVdZwdwrsVVLRrMrDLDBGnBGcM +wmpWwWsHWBCCCPPvjvmSqlfTTmSNgN +jSqmzmmSSDRjLMLDwqjNcMMLTTflffWCCsRsTHnHVrfHWTsr +tdbgZpgBPdgGZGGFTHVpCsCVfVsJpnWl +FnPQFvbvhFFFbvBwScjhzcqSLLSzSN +bWdgrWwwFWbgzFWzrmNbdPqttChMSRnmqSPSnqtMRM +lcPJLDDPPfpMBCRJBtQtMh +lGDGjTGLLDHPPGjlPTsswsbHNFsNrFNFsrzr +VmtHfVhBLHVtlhphjZMdnQQZZqZmQDdzQQ +CPFwPWrvWgrfNgFPCMqZzMDDbznFTqqzDQ +NNPsfffPCsBLjpVltV +ssdBBJqJhlTJLsjTJqFFmnmmnnrcmpprmmmPcRlf +gqtqzSgWQWqmnRPPcNmmQM +GqbSVtGzvgvgWbZjjBhTdhBsTZBJBZ +jhNBsPDzLjsVhLSNzgvcvbcwbBWFcgtWCc +ZQQTTHHnGpMtnpdHpQJfMgrvWWFqbcWWGgrgwCCwwF +nHpmMnQQMmHpRnHRmMJnnTShPzljzjSNmSDhLsNSPtSh +GdqnBGFdlqzFnwdSCQZjZLLDZjZRvZLDVvgQ +PsptsTcftMfcTfhTghVDvvjnRNjVZnvV +WtPfJTfftJcMTrMnpccFwlCSCGFGCbCwJSbqBl +GjFLGhjRwFjNSjSdJCBBdQJddbBc +MVvMMHRzVtHlvlcQBQJHqdpQqCBC +vDgVztvvmrgrVRrMmsrsmZzZnWhGnNhGWTLfnLwTLhLTjngL +VljjQJSsrjjrCglsCjsgjVVfDLdZGMdvvGdQMzmvzcDQMc +HqPBtcpRWwtHbbFwBHZfmfpDfvffDfMfmGvM +PwHNbcwtqFqnwtNNqPNPPWBTThjhhVTCSJTThssVnSlJJV +GCccNCrrnCrpnzrnCDPcDDrvHHTBqTPhswqhPTBTTwBhTj +VfNmRtZgWWHdBdswdjZv +SmtQfgNmVFgVLVLVmrnMpcDLGCGLGDMpCp +CrdZdZmPPjrQdRPRDqDLBqBLBSWgWgLDzF +sQhTNphsVbhhhMJfhNVGqltVSzSllBzStlzFFFWB +hsMpwQhNMZmPmrwHRj +cNVpSVRpLHRLsVWWfnfsCshW +jvqjTgqZPlJZmbPPfbpswsPb +vlqdTZdtJvqdZjgqZrtRpQFtLFRQczHGzt +JJQndVQnQgTfNvGf +ljpbWbmNbDlGTvggGvZf +mpmRbMmmNDFDmScpzCsdzrnJrsCzrrnM +tNFtNFFzzjjzjBtVNZVbjZGlpSvTllpWwvnBlWGGBGCC +fPdcrrgPHrHMMMWlppGJSPwGSnGv +fmrqrhhfhdRddHrhQqQrfnLZjLtNttZjjRtzjFtRNj +sphRcpQRhfmnmfpptg +WVPlGLlSjCjSlGSHJJWZdmbmfvPmmnftbbgDdt +LJjjqVNjlnCTRcRhhsNcFF +vwwqttFjwgClRNCCvGNmZZMmJsPJjJpTdMpsZd +fBLVHHHrFnhHhnrVSTmfdPdPccTTPsMfsJ +QzVWzznzFbWNGNlt +vjMddVVmnWpdMndjvhhWfNLpfBsfLLZLBBSqqTZq +RFlrzQJPSRGzzzzgBZNsgBZTBflfgf +cQFDRHFDDGCJShCnvwVnnhCn +hgjlpRRLlPJJhTLJMDnwBndSPBNvMqnN +FGWVfZsmCbmVzrvtwCSMtMdnDMCw +VsVmVZfVQDmVFrrmzmGrHHTJgJjhHJcllglLQJRL +rrTVcTBgsjTffmfWHZTv +JLdnDlpGlGSLlpwJpHZfFvRZnWzWrHWqFH +wQDpDrdSlSCblCdwdSLlwQGBthPMsghNsVNVtCNNhNPjhs +CtCMvNhDMHfDDdffqtDtCflpJlBpvmWWJWwlpwFFvjwB +rGSbVGZrSsFJjlmBFZWp +rbbQgzVGrFVSPPGqfhftfqztNtqHtt +lMGZCGphllZDNshNNmHHND +PLwjVwJVsHmRrZZw +ffSdzjfZSjtjSjLtLLFFFGqFzznCpCnCBblQ +CqRnlzHCRWTlHPTZVQrcQtFsQFTcrQ +DfJcdBDBcftQjsrsBtjZ +JDfdGhSvNGhNfffGSfRznPvcRWcqCqmlvlcn +JPhBBBQCnCJCMhnhMZRrRZgbDgrWrNbglDgR +jLtSTwtsShwRNpRWrh +FLLSHsjGLGczvfPfJdfhddnHPC +BjHBNrWmTjFgJngbJhWd +vsGttMDtwCMQCJnqqqFJsggqdg +GFtDSwwMpTrzSSfcfm +rnWDQvpwWpDDcPjFPPHZjVDZ +CTJCRmCJcZZZHCCQ +LdlmdQJNpnLWbrfL +VdTdcVTZwCRGVGGMVmttlF +gnrsbngfgQSpBfpMBBBpSgMNNJbmGmlqGDqDNlFFJlGNFz +gprgQhgpMMMPsrRTCdPZwCwZZCRH +cHlCVGbbWHWqRNThhcNcmh +MwQDzpwdJwpBpPDQvrhShfLTTRLfLdjfNRqS +JwMBBrPsPDwQMDPPBPQJwMrvWHFbHHlgbsGnnWHnFnRGlblF +PQPjPDjRRQSFLSlgSmLlfh +zpLdBddbNCdqGbWJGWpJWWlsFsmmFpwfflFgfHwFhgmh +nJLdLVnzqqbjRctcPDQVTP +JdztScztPdSWLJLtgMbCjhvlbPRbjbMvCh +VZrqfQcFQwGVVFqfrTFTNqhljRHDMvMMGhRDRRHGbDhG +NZQNVQQpQmrZFQQFwQQVVZgBszJJgznstnmtcztdBSgs +nFHLNJzFbLJGGLMlTTRZbZRhWRTr +wVmgBBmtmwlqlWTwTM +sdvmgcPsCPPQQSMz +SccCqmQmgBmppLQmpSMjjlJzzsNPMDRbPNPlJM +VHZvwtZwhZHtdTwrVbNsljlRDlJPDhzsbN +dZwftVRftmcgpBCmBf +NTTlVlgNSflqbphFFhNbFp +wmmLmjwzwbWGLjRmtZZdhZLFtQQLQBFh +RvjbMjjvMzMWbDWwvzPjvmWSfVfsTlVVPVgTgPfVsnnnsJ +BsBsZHZNdWwsNdrzgCrMMqsjzzMC +flfhVWFmLrhQzCCh +fVbmFSpnSSmtnPZvdWbwvdvdHZ +NsZWWWWLsBZPhfsLmPhcFCCHCMMrqfqcvHMfHH +nThSllnplGlMpvFRcCqrrr +DnTwSztgzlDnVGTwztmdZhmLdJdNDshBdsWs +RBBGTFZGglMHvrtcgSdnNgjg +DmVcbmbJmwJDJzVVwzJfmfstnztvjnNjvNSpdptvzCnpjj +DsLcfLmbhVQssQJQscWRPBZZMMRLHFHZBGMG +FVvhVnhFnFhmvFhVcMBHLgcPClrqqrtqCppldrRRTppldg +QLWfDNwsQLtlrrCtDdpq +sJwZwLsGJWGGwzzWZNbWNLjQHSVhvHSnhcMFcbVmnvcchSBS +jTMNMrHBJWWDffRqfDBqfD +QmSFphtQqQmVmqVnPnPlpwgfnRnDPl +VqFmLFbLhmZhGFGmCmGtZLtJWzWHcJrNrHMccjMscMHzMZ +hGPGmbfPzbPfgdMdWGqBGQcqpp +nvFTvDrTdNZZlrjnMHHHpBBcppqq +rNlZZNLvRdRCRFFwZwhgbmSJPSmPfhfwhS +vjdbFWTtFRRvtvZZvdWJWbGjLhCcnrrrNqLNCPqchShNqc +QHQVlDsMfmmDMHDBdLdCSLnhNLNNfqCd +VQHsMDpHlzMBBwlsmMzmmlVwptvTWdvJdbvJtRTWgGFJJGtR +nSScBcnbbFSQVdBFBtWpwtvtPbTZthtTvT +pRzHpGjCDGzHGCGsThqqwZwPhCtvhTqZ +NzlzjDDpNldBFrlfFQ +qJlDlPPWppgppqPlplpfdvgnbMfGbdgCghMdCM +QWTWZcSsWbvVvTnhfC +tRFLwZrcrWzzlJmtBqlm +HMNMvvzzNcmfNmfbhs +qVcwCgjCLtWRSLsTPbmPfmTh +RtWCJgddWRtCJdWWgdBjwWWwpzMFpHGprcBGFFnGHQZHQGpF +gZgBDgDVGDGjmDZRtgjvVvtQdnLrcRcrdfdfCcnlscsJsn +WTqzqHqNzpHpwzNhMHNwWPbQCQcCLsnCrLLfcrffNflcNn +zHTwwpTPzTTwlFTFzwqzPbwZGgGZZBtmGGvGmBGZVFStFZ +znlSSzfzTcmmfcCt +PHWWGpqgPShPMwGwqJFTVtwtCVTCmTJcFc +qHqqSggLrRLBbvDDdndzRQ +WBddBQWZWWQqqQFMWfmrWsJnmVJJNDDVJGsLmHmLDN +PTgCjvCCPPPzSZGJVLsVZCHHnH +pzwtPTvzTjRTPtwSjPSzRgBbWMBfMwwZfbWrMrZFqFFM +BqDwVqdqlDlblQMf +ZcCWWcWzvJZjcPjZZZfTHfQJQHThqpMbQQJf +LPCcZcczZLgCjvPWgvstjsjmRRBdmGrdGdmSFGnFrtGmqr +CBvgQssVzfCBQSgvvvfmrlGrCtMGwthJlJtbrh +TpLqLRFpqdRpRTfNPtRmrMMtMlMMmlMJlt +PZTjqFFTHZZNZpqcVWzVvgzcWnSWfBDD +SVSTpgpVpdNbpcVdfjcNfbcJnqsltcJPvRJqRwQqlQsJls +zhWzDLmFHhmrWZmmzHJJQlnswqsvttrstQqs +zGtZFGGCmZmGGFhLBWBGGFdgVjgppMTSTgMfCNfVVSdj +CzjNJGcnzQJltPHttcPHTP +bLVsqLbLmSSVrqmdhVSmsVFFprfrFWrwTTWWWZpFPtlP +ssDsMqLqhvmvhdmdvzRCnQgRzzBjgnlNCM +TzTLzzSGRlRSjWzlWRzHGTpNhPhJPmdnNPPbhlbPbdhfPh +mBCDBVrCqVQvQMBcVcqBrBDsbtJfnZNbJndNNhthZNJfPZPs +wMCrqVvBzmzHTGLw +NbfwfZPPdVNPdBdQBcmQzrQz +nnWqHLWGFMDFDLDjsqnHLsrQGzmJczmQrgJmJGZmQrgJ +FFWRsHMHCZCWFwRwphpvlfTTpp +PclPlVZvLDNvVZSLSMvvDttmtfzFtzHqtqtzzccCFc +jrggQGhjQsTDbrbJjJQqzzCsdtzzFCdHqmBBHz +WGDgngwrQggZMNvMWPMRRV +wNgpMdMMcdSscccNcLLTbtQJtQJQltJwFtlBlzBt +HHGhrLrCvHWHCPhrWDtnBllnQbfQftGnfnBF +HvLjWCLHPZvHHHZjjrqVTTZVcppMgNNNNSpS +QQrwQmvWQjgTfvBjfffrSDcrqSqDDVLctqqcVd +GnHFnGhGplGMlHMNhzBzlLPLVcVNCPDqVNdcqLdqtV +GnMGpslMhGsRzzHzGsZFZQJTTmWfBbvfgfgJRfbwbW +MRCtSwMhvjCGtvMZDVWpVZJlVccNDlpb +gdLQFFwwLfHJWnQlcJJbWc +rdqdmqHLTLmsswsFHLFtMPRMCSSRtSjTPMPSCR +jmCCnLCLZjZjRjQTLZQhGPGhhzHhDRGRDzwzwh +stlJlrlJJcSSfSMMzPfhhGhzpwhpNwhD +rbrbBcSlWmdZWjDnTm +PNBRNnnqQRNfVfRtVVzgFLLttpSwgzzzmFFF +fcWlcbvvCFzLbwLw +rlrMrhTJhDcTTfhRNqHRQPQRQNQB +TrprpprRVVfpRpVqTVpzDdvmvbbCchhcttqcthSMdd +JlnZnFlsMBZnJHlsLsCLbSNtbNhdbbShCScm +FlZjjsHHsnQFQwTDzMRRpGRR +wHWzwCTTqJhzzvJhWHWhqJWrFsFQrrrFCfFfgjjgjprfsp +DBRmZRtZLbnRBGSBmtGSLpjBrrsfrgsTQVrVrrPrgr +DLnbcbtLtmNNmbRcGbcGmHzlThNNhqJTHdvqvWlHJh +GSNqjRcqflNLnCTTWrWn +BmwQtmtJwPwmzMwQtHtVssvrnpWTTnsTTgpVCLCs +DBBQHJJrzhzQDDfSljRfhccfcdZf +wtgtChCwzqgLzjggqtHtjFHHFcnPfdRDfZZVcPfVZZfGnfdm +vBTrRTTWGGmcTDVD +SJMbbpWslJblSSNzNsztRChzqRCj +gBHHCtVCSHMQlfFTQqCfmq +WrpdwjbwbwQGlPqSqblP +wWDncWrDDNdWNRjScScjpzvHZtBMZtJsvLVgvzssBsvs +VppWpVfmZPBlnmrGBzhttMzMpctLLcChSh +FwgLJvRdHcwMzSzjzc +QvbgdQLQgDvsqvqRHRDdDQDBWmBGBflnVbZmZmmnBBWrmW +SqShwLFCQGpDHCtZCWpW +bdHPHjTbJdsMnPHPbdjgtnBlVlBnVgtZpDBpWV +bdmPcjbjMNMvvHbTcQRNfRwRwLffwwqwNF +zdRHTpQTQHQnpnnQRHTsNNlJSJWmzJmJllNmSG +FBbRvLbFRwLqbbVgBVqqLFqJtJNcltsSGmgmGtNtgWmstm +FLhhfvvVwvjqfLRBqLVqbwqZQrTTpHMHjdrpnnDPDQCdCrpC +JgjzvbJCWgbjgGbJWjRhgNPGHHBMtqBStZZsHMSsBqtD +cfQdwQFdQQppnVVnlFLLBsBZMhqPlPMMqBSHDtHM +wnQhcnVddmdWgjvjmvRjjJ +QpcRtndvsLcVJtRSzWSlWjzSbjjWBv +qGZPqCTmGPqgGTCqHgCqZCPFWbbBNBMNBbdBMlWWrbjlMbFl +qhHDGhCmPhZHgDmDVQthttRchLwLdwcc +srpPMwlMmsrGFGswvDRhRWRDJJJchJ +fSgBbCBNnBTTgCNLTCRJhRJVWhTcVVVFFJdR +SbBnnLNZCLFQCZjnCnZFjPrzqmlMmmsrpzrlsmtt +BBsfDfsBDSWRwlLqmWCpWcllrl +nQMgMnnnhdntgMBrCdpNNLNlNqLqLl +FnQFHzPQJjJGRBGvfR +lRnVRFFlgMCRVwLgFZRnZQHWdcftHdmcJHmmMdzzfz +DGBqGQbhhBDbSBpGDBzqdNHJdtmcWdqdmtcm +bjbsBvjhSlVsPRgLQl +dDLbRdTMRJMbFRzZBfzNSjtNBzBD +PmgspqqVrppTVrvrsPhhfQwZBwNjNtNffzqqfwwN +mCcmsngrPvpVTssCVsvsPLRRJllGFlnRGbMJMWWlJJ +fGlGZHRRbwgPbZRRNCdcSWpncnQtQWlWcWpW +JrTLJgVvVLQQvtSvQncQ +JrrrmMTBVTmjBMrVjrshmJzgCfzRPCRZPGHfbwNPzbZHNH +qqqlDDZzVVnNqHDDFFFNlQpzjrTvsvzTbgJQQggjJp +cWPWcCmMfCMWdtPMhMbQQQjGGjpdvjTbjgjr +WtMSBCtCwchChMfBWtcPnNVNqZZLDRNqTRnnlwHn +mvQQnhBvhmvBmncmZBclTZTQccRFNFFdqFFgVqSRrgFrppNR +MjzJPzGPfffMCjVVjfPHLCFRNFStqrdRSdqdNGRqNptq +HDJHPjDJLfjbzfwPjCzCWWTwlmQhBnsWBvVsvBvZ +RVjcshhscQhrVjhvzjVfDNnzGtftmDHFttFGGf +qLcBCCMBJJbTdBDnNtdfnmDG +WpZgLLclTclRwgjgsrwsvj +shhhltNPcDtlNcNMcsctNtppLZvWWFLTFFZpTZDQgFLT +dRgJVzRHbqnLpTWQvLLJfp +mCVCdzqHndbqHCrVqRrmbwtNBsmPwNmScPgtPhBclw +bDDZMDrFPsrsMcsrbJZJdMMGpSzpSbwRSSRGpCHCGzlhCC +BWWNQjBLQVHhlGpSCmwj +ffwnNwfgtnNgVVwfNWBWnFsMJTJTcPFJcTFDsrJstJ +vQbQLQBpBvbvpHplHNTHWGZDngntZCQGgZhGhtjG +rqccPPmcrffRmsmCjVgnrGChChDjgW +fqRJsJMSlSzSWTbT +brsjjJPJwrJJsrRRlllNQGWQpwppCtfGGtWzGGMQ +ncBqqLTDnmLgVDZVnBDmdtVVtMzWWdMCQdpQWdVz +hDZgTSSnTzNPNFSFPF +VZVJJtWTsfTVVWsJhPWrCjzSBJlHSmjJCRlNSSlz +CqMpwccgvvgLnvLbMMRRjBNHzjmGmwNHlmlN +gLqqvpCDfVDrTfVW +CNMDGNPPNJCGbLnTffsTLT +tcBBRlrBdQrtmtWFjjbnrTjjFbjr +cTQQhcmvcBRcwDMVDZZPPCJh +mBCdgPLgZmLfGmfvGhtRQJWjtjQGQhtN +pMwrVwbwHMsqcTWQhQWzggTTWp +nnSMwrlrsmSZgvvmDd +WNSzpCzNzqzNdmqrRHrrLHFrJH +MtPfvnGMPnMcbnRtDHTRFFDrmJRQ +PcBsfPPHPGGfcSzZjNjpNZZdCs +mDCZVLDhWVSDCRvGtsGgGRHl +JjPwPNdcPnjPdcwNltHzzGmgGJzQJJRQ +dqfjnNmwmbmWrZMbMrThhB +qtBpNZFpBGFNfZNPmZPmQmHrmPPPTz +LLwJLvDvlWWLHdwDrVcCRcDVzzVVcV +sMMwvgjnMvjvnlsvNFBqfGHFqHGjtSpS +MmZZsFgwJTdTMdgmZdZRgFhDHhPQPPnRPhCrHhnnrPDD +fBcLlNNpQCDLDJJC +jSbWWlWpBpclWlWpNWlVBbWVdgwswFJmFJsGtdMggZFGbZwd +CMVQVMLLMFGRCMWQttnqqwQwhqsm +pJzlczSpPpPgmsqNhmPGDstq +gZgTccZGGpzdpjclGRVMVRFRMFvHRLRdLf +FMWMSBtStZqZWQtFtScWWSZmHPVJJVHwwlTgmgbzQwbwTJ +jhGLhdjNjsLvLsshzHJPVdVmmbzHzdHJ +jvDRNjnDNGRCzjLzZZpqnrFBSccWrMcB +zggmthDDghHvtrdgrVWfSBRwTHLWHwsBWw +PGGjpCjQnJQGJcJnnQpjFWVSsZWVLRZLBcsWSZBRWS +FGQlpnJCbqqGGRCjjnlCqGMtdNmmmvdNmmmzvhbrmgMz +TstvBTdgBhqTsdTcPlfCSrNMrNnrCNNSNNgp +HwLQwQDZzDjnDbmMhNSnmm +FZLVzLLQHRRzwWHjdPlJctlJtlsllhRs +fBtPsMDDswHvBmmVdBlSBRcGGnhVhg +LWJbrpFqpTLTTjqqNWlhnRGGSnhrcSdlRlsh +JWNbbpjJzTbNNNJNJMvmvfZHvzDsHDCsZw +LPGnPNLtwGhFFnJPfsqpVVszzpsP +TcWdvlrcWddggrDBDDdDMmWzRJqfVQZqmsfZsRQzZfZzQJ +TldWrMrDdlDCDdMTcwSLVCSShLNSwHjhGF +JGsWWWQsJmPwQWbBPmccbcbqFfMMpFDVCDFVFVCDqqfFwD +ZtLnlvLnNtvLndnCmfMVSmVCClfpVp +zTzZtjnZNLNmZvdtznntHHZJbBRGBRQWcJGbGsbsJRPQWT +MLmlMTPtQtMNlhbqbbqhflBB +rcrvjpSvScbRbBvbDBPG +ZZJzSHpzPrJzHFmMVMFmHCLNtV diff --git a/src/bin/day2.rs b/src/bin/day2.rs new file mode 100644 index 0000000..d836249 --- /dev/null +++ b/src/bin/day2.rs @@ -0,0 +1,78 @@ +use std::error::Error; +use std::fs::File; +use std::io::{self, BufRead}; +use std::vec::Vec; + +fn calc_points(other: &str, me: &str) -> u32 { + match other { + "A" => match me { + "X" => 1 + 3, + "Y" => 2 + 6, + "Z" => 3 + 0, + _ => 0, + }, + "B" => match me { + "X" => 1 + 0, + "Y" => 2 + 3, + "Z" => 3 + 6, + _ => 0, + }, + "C" => match me { + "X" => 1 + 6, + "Y" => 2 + 0, + "Z" => 3 + 3, + _ => 0, + }, + _ => 0, + } +} + +fn calc_points2(other: &str, me: &str) -> u32 { + match other { + "A" => match me { + "X" => 3 + 0, + "Y" => 1 + 3, + "Z" => 2 + 6, + _ => 0, + }, + "B" => match me { + "X" => 1 + 0, + "Y" => 2 + 3, + "Z" => 3 + 6, + _ => 0, + }, + "C" => match me { + "X" => 2 + 0, + "Y" => 3 + 3, + "Z" => 1 + 6, + _ => 0, + }, + _ => 0, + } +} + +fn main() -> Result<(), Box> { + let file = File::open("inputs/day2.txt")?; + let lines = io::BufReader::new(file).lines().map(|l| l.unwrap()); + + let rounds: Vec<(String, String)> = lines + .map(|l| { + println!("line: {}", l); + let mut parts = l.split(" "); + ( + parts.next().unwrap().to_owned(), + parts.next().unwrap().to_owned(), + ) + }) + .collect(); + + let points = rounds.iter().fold(0, |p, r| p + calc_points(&r.0, &r.1)); + + println!("Answer Part1: {}", points); + + let points2 = rounds.iter().fold(0, |p, r| p + calc_points2(&r.0, &r.1)); + + println!("Answer Part2: {}", points2); + + Ok(()) +} diff --git a/src/bin/day3.rs b/src/bin/day3.rs new file mode 100644 index 0000000..c53e59c --- /dev/null +++ b/src/bin/day3.rs @@ -0,0 +1,68 @@ +use std::collections::HashSet; +use std::error::Error; +use std::fs::File; +use std::io::{self, BufRead}; +use std::vec::Vec; + +fn prio(c: &char) -> u32 { + if *c >= 'a' && *c <= 'z' { + 1 + *c as u32 - 'a' as u32 + } else if *c >= 'A' && *c <= 'Z' { + 27 + *c as u32 - 'A' as u32 + } else { + 0u32 + } +} + +fn main() -> Result<(), Box> { + let file = File::open("inputs/day3.txt")?; + let lines = io::BufReader::new(file).lines().map(|l| l.unwrap()); + + let backpacks: Vec<(HashSet, HashSet)> = lines + .map(|l| { + let middle = l.len() / 2; + let compartment1: HashSet = l[0..middle].chars().collect(); + let compartment2: HashSet = l[middle..].chars().collect(); + (compartment1, compartment2) + }) + .collect(); + + let mut answer1 = 0; + + for (comp1, comp2) in backpacks.iter() { + let in_both = comp1.intersection(&comp2).nth(0).unwrap(); + answer1 += prio(in_both); + } + + println!("Answer Part1: {}", answer1); + + let mut answer2 = 0; + for group in backpacks.chunks(3) { + let backpack1: HashSet = group[0] + .0 + .union(&group[0].1) + .map(|c| c.to_owned()) + .collect(); + let backpack2: HashSet = group[1] + .0 + .union(&group[1].1) + .map(|c| c.to_owned()) + .collect(); + let backpack3: HashSet = group[2] + .0 + .union(&group[2].1) + .map(|c| c.to_owned()) + .collect(); + + let in_both: HashSet = backpack1 + .intersection(&backpack2) + .map(|c| c.to_owned()) + .collect(); + let in_all = backpack3.intersection(&in_both).nth(0).unwrap(); + answer2 += prio(in_all); + } + + println!("Answer Part2: {}", answer2); + + Ok(()) +}