Initial commit
This commit is contained in:
		
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| /target | ||||
| .idea | ||||
| .fleet | ||||
							
								
								
									
										7
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| # This file is automatically @generated by Cargo. | ||||
| # It is not intended for manual editing. | ||||
| version = 3 | ||||
|  | ||||
| [[package]] | ||||
| name = "aoc22" | ||||
| version = "0.1.0" | ||||
							
								
								
									
										36
									
								
								Cargo.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								Cargo.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| [package] | ||||
| name = "aoc22" | ||||
| version = "0.1.0" | ||||
| edition = "2021" | ||||
|  | ||||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||
|  | ||||
| [lib] | ||||
| name = "base" | ||||
| path = "src/lib.rs" | ||||
|  | ||||
| [[bin]] | ||||
| name = "day1" | ||||
| path = "src/day1/main.rs" | ||||
|  | ||||
| [[bin]] | ||||
| name = "day2" | ||||
| path = "src/day2/main.rs" | ||||
|  | ||||
| [[bin]] | ||||
| name = "day3" | ||||
| path = "src/day3/main.rs" | ||||
|  | ||||
| [[bin]] | ||||
| name = "day4" | ||||
| path = "src/day4/main.rs" | ||||
|  | ||||
| [[bin]] | ||||
| name = "day5" | ||||
| path = "src/day5/main.rs" | ||||
|  | ||||
| [[bin]] | ||||
| name = "day6" | ||||
| path = "src/day6/main.rs" | ||||
|  | ||||
| [dependencies] | ||||
							
								
								
									
										300
									
								
								day3.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										300
									
								
								day3.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,300 @@ | ||||
| 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 | ||||
							
								
								
									
										513
									
								
								day5.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										513
									
								
								day5.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,513 @@ | ||||
