Added day 2 and 3, but didn't do them in rust like I wanted to.
This commit is contained in:
		
							
								
								
									
										2500
									
								
								2022/2/data.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2500
									
								
								2022/2/data.txt
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -8,6 +8,12 @@ enum RPS {
 | 
				
			|||||||
	Scissors,
 | 
						Scissors,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum Result {
 | 
				
			||||||
 | 
						Lose = 1,
 | 
				
			||||||
 | 
						Draw,
 | 
				
			||||||
 | 
						Win,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RPS ToRPS(char c)
 | 
					RPS ToRPS(char c)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if(c == 'A' || c == 'X')
 | 
						if(c == 'A' || c == 'X')
 | 
				
			||||||
@@ -46,6 +52,28 @@ bool Won(RPS us, RPS them)
 | 
				
			|||||||
	return false;
 | 
						return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RPS Which(RPS them, Result desired)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if(desired == Result::Draw)
 | 
				
			||||||
 | 
							return them; // same
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						switch(them)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						case RPS::Rock:
 | 
				
			||||||
 | 
							if(desired == Result::Lose)
 | 
				
			||||||
 | 
								return RPS::Scissors;
 | 
				
			||||||
 | 
							return RPS::Paper;
 | 
				
			||||||
 | 
						case RPS::Paper:
 | 
				
			||||||
 | 
							if(desired == Result::Lose)
 | 
				
			||||||
 | 
								return RPS::Rock;
 | 
				
			||||||
 | 
							return RPS::Scissors;
 | 
				
			||||||
 | 
						case RPS::Scissors:
 | 
				
			||||||
 | 
							if(desired == Result::Lose)
 | 
				
			||||||
 | 
								return RPS::Paper;
 | 
				
			||||||
 | 
							return RPS::Rock;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int Points(RPS us, RPS them)
 | 
					int Points(RPS us, RPS them)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int rtn = 0;
 | 
						int rtn = 0;
 | 
				
			||||||
@@ -73,16 +101,27 @@ int main()
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	unsigned long total = 0;
 | 
						unsigned long total = 0;
 | 
				
			||||||
 | 
						unsigned long new_total = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for(std::string line; std::getline(ifs, line); )
 | 
						for(std::string line; std::getline(ifs, line); )
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		char them = line[0];
 | 
							char them = line[0];
 | 
				
			||||||
		char us = line[2];
 | 
							char us = line[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Result r = Result::Lose;
 | 
				
			||||||
 | 
							if(us == 'Y')
 | 
				
			||||||
 | 
								r = Result::Draw;
 | 
				
			||||||
 | 
							else if(us == 'Z')
 | 
				
			||||||
 | 
								r = Result::Win;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							RPS todo = Which(ToRPS(them), r);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		total += Points(ToRPS(us), ToRPS(them));
 | 
							total += Points(ToRPS(us), ToRPS(them));
 | 
				
			||||||
 | 
							new_total += Points(todo, ToRPS(them));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	std::cout << "Total: " << total << std::endl;
 | 
						std::cout << "    Total: " <<     total << std::endl;
 | 
				
			||||||
 | 
						std::cout << "New Total: " << new_total << std::endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										300
									
								
								2022/3/data.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										300
									
								
								2022/3/data.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,300 @@
 | 
				
			|||||||
 | 
					vGFhvGvvSdfwqhqvmCPnlFPnCNPcCFcWcr
 | 
				
			||||||
 | 
					ZbWZDMgsTHsrNNLJcJnsJl
 | 
				
			||||||
 | 
					HbBWQgZVZZBzbgZphwjqpmmVfdGmjG
 | 
				
			||||||
 | 
					vvCJLGnthChvtrvCCnRbTRqRPRBtbTRfPRRl
 | 
				
			||||||
 | 
					djZSgHNNwjqcdWlbcbfc
 | 
				
			||||||
 | 
					pFgMSfpMfzMDZFSgSjGJQQnCvMCVLnnJQLGC
 | 
				
			||||||
 | 
					gVhQWQpcWZVwwHVvFvnnnnDFdL
 | 
				
			||||||
 | 
					lzbPlztjltztzSjfGcPdTHLTHFCnnHCLndFGGd
 | 
				
			||||||
 | 
					jsNbzbczclttSlfbqlljRQMJRMMpJwRZhspZgJRM
 | 
				
			||||||
 | 
					hLJvfGcNDttSGvJtvSSJcqbqFBBWbjQqDrqbjDDjjb
 | 
				
			||||||
 | 
					lTswlzZdssgFpdPwZpMQnCjngCCjWBQBWWQqng
 | 
				
			||||||
 | 
					PRZMpzPZTdVZTfJvFvLFRctJcf
 | 
				
			||||||
 | 
					JHbQtHVHHLLbTJmmZddgdgwhllMNhhhTgg
 | 
				
			||||||
 | 
					spqpNGDjDPMhCFChMj
 | 
				
			||||||
 | 
					DBSDDGnpSDsDWqWczcvSqWvsBtJJLLZrRVZLJRbBZNVrBHrV
 | 
				
			||||||
 | 
					GwGhfhPhpHccvwSwrTsmsCjDmqTfbDqjss
 | 
				
			||||||
 | 
					tQntQcNRJMFnnVQFFctJqCsRmsTjjbDqDlTqTbWT
 | 
				
			||||||
 | 
					NZdVBZZNFzMFNNNvGprZcLGPGrrpcP
 | 
				
			||||||
 | 
					SvCPLrrlCSvZLrCPPBNPRvNLQBbpmbdggQTTfpfQgpgTqbbb
 | 
				
			||||||
 | 
					HVjHwMVwWtdMGwtwMwdhDFgbJgJqTmFMfFfmmfTTpq
 | 
				
			||||||
 | 
					whtHVcjDtHWtsWdwVGVHthDPzRrNSsCRLrLRlZNzZSNzNR
 | 
				
			||||||
 | 
					rjrlCCBtbtntwPPt
 | 
				
			||||||
 | 
					FvfJHqBJQWWgWgWLwnMwMLbzvhwTTp
 | 
				
			||||||
 | 
					WqHgWqBFgGfQgHfVdQFfVfrDllSsRSDmVmRCZZmSSSSZ
 | 
				
			||||||
 | 
					gjnppCgGHNPrqqmFnnbr
 | 
				
			||||||
 | 
					tGltVlJRtLRlrqcJcqZDqBJc
 | 
				
			||||||
 | 
					VvhLlvWltWdVltRTLTfgwSjGNHhggQNQNjps
 | 
				
			||||||
 | 
					HDWjCNfQjmwgWhcwPPVbZGcpMb
 | 
				
			||||||
 | 
					sFltFBRRSRJBSSsBlSSnRLPZbVGMVPZpMpPZpcMrFZMc
 | 
				
			||||||
 | 
					BLTBsstlqBRRBSvJJBsHdgdDNHCQHvbdCjQNNW
 | 
				
			||||||
 | 
					lRGzWLZNFwJVbVVGcJ
 | 
				
			||||||
 | 
					HqqpjPvHQnJgVgTnbdTV
 | 
				
			||||||
 | 
					rVvjBQHQrQhCrzlzWrRlDZ
 | 
				
			||||||
 | 
					jZjTZRSjZnhGZhzGnG
 | 
				
			||||||
 | 
					HbnPHrCbBDMnhcrVLWWLLWWg
 | 
				
			||||||
 | 
					MBwbCNDDptwNMttjdSnsqSRSFFdjtj
 | 
				
			||||||
 | 
					bSfvcsNsDdccHHQm
 | 
				
			||||||
 | 
					ljrlplvBhDHDHHHHJl
 | 
				
			||||||
 | 
					jgpzhrzRrvhFRFrzFnWfZtTwSWZPbbqNbsTqsW
 | 
				
			||||||
 | 
					vvCTvcDzHcgtvWjvcDcvgBCgwTdPFPpwpwmTSwwmdPwZpfZh
 | 
				
			||||||
 | 
					rNLMNVqLGNrVsRNJNsPnGnnfnpSFGdfddndd
 | 
				
			||||||
 | 
					VPQsMbVsPbzzvgCzgv
 | 
				
			||||||
 | 
					wPsrqprHQQZsChZn
 | 
				
			||||||
 | 
					cjgFLwWDlDltfLmTCnmWCnZZChCQ
 | 
				
			||||||
 | 
					FccccSLGFwjVlfVLLtgdSPSpMpBMdMBRRdHdBp
 | 
				
			||||||
 | 
					mQQcpmCCprrfLQqZVGqLGv
 | 
				
			||||||
 | 
					PtsJdsMtTTTvFqLTnnqbGZ
 | 
				
			||||||
 | 
					HjldthsHWztJzstZhBcHDDgpNpCpmrpgSD
 | 
				
			||||||
 | 
					lCmhDljDJgWggcnh
 | 
				
			||||||
 | 
					LdQrbdTDQGfGLPdqqFrHwRJcWRHgHBWHBJ
 | 
				
			||||||
 | 
					sLqsGtDqdGQfSTsqtfqqVMzjCzlvllZljNpCsMMl
 | 
				
			||||||
 | 
					CfLCZCCqqHlhSSrrtpRjpL
 | 
				
			||||||
 | 
					mWQbnQZVTWwNdwmDSbpbrFptjDrjRj
 | 
				
			||||||
 | 
					PJWVnTWPVnnclqqBsCCZHP
 | 
				
			||||||
 | 
					tqvtbNCgqJSgZgZvSncrrcGjBGhcnVcR
 | 
				
			||||||
 | 
					DswGQQQdRcjBnRDn
 | 
				
			||||||
 | 
					sMdlFMQQpfZbvlNtZGgN
 | 
				
			||||||
 | 
					RMlPllHtrlrlcZLsZfLcfwdDGD
 | 
				
			||||||
 | 
					QppnQhTBgwQDJsGzLQ
 | 
				
			||||||
 | 
					gTjnmjvphDSNMbtMbtMRHNVr
 | 
				
			||||||
 | 
					RHHcChrVVChCWQmRnMZmnmbTbGmFnqTT
 | 
				
			||||||
 | 
					gpzpfpszDwvDDNdwjdstnSMMHGMqvZnFTTZqbq
 | 
				
			||||||
 | 
					DsDdpfppwHsgJdjzfdDjdssLPlRccPQQrJcchPQWWQRhlQcr
 | 
				
			||||||
 | 
					rsrjQjnRnQZZqMmMMVqs
 | 
				
			||||||
 | 
					WTSTdvJLvTGJTGCMGvzBBpVVqqFVzBzVmf
 | 
				
			||||||
 | 
					tTSJhGLJbJhLJRRbHPQbnHHMrl
 | 
				
			||||||
 | 
					GGgMgBJHWHhLWMhWhgfrhgWLzmsmlzTtzHmsmlszRtszRVlT
 | 
				
			||||||
 | 
					bvScppfcQfcQSFCQpnPqwwTdRTvmzVssvswtddsv
 | 
				
			||||||
 | 
					ZDpqnPbQbPPnQbFbfSPSqbQJhGrjgMZBhWLrLrBBBBJWhg
 | 
				
			||||||
 | 
					hQCCGCNhDmGFJsTt
 | 
				
			||||||
 | 
					fcggBBpvBSrtsRTpRmpD
 | 
				
			||||||
 | 
					wflWlBlfnvfWWgMNPPLhPnzhPmLQ
 | 
				
			||||||
 | 
					pcGGTvVpcQLLzSPPPpVBVQwngNqgsJqgJgqSngsJMqJg
 | 
				
			||||||
 | 
					RZDFGhtCDGmWfWsNdwJhnMgwswqJ
 | 
				
			||||||
 | 
					ZCGjRGjZllFGHvvcTPjPTQpB
 | 
				
			||||||
 | 
					FDVsWrFZnnnfNRJdgBBBMLsJLH
 | 
				
			||||||
 | 
					wcThcTphvCThwTlblpzwGlpLRgHJWLgHLBHdHWJLBLWR
 | 
				
			||||||
 | 
					mwcbPmClwlzlwvvbTmWbQSjZmZSrDnSNVZfVFnZf
 | 
				
			||||||
 | 
					tMlttlFRSrcSFcwQSRwSzrMMPPGGPGLWgNfTNTcLPNPGBPPG
 | 
				
			||||||
 | 
					pbZVCDTqnCjVDHnHVnhBPBBbhBhbhgLgmWLh
 | 
				
			||||||
 | 
					qZCJZJqqjjCVvvRQltlzTrJtMMMw
 | 
				
			||||||
 | 
					QvvdBDdMbdFFJrMMjjmjCfCntC
 | 
				
			||||||
 | 
					lHTPsNLPcfVZLnfj
 | 
				
			||||||
 | 
					GgsWpHPpTPWpNsGvgdnDbQRQFRbdQg
 | 
				
			||||||
 | 
					jPNwllsVZjhslSjwGShZMdJDmmdmWLtMDDPHMPFd
 | 
				
			||||||
 | 
					QbvpDrbBrtMbbHJmcH
 | 
				
			||||||
 | 
					vznvzBRpBprQBqQZjNswwZDnSlGjZl
 | 
				
			||||||
 | 
					PdNTzLQPLrVMzGcMtt
 | 
				
			||||||
 | 
					FsSvDrvmrwDggHGwgV
 | 
				
			||||||
 | 
					vlpZpZmfnmFTlTWJWdbrdh
 | 
				
			||||||
 | 
					mZmnggMTSJrrmnrbmTbngJMtwPvwzzRvPGhQdGZPGPLvGvRd
 | 
				
			||||||
 | 
					FFVBNHVlFlDfCsWwLwPzzhGPCvzhQv
 | 
				
			||||||
 | 
					qBHLsDcfqFfDDfsFLNcNNBFsrgpMpnJSbnmTnrtmbMSqnpnr
 | 
				
			||||||
 | 
					qjBNwBPNPspqddssbsTsMDhTDrThQb
 | 
				
			||||||
 | 
					gvzZSZzFbgHnrHmn
 | 
				
			||||||
 | 
					fcvfZcRSZFGfZcvFbGttcPfpVjWVwqBqdwNdwNNpqV
 | 
				
			||||||
 | 
					RrTmtTrqznrnRCSqJrWlWDbhWVnfVDVWdclV
 | 
				
			||||||
 | 
					QBBgHQGvHHQswLHQQLGLHdLhfhlZZFlsscVDZfWfDhVlZZ
 | 
				
			||||||
 | 
					dLBMPpGPjLHPHPBHjjgQjHQztSJRztmrNCSCmSpmprrrrz
 | 
				
			||||||
 | 
					HHWJgjjsJrPBWBjgWgDvbbvtbNDNVtttMPPp
 | 
				
			||||||
 | 
					SnLTlhhNSntRVVLFVbbb
 | 
				
			||||||
 | 
					ChqdcNTNqqJCrQrQrrBC
 | 
				
			||||||
 | 
					BvfLLngFLDrrlDFDDnGmGlmzqzdGqMMWWwWW
 | 
				
			||||||
 | 
					RVsPbsbVZbjctccCcsCSPmdNqMqMWddwqVzhhNHwHd
 | 
				
			||||||
 | 
					tcsjPZRctZTSbbtSbtsSjZznnJfJBrfJgLvJJDDBvpTrgp
 | 
				
			||||||
 | 
					LJJsNdtJQtbWRJQttjGhjVnjcnzcsczGqj
 | 
				
			||||||
 | 
					MDPPlvCwrTlZfMMvTlPTdVcVhVVjchSBrjccSnnq
 | 
				
			||||||
 | 
					lgZCvTTZfMgHLptdRgmR
 | 
				
			||||||
 | 
					gCDrJRNgJDZRCwMgqGbtVVjTjlFbbTtR
 | 
				
			||||||
 | 
					mccnfcnSQScdvdcQQQpWdnWSjPqTbFFlbPqbPVGNjTPjtN
 | 
				
			||||||
 | 
					NnzmpWmBBzzpzDgwhDghrZrw
 | 
				
			||||||
 | 
					wcbVDBQwVBFQLFQDQcqQcLcJfpHJjmljGgMHfcfgGgjf
 | 
				
			||||||
 | 
					PtnWMtSnlgJmWWmm
 | 
				
			||||||
 | 
					nThPtRnzntstvrtRPqDFLMLdDwBBFLQDBT
 | 
				
			||||||
 | 
					zshqnVqTwqHqZQgZDSZjpFjFFF
 | 
				
			||||||
 | 
					PsBRvttdcgFFBSmc
 | 
				
			||||||
 | 
					GlPsbLtrvrrrtJlCTnVTlwwfnhwVqH
 | 
				
			||||||
 | 
					CvVVnFwWZnZwJZMNlCMNMpbMrrQG
 | 
				
			||||||
 | 
					cpghqzqqtzbGMjTNclGN
 | 
				
			||||||
 | 
					PqLBsgqBsSfBffShVmvRVwWsFpwZVpsn
 | 
				
			||||||
 | 
					LzsLSScvscqNdGdgddQjCDbzhpCDbRbhDpDDwDwt
 | 
				
			||||||
 | 
					ZlMBBBnlMFVFHVMJflJjJBfhRnCbCDpRttRPDCbWpCRbpW
 | 
				
			||||||
 | 
					mlrFmJrmscNGmsjm
 | 
				
			||||||
 | 
					FqQjLRjfvTFvlPHHNPMBDDNDPR
 | 
				
			||||||
 | 
					chWptpcWTzBPMsMMMBHW
 | 
				
			||||||
 | 
					zcJghwJZpZcgnctccdzzpGQrbQbblFFlTCCFTbdCFCFq
 | 
				
			||||||
 | 
					QcwNpCcQzpwtCGPPPnrGrfHfvN
 | 
				
			||||||
 | 
					FgjhhhjMVFVjqRRqDBVBqvMZvdrHnPZWZvsnZHdWnv
 | 
				
			||||||
 | 
					ShBFhDVghhTBgBBFRRgRCmCPCcpPbwCmLTcCmbpb
 | 
				
			||||||
 | 
					ZzlzsBzZnWnsBhFRvfvvLfWqfvMv
 | 
				
			||||||
 | 
					GgQGjjddHHPwpHpTGjPdHMvtvwJqLtJRFlRFRqMwLc
 | 
				
			||||||
 | 
					dgbbdjpGGgTHGGgQgdpmpgblrBrhrhCBSSznChsVhBsmNB
 | 
				
			||||||
 | 
					PhSwPdnpsmSWWcjjDFNqnc
 | 
				
			||||||
 | 
					GJGCTLbTZTrlfflVLFchHDHHDFcVVN
 | 
				
			||||||
 | 
					RhlhrllQZhCsPvRBvMtSvw
 | 
				
			||||||
 | 
					GVgnrgTWGVGjLVjWSpvvNmPTmpQmzvhf
 | 
				
			||||||
 | 
					tBbBDsFtszzSSbPZbh
 | 
				
			||||||
 | 
					BqlqdcqSJtFMdMjWrnGCWRrWGG
 | 
				
			||||||
 | 
					sJVJsQhMhPPSQMwdHRmmsmmwRmsr
 | 
				
			||||||
 | 
					zLFjLDTBFNWWwrqrffldlRdFRq
 | 
				
			||||||
 | 
					BLjzjTpzLpzWGTbQpMJvVMQwQhhMQM
 | 
				
			||||||
 | 
					RqSztDRhJDLmRMLlfvsP
 | 
				
			||||||
 | 
					dMdMMHZCsnbdvmbP
 | 
				
			||||||
 | 
					VHcZVVcZTwTQpgHQcgFMFBpDDzBqqqDhqJSjSjJjSD
 | 
				
			||||||
 | 
					rdMnMGjdHhfnjqWWDJPpGWPtvW
 | 
				
			||||||
 | 
					PTBSQSSzZSBSCzQFFSlZTFSvcZpWWcJvtJppvZpLLcDVcv
 | 
				
			||||||
 | 
					sgQCsBmmlFCPFFzTgTBgdNnrNndnMrrrfbrNjf
 | 
				
			||||||
 | 
					bpZdggTjHbgLglpHjldvHpjdhTVzmhzzzFPzmhFsFQSFnhhN
 | 
				
			||||||
 | 
					rPCDBcCCMPGcWDNNWQzQQSNQnNzQ
 | 
				
			||||||
 | 
					fCCJtDtGGGfGBtGqBrrcfRBcvPwpLgdZZvHdljvqpvdwbpvl
 | 
				
			||||||
 | 
					qpmsNldnlHlCqQlHsHNHwJpJMtwvvvjMvfWjpDtt
 | 
				
			||||||
 | 
					TccVBScrzBzzTGPbVTPQhWjfMjwwRtJtjMtWDWWfDS
 | 
				
			||||||
 | 
					FQFbzBGczGBFLnFmmqsCLg
 | 
				
			||||||
 | 
					qpblblvpvJzStJDrhrnGrdhDfFqf
 | 
				
			||||||
 | 
					ggNQNwBgmTcgCBTBTQQjNfDCnZRRRrRGCnrFfdnhrC
 | 
				
			||||||
 | 
					mjVFHQTHNjTwcmpzJzHltltbSssS
 | 
				
			||||||
 | 
					WChWmdcmzndhFcZrrbvrVMVssj
 | 
				
			||||||
 | 
					NQLDlDplpSJGpLfRRMZVBBGjVsGbbjbBZsGv
 | 
				
			||||||
 | 
					QNDfNqlpLgSfNfNgNfpgpqwndwWwnCCnnTFMdHndzn
 | 
				
			||||||
 | 
					ZGRPTngTZMSGMGnhSgRjQHsPbqjmsWHQCQWbNN
 | 
				
			||||||
 | 
					BFLLfpzVDBfDdlfQcsbVcNmQsqqbcC
 | 
				
			||||||
 | 
					zFvdplLDLtzFmrrwMMtTrShZ
 | 
				
			||||||
 | 
					nTdmnVCGqTsSBTqv
 | 
				
			||||||
 | 
					HlMPwMlHfPSfBBmFBfSL
 | 
				
			||||||
 | 
					trHHwRHRwMHPMJQJHnDhbdRhdpCZmChNnd
 | 
				
			||||||
 | 
					lwHWjzplvHqWHGsMLsLwLfgdfLdg
 | 
				
			||||||
 | 
					tPJNPQmQmSGcTtFmctGmSCBgsBBRbLBRVdLVLCBBLgVf
 | 
				
			||||||
 | 
					FPtTPQNPrPPQctTcNPSQJJPDjlzplnGDDjWWplWHhGvpnr
 | 
				
			||||||
 | 
					jwvvDbvsRsrrjrfvfrrZsPpCpmPJJPqlqWmzRJRTqq
 | 
				
			||||||
 | 
					HdLttdSQHdLHMMtNdLMSTtHpCmPplWhCzmzmPWlJhlNplP
 | 
				
			||||||
 | 
					BTSLtLLQtnVZDnffbwfw
 | 
				
			||||||
 | 
					snvQdrtrQprWpgmGLp
 | 
				
			||||||
 | 
					FhzwlwHccBcljFBSDmHmLpgRmPDCffWL
 | 
				
			||||||
 | 
					zFhllqjczzwJqqSqlZMsvJgVNMTbssVNnQbb
 | 
				
			||||||
 | 
					dLZHrWjWPFZWZnPjZttjddFnMDVMGJMQqvMVGVRVpjVpGVvv
 | 
				
			||||||
 | 
					zhzTwTlfTwCsShSgNhfzsQQqvMQStQMDGJJGvGQVvq
 | 
				
			||||||
 | 
					TTwCBfsfBwhzwTBCzlmHZdLmBBbtLnLbFnnF
 | 
				
			||||||
 | 
					BhBRLFmlBlmhgShHmhSlZlFgvbQNwvcsvMCcsQCwNQvNMsBw
 | 
				
			||||||
 | 
					ttWddDjrfjDcssscDbvH
 | 
				
			||||||
 | 
					jfjfPWdzdfjdnWpjtrzqnhmJGJFhSJRHSmSmlqlHmq
 | 
				
			||||||
 | 
					QvJTgvsvghHRHHNbZvNZTRSzBBCLrDqzrfDDtJSqSLBC
 | 
				
			||||||
 | 
					cPPwdcFFPDwfFrBrFfFfrC
 | 
				
			||||||
 | 
					nppwdplpRvllsgDH
 | 
				
			||||||
 | 
					BGLLWLLwHVZwHnNhwsMsrqMqhh
 | 
				
			||||||
 | 
					STlTpDpmjzmjjjgccqdsbNbBhlNnNMhsqs
 | 
				
			||||||
 | 
					pjmgjfSDSzmSgFzRZQfRRZLBVLVtZZ
 | 
				
			||||||
 | 
					WHjddztMtVLNNFFTmbFPFPRw
 | 
				
			||||||
 | 
					bJnvpQfqccQJZfpcbvCphcFGDPFGRwDGDDGwGsmPFnPF
 | 
				
			||||||
 | 
					rvffQJZJqrpZCJZJQrQpvBvStlSWSzVSWBbzBLzjtjWWWj
 | 
				
			||||||
 | 
					SJFMSMGSDLTsFgHvHL
 | 
				
			||||||
 | 
					mNzRrRRzjzqqgPHvLTHjlvWg
 | 
				
			||||||
 | 
					ZLbRpRnRnCrbmnmrRRNnwbGfMwDwfDDdSVMdVJdd
 | 
				
			||||||
 | 
					nsqTbhcDssPsPWsnchPJMSTSMmJMwTSTCJJfJw
 | 
				
			||||||
 | 
					DHvFvvdHpvpGFHDMVVJVplCCVpggCl
 | 
				
			||||||
 | 
					RdQjtvHtDQNGsZqzcqPqbNcq
 | 
				
			||||||
 | 
					GFzRjczzQJnLjJvvTj
 | 
				
			||||||
 | 
					mSfHrNHDzHDrDSSSBvTZLTNqWJWBWLlv
 | 
				
			||||||
 | 
					PfgCmfPzDVrtHsddVMsRFcVFQM
 | 
				
			||||||
 | 
					sfBgfBfBsHBHFGhsqfjgQZtQQMdZgbZQptbM
 | 
				
			||||||
 | 
					rNLRSzRTrrvvLSTWGpjpNZdQPtGtMdNM
 | 
				
			||||||
 | 
					wvSWLwzTGTCcwwwJwvwcrcRcVfFBqhhVhDqhBllBfFqBCDCs
 | 
				
			||||||
 | 
					LbTpDTcMTSzzMLhScnDnSppNQwVNZFBVnFsrwQQZrQrQrN
 | 
				
			||||||
 | 
					tJtJCRlGWljGWCtjJZVPsJBsVwQmrQNN
 | 
				
			||||||
 | 
					fvHRftqjGfWGwtfGqvLTzDTzzzchSbMDTd
 | 
				
			||||||
 | 
					JJhWZlhqLDHtBDrqrB
 | 
				
			||||||
 | 
					bwwmfrSmbmFjVSFQwSdpDvGdpPnRvDtHpGtGPG
 | 
				
			||||||
 | 
					VgFfcSQfFgmLLrNThllTZc
 | 
				
			||||||
 | 
					QmfvrpnvrrJGnBSCFTBMSWFS
 | 
				
			||||||
 | 
					NVMggbVPzCTgDFDD
 | 
				
			||||||
 | 
					NRqHRZjVRZdRVdZwNPrMrchGhGpcGfvhQlHJ
 | 
				
			||||||
 | 
					nlBdCldndlZTttSSBBccPfGWLLHcTTcWPbbW
 | 
				
			||||||
 | 
					jpsFzFmzDzNzDGChGcGGmPQHQf
 | 
				
			||||||
 | 
					CNzqvvVJNFqvgRtlqRtdnwSZ
 | 
				
			||||||
 | 
					MJtDbNHDDpmVPJVzzjLm
 | 
				
			||||||
 | 
					RslhvlfRTWvWWRwfllSZngmggznjSPznLjmSnz
 | 
				
			||||||
 | 
					TlhffRwWQhChDqbBQLFHqNrb
 | 
				
			||||||
 | 
					HWnmSbzflWltlzLfWWDzjMBvCjjCTCgcMvzBBB
 | 
				
			||||||
 | 
					qRRRZJwhZFGdRNfghVjMVVgfcghC
 | 
				
			||||||
 | 
					QFFqwNNNwdNZZpqqZfnDSHmmlDLtWtHWlQmD
 | 
				
			||||||
 | 
					JrFdNTTLRBTJrFVrBNdVLFBdlHbzQQsQzbPJtpbtltWsHbQw
 | 
				
			||||||
 | 
					gZffDfMlCfjCSqMcpHPWHszstzHjQwpb
 | 
				
			||||||
 | 
					GMnvfGlfvSqvcMMDgDDcfnqSVFRdmTmVdNBTdmRmBFVnLLBT
 | 
				
			||||||
 | 
					ZvRHtDcZntLZssMssQBrMdnC
 | 
				
			||||||
 | 
					jglqlVdlbqgVWjJMbrrBCpmQBBfrpm
 | 
				
			||||||
 | 
					GqVVPPjPNjFVllNjJjFDvzTLZRvcLRLvTGdGDv
 | 
				
			||||||
 | 
					fDVzvVfzzZPMsMbb
 | 
				
			||||||
 | 
					LHtBwLBdhFgdHLLthRwFGGMsmrHMmmbZSmqbMGGG
 | 
				
			||||||
 | 
					bblRwbTRlllfVQnCQn
 | 
				
			||||||
 | 
					fVZzjRzpzpVCRPZhVWQvvLsWWWFQlmjWmG
 | 
				
			||||||
 | 
					JDHgJdtwbZqJqsWBBDLlQlvLms
 | 
				
			||||||
 | 
					cHHtdbqwrqbbtSbTgSTcVCMRZnRRVNhVPNMPpfMc
 | 
				
			||||||
 | 
					fCMPBBdpMpsqMssQccnV
 | 
				
			||||||
 | 
					TlwGWDjDZHLjZHHlLGmnlnNcRllsJcqtsJRV
 | 
				
			||||||
 | 
					ZHhZHThLLrGwjDDjLwGWWWSjPpbpzrvBFBFdBBbqvCbpFfpg
 | 
				
			||||||
 | 
					bvDfDPtCVfFFVdWWpmLRmzWzzdBW
 | 
				
			||||||
 | 
					jgZTghhjrGrsswrsghHrlgTGzSRmMLwpJMSMzWLLWRzpRRSc
 | 
				
			||||||
 | 
					lpjTpGHlpsNGTHllHrCFnDNPtVnvfQtQtQNP
 | 
				
			||||||
 | 
					BwlQcwZBwwwQNqJTrrsRGCDTNt
 | 
				
			||||||
 | 
					bMpVPSfRvCbCtTqsCs
 | 
				
			||||||
 | 
					dPSRfRpPPjjmLMgZBZBLZZwFQnZn
 | 
				
			||||||
 | 
					TsVfggTqVnsLVTdTpmDdRhwPRtPRDRwD
 | 
				
			||||||
 | 
					ljHBSWZvvFWvBFPppnQPwnpmzR
 | 
				
			||||||
 | 
					MSHSjbBclBSjccLJgqgnLVqTbsTT
 | 
				
			||||||
 | 
					zncfVgRzVJgnTfVqNHvZJZNJNMpHbdvH
 | 
				
			||||||
 | 
					PCBpsLjPPmMGdHNdHBHZ
 | 
				
			||||||
 | 
					jSLlrhLPDWLrPrDCLPCfnpzcVRFcRTnlVncntT
 | 
				
			||||||
 | 
					ccvSgjHtRjcjSvjvSrBjzSHHwnJPbgwPPZVVVZnPpZlpwnlT
 | 
				
			||||||
 | 
					ffqNqGGsGWqLTNqZwdndPnnJJpZVJW
 | 
				
			||||||
 | 
					sNmqhsCMQsMTmjrcmrHrRj
 | 
				
			||||||
 | 
					gWWWzNVJDwDzVWVDGbGNnhTnHLsmhmhfsQTNSmHd
 | 
				
			||||||
 | 
					vtMPZvrZvqtqBHljrqSnnmTfLfdnQsjhjmhL
 | 
				
			||||||
 | 
					MMPZPBqZCrBtvZcrBlDbGbbbzHJCbbRwgwDz
 | 
				
			||||||
 | 
					hGSRhsMswhcNNGwhwncMnCqCJNrHJPJJrJtCJdqHJm
 | 
				
			||||||
 | 
					BgVTzWBdTfCmfCJH
 | 
				
			||||||
 | 
					dlbVFvvWVZhSRQDMnlhc
 | 
				
			||||||
 | 
					WfpzBZmgJlQVGvWF
 | 
				
			||||||
 | 
					wHSbrHwmccnrmrHsClGqFGbQjQjjQJQQGv
 | 
				
			||||||
 | 
					SHPwwsRcrrNtrNSsphmZLzpfzhghZPdD
 | 
				
			||||||
 | 
					DFDPRpmgbPQtmgBBQDDNJTMMBZsqsZGqGZTGCGSqWG
 | 
				
			||||||
 | 
					fVvVVLcJVzlvzhqfSTCsZsMGMHqq
 | 
				
			||||||
 | 
					zJdrrdnzcLlwczwbQmQngRDQPbtDpQ
 | 
				
			||||||
 | 
					HDZZrpFqwRrQfBqhjjlVlQ
 | 
				
			||||||
 | 
					czTgvvWPNgPGcTlsQflCVshClC
 | 
				
			||||||
 | 
					PgNvtSJNvGVMMzNzgGvPGGLHFDdFdmZSZRdDdRrmpFwL
 | 
				
			||||||
 | 
					SVHNVFVPBHJqHhgFCgzLmCwppm
 | 
				
			||||||
 | 
					DvDdsGZljDlfdZnjnnZGMzLpRgLfMCLmzfPLhmgp
 | 
				
			||||||
 | 
					jZDZlrvrZTrTrTQrDsjslHNJqtWbWHbqbPBWNVQWBJ
 | 
				
			||||||
 | 
					NmGGBdWWJDJTTZHm
 | 
				
			||||||
 | 
					hFVhcqFjncpcppSjqfppqDvzDDDbbDZvDZZbHfJgvJ
 | 
				
			||||||
 | 
					jrPqnnHnqSPwPGWPdWst
 | 
				
			||||||
 | 
					BfhbwMwbbPbHPPPlrdJjrlMJLrJVTd
 | 
				
			||||||
 | 
					pnQnGnWDjnJdlJCh
 | 
				
			||||||
 | 
					qshsWvpttzNNQDtzRRPvwfcPHBBBHwbw
 | 
				
			||||||
 | 
					SHzGRQjhwwhGzjjwRjfBqpqbNCqNnnqqQqPlQC
 | 
				
			||||||
 | 
					TZtgLmZgVmgdFgmZtdrbNqnqlNlpblnlrnBd
 | 
				
			||||||
 | 
					DvgmvvZgmWJJjwHHhJSzps
 | 
				
			||||||
 | 
					JjlrlJjPJgDjJjJnDRDjNwGGqMvSddvPvwQddqSVvq
 | 
				
			||||||
 | 
					SLpphFLhFZhWLzvswwWqsqVVQWdv
 | 
				
			||||||
 | 
					FSHtTLZpfzRDDrJgRNjT
 | 
				
			||||||
 | 
					wjCMvrMlqqWHvWqddrHqgnBNhcffthhVLtpgLBnw
 | 
				
			||||||
 | 
					GbQFZzZZphnpgNZV
 | 
				
			||||||
 | 
					FhFzRTDRPzsRQGQGTFlllrJHjdsJlHMqjjHr
 | 
				
			||||||
 | 
					LqDcTbmJcqSJSTmnrTcmJrfffplfjZsGZfGGZfQLdplj
 | 
				
			||||||
 | 
					hWddgBvzWFZfPsQlGh
 | 
				
			||||||
 | 
					RBWBRCdHtgHttVVzHBVNNNDwSTDcSSSbScDDwbwbnmRS
 | 
				
			||||||
 | 
					FFPzwlZVVrzFFlFLVlllZdHCHPQMnJQQbhhChdhCbb
 | 
				
			||||||
 | 
					BRRqGBgRfqvgvBDDDTRgghNCMMTQNNbVJMNJJdbbdT
 | 
				
			||||||
 | 
					DfpgjGfsRWrFVzwLcs
 | 
				
			||||||
 | 
					PMTSdSmFjhFpNTqvppvRBrRBrDqB
 | 
				
			||||||
 | 
					HnZZznJbzGZGlZtZWHlJGcGcwMvQBsrwRDQvcDgrgDgrqRvq
 | 
				
			||||||
 | 
					HGlGfnJZfMMCfNhm
 | 
				
			||||||
 | 
					nRssqlqVRppVwdMMQwFgtRFz
 | 
				
			||||||
 | 
					smTvLLTvvNLtwMMQNg
 | 
				
			||||||
 | 
					CmPGBvZGWvBSGGDmTZjZlhpJcpHDJsbDnlrrprpl
 | 
				
			||||||
 | 
					djcQGNQqdGdGqMCgndwgCLDMgW
 | 
				
			||||||
 | 
					nvBvHpBppnvPPnJTBWLJVMwVfWJfCbfWgW
 | 
				
			||||||
 | 
					hsHHpBsvRTHpsPszTBTTsRTslGqGqlcqlScnqmhZmmZSZSjl
 | 
				
			||||||
 | 
					DddBHCmfWCBTDBHTHfMpzhzpJJMJsFrGrz
 | 
				
			||||||
 | 
					tPVPmbnttjPnZvSvSbnmZPZPNpNGMpJNzzNrGJpvhsshMpFs
 | 
				
			||||||
 | 
					mwnZcbmmStbVtVjbZVlcLTBlcLCRHRDWCWWW
 | 
				
			||||||
							
								
								
									
										81
									
								
								2022/3/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								2022/3/main.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,81 @@
 | 
				
			|||||||
 | 
					#include <fstream>
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					#include <set>
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int score(char c)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if(c >= 'a' && c <= 'z')
 | 
				
			||||||
 | 
							return (c - 'a') + 1;
 | 
				
			||||||
 | 
						return (c - 'A') + 1 + 26;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						std::ifstream ifs("data.txt");
 | 
				
			||||||
 | 
						if(!ifs.is_open())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							std::cerr << "Missing data.txt." << std::endl;
 | 
				
			||||||
 | 
							return -1;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						unsigned long total = 0;
 | 
				
			||||||
 | 
						unsigned long total_pt2 = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for(std::string line; std::getline(ifs, line); )
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if(line == "")
 | 
				
			||||||
 | 
								continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							const size_t half = line.size() / 2;
 | 
				
			||||||
 | 
							std::string right = line.substr(half);
 | 
				
			||||||
 | 
							for(int i = 0; i < half; ++i)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if(right.contains(line[i]))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									total += score(line[i]);
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Part 2:
 | 
				
			||||||
 | 
							static std::vector<std::string> lines;
 | 
				
			||||||
 | 
							lines.push_back(line);
 | 
				
			||||||
 | 
							if(lines.size() == 3)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								// get all letters it could be from first line
 | 
				
			||||||
 | 
								std::set<char> options;
 | 
				
			||||||
 | 
								for(const char c : lines[0])
 | 
				
			||||||
 | 
									options.insert(c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// remove if not a duplicate
 | 
				
			||||||
 | 
								std::set<char> to_remove;
 | 
				
			||||||
 | 
								for(auto i = 1; i < 3; ++i) // remaining two lines
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									for(const char c : options)
 | 
				
			||||||
 | 
										if(!lines[i].contains(c))
 | 
				
			||||||
 | 
											to_remove.insert(c);
 | 
				
			||||||
 | 
									for(const char c : to_remove)
 | 
				
			||||||
 | 
										options.erase(c);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if(options.size() != 1)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									std::cerr << "Error: More than one remaining option: ";
 | 
				
			||||||
 | 
									for(const char c : options)
 | 
				
			||||||
 | 
										std::cout << c << ",";
 | 
				
			||||||
 | 
									exit(-1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								total_pt2 += score(*(options.begin()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								lines.clear(); // reset
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						std::cout << "    Total: " <<     total << std::endl;
 | 
				
			||||||
 | 
						std::cout << "PT2 Total: " << total_pt2 << std::endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user