| [N]     [Q]         [N] | ||||
| [R]     [F] [Q]     [G] [M] | ||||
| [J]     [Z] [T]     [R] [H] [J] | ||||
| [T] [H] [G] [R]     [B] [N] [T] | ||||
| [Z] [J] [J] [G] [F] [Z] [S] [M] | ||||
| [B] [N] [N] [N] [Q] [W] [L] [Q] [S] | ||||
| [D] [S] [R] [V] [T] [C] [C] [N] [G] | ||||
| [F] [R] [C] [F] [L] [Q] [F] [D] [P] | ||||
|  1   2   3   4   5   6   7   8   9 | ||||
|  | ||||
| move 3 from 9 to 4 | ||||
| move 2 from 5 to 2 | ||||
| move 8 from 1 to 9 | ||||
| move 4 from 7 to 1 | ||||
| move 5 from 3 to 8 | ||||
| move 3 from 3 to 7 | ||||
| move 11 from 8 to 3 | ||||
| move 7 from 3 to 6 | ||||
| move 2 from 5 to 9 | ||||
| move 3 from 1 to 6 | ||||
| move 6 from 2 to 4 | ||||
| move 6 from 7 to 5 | ||||
| move 1 from 6 to 1 | ||||
| move 1 from 9 to 4 | ||||
| move 16 from 4 to 9 | ||||
| move 2 from 1 to 2 | ||||
| move 1 from 4 to 6 | ||||
| move 1 from 3 to 7 | ||||
| move 2 from 2 to 4 | ||||
| move 1 from 7 to 9 | ||||
| move 22 from 9 to 8 | ||||
| move 1 from 6 to 3 | ||||
| move 18 from 8 to 5 | ||||
| move 3 from 8 to 2 | ||||
| move 3 from 2 to 9 | ||||
| move 13 from 6 to 7 | ||||
| move 1 from 6 to 7 | ||||
| move 4 from 3 to 6 | ||||
| move 2 from 6 to 3 | ||||
| move 2 from 3 to 8 | ||||
| move 3 from 7 to 8 | ||||
| move 14 from 5 to 2 | ||||
| move 3 from 2 to 5 | ||||
| move 2 from 8 to 4 | ||||
| move 4 from 8 to 6 | ||||
| move 4 from 6 to 4 | ||||
| move 11 from 5 to 2 | ||||
| move 3 from 9 to 2 | ||||
| move 7 from 2 to 3 | ||||
| move 11 from 7 to 2 | ||||
| move 1 from 5 to 7 | ||||
| move 5 from 6 to 8 | ||||
| move 30 from 2 to 7 | ||||
| move 23 from 7 to 2 | ||||
| move 4 from 3 to 4 | ||||
| move 3 from 9 to 6 | ||||
| move 4 from 8 to 2 | ||||
| move 1 from 8 to 2 | ||||
| move 2 from 7 to 9 | ||||
| move 4 from 2 to 3 | ||||
| move 1 from 5 to 9 | ||||
| move 6 from 4 to 7 | ||||
| move 5 from 3 to 6 | ||||
| move 1 from 3 to 6 | ||||
| move 1 from 9 to 2 | ||||
| move 16 from 2 to 5 | ||||
| move 7 from 7 to 6 | ||||
| move 9 from 2 to 1 | ||||
| move 2 from 1 to 4 | ||||
| move 8 from 5 to 3 | ||||
| move 5 from 7 to 4 | ||||
| move 1 from 9 to 8 | ||||
| move 9 from 3 to 6 | ||||
| move 25 from 6 to 8 | ||||
| move 2 from 9 to 5 | ||||
| move 3 from 4 to 2 | ||||
| move 7 from 4 to 1 | ||||
| move 1 from 8 to 7 | ||||
| move 6 from 5 to 2 | ||||
| move 11 from 8 to 5 | ||||
| move 1 from 7 to 9 | ||||
| move 10 from 1 to 2 | ||||
| move 6 from 5 to 1 | ||||
| move 1 from 4 to 2 | ||||
| move 13 from 8 to 1 | ||||
| move 17 from 1 to 2 | ||||
| move 5 from 1 to 9 | ||||
| move 1 from 8 to 4 | ||||
| move 1 from 1 to 3 | ||||
| move 1 from 3 to 6 | ||||
| move 1 from 9 to 3 | ||||
| move 2 from 4 to 5 | ||||
| move 1 from 4 to 8 | ||||
| move 1 from 9 to 1 | ||||
| move 8 from 5 to 7 | ||||
| move 1 from 8 to 1 | ||||
| move 7 from 7 to 6 | ||||
| move 2 from 1 to 2 | ||||
| move 1 from 3 to 6 | ||||
| move 2 from 5 to 4 | ||||
| move 8 from 2 to 1 | ||||
| move 1 from 9 to 7 | ||||
| move 1 from 5 to 1 | ||||
| move 2 from 7 to 3 | ||||
| move 2 from 3 to 7 | ||||
| move 2 from 7 to 8 | ||||
| move 2 from 1 to 5 | ||||
| move 3 from 9 to 2 | ||||
| move 2 from 8 to 9 | ||||
| move 1 from 9 to 2 | ||||
| move 1 from 9 to 8 | ||||
| move 1 from 8 to 7 | ||||
| move 6 from 6 to 5 | ||||
| move 1 from 6 to 2 | ||||
| move 2 from 4 to 5 | ||||
| move 2 from 6 to 8 | ||||
| move 1 from 7 to 1 | ||||
| move 2 from 8 to 4 | ||||
| move 11 from 2 to 5 | ||||
| move 18 from 5 to 6 | ||||
| move 6 from 2 to 6 | ||||
| move 10 from 2 to 7 | ||||
| move 1 from 4 to 3 | ||||
| move 7 from 2 to 8 | ||||
| move 7 from 1 to 4 | ||||
| move 6 from 7 to 8 | ||||
| move 2 from 7 to 3 | ||||
| move 8 from 4 to 7 | ||||
| move 1 from 1 to 3 | ||||
| move 1 from 2 to 1 | ||||
| move 4 from 7 to 1 | ||||
| move 4 from 1 to 3 | ||||
| move 2 from 3 to 9 | ||||
| move 2 from 5 to 4 | ||||
| move 1 from 2 to 1 | ||||
| move 2 from 1 to 5 | ||||
| move 1 from 3 to 1 | ||||
| move 2 from 5 to 2 | ||||
| move 1 from 2 to 6 | ||||
| move 5 from 7 to 4 | ||||
| move 1 from 1 to 2 | ||||
| move 10 from 8 to 1 | ||||
| move 2 from 2 to 7 | ||||
| move 2 from 7 to 1 | ||||
| move 1 from 7 to 9 | ||||
| move 1 from 5 to 7 | ||||
| move 3 from 8 to 7 | ||||
| move 3 from 3 to 6 | ||||
| move 3 from 7 to 1 | ||||
| move 5 from 1 to 4 | ||||
| move 1 from 7 to 6 | ||||
| move 22 from 6 to 3 | ||||
| move 2 from 6 to 2 | ||||
| move 19 from 3 to 4 | ||||
| move 15 from 4 to 8 | ||||
| move 9 from 8 to 4 | ||||
| move 5 from 6 to 8 | ||||
| move 2 from 2 to 8 | ||||
| move 2 from 9 to 4 | ||||
| move 7 from 1 to 5 | ||||
| move 1 from 1 to 3 | ||||
| move 1 from 9 to 7 | ||||
| move 5 from 8 to 3 | ||||
| move 4 from 8 to 1 | ||||
| move 5 from 1 to 5 | ||||
| move 10 from 4 to 3 | ||||
| move 3 from 4 to 2 | ||||
| move 2 from 8 to 3 | ||||
| move 12 from 4 to 8 | ||||
| move 1 from 7 to 6 | ||||
| move 3 from 2 to 9 | ||||
| move 2 from 4 to 5 | ||||
| move 5 from 3 to 7 | ||||
| move 1 from 7 to 2 | ||||
| move 1 from 1 to 6 | ||||
| move 1 from 7 to 2 | ||||
| move 15 from 3 to 8 | ||||
| move 10 from 5 to 6 | ||||
| move 3 from 7 to 8 | ||||
| move 1 from 5 to 8 | ||||
| move 1 from 2 to 3 | ||||
| move 7 from 6 to 1 | ||||
| move 3 from 5 to 3 | ||||
| move 5 from 3 to 5 | ||||
| move 3 from 5 to 4 | ||||
| move 2 from 4 to 9 | ||||
| move 2 from 3 to 5 | ||||
| move 14 from 8 to 5 | ||||
| move 1 from 9 to 1 | ||||
| move 16 from 5 to 3 | ||||
| move 16 from 3 to 6 | ||||
| move 2 from 9 to 8 | ||||
| move 21 from 6 to 7 | ||||
| move 2 from 1 to 7 | ||||
| move 1 from 2 to 7 | ||||
| move 4 from 1 to 7 | ||||
| move 1 from 4 to 7 | ||||
| move 16 from 8 to 5 | ||||
| move 20 from 7 to 4 | ||||
| move 1 from 9 to 8 | ||||
| move 1 from 7 to 4 | ||||
| move 3 from 8 to 6 | ||||
| move 1 from 9 to 1 | ||||
| move 2 from 1 to 4 | ||||
| move 2 from 5 to 2 | ||||
| move 5 from 4 to 7 | ||||
| move 1 from 6 to 9 | ||||
| move 11 from 7 to 6 | ||||
| move 2 from 7 to 5 | ||||
| move 12 from 6 to 2 | ||||
| move 13 from 2 to 1 | ||||
| move 1 from 2 to 3 | ||||
| move 1 from 8 to 4 | ||||
| move 6 from 4 to 1 | ||||
| move 1 from 6 to 7 | ||||
| move 7 from 4 to 9 | ||||
| move 8 from 9 to 3 | ||||
| move 2 from 8 to 3 | ||||
| move 10 from 5 to 4 | ||||
| move 11 from 1 to 8 | ||||
| move 1 from 1 to 3 | ||||
| move 5 from 1 to 8 | ||||
| move 8 from 5 to 6 | ||||
| move 13 from 8 to 9 | ||||
| move 12 from 3 to 5 | ||||
| move 12 from 5 to 9 | ||||
| move 1 from 7 to 9 | ||||
| move 1 from 1 to 2 | ||||
| move 1 from 1 to 4 | ||||
| move 3 from 8 to 5 | ||||
| move 1 from 2 to 5 | ||||
| move 1 from 4 to 8 | ||||
| move 5 from 6 to 3 | ||||
| move 1 from 8 to 4 | ||||
| move 13 from 4 to 7 | ||||
| move 3 from 7 to 6 | ||||
| move 1 from 1 to 4 | ||||
| move 4 from 4 to 2 | ||||
| move 1 from 6 to 3 | ||||
| move 2 from 5 to 9 | ||||
| move 2 from 5 to 9 | ||||
| move 1 from 4 to 8 | ||||
| move 6 from 9 to 4 | ||||
| move 22 from 9 to 2 | ||||
| move 8 from 7 to 4 | ||||
| move 7 from 2 to 1 | ||||
| move 3 from 3 to 8 | ||||
| move 2 from 6 to 7 | ||||
| move 14 from 4 to 2 | ||||
| move 2 from 6 to 1 | ||||
| move 1 from 8 to 7 | ||||
| move 3 from 3 to 9 | ||||
| move 1 from 8 to 4 | ||||
| move 3 from 1 to 9 | ||||
| move 3 from 9 to 3 | ||||
| move 31 from 2 to 8 | ||||
| move 8 from 8 to 4 | ||||
| move 1 from 9 to 1 | ||||
| move 9 from 4 to 5 | ||||
| move 7 from 5 to 6 | ||||
| move 2 from 5 to 1 | ||||
| move 1 from 2 to 1 | ||||
| move 1 from 7 to 9 | ||||
| move 1 from 2 to 9 | ||||
| move 2 from 6 to 4 | ||||
| move 4 from 7 to 4 | ||||
| move 4 from 9 to 8 | ||||
| move 6 from 4 to 1 | ||||
| move 1 from 3 to 2 | ||||
| move 1 from 3 to 6 | ||||
| move 1 from 9 to 2 | ||||
| move 2 from 2 to 4 | ||||
| move 1 from 9 to 1 | ||||
| move 1 from 3 to 1 | ||||
| move 17 from 1 to 9 | ||||
| move 4 from 6 to 2 | ||||
| move 1 from 9 to 7 | ||||
| move 4 from 9 to 7 | ||||
| move 1 from 8 to 4 | ||||
| move 3 from 7 to 6 | ||||
| move 1 from 4 to 9 | ||||
| move 10 from 8 to 5 | ||||
| move 6 from 6 to 5 | ||||
| move 1 from 7 to 2 | ||||
| move 1 from 1 to 4 | ||||
| move 1 from 4 to 5 | ||||
| move 9 from 8 to 3 | ||||
| move 4 from 3 to 9 | ||||
| move 1 from 4 to 6 | ||||
| move 1 from 6 to 5 | ||||
| move 1 from 4 to 8 | ||||
| move 2 from 3 to 8 | ||||
| move 1 from 3 to 8 | ||||
| move 3 from 8 to 9 | ||||
| move 5 from 2 to 9 | ||||
| move 1 from 7 to 9 | ||||
| move 5 from 8 to 7 | ||||
| move 3 from 8 to 4 | ||||
| move 2 from 8 to 5 | ||||
| move 24 from 9 to 7 | ||||
| move 1 from 3 to 5 | ||||
| move 2 from 9 to 4 | ||||
| move 22 from 7 to 9 | ||||
| move 1 from 3 to 4 | ||||
| move 6 from 4 to 6 | ||||
| move 4 from 6 to 7 | ||||
| move 10 from 5 to 3 | ||||
| move 8 from 3 to 5 | ||||
| move 2 from 3 to 4 | ||||
| move 2 from 4 to 6 | ||||
| move 10 from 7 to 3 | ||||
| move 21 from 9 to 1 | ||||
| move 2 from 3 to 4 | ||||
| move 4 from 3 to 8 | ||||
| move 2 from 4 to 8 | ||||
| move 1 from 7 to 8 | ||||
| move 4 from 6 to 8 | ||||
| move 3 from 5 to 4 | ||||
| move 8 from 8 to 2 | ||||
| move 18 from 1 to 6 | ||||
| move 3 from 4 to 1 | ||||
| move 1 from 2 to 8 | ||||
| move 5 from 1 to 8 | ||||
| move 3 from 3 to 6 | ||||
| move 3 from 2 to 9 | ||||
| move 3 from 8 to 1 | ||||
| move 11 from 5 to 2 | ||||
| move 3 from 8 to 7 | ||||
| move 10 from 2 to 9 | ||||
| move 1 from 7 to 9 | ||||
| move 3 from 8 to 1 | ||||
| move 2 from 7 to 8 | ||||
| move 6 from 9 to 5 | ||||
| move 4 from 2 to 8 | ||||
| move 8 from 5 to 8 | ||||
| move 1 from 3 to 7 | ||||
| move 2 from 5 to 6 | ||||
| move 3 from 1 to 6 | ||||
| move 2 from 1 to 6 | ||||
| move 4 from 9 to 8 | ||||
| move 4 from 9 to 8 | ||||
| move 1 from 9 to 4 | ||||
| move 9 from 6 to 9 | ||||
| move 16 from 6 to 9 | ||||
| move 1 from 4 to 7 | ||||
| move 1 from 2 to 9 | ||||
| move 5 from 8 to 5 | ||||
| move 4 from 5 to 1 | ||||
| move 6 from 1 to 7 | ||||
| move 12 from 8 to 4 | ||||
| move 5 from 8 to 1 | ||||
| move 6 from 9 to 3 | ||||
| move 1 from 1 to 6 | ||||
| move 2 from 5 to 8 | ||||
| move 12 from 4 to 7 | ||||
| move 2 from 8 to 4 | ||||
| move 1 from 4 to 8 | ||||
| move 1 from 7 to 6 | ||||
| move 1 from 4 to 6 | ||||
| move 14 from 7 to 1 | ||||
| move 3 from 3 to 2 | ||||
| move 7 from 9 to 7 | ||||
| move 3 from 3 to 5 | ||||
| move 15 from 1 to 2 | ||||
| move 2 from 5 to 9 | ||||
| move 1 from 8 to 9 | ||||
| move 16 from 9 to 1 | ||||
| move 1 from 5 to 9 | ||||
| move 5 from 6 to 2 | ||||
| move 12 from 7 to 2 | ||||
| move 20 from 2 to 6 | ||||
| move 10 from 2 to 6 | ||||
| move 11 from 1 to 7 | ||||
| move 2 from 7 to 4 | ||||
| move 2 from 2 to 5 | ||||
| move 1 from 2 to 3 | ||||
| move 2 from 5 to 6 | ||||
| move 1 from 9 to 5 | ||||
| move 1 from 5 to 9 | ||||
| move 25 from 6 to 7 | ||||
| move 25 from 7 to 6 | ||||
| move 1 from 3 to 1 | ||||
| move 1 from 2 to 5 | ||||
| move 1 from 4 to 3 | ||||
| move 33 from 6 to 3 | ||||
| move 1 from 9 to 5 | ||||
| move 2 from 3 to 5 | ||||
| move 28 from 3 to 9 | ||||
| move 5 from 1 to 9 | ||||
| move 4 from 1 to 8 | ||||
| move 2 from 3 to 2 | ||||
| move 2 from 8 to 1 | ||||
| move 1 from 4 to 6 | ||||
| move 3 from 5 to 3 | ||||
| move 1 from 2 to 4 | ||||
| move 2 from 2 to 8 | ||||
| move 1 from 6 to 5 | ||||
| move 30 from 9 to 2 | ||||
| move 7 from 2 to 6 | ||||
| move 1 from 1 to 3 | ||||
| move 1 from 1 to 7 | ||||
| move 1 from 5 to 6 | ||||
| move 1 from 5 to 4 | ||||
| move 5 from 7 to 4 | ||||
| move 4 from 7 to 3 | ||||
| move 1 from 3 to 7 | ||||
| move 3 from 8 to 7 | ||||
| move 8 from 3 to 1 | ||||
| move 3 from 1 to 7 | ||||
| move 4 from 1 to 4 | ||||
| move 3 from 9 to 8 | ||||
| move 8 from 6 to 2 | ||||
| move 18 from 2 to 6 | ||||
| move 6 from 7 to 2 | ||||
| move 1 from 1 to 7 | ||||
| move 3 from 4 to 7 | ||||
| move 5 from 4 to 8 | ||||
| move 2 from 8 to 7 | ||||
| move 7 from 2 to 5 | ||||
| move 5 from 2 to 7 | ||||
| move 10 from 7 to 9 | ||||
| move 5 from 5 to 9 | ||||
| move 1 from 3 to 9 | ||||
| move 5 from 2 to 6 | ||||
| move 3 from 7 to 9 | ||||
| move 2 from 5 to 6 | ||||
| move 2 from 2 to 9 | ||||
| move 2 from 8 to 7 | ||||
| move 1 from 4 to 5 | ||||
| move 8 from 9 to 2 | ||||
| move 5 from 6 to 7 | ||||
| move 4 from 9 to 1 | ||||
| move 4 from 8 to 9 | ||||
| move 12 from 9 to 1 | ||||
| move 16 from 1 to 4 | ||||
| move 12 from 6 to 2 | ||||
| move 3 from 7 to 6 | ||||
| move 3 from 7 to 3 | ||||
| move 1 from 9 to 4 | ||||
| move 12 from 4 to 5 | ||||
| move 2 from 4 to 3 | ||||
| move 1 from 7 to 1 | ||||
| move 4 from 4 to 3 | ||||
| move 1 from 8 to 2 | ||||
| move 6 from 3 to 1 | ||||
| move 1 from 1 to 8 | ||||
| move 7 from 2 to 5 | ||||
| move 1 from 8 to 1 | ||||
| move 4 from 5 to 4 | ||||
| move 5 from 5 to 9 | ||||
| move 1 from 3 to 8 | ||||
| move 1 from 9 to 7 | ||||
| move 1 from 8 to 1 | ||||
| move 4 from 5 to 6 | ||||
| move 5 from 5 to 9 | ||||
| move 7 from 9 to 5 | ||||
| move 11 from 6 to 4 | ||||
| move 1 from 9 to 4 | ||||
| move 1 from 9 to 1 | ||||
| move 1 from 7 to 2 | ||||
| move 9 from 4 to 3 | ||||
| move 5 from 1 to 9 | ||||
| move 3 from 5 to 1 | ||||
| move 5 from 9 to 8 | ||||
| move 8 from 3 to 1 | ||||
| move 2 from 5 to 3 | ||||
| move 7 from 2 to 5 | ||||
| move 1 from 6 to 4 | ||||
| move 3 from 5 to 9 | ||||
| move 3 from 6 to 9 | ||||
| move 3 from 2 to 9 | ||||
| move 5 from 3 to 6 | ||||
| move 1 from 9 to 5 | ||||
| move 4 from 8 to 3 | ||||
| move 1 from 8 to 4 | ||||
| move 8 from 1 to 3 | ||||
| move 12 from 3 to 7 | ||||
| move 1 from 2 to 4 | ||||
| move 3 from 2 to 8 | ||||
| move 6 from 7 to 6 | ||||
| move 4 from 5 to 7 | ||||
| move 5 from 9 to 7 | ||||
| move 2 from 9 to 2 | ||||
| move 1 from 9 to 5 | ||||
| move 4 from 5 to 1 | ||||
| move 1 from 5 to 4 | ||||
| move 14 from 7 to 6 | ||||
| move 1 from 1 to 7 | ||||
| move 10 from 4 to 5 | ||||
| move 4 from 1 to 2 | ||||
| move 1 from 4 to 6 | ||||
| move 1 from 7 to 4 | ||||
| move 17 from 6 to 8 | ||||
| move 1 from 5 to 7 | ||||
| move 10 from 5 to 4 | ||||
| move 1 from 2 to 6 | ||||
| move 4 from 2 to 6 | ||||
| move 13 from 6 to 1 | ||||
| move 9 from 4 to 3 | ||||
| move 2 from 2 to 4 | ||||
| move 1 from 6 to 7 | ||||
| move 1 from 4 to 3 | ||||
| move 8 from 3 to 5 | ||||
| move 1 from 3 to 4 | ||||
| move 17 from 1 to 3 | ||||
| move 15 from 3 to 7 | ||||
| move 3 from 4 to 1 | ||||
| move 6 from 8 to 9 | ||||
| move 6 from 9 to 1 | ||||
| move 2 from 3 to 1 | ||||
| move 2 from 5 to 2 | ||||
| move 6 from 7 to 6 | ||||
| move 3 from 6 to 9 | ||||
							
								
								
									
										9
									
								
								day5_test.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								day5_test.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
|     [D] | ||||
| [N] [C] | ||||
| [Z] [M] [P] | ||||
|  1   2   3 | ||||
|  | ||||
| move 1 from 2 to 1 | ||||
| move 3 from 1 to 3 | ||||
| move 2 from 2 to 1 | ||||
| move 1 from 1 to 2 | ||||
							
								
								
									
										1
									
								
								day6.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								day6.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| pqffvllhrhthvhshhpnhpnpqpvpvrpvpwvwjjdssmcsmccjvjmjjwnjwjwhjwwwzswwhvhwwlvvlbvbtbzbfbzbtbqbgbpbggwzggvjjdpdffbmffntncchtccbcffcjfjnjfnntssvtstzssmnnhrhlhbbwfwjfwjfwwbhhfhmmpsssbnssssfzzfpffdrdpdqqvnncjjgrjjmhhpqqcjqcjjzdzzpvvprrlglrrcmcqqtltdltddswsrrzzwgzzgssczcmzzmgmwgmggwwzttpccmcsmmvfvnvppzlzvzllgclggpfggfnfrfvrvwwvhwwvgwwrbbgfglflblzblzbznzhzffplffnrrcqqsgsvshvhlldhhvnhhmdddnssdvdwdwccggmddsmswwtctdtqqjsshhjzzdpdmpdmppjtjwjswjsjjjsdjjtrtbrbjjwwvnvppqphqhwhcwhwbbpgbbnhbnhhswwdswwlcczdztzbbbnwwtmmpvvgjjqgqdqzzdjdpjjnnffhccscvvchhbmbcbffpdpggvdvttpvpqqhggdtdhtdhhmghmgggzwgwrgwggwlggvpggcfcttzmtmgmvgmmpqmqlmqllsqqjbjwjsszczlzrzgrzzhshlhjjwttwnntbtjtjpplccqrqhrhssbmbttrddfvfwwjcwcvwcwwvpvggqwgwjgwgccvqqcmqqtqnqpnqnffdqfqhhqnhnmhmvhmhwwfrwrggnmmmcnmmgsszmzlmzmddcwwthtssgjsgjjgpgnppdqqcgqggzjgjngnrnggvffgddvtvctcftcftfnnnnhssbgsgwwthtqtltftqtnqttsrtrggwcgwcwmwgmgvmmzrmzrzjzmmcclmmtjmjhmmlhlwlppnpccbbrlrqrcrjrdrlrnngmnmvmcmzczztbblglccvzvppzspsddrzzlsllfzfsspnpdnpnvvvgmmpccmpcpgcpcwcddtmddgwgngqqcpqqlhqqczqqbvqqgdqgqmgmlmmvrrgfgzffbccldcdmmcmcgcngnghngngdngdndcncbbpqbbphbphpccpcwwjswwfttbqbsszccrbbdndsdrdqrqjrjjbmbtbdbbgbvgvcggwdwcccttqccnffjpjqqzpzlzvlljhhschhzlhhfhcfhchvcvtvtgvgzvzrvrdrgrwrjwjljhljlssszsqzsswhhmlhlrhlhzzgghjhzjjcllwrwtrrbdbrbnrnprnrffjvvphhvbbqbbscstsmslmlvmvrmmvvngnlnzzwqzzjqqsqbqrrtmrtmmfgmgrgjjtmjmrrddmrrqmrrjmjqmqnqmmcmlmfmffcgcclplffzvzwvzzjtztftqftqffjjpwjjbpjjggzdgzgwzzfrfvvhfvvwcvvbccfcvffpcpgpbbqhbbhmmzfmfvvnjvnjjhzhqqmffndndmmzhmmqnnlglvvjhjddvggqwgwdgwdggqbqgqrqlrrtptsswlssqwssbdsdrsddjsszjszjjpnjnvnjvnnmznmnddccpwwhshzzcfcqcwcddsjjmnjmjljwwgmglllqlhhctcvvqrvrrhfrrbcrrfbrfbrfrqffbwbqwbbjggsjjjnqqrqsqhhwnhnshnhhdjjqfqpqmmqgqgqggzmmnncrrpgglgqlqclqlsqqwnnfntnzttrnnmtmvvfppbrprzpzzdzvvtctnncpclpccsbbswwcscjssvhvhhqggzmgmqgmgwwgcwgccrllzhzzlzlbljbllmqqpjqqhrhqhjhbbjmjmhmddmwmcmvvmbbmvbmmznnwvwlwtllhwlwgwpgplgpgmgngjgglbglgmllvvlttgrrrlsrllghlggjdjwwfjwfjfvhjmgqnwhwpbdtzrphsqbmmvscslhbdzffsfshgsdjbqbwlgmrtschcnfhdlnndsvpwmwttfglpghhznmgfcjsdlwhnmfqvmpvhgpnnwtjfztbmtprqhsqtjwzhwcqjtjbtqwlcldnvggrwddmpllwnrqwdljwzfzqwcdwgqwvnthnrpcsfwrmqvbzjvzqnmdnfgtbzgtnrvblfwmhdsddgbffnjzvjzfpwglctpqhnqdvtblcchrlmndzhlsczgnsmnbwgnjngnjtlrdpfhqjrwcrqvcpspbtwcvgvvmpnwqjjpdpnslmcrcjnjmhqmrmfbcmrcmpbcbhpcvwqwflljfpgdvqhgdwgcphjqfnqzjjpsqnbtfzhftjtfcbhhcmmlwcfznsflfpphprrgvqwfgjcwfgjfsghzcbqrldwrjlzlbjhpgrbmgdpgzmfsqsphqbbslwwpzspccrhcfrgcjlfwhlcmzdcltbbpcrzglqgqntpwtmgstqlmcsqqbsqgmsmfznwcrfdgvsmnfqmwtsvqvlhwwjlrlhnsvcnrtwwmrjcgfncvlrcqrllndlvmrjpfjpgrrjcwhsqvlbtnlqgwjjqzwcvtvlnfnmqqshbcnqtcbvnwtwbfdgqmvnpmjhlsfdntfwwntvsrrsmspzqmglfnprjtdbmbgnplzzclsjpnzwdhcbhpfnqrgmgqtpfhgnfbqhrpmznbrshjhntzctslwhtgtjvpqhntmchhtncfjmbzcgnpcbpmldrtnpvrzqfftbjjcjlpwwgvmnstjghftcczjzfsftgzpfhbspqmrbfhcdfmqbrgrbsmjvgpbrnvbblwwvqzzpmqrspzvzppjfbgfftdvsdvmrjzhfslptzmgndnqqgmrrfnbbpvbmvpngwjhzvfbwfnzlrgwffvjsfdldfgchfjmnzfnzhwrwttrzlrhmnwvjjdqfmbpfllhrgmddjgnwjnbqwjnslcrdjrmnldcpsgzjpdhrpdfwhbvwhwnhcsmwcwstvqrcrqsnvjrzljfgbljfszchbsqnldgntvcscwqqmpnlwtlfmswtmvrlpzgbrjhtgjgpnhggnprpvwfqpjffqhtfvpnrptgrtwzzlvplgnfjmqphgmnssccrdndqgpljtwtntshrpgsjcdrpmccjnjdgmpmzbfhqjzphcswtwvvqcrwsjhtdqgrhqjmjjcrblpswcblnpzvfztqtbpgjcgngqmwrjtlmhvlsbmrdzwlgqlfqcqnsnjcnddssqbftjvnlgcwwfcgdpdmqrdsjmcnzrfrpnvjmbsltpzwjhjzqqvbgrltczbgvcpwdzqsvhddsbjgjgcmnldrfhnhddlvjcvsnghprjwlghhtghldcqsdcdgnmbcjglvjjvvlbhzczlmjsdqtdpzdtvfztgsdfjsdtfchvzcgvhjnnncmsrfvvmcsjjdftmlpczgvtwngssqmzlmsrrsrbhhhrnwqhmpcdvqmdsvvtsgsqfdcpgsdgzvmbzpbpgtcbshnvdzlmpnwmqrvnmrjprmvppjwfbjhlhzsfhqqzmpbclqvsvfrcqwprrcvqcbbwvnqfwnrgjhlwmgzpfspqrvqrhmqnwvzjrhvvgdgswlvzjjhjtdctlthlpzqhjvwwbpsclpgflcnsdshrqbhmczcwljqlndfnfrcdgmptpsltrcjccnpdchgnswdcpsslcslcjznzpgfhznhbgqhdqvddmqzdnmpshhdcjrsmfjllhfvjvmzzhzrvlbpzqngwmlwcmqnppqzncvjshfrpjlptvnqfrfcrfnbhwhpdqqvjhsqvsmprtgfrddwzjzlwhhqvjpfrwgwvwpszzsfzwjtwngdjfllhjrmqjtmvwsvggnswpqpjbtcrnhhhlzbrvhjdstnpctjlgsffrrbfdvjzhwsgthgfsqnvqdcjffsttlrjnhtqqdpfqpjtdgfwcdwzmwfvqgglsrmmqwbszclpzwldwcswpwfwldrfmmdndcptjbmnvgcpntqcdrcffvgnlpjmcqjpfmbmwjfpqzbzhqtqbzsghbnfvhphfzzhfznttpfrqwpmzjchpzzrdclhdltlqbjmjdfdjqlqbwptsghcnvtdscwgpqnlhhvsvglplhlrwpnzmdbsbrlhmpczzfz | ||||
							
								
								
									
										1
									
								
								day6_test.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								day6_test.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| bvwbjplbgvbhsrlpgdmjqwftvncz | ||||
							
								
								
									
										20
									
								
								src/day1/main.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/day1/main.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| use base::*; | ||||
|  | ||||
| fn main() { | ||||
|     let lines = read_file("day1.txt"); | ||||
|  | ||||
|     let mut sums: Vec<u32> = vec![]; | ||||
|     lines.split(|line|line.is_empty()).for_each(|sub| | ||||
|         sums.push(sub.iter().map(|line|line.parse::<u32>().expect("Error while parsing")).sum()) | ||||
|     ); | ||||
|     sums.sort(); | ||||
|     sums.reverse(); | ||||
|     let top = &sums[0..=2]; | ||||
|  | ||||
|     top.iter().enumerate().for_each(|(index, cal)| | ||||
|         println!("{}. with value {cal}", index + 1) | ||||
|     ); | ||||
|  | ||||
|     let sum = top.iter().sum::<u32>(); | ||||
|     println!("Sums of top three: {sum}"); | ||||
| } | ||||
							
								
								
									
										140
									
								
								src/day2/main.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								src/day2/main.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,140 @@ | ||||
| use base::*; | ||||
|  | ||||
| #[derive(Debug, PartialEq, Clone, Copy)] | ||||
| enum Move { | ||||
|     Rock, | ||||
|     Paper, | ||||
|     Scissors | ||||
| } | ||||
|  | ||||
| enum GameResult { | ||||
|     Win, | ||||
|     Draw, | ||||
|     Lose | ||||
| } | ||||
|  | ||||
| impl GameResult { | ||||
|     pub fn from_str(c: &str) -> GameResult { | ||||
|         return match c { | ||||
|             "X" => {GameResult::Lose} | ||||
|             "Y" => {GameResult::Draw} | ||||
|             "Z" | _ => {GameResult::Win} | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl Move { | ||||
|     pub fn from_str(c: &str) -> Move { | ||||
|         return match c { | ||||
|             "A" | "X" => { | ||||
|                 Move::Rock | ||||
|             } | ||||
|             "B" | "Y" => { | ||||
|                 Move::Paper | ||||
|             } | ||||
|             "C" | "Z" | _ => { | ||||
|                 Move::Scissors | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn score(self) -> u32 { | ||||
|         return match self { | ||||
|             Move::Rock => {1} | ||||
|             Move::Paper => {2} | ||||
|             Move::Scissors => {3} | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn result(self, other: Move) -> GameResult { | ||||
|         if self == other { | ||||
|             return GameResult::Draw; | ||||
|         } | ||||
|         match self { | ||||
|             Move::Rock => { | ||||
|                 if other == Move::Scissors { | ||||
|                     return GameResult::Win | ||||
|                 } | ||||
|             } | ||||
|             Move::Paper => { | ||||
|                 if other == Move::Rock { | ||||
|                     return GameResult::Win | ||||
|                 } | ||||
|             } | ||||
|             Move::Scissors => { | ||||
|                 if other == Move::Paper { | ||||
|                     return GameResult::Win | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         GameResult::Lose | ||||
|     } | ||||
| } | ||||
|  | ||||
| struct GameMove(Move, Move); | ||||
|  | ||||
| impl GameMove { | ||||
|     fn calc_score(&self) -> u32 { | ||||
|         let result = self.1.result(self.0); | ||||
|         let score = self.1.score(); | ||||
|         return match result { | ||||
|             GameResult::Win => { | ||||
|                 score + 6 | ||||
|             } | ||||
|             GameResult::Draw => { | ||||
|                 score  + 3 | ||||
|             } | ||||
|             GameResult::Lose => { | ||||
|                 score | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     fn from_opponent_move(opponent_move: Move, result: GameResult) -> GameMove { | ||||
|         return match result { | ||||
|             GameResult::Draw => { | ||||
|                 GameMove(opponent_move, opponent_move) | ||||
|             } | ||||
|             GameResult::Win => { | ||||
|                 let our_move = match opponent_move { | ||||
|                     Move::Rock => {Move::Paper} | ||||
|                     Move::Paper => {Move::Scissors} | ||||
|                     Move::Scissors => {Move::Rock} | ||||
|                 }; | ||||
|                 GameMove(opponent_move, our_move) | ||||
|             } | ||||
|             GameResult::Lose => { | ||||
|                 let our_move = match opponent_move { | ||||
|                     Move::Rock => {Move::Scissors} | ||||
|                     Move::Paper => {Move::Rock} | ||||
|                     Move::Scissors => {Move::Paper} | ||||
|                 }; | ||||
|                 GameMove(opponent_move, our_move) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| fn main() { | ||||
|     let lines = read_file("day2.txt"); | ||||
|  | ||||
|     let sum = lines.iter().map(|line| { | ||||
|         let symbols_per_move = line.split(" "); | ||||
|         let mut symbols_iter = symbols_per_move.map(|symbol| Move::from_str(symbol)).take(2); | ||||
|  | ||||
|         GameMove(symbols_iter.next().unwrap(), symbols_iter.next().unwrap()) | ||||
|     }).map(|game_move|game_move.calc_score()).sum::<u32>(); | ||||
|  | ||||
|     println!("Task 1: Got sum: {sum}"); | ||||
|  | ||||
|     let sum = lines.iter().map(|line| { | ||||
|         let mut symbols_per_move = line.split(" "); | ||||
|  | ||||
|         GameMove::from_opponent_move(Move::from_str(symbols_per_move.next().unwrap()), GameResult::from_str(symbols_per_move.next().unwrap())) | ||||
|     }).map(|game_move|game_move.calc_score()).sum::<u32>(); | ||||
|  | ||||
|  | ||||
|     println!("Task 2: Got sum: {sum}"); | ||||
|  | ||||
| } | ||||
							
								
								
									
										58
									
								
								src/day3/main.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/day3/main.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| use base::*; | ||||
|  | ||||
| fn calc_prio(item: char) -> u32{ | ||||
|     if item.is_lowercase() { | ||||
|         item as u32 - ('a' as u32) + 1 | ||||
|     } else { | ||||
|         item as u32 - ('A' as u32) + 27 | ||||
|     } | ||||
| } | ||||
|  | ||||
| fn main() { | ||||
|     let lines = read_file("day3.txt"); | ||||
|  | ||||
|     let sum = lines.iter() | ||||
|         .map(|line|line.split_at(line.len() / 2)) | ||||
|         .map(|(first_half, second_half)| { | ||||
|             for char_0 in first_half.chars() { | ||||
|                 for char_1 in second_half.chars() { | ||||
|                     if char_0 == char_1 { | ||||
|                         return Some(char_0); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             None | ||||
|         }) | ||||
|         .map(|item| { | ||||
|             match item{ | ||||
|                 None => 0, | ||||
|                 Some(item) => calc_prio(item) | ||||
|             } | ||||
|         }).sum::<u32>(); | ||||
|  | ||||
|     println!("Task 1: {sum}"); | ||||
|  | ||||
|     let sum = lines.chunks_exact(3).map(|chunk| { | ||||
|  | ||||
|         for char_0 in chunk[0].chars() { | ||||
|             for char_1 in chunk[1].chars() { | ||||
|                 if char_0 == char_1 { | ||||
|                     for char_2 in chunk[2].chars() { | ||||
|                         if char_1 == char_2 { | ||||
|                             return Some(char_0); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         None | ||||
|     }).map(|item|{ | ||||
|         match item { | ||||
|             None => 0, | ||||
|             Some(item) => calc_prio(item) | ||||
|         } | ||||
|     }).sum::<u32>(); | ||||
|  | ||||
|     println!("Task 2: {sum}"); | ||||
| } | ||||
							
								
								
									
										68
									
								
								src/day4/main.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								src/day4/main.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | ||||
| use std::fs::read_to_string; | ||||
|  | ||||
| struct Range { | ||||
|     start: u32, | ||||
|     end: u32 | ||||
| } | ||||
|  | ||||
| impl Range { | ||||
|     fn new(start: u32 , end: u32) -> Self{ | ||||
|         Range {start, end} | ||||
|     } | ||||
|  | ||||
|     fn contains(&self, number: u32) -> bool { | ||||
|         number >= self.start && number <= self.end | ||||
|     } | ||||
|  | ||||
|     fn fully_overlap(&self, other: &Range) -> bool { | ||||
|         self.contains(other.start) && self.contains(other.end) | ||||
|     } | ||||
|  | ||||
|     fn partly_overlap(&self, other: &Range) -> bool { | ||||
|         self.contains(other.start) || self.contains(other.end) | ||||
|     } | ||||
| } | ||||
|  | ||||
| fn main() { | ||||
|     let input = read_to_string("day4.txt").unwrap(); | ||||
|  | ||||
|     let count = input | ||||
|         .split_whitespace() | ||||
|         .flat_map(|line| line.split(",")) | ||||
|         .flat_map(|line_range| line_range.split("-")) | ||||
|         .map(|number| number.parse::<u32>().unwrap()) | ||||
|         .collect::<Vec<_>>() | ||||
|         .chunks_exact(2) | ||||
|         .map(|chunk| Range::new(chunk[0], chunk[1])) | ||||
|         .collect::<Vec<_>>() | ||||
|         .chunks_exact(2) | ||||
|         .filter_map(|range_pair|{ | ||||
|             if range_pair[0].fully_overlap(&range_pair[1]) || range_pair[1].fully_overlap(&range_pair[0]) { | ||||
|                 Some(()) | ||||
|             } | ||||
|             else { None } | ||||
|         }) | ||||
|         .count(); | ||||
|  | ||||
|     println!("Task1: {count}"); | ||||
|  | ||||
|     let count = input | ||||
|         .split_whitespace() | ||||
|         .flat_map(|line| line.split(",")) | ||||
|         .flat_map(|line_range| line_range.split("-")) | ||||
|         .map(|number| number.parse::<u32>().unwrap()) | ||||
|         .collect::<Vec<_>>() | ||||
|         .chunks_exact(2) | ||||
|         .map(|chunk| Range::new(chunk[0], chunk[1])) | ||||
|         .collect::<Vec<_>>() | ||||
|         .chunks_exact(2) | ||||
|         .filter_map(|range_pair|{ | ||||
|             if range_pair[0].partly_overlap(&range_pair[1]) || range_pair[1].partly_overlap(&range_pair[0]) { | ||||
|                 Some(()) | ||||
|             } | ||||
|             else { None } | ||||
|         }) | ||||
|         .count(); | ||||
|  | ||||
|     println!("Task2: {count}"); | ||||
| } | ||||
							
								
								
									
										100
									
								
								src/day5/main.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								src/day5/main.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,100 @@ | ||||
| use std::collections::HashMap; | ||||
| use base::read_file; | ||||
|  | ||||
| #[derive(Debug, Clone)] | ||||
| struct CrateStorage { | ||||
|     stacks: HashMap<usize, Vec<char>> | ||||
| } | ||||
|  | ||||
| impl CrateStorage { | ||||
|     fn print_top(&self) { | ||||
|         for k in 0..(9 as usize) { | ||||
|             match self.stacks.get(&k) { | ||||
|                 None => { | ||||
|                     print!(" ") | ||||
|                 } | ||||
|                 Some(v) => { | ||||
|                     print!("{}", v[v.len() - 1]); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         println!() | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[derive(Debug)] | ||||
| struct MoveOp { | ||||
|     amount: usize, | ||||
|     from: usize, | ||||
|     to: usize | ||||
| } | ||||
|  | ||||
| impl MoveOp { | ||||
|     fn apply(&self, storge: &mut CrateStorage, task_1 : bool) { | ||||
|         if task_1 { | ||||
|             for _ in 0..self.amount { | ||||
|                 let vec = storge.stacks.get_mut(&self.from).unwrap(); | ||||
|                 let element = vec.remove(vec.len() - 1); | ||||
|                 storge.stacks.get_mut(&self.to).unwrap().push(element); | ||||
|             } | ||||
|         } else { | ||||
|             let mut temp = vec![]; | ||||
|             for _ in 0..self.amount { | ||||
|                 let vec = storge.stacks.get_mut(&self.from).unwrap(); | ||||
|                 temp.push(vec.remove(vec.len() - 1)); | ||||
|             } | ||||
|             temp.reverse(); | ||||
|             for i in 0..self.amount { | ||||
|                 storge.stacks.get_mut(&self.to).unwrap().push(temp[i]); | ||||
|             } | ||||
|         } | ||||
|         dbg!(&storge); | ||||
|     } | ||||
| } | ||||
|  | ||||
| fn main() { | ||||
|     let lines = read_file("day5_test.txt"); | ||||
|     let mut storage = CrateStorage{ | ||||
|         stacks: HashMap::new() | ||||
|     }; | ||||
|  | ||||
|     let mut moves =vec![]; | ||||
|  | ||||
|     for line in lines { | ||||
|         if line.starts_with("[") { | ||||
|             let mut iter = line.chars().enumerate(); | ||||
|             loop { | ||||
|                 match iter.next() { | ||||
|                     Some((idx, char)) => { | ||||
|                         if char == '[' { | ||||
|                             let idx = idx / 4; | ||||
|                             if let Some((_, value)) = iter.next() { | ||||
|                                 let vec = storage.stacks.entry(idx).or_insert_with(|| Vec::new()); | ||||
|                                 vec.insert(0, value); | ||||
|                             } else { | ||||
|                                 break; | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                     None => break | ||||
|                 } | ||||
|             } | ||||
|         } else if line.starts_with("move") { | ||||
|             let split = line.split_whitespace().collect::<Vec<_>>(); | ||||
|             let amount = split[1].parse::<usize>().unwrap(); | ||||
|             let from = split[3].parse::<usize>().unwrap() - 1; | ||||
|             let to = split[5].parse::<usize>().unwrap() - 1; | ||||
|             moves.push(MoveOp{amount, from, to}); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     let mut storage_task_1 = storage.clone(); | ||||
|     moves.iter().for_each(|move_op| move_op.apply(&mut storage_task_1, true)); | ||||
|     storage_task_1.print_top(); | ||||
|  | ||||
|     let mut storage_task_2 = storage; | ||||
|     moves.iter().for_each(|move_op| move_op.apply(&mut storage_task_2, false)); | ||||
|     storage_task_2.print_top(); | ||||
|  | ||||
|  | ||||
| } | ||||
							
								
								
									
										21
									
								
								src/day6/main.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/day6/main.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| use std::collections::HashSet; | ||||
| use std::fs::read_to_string; | ||||
|  | ||||
| fn find_marker(content: &str, size: usize) -> Option<usize> { | ||||
|     for (idx, chars) in content.chars().collect::<Vec<_>>().windows(size).enumerate() { | ||||
|         let set = chars.iter().map(|char|*char).collect::<HashSet<_>>(); | ||||
|         if set.len() == size { | ||||
|             let idx = idx + size; | ||||
|             return Some(idx); | ||||
|         } | ||||
|     } | ||||
|     None | ||||
| } | ||||
|  | ||||
| fn main() { | ||||
|     let content = read_to_string("day6.txt").unwrap(); | ||||
|  | ||||
|     println!("Task 1: {}", find_marker(&content, 4).unwrap()); | ||||
|     println!("Task 2: {}", find_marker(&content, 14).unwrap()); | ||||
|  | ||||
| } | ||||
							
								
								
									
										16
									
								
								src/lib.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/lib.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| use std::fs::File; | ||||
| use std::io::{BufRead, BufReader}; | ||||
|  | ||||
| pub fn read_file(name: &str) -> Vec<String> { | ||||
|     let file = File::open(name); | ||||
|  | ||||
|     return match file { | ||||
|         Ok(file) => { | ||||
|             BufReader::new(file).lines().map(|line|line.ok()).flatten().collect::<Vec<_>>() | ||||
|         } | ||||
|         Err(_) => { | ||||
|             vec![] | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user