Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
5d93c04f2b | |||
c3bb61daad | |||
9a68765006 | |||
e56b0cdc9a | |||
fb41918b20 | |||
7d0be1fec7 | |||
2cf4f06dd0 | |||
588b673b3f | |||
e563815306 | |||
022b27d847 |
@ -134,24 +134,6 @@
|
||||
<ClCompile Include="src\days\day05.cpp" />
|
||||
<ClCompile Include="src\days\day06.cpp" />
|
||||
<ClCompile Include="src\days\day07.cpp" />
|
||||
<ClCompile Include="src\days\day08.cpp" />
|
||||
<ClCompile Include="src\days\day09.cpp" />
|
||||
<ClCompile Include="src\days\day10.cpp" />
|
||||
<ClCompile Include="src\days\day11.cpp" />
|
||||
<ClCompile Include="src\days\day12.cpp" />
|
||||
<ClCompile Include="src\days\day13.cpp" />
|
||||
<ClCompile Include="src\days\day14.cpp" />
|
||||
<ClCompile Include="src\days\day15.cpp" />
|
||||
<ClCompile Include="src\days\day16.cpp" />
|
||||
<ClCompile Include="src\days\day17.cpp" />
|
||||
<ClCompile Include="src\days\day18.cpp" />
|
||||
<ClCompile Include="src\days\day19.cpp" />
|
||||
<ClCompile Include="src\days\day20.cpp" />
|
||||
<ClCompile Include="src\days\day21.cpp" />
|
||||
<ClCompile Include="src\days\day22.cpp" />
|
||||
<ClCompile Include="src\days\day23.cpp" />
|
||||
<ClCompile Include="src\days\day24.cpp" />
|
||||
<ClCompile Include="src\days\day25.cpp" />
|
||||
<ClCompile Include="src\main.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -33,64 +33,10 @@
|
||||
<ClCompile Include="src\days\day05.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day07.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day06.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day08.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day09.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day10.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day11.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day12.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day13.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day14.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day16.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day15.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day17.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day18.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day19.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day20.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day21.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day22.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day23.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day24.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\days\day25.cpp">
|
||||
<ClCompile Include="src\days\day07.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
|
@ -4,4 +4,11 @@ This repository is for my attempt of [Advent of Code 2022](https://adventofcode.
|
||||
|
||||
This year I will be attempting it in C++, hopefully I can do better than last year.
|
||||
|
||||
Got to Challenge 18 in [2021](https://git.luke-else.co.uk/luke-else/AdventOfCode2021) and started to struggle. Managed to a couple of part 1s afterwards but ended up calling it at day 21.
|
||||
Got to Challenge 18 in [2021](https://git.luke-else.co.uk/luke-else/AdventOfCode2021) and started to struggle. Managed to a couple of part 1s afterwards but ended up calling it at day 21.
|
||||
|
||||
|
||||
> ### 12/12/22
|
||||
>
|
||||
> Over the past week, I have been incredibly busy with work and studying for Uni exams and so I haven't really had the time to
|
||||
> complete the challenges. I would still like to complete the challenges, however, will probably have to do it amongst studies
|
||||
> and so won't be able to do them as they come out.
|
2250
input/day01
2250
input/day01
File diff suppressed because it is too large
Load Diff
2500
input/day02
2500
input/day02
File diff suppressed because it is too large
Load Diff
300
input/day03
300
input/day03
@ -0,0 +1,300 @@
|
||||
GbccTtTSGGbgrcWBGGrdgTnVQnCmNpCJlNnNPVfClcnN
|
||||
vMzvZhzhwDLVmQnClwwNQp
|
||||
FRsZFzjQFsqRzRRjDZbdtTgdHBBWGrdBdHHs
|
||||
HCLTmbCLgzNBNPSSlT
|
||||
JJGMWRJMrrdwWWGjGWMLRGLjBzNQsBzPPfflzDPBsBffDrQz
|
||||
pwJdLMjdMddWjLtwZWMMwGtHhnvnCnhvqVFFZnvbgbqVCZ
|
||||
tvMCDCSVVvDDBQFRbqWMMsWgFWgc
|
||||
BLLPTpBmfLPrHLLfLsbhRqbzRRcRHgqssR
|
||||
dfdNLmPTdNZmZdZPfpmTJLPPSvQjtSGVwQSDJSjSwDQBVCGw
|
||||
wZWTWNFqzwZbWNpSgGMVMtTHsgGs
|
||||
nlnPnPvLQjzdtsjBHBMMGSHg
|
||||
LdnrrLnhRdLLmLDRPvmdQnJDJWNqcCqZJZqfFqfcfzcq
|
||||
vPTbfWggzvGVqjsVqV
|
||||
dDcJHZcZHmMFQQMshsjcRqVChjNtqh
|
||||
dDHJDmFnrJmQFnBdMdQHJdZZlWTTPPjTLWbTzLWlTTfwjzBT
|
||||
VfmDHDfZzfLcZLLLHBFQtRJTcdjgdTgFjjtR
|
||||
WRPhMlGSshPRGgvFMtddTjjCQt
|
||||
SPhWPsbNWShsWllswGpzLmzfZwmZfqLVRrDBZB
|
||||
MtZgRgJJbbGjgDDgbjRjRbGcNdWwncBFdLBBMhFBQwnWnw
|
||||
vlpsNVsCzzfHpvTpzlSSSvppcQdfnwnWhndWndwfQLhnhcFQ
|
||||
pCsCCTHVvSzvPvHvzpPVTVHHRJJDgJZjJjqNmjZmDtJRZPNR
|
||||
GTGTbhhPjJJjBhhZsGzmfHSNsmHHgSdL
|
||||
FcFpMDFDRFfsRHSjmLjR
|
||||
CpFjqcCjwjnpwhTPTWBQZZTb
|
||||
zdzzwDlnTDQQQQnqQqqsFqnrSBSprbpjNJJBJPPdpJfbZb
|
||||
hgMcRVGMtHgRcNSPrpfgfjJpBp
|
||||
CLRHVHhtvtvGPWFFDqPDLnqP
|
||||
jssjjjHCSGCMNJTWWCJT
|
||||
DvcvBtVrrDSNWcMfLRfM
|
||||
ppDZSpBhBvBmvDHnFsHHPnGPGbQp
|
||||
VVVLsLWnjVVBGgScjtBjjLLgmJdPmJmfmhmGmmmNmJGhPNJP
|
||||
QbqlZqQTZvMHmshvFhPfffFp
|
||||
CsTRrQrwbCbrZqQTQlRjtDBSBtwBjgVWLBtgBt
|
||||
FLsSFRTPscHZmGRGGc
|
||||
npNNptgttCNpgLbnQMgnQnMNqVhGqZrmrmmqrmcrqmCVZwqH
|
||||
WMWbtpjLgnLNvSfPPzjvjPdv
|
||||
FcFFhZlhlMrHlSFSrHZMJZSVmmLmVLLCsBtLBCzCBVDRcV
|
||||
PMGPbndvGfGstLzDCmLB
|
||||
NwjPqdvPpvgddqgwHrZhJlTlThpWJMZp
|
||||
SdjStScTWTwwvwwfjRhQPQQQDlLBGpLrPrLrLc
|
||||
gCqJbNsVsNMgzMJnnqzNlCLGGlZZPrLLlLLtpPDl
|
||||
JsFJFMmbJqqnJbhSHdjWwjtmHWvS
|
||||
zBFDGGbNzDWRbDccsWslHlWWsJcS
|
||||
zMVqTwzPfVfVMwmlcZTZZlSmTlmc
|
||||
MrMvMCnrMVMCPrPnDFFGgQdFgRdzznbd
|
||||
rJtJnrnSShJgcCsjjNNMSSDzRmzm
|
||||
HWDWPBPDBfFVBffqplvlmNlQllvzQNQqlN
|
||||
FVGHHFVbwBpBPwFFGfBpHVDgrcJCbZcLdCgtcCcJLJrd
|
||||
MGHGGFFqbFTGmFwLmQsQflFN
|
||||
WcvBdpjhdZdNwdZwLZ
|
||||
vWtgVcpvjthtNcjntDhhpSJMSqHzqTzqCVHTSqHPGT
|
||||
cVHZfjfZMcrSDQMJRCBCQw
|
||||
PtGddtslsWQDBdwCDDdw
|
||||
WsvTFnshPTGhGhhlPNGTCnsjgFVfmgfHZfVHgcHZVVFmFV
|
||||
JFFqfJBgrHBffVHlsBFqfWNgjTtztNnttWWvWNwzwt
|
||||
hGZbcBcZZSQmZLQRTbvNttTzjtTvbpzv
|
||||
cmmhRchPZhZSSmdmGPDDdJdBVMffHlqlslfF
|
||||
qWwTNwNHMHNNMRqMdRMQQMHLmmvzrTmrzPvzJvZvZlvzjZ
|
||||
FphBpnBhVBSFvLljzZPpmrPL
|
||||
nGsBbssbcbdlwggdNl
|
||||
RLSRTLSFFFLPSWpzzTJdzsQpbd
|
||||
DvqqcwVMDDcfrrnwDcwnvCdpQQphJhJjhdhpzsJhMQ
|
||||
fGcvDZffcGGZDHGrGrtJRPlPmJSlPLRgNBHg
|
||||
QlFFmGQFDQrrWlRlWGrnQVCLNvvPwLCwBvCcCcJCLCCm
|
||||
tHtfsjSMCNPwzvCf
|
||||
MjqStqMHsMSgjShjTttgphsTlrbDWGDrGlRTlNDbQrQRWRbD
|
||||
QbChcCJCbHQCjbGCjQfsdsrtTqrfTLrcFftd
|
||||
DwRzVzzZnzZRwvgRhRWtqsLLWtRdqLLdqd
|
||||
NMwMzBVVPPSGQhBl
|
||||
ttTPHWdrJjCdjnFMtLLtLNvQltLh
|
||||
pSDBwZRBBsgfDGGsGpBVMFPQQlFMFQQFQfNvLNfF
|
||||
PsppZzBVzwgDwBwwgpSSBssWjqrdCnjjHdmCTHznWCJJWn
|
||||
WcdHdPcdZrLPDPBQDg
|
||||
pMjMMqfmJlqNflMlFNRfLBwnLzTTTDJJwDTTGTLJ
|
||||
hlhbqpbNNbVVdbZtSB
|
||||
RDBWGRDnzBWBJDNBttSLlclldtQQcTTLFF
|
||||
rTPVjZZsCZrVhdFMcgLgwFSgQh
|
||||
PsjHVffbsTCHrCvTPfDJGJHNzzNJWnnnmzDB
|
||||
LQdFgTLdQjVsQFTRBjMZrmBjWGMGSW
|
||||
flvJJlJpbNnppCpMGGfBBZSZRfFmGr
|
||||
NNbNDNlbDpHlbDDplvzvnCbzqsQPFQsTTccsqdQqLgdHLwQw
|
||||
DnGDNDTFdFwDzCZZRmhThCRRRv
|
||||
SgrPLrrLsBPbHBCmtVZVCdCcctHH
|
||||
rSbgBrsqgsPppMBqfpPsLpPGlNGGDwNFNJWDldlllDwJMG
|
||||
PWbvNWvpvJPnWDGqDjDczj
|
||||
QwfFFVVQSMlDlQfFZhsHrBrhHHTcjnczqjzqrG
|
||||
mwMSgfmDmSSFgfFNbmLpbRbJbvbRpC
|
||||
lsggLLLDGldGTGBBhNTCwRwVnJnNCCnbRV
|
||||
QQpWrpHtrHrpNRRJNtfbJCVR
|
||||
PvQQFPzccvBglclNscls
|
||||
NsszMMNGWLcWBhMF
|
||||
gTtwvbqfnDTdpvqDftpnnntDZvLFQFBLmRWFRhJZJhLLBRQB
|
||||
DwrpDbngprPWGllSNrSS
|
||||
nCqdLPZPMMZLNvtGhRmGhGPmtW
|
||||
TSrVZVSZVwFTgSVtrtchvWRRrtWtcr
|
||||
gjbjBjgTjfgfVfHHppBLMnqLMDnqClsZJLLD
|
||||
hrqShCPCpHHBVBGWQFVQGFGnzQDf
|
||||
tgvZsbwsbcMbRsgccjDGFvGFfWJLLzFFQJ
|
||||
TTZmMcgmbmWZMctbbtsHrrqqSHHrCrPBBSCPrT
|
||||
HHHNZLGLpBpRSvWlGlqhPghqDGnnFr
|
||||
QCNCMTJdjMjdjsQTbdQmmCQDngFqnggPFcPcnPFcDqcbDn
|
||||
MNJfzNsfJdJjdzwMNjjTJttSHVStRtZVwHvWRWtZHt
|
||||
DSbvDdDbbwHgCSgZPwpbPgmTTJhsTTChqTJssQssFmJJ
|
||||
zzjMNNGMMRcNNhvnvFqmtJJv
|
||||
WWffvlVrcGzGlcjLvfrVRLHgHgpDPSbPpwwHbWbBbPPH
|
||||
FCCjjFlFtCjzlpTHtJsQTTcpTT
|
||||
DWLhWSgDWWdSWLwmmpHHQTHcBTBvvwHvHl
|
||||
mgGRhrLLgWqnjrfCNlzP
|
||||
cLsslBlsqNNTHlTVNbLZZLRCQbZZdQdpbP
|
||||
JGfJhhwfwBBSJPRdZddpZRQbfR
|
||||
hWmWGgDhJrFhBcWsssWHvHll
|
||||
lmmvlJFtMHFtQzVSRbPGzLJRgG
|
||||
BcTcrNBrrwwqDBqNqwcrhLpLPVzRhPRPPPgSGVPLbS
|
||||
TrDqcnsTcsmnvHtdGtMW
|
||||
CcnDQpSDcnFcPBrmbPQGBsGB
|
||||
gCtCfRZTBWbjPRbr
|
||||
qgvHqgJhMfZTtvHgfTghJgMJDpdppFSLLCcSDvLLcdDwvLcw
|
||||
ffFgGRMWSTGcnDgllDDpDp
|
||||
dvSdHBrVSLNVLjdlsllcsDqpsZ
|
||||
SHHHNrLJLvtNQJVvmMfGRGGRCJWJRwzWMh
|
||||
JNpNDfDBDHVzwHHzpzBWVBPsvsFNCbmbqsFFNsjCmvsmNC
|
||||
rnnrtLhnrrQZMvtFbWmqtllcFb
|
||||
GQRdGQLLhMSQhZLZdgdwwHzPDzSVWzVDwJDVpz
|
||||
LdcGjgdcrMDSFGVfnnGG
|
||||
HNsCCQFCPvFFBJnnSBJVfDVJwf
|
||||
HHFRqHPpNppmQPcpLjzrdgtbgztT
|
||||
GlZZbclGZsDvlGhsShRnCnMQtjtQjnCQsQRM
|
||||
PggFVcdFNFNNVVFLPdPdrwpWBMMnqMpnttJMnjMnQqtqQtqq
|
||||
FdgcdcLwfTmSGTmhlbzG
|
||||
RGvhGrLhhRhlpChZrGSprBdPPHJJSBgSSHqBWBBffH
|
||||
mQmjmwtTMTVLzHnTPWffPHHJBf
|
||||
jMmmwMcVcFLFrlRshZbCrF
|
||||
SnNgNgBlNZSZdZtMrlnSnnQtjpwFwpvFJwFqpwSbqjjqGRpv
|
||||
CLCcWHLhLTzsDPcCWMLGpFJbGFwsbvGwJwjpRv
|
||||
zMCTPhmHWzfhQQmndNllNrQg
|
||||
dbdBdZrQsrdrGslrrSpLvwHmlTmmwScTHv
|
||||
FgnJqLDLWqNnNpppmpCSSmCJTw
|
||||
NNhhnRNfzMhgnMDFfGdGLbBVVdQRtPVZGt
|
||||
BBQJNTTzTcfRhtjhffqDDWCC
|
||||
vZnsLsVLSvPwPFFnwPlSPgZWqGjChgWCCWWCMCgGMh
|
||||
srLLnLmlPwrrPwmwwvlRqzQRJBmppQTTQpTdBN
|
||||
PLDpZGpWbNGWLDfQmsQDwwsmhm
|
||||
vTzMMbgCfgHQsmQt
|
||||
VMlRznlzVnTcFzbMcrpJcNrJdjdpZrLdcZ
|
||||
SftvFcDSvDHsFtctMSvbdjbpqpRRpRTJrMdrrb
|
||||
QzQZWZnQgQZwBBwsJdqPjdjrnTpJjs
|
||||
NGmwmgszhZwwGGgZGmggWLVSVHlNVVtDcDltFVVVlVHt
|
||||
WCfFBfBHHjHHjgHBjJFVcVRwQMbVrRhrJbRRJM
|
||||
sZMsDqzZPRrRrVswdc
|
||||
vvTzDzpDTvpDvZPvSnNZZlSHMCHjjFtWmlttlCjmCF
|
||||
hJZwhrvhBJRrPQPwRRZLllgLqfcqpTggpcTWMTff
|
||||
HHDzMztbVgTzNpgf
|
||||
nGbmtjDMFjDjCHbbbHHHdBQQPBrZvJQRwvwRPZQJGs
|
||||
NNSrMSHRqWpWNNrNMvLffTBBDmsvcmcJLM
|
||||
lwPPhcddcGPlBDTDlmDvJJsv
|
||||
bZhzCdPGGFzVVPwVwbNtcqHrpnpZptSZqRrt
|
||||
GvvSWhmhWBNcBDNc
|
||||
FzlRRTljjRTjRRmZfbflRTlFFrrMrcBcDVqBVsNDDJsMFr
|
||||
bttRfzfRHzjlmlnCbTtzbRShgwHGGvppLdpvwLLGLLhd
|
||||
MHGMWdBFFNsFFHpWSFddMmqVmVBggmlVfbVffjgZml
|
||||
hcJsTTscvsLDzDJmqVgfqbqnbmfJbJ
|
||||
PvRTzsPwLcwCprSdwdNW
|
||||
qfJnJdLpJzrcqCrCzcGfpRSSVBPRSjSSllTNRBdTRS
|
||||
DbsbtggsbbsghhgvnWWSlVjPSjmmPBtjPNlTmS
|
||||
vHHHHDHvZHQvWbWsZDgWhDwWzpfGfzfcpFJzczwFJrfffnGC
|
||||
sQvsRQsFZvfpGhjhQqjpZvjGJHgngPBNHnCBJBCmSBmBNG
|
||||
HTHwbtdTDDnCTPTT
|
||||
zwMlVdzbzLzMWvQZRQZfZZlHsR
|
||||
QhzWwRBPHgFrWWrH
|
||||
SDgJCCDCsVpMMqTtFpfpqG
|
||||
gJNCCddSZNSlljQzPPNBzR
|
||||
dLzVVjfLGCCdRPrdmBtwWttr
|
||||
NnbNsbTHJnbHbSHlNQsNtwrJRwBMMBhrPJWZRRtM
|
||||
QSslpFvpSSsQPFCDqqgzcjCj
|
||||
fcpGshsfNcNZsmRjNqCtnFgbCgHrrggmrn
|
||||
QvzBlBBQBdJTBzBwVVMgbrwwLFtLtgLFHCHrbF
|
||||
dlQQMBSSTPZfPcfssZNC
|
||||
gNGVMzVpVVTdPDWdRdNT
|
||||
BfjbnCBjBzffHrbrzBDddQWTZZQTTJTQTHHS
|
||||
zrFncfBjcjnrrlCLwFgpmvFmwGmVLh
|
||||
MbngccTfWgbWcTTzZghmLshhLRttpthRDLtf
|
||||
CdFdJHCJjBvBSCNCNJBjjdjpsPDwDtwvptRPmLmzRwhhLR
|
||||
qJSCCBFHQBFFldrVZZbggnGTzcZQ
|
||||
lPrpppllcwwpHprppNdfLbQJnWdLJnncdN
|
||||
tSjjjSSDGgghRbbSTfTbTFTLQn
|
||||
jCBgDMbBMGghZzCZmmlrrpwp
|
||||
FhCDFvvPwCjcLhDjhnvjnsdfZTlflQlflLsppdQfld
|
||||
zPNSmmHrSSHWBNSMMVGzfGfZTZQZzdpdRGZR
|
||||
WSNVVMMVtHSVbMNWBHqmwcvhcgwgvwtPvgtPDjtw
|
||||
jSSSjzZMmgSzzwmZBtHcHmtNdncHtnpNcn
|
||||
VsLsRsJJsTfRVfLRLJlfLlWqNbDcddncvpvbdvcnpqdpdtHq
|
||||
GQQTsJGGJLlRGJFWffWLhgZwrZBZFZrhtBjrjjZw
|
||||
ZfzJPvPnLvRJRfZLDfjfrBcqrgsgDBrcrGgslsms
|
||||
SNhpqSNhpVTNQSMNgWmrlccVGBBmwrBw
|
||||
QHHFhhNdTNHHfZPFqtqPRtjq
|
||||
PMZSPSZZGMspsLhLRqRVzfGjvF
|
||||
tcwwgcgbcbCrtbbtmQQcCqRffFLhRgqjFjRfhFqhqz
|
||||
CLQtcbcmwmbdrbBrlrCwQTsTPsPsZNBPNWJpZWpTss
|
||||
lMTrcHrhChWnRzJrznnr
|
||||
DDJbPwjLJpfBQjPVBpbsGVGVWnZnsqnZsnzsqZ
|
||||
wJQLbpPJDLfgPbDNCHNlghNCMhcNcl
|
||||
tlVZhlVWtnBltVtssZBBbPbcpdPwbPWfvcbLvbbb
|
||||
NwCTFNFDNdSNPpLpfN
|
||||
CGwRjwDjzFFGRGjjFRjlBtZqMzVVtVqhMZMBZn
|
||||
HhFdMFHhgrdjcZtZjr
|
||||
zvvQQvzwzDMjZTjtcrTDtt
|
||||
BwMwSvQSVlzQlMQzwzNgGHPGGHFCCCgGhsHLCS
|
||||
zMVtBhhVhhDhtzBtMTTfDrPbmRRmPbQmrQbNQGRQtR
|
||||
vLlJHgnLpDvHHvHvmPbSQbQRGmJmPRrb
|
||||
pspwHClCwqplsHqDsMMTFWsWfjzszf
|
||||
CmmjLwWSWGCHCjwSmStJBgQcccBhwgQtgthQ
|
||||
WZVFTpqWsMsZpFddzszbVzJQBnRtrQthchdBgtgRtdrc
|
||||
bbsMTWsMVsZqNZMpqWDqbMsCjvlCfjGCPlLLPLCmSCfCLN
|
||||
VzsjjVGhpjJrJHCppprt
|
||||
WtMnqtWdSQDtMRSnLNHHwHwQvrJrJCPN
|
||||
tTtWSScTddBqdRMmlsbFBfhVBhfjjF
|
||||
gLMWzdTgLFQHdlMgMRwcwhqqvPcPhVFRDF
|
||||
tBnGrSCZNZCrtGBsSNGtBPhcgfchqqDPwVPRvNRqwN
|
||||
CmrgstjZngtBzbjJlQWWHjjM
|
||||
qttwGWHtVPzJJPqbmb
|
||||
NrRvfTTghNrpLrrpLTrNrRrhvJmzmzlbbVVbdbdZlDdvzMPb
|
||||
rfcprNcfgpLrVNnnCcnnscstFGCF
|
||||
ZZhTfggZsbshGrfshMrNMCSRMMWqCqMNRq
|
||||
TVTJPDTFccqMCcJw
|
||||
BBLBmLTLDHFvsQpfgnZhbQvG
|
||||
ffSrFvVVmVCQSfVDFzDvDDmmnGWCRqGRWNNqlttnRsNtGnWW
|
||||
PgZQgPJJpTpTHRGtNRGWqZMWWR
|
||||
wdTdwgbPJTJgTgLSFBbrQvSrFrVS
|
||||
ppssshsscCVCHhVWVpznnQRBnZnBbzczFPRS
|
||||
dqqfJGWttfWGlwwPSbFbZnRFPFtFZS
|
||||
wGwdGdddLfGgMTJfwLMlJMpTCChjHhjTHpjjhmsDHmHW
|
||||
PZQBhRPQBQrWHFHqHFHCqh
|
||||
STQSvvvppzSVHJJFWjHC
|
||||
TTgTvbsbszcNnnvbncvRGPBRtRgQrDPLfftPPR
|
||||
dMltttpQhmQVZdmhsdrvNCHvlWbHWvHCWrlr
|
||||
PzzLTGpGPDzFBzqFGFqFvHWHvRJbbrbWvCvjJCLv
|
||||
BpqTBzpzfGGTTPZtSddtQmVffSst
|
||||
bwHbRZldhQQfDWWGDjBf
|
||||
CzvgpsNMsvCvFvpszpnMsFgBTDBDWPnPVJJZZDJnfjDTff
|
||||
CpcLsFrMZbhRcdmt
|
||||
HgjpWlhzpWjhWTQPFdPBRQzTMQ
|
||||
JsfwrqLttwJVLGhRQGGPBd
|
||||
CttfrqDmDDtCsbZCHjhZHSHNlgcW
|
||||
QSdCWlCRhWRdlrlZrDssZsGDbv
|
||||
pjPrpjqFNrZNGnBbsNDG
|
||||
wjjVHjfLQRCgdLrC
|
||||
PjMpRdBdjMSGsjpdprqtwCrNGrrNlthhrG
|
||||
WQzDzLZDgzZcqlqqrtJclJnh
|
||||
zbWHQHDfDWZHfLZHfffWVZpRSPpdVvBSPMqVMPjdvspS
|
||||
TMBJLTJlFHBjFFtMGngpvvpgvQmtNSNngv
|
||||
bVhsZswRCbbVZWVfVZwVSpmSQPPvNHwPHmgmSSNN
|
||||
dCCVZZcbWVVcCbbfsLrdjFMJdDDHBTMrjr
|
||||
vNWcTWnCqNCPPjhhHsQrfgszrTJRQsfRQD
|
||||
wLdwMBLFBBQJpszJBqzB
|
||||
lLwVmMSmttVMlSNqcbcbSbNcvHbh
|
||||
PVfJfDWrPVPPLcPPFWcjPrqlqqQsljRpplqBQpRvSQvs
|
||||
NdggMTCChMgdChNmdtTbtmsQSRhQslhlpFRpFwllwQvw
|
||||
CdnGzbGbgMGMdTCZZDDJcZFDDnWrPH
|
||||
fsshhnfLZSvcVbdcZVJj
|
||||
RCCSmDFFpRqHQDgWvbGjgjDdbG
|
||||
pFmFtCSBCSMBBLwrPsBPNlNB
|
||||
fWWcwbbwbWfGCPgPfvbwgvgcQQqQLsGLJQTZHHrZRsrLqlJs
|
||||
VnszmsDBpMFpzNFlrlRLRRHZqRHr
|
||||
VpdzDMNzNDjpsdzdnzDcPCwtWCjhbthvfgtgwP
|
||||
SPQtSWDLLltQQctHLSBSWHlWgFwhMRsgwggrFJPgdgwwGJhJ
|
||||
nCqmfVqfVjTznCMhsGRRRgGFMffw
|
||||
mCnNTVzVvjmqNtlDtbttDlBM
|
||||
LjctjtppFWmgthgs
|
||||
nBrNvzTqlDJlbbZgvmhMZVZb
|
||||
JJrnTrrgGDqDPwwSPHPpfjRdPc
|
||||
sTQmCmmVqmJHSTjGdMMfMNNvNHvc
|
||||
rFbzlLLWWPzwlWrlbwzrWbRvdfFjdjpvjfFNNMccphCvhN
|
||||
rrWzrwzPBBBCZTJgZg
|
||||
gffvjftWddzZtbvdNvgZLwBBMJLSWMDMDDBRWRmS
|
||||
PqPqpqcCnCpVqlClTQQmPMDwPRJJBLLLhS
|
||||
VCGqlHmmHsjtHNsZ
|
||||
mmMlVllWmhmmBzzLGMWlBmpstptPRRZpPMFJSpRsFRFs
|
||||
DgjnndQcNTCCCDNcdSRSdtZPfwfwJSJJ
|
||||
gQjCQqQjHNnjDCgHNcZGZLhHzrLVLGzlrGmb
|
||||
JfwfJpBgJSMphZqtqDDG
|
||||
QcQrssrGCcMCVcMc
|
||||
RnljPRnPjWbGRbjnjbvmSzwHfHgwfJHzdLFSwBFW
|
||||
sBjbHCBCnjvsJCHBsbvwwJGfRNFFFfFGTcrVFffNHRTP
|
||||
zDqdpqMgMtgzthgDtQmzGPTVSTVrVGTFSVFFqNRF
|
||||
zDLdphmmLhMhDhQdlzgLLbjCnWswWWlrZJBswCJJZl
|
||||
FMNrQFgrVwmrpJMwMTMPflbsHPTtlSbftSjCbC
|
||||
zGnGnhnGzDqRLnZLHNHbbbHDlltNSjCl
|
||||
nzddcRzzBnRRvRRhvnQFpmpgggJVcVmMQmgN
|
||||
CCpMlhwwpJpdBlsdcjvtZDFrtmRqmDrsmv
|
||||
gzVPbjSPfSPTTTPnWVSbbvDQZZDZrFWDvFDvmvQQmZ
|
||||
LTbLTPgnTzLVPNNGnNTgVNPlGdHHCphMwHMwjMphlpjccl
|
||||
rMMrqcrmJqJqmCsTPWWGGPzPlPPrGL
|
||||
fnwqwwZwRnVlWWnzWBWlDP
|
||||
jvVHvqfpJmhtHJtH
|
||||
NLMVQjRNTJCTJtZTJc
|
||||
DlGlGHvFHGDgcFCtfhCJFtZc
|
||||
DBHGGGSDvGDPHWBGdBbSvgWDNVMjLLRnmNmjPLNPNcRQVnjj
|
||||
tsGdTJdJtNllzjGRzm
|
||||
HZvvDLLWqbBBMRMRNjVhHRmn
|
||||
vZDCvqqgBDZZjbZDrWqBvpdpFpcdpCJcPTSJJtptpP
|
1000
input/day04
1000
input/day04
File diff suppressed because it is too large
Load Diff
512
input/day05
512
input/day05
@ -0,0 +1,512 @@
|
||||
[Z] [W] [Z]
|
||||
[D] [M] [L] [P] [G]
|
||||
[S] [N] [R] [S] [F] [N]
|
||||
[N] [J] [W] [J] [F] [D] [F]
|
||||
[N] [H] [G] [J] [H] [Q] [H] [P]
|
||||
[V] [J] [T] [F] [H] [Z] [R] [L] [M]
|
||||
[C] [M] [C] [D] [F] [T] [P] [S] [S]
|
||||
[S] [Z] [M] [T] [P] [C] [D] [C] [D]
|
||||
1 2 3 4 5 6 7 8 9
|
||||
|
||||
move 3 from 9 to 6
|
||||
move 7 from 6 to 2
|
||||
move 1 from 1 to 5
|
||||
move 7 from 7 to 1
|
||||
move 3 from 9 to 7
|
||||
move 1 from 9 to 1
|
||||
move 1 from 7 to 2
|
||||
move 11 from 1 to 8
|
||||
move 9 from 8 to 2
|
||||
move 1 from 6 to 7
|
||||
move 3 from 7 to 3
|
||||
move 7 from 3 to 4
|
||||
move 9 from 8 to 7
|
||||
move 3 from 3 to 1
|
||||
move 2 from 5 to 2
|
||||
move 6 from 7 to 3
|
||||
move 1 from 1 to 7
|
||||
move 1 from 9 to 2
|
||||
move 1 from 5 to 3
|
||||
move 1 from 8 to 2
|
||||
move 2 from 7 to 5
|
||||
move 1 from 1 to 4
|
||||
move 3 from 5 to 8
|
||||
move 2 from 8 to 7
|
||||
move 1 from 8 to 9
|
||||
move 7 from 3 to 1
|
||||
move 8 from 2 to 5
|
||||
move 3 from 7 to 3
|
||||
move 1 from 5 to 1
|
||||
move 1 from 9 to 6
|
||||
move 1 from 7 to 4
|
||||
move 1 from 6 to 3
|
||||
move 1 from 7 to 1
|
||||
move 9 from 4 to 5
|
||||
move 8 from 1 to 2
|
||||
move 3 from 3 to 2
|
||||
move 1 from 1 to 6
|
||||
move 7 from 5 to 6
|
||||
move 1 from 1 to 5
|
||||
move 1 from 3 to 5
|
||||
move 21 from 2 to 3
|
||||
move 8 from 6 to 3
|
||||
move 5 from 4 to 9
|
||||
move 9 from 3 to 8
|
||||
move 17 from 3 to 5
|
||||
move 6 from 2 to 1
|
||||
move 2 from 9 to 1
|
||||
move 3 from 3 to 6
|
||||
move 3 from 2 to 5
|
||||
move 7 from 8 to 2
|
||||
move 3 from 6 to 9
|
||||
move 2 from 2 to 4
|
||||
move 1 from 2 to 6
|
||||
move 2 from 2 to 6
|
||||
move 2 from 6 to 5
|
||||
move 1 from 6 to 1
|
||||
move 2 from 2 to 7
|
||||
move 1 from 8 to 2
|
||||
move 4 from 9 to 1
|
||||
move 4 from 1 to 6
|
||||
move 1 from 8 to 5
|
||||
move 3 from 6 to 9
|
||||
move 1 from 9 to 1
|
||||
move 2 from 9 to 2
|
||||
move 4 from 4 to 5
|
||||
move 1 from 7 to 8
|
||||
move 1 from 7 to 5
|
||||
move 8 from 1 to 8
|
||||
move 1 from 1 to 9
|
||||
move 1 from 6 to 8
|
||||
move 2 from 2 to 6
|
||||
move 1 from 1 to 3
|
||||
move 1 from 2 to 5
|
||||
move 1 from 3 to 4
|
||||
move 3 from 9 to 4
|
||||
move 4 from 4 to 1
|
||||
move 29 from 5 to 1
|
||||
move 2 from 6 to 3
|
||||
move 2 from 3 to 5
|
||||
move 2 from 5 to 9
|
||||
move 7 from 8 to 1
|
||||
move 3 from 8 to 6
|
||||
move 6 from 1 to 6
|
||||
move 2 from 9 to 8
|
||||
move 2 from 5 to 3
|
||||
move 3 from 5 to 6
|
||||
move 2 from 5 to 6
|
||||
move 1 from 5 to 1
|
||||
move 2 from 3 to 9
|
||||
move 1 from 8 to 6
|
||||
move 1 from 8 to 3
|
||||
move 1 from 3 to 5
|
||||
move 5 from 1 to 5
|
||||
move 5 from 6 to 2
|
||||
move 25 from 1 to 9
|
||||
move 9 from 9 to 3
|
||||
move 7 from 6 to 8
|
||||
move 9 from 5 to 9
|
||||
move 2 from 6 to 5
|
||||
move 6 from 9 to 7
|
||||
move 1 from 6 to 8
|
||||
move 3 from 2 to 1
|
||||
move 3 from 8 to 1
|
||||
move 5 from 9 to 6
|
||||
move 3 from 9 to 1
|
||||
move 4 from 6 to 9
|
||||
move 2 from 7 to 4
|
||||
move 1 from 4 to 1
|
||||
move 1 from 6 to 2
|
||||
move 7 from 1 to 6
|
||||
move 1 from 9 to 8
|
||||
move 9 from 3 to 9
|
||||
move 5 from 1 to 7
|
||||
move 1 from 5 to 7
|
||||
move 3 from 1 to 7
|
||||
move 3 from 6 to 7
|
||||
move 8 from 9 to 1
|
||||
move 3 from 7 to 3
|
||||
move 1 from 5 to 6
|
||||
move 3 from 1 to 7
|
||||
move 4 from 1 to 4
|
||||
move 2 from 8 to 5
|
||||
move 1 from 4 to 2
|
||||
move 3 from 2 to 7
|
||||
move 2 from 6 to 4
|
||||
move 1 from 1 to 2
|
||||
move 18 from 7 to 5
|
||||
move 1 from 7 to 5
|
||||
move 1 from 2 to 3
|
||||
move 4 from 5 to 9
|
||||
move 1 from 2 to 1
|
||||
move 2 from 3 to 9
|
||||
move 2 from 3 to 4
|
||||
move 2 from 6 to 5
|
||||
move 1 from 8 to 3
|
||||
move 4 from 9 to 7
|
||||
move 1 from 1 to 9
|
||||
move 3 from 5 to 2
|
||||
move 2 from 8 to 6
|
||||
move 2 from 6 to 1
|
||||
move 5 from 5 to 7
|
||||
move 7 from 9 to 7
|
||||
move 11 from 5 to 9
|
||||
move 3 from 7 to 6
|
||||
move 6 from 4 to 9
|
||||
move 5 from 7 to 3
|
||||
move 6 from 3 to 6
|
||||
move 2 from 1 to 2
|
||||
move 2 from 4 to 9
|
||||
move 6 from 9 to 2
|
||||
move 1 from 7 to 5
|
||||
move 10 from 2 to 9
|
||||
move 4 from 9 to 4
|
||||
move 1 from 4 to 3
|
||||
move 31 from 9 to 3
|
||||
move 1 from 9 to 4
|
||||
move 6 from 3 to 8
|
||||
move 1 from 5 to 8
|
||||
move 5 from 6 to 4
|
||||
move 4 from 3 to 2
|
||||
move 1 from 4 to 6
|
||||
move 22 from 3 to 7
|
||||
move 6 from 4 to 7
|
||||
move 4 from 6 to 2
|
||||
move 8 from 8 to 1
|
||||
move 3 from 2 to 8
|
||||
move 2 from 1 to 9
|
||||
move 1 from 2 to 6
|
||||
move 3 from 2 to 5
|
||||
move 2 from 5 to 4
|
||||
move 2 from 6 to 4
|
||||
move 24 from 7 to 4
|
||||
move 1 from 7 to 4
|
||||
move 2 from 1 to 5
|
||||
move 2 from 9 to 6
|
||||
move 10 from 4 to 6
|
||||
move 3 from 1 to 6
|
||||
move 6 from 7 to 1
|
||||
move 2 from 2 to 3
|
||||
move 1 from 7 to 4
|
||||
move 2 from 8 to 4
|
||||
move 1 from 8 to 5
|
||||
move 4 from 5 to 2
|
||||
move 5 from 4 to 1
|
||||
move 2 from 7 to 8
|
||||
move 2 from 8 to 4
|
||||
move 5 from 6 to 3
|
||||
move 2 from 4 to 3
|
||||
move 1 from 7 to 5
|
||||
move 2 from 3 to 6
|
||||
move 1 from 5 to 1
|
||||
move 3 from 6 to 8
|
||||
move 11 from 4 to 3
|
||||
move 7 from 6 to 1
|
||||
move 3 from 8 to 1
|
||||
move 1 from 2 to 3
|
||||
move 2 from 6 to 9
|
||||
move 2 from 2 to 3
|
||||
move 3 from 4 to 3
|
||||
move 2 from 9 to 4
|
||||
move 1 from 6 to 3
|
||||
move 5 from 1 to 2
|
||||
move 2 from 4 to 3
|
||||
move 24 from 3 to 7
|
||||
move 3 from 3 to 9
|
||||
move 1 from 2 to 6
|
||||
move 1 from 2 to 5
|
||||
move 1 from 6 to 1
|
||||
move 4 from 2 to 1
|
||||
move 2 from 9 to 2
|
||||
move 1 from 2 to 4
|
||||
move 18 from 7 to 5
|
||||
move 1 from 2 to 1
|
||||
move 1 from 9 to 1
|
||||
move 2 from 5 to 7
|
||||
move 13 from 1 to 8
|
||||
move 3 from 4 to 9
|
||||
move 7 from 1 to 7
|
||||
move 13 from 7 to 6
|
||||
move 1 from 9 to 5
|
||||
move 3 from 4 to 3
|
||||
move 1 from 9 to 8
|
||||
move 3 from 1 to 3
|
||||
move 1 from 9 to 5
|
||||
move 2 from 1 to 4
|
||||
move 2 from 7 to 3
|
||||
move 4 from 3 to 1
|
||||
move 1 from 1 to 5
|
||||
move 9 from 6 to 7
|
||||
move 5 from 7 to 1
|
||||
move 2 from 4 to 1
|
||||
move 4 from 6 to 1
|
||||
move 3 from 5 to 3
|
||||
move 3 from 3 to 5
|
||||
move 7 from 1 to 6
|
||||
move 6 from 6 to 1
|
||||
move 1 from 6 to 8
|
||||
move 2 from 7 to 9
|
||||
move 2 from 1 to 5
|
||||
move 1 from 3 to 7
|
||||
move 7 from 5 to 9
|
||||
move 10 from 1 to 5
|
||||
move 8 from 8 to 4
|
||||
move 6 from 4 to 8
|
||||
move 1 from 4 to 1
|
||||
move 2 from 9 to 8
|
||||
move 2 from 1 to 3
|
||||
move 2 from 7 to 3
|
||||
move 1 from 7 to 8
|
||||
move 4 from 3 to 8
|
||||
move 1 from 3 to 2
|
||||
move 20 from 5 to 8
|
||||
move 1 from 2 to 4
|
||||
move 4 from 9 to 4
|
||||
move 4 from 4 to 5
|
||||
move 18 from 8 to 6
|
||||
move 3 from 9 to 6
|
||||
move 1 from 3 to 9
|
||||
move 10 from 8 to 7
|
||||
move 7 from 7 to 9
|
||||
move 7 from 8 to 5
|
||||
move 3 from 7 to 8
|
||||
move 6 from 5 to 1
|
||||
move 6 from 9 to 4
|
||||
move 1 from 9 to 6
|
||||
move 1 from 3 to 6
|
||||
move 1 from 8 to 5
|
||||
move 1 from 9 to 4
|
||||
move 12 from 6 to 7
|
||||
move 5 from 7 to 1
|
||||
move 6 from 8 to 5
|
||||
move 1 from 5 to 1
|
||||
move 3 from 5 to 3
|
||||
move 8 from 4 to 9
|
||||
move 2 from 3 to 7
|
||||
move 4 from 7 to 2
|
||||
move 10 from 5 to 6
|
||||
move 11 from 1 to 6
|
||||
move 4 from 2 to 5
|
||||
move 1 from 3 to 8
|
||||
move 1 from 8 to 9
|
||||
move 1 from 4 to 7
|
||||
move 3 from 7 to 4
|
||||
move 1 from 1 to 6
|
||||
move 1 from 4 to 7
|
||||
move 1 from 7 to 1
|
||||
move 4 from 5 to 2
|
||||
move 3 from 7 to 1
|
||||
move 2 from 4 to 8
|
||||
move 20 from 6 to 8
|
||||
move 4 from 1 to 5
|
||||
move 2 from 5 to 2
|
||||
move 6 from 6 to 1
|
||||
move 5 from 1 to 8
|
||||
move 7 from 6 to 2
|
||||
move 6 from 9 to 7
|
||||
move 2 from 9 to 8
|
||||
move 2 from 7 to 4
|
||||
move 4 from 2 to 6
|
||||
move 3 from 5 to 8
|
||||
move 12 from 8 to 7
|
||||
move 1 from 4 to 3
|
||||
move 1 from 2 to 9
|
||||
move 1 from 9 to 2
|
||||
move 1 from 6 to 8
|
||||
move 1 from 3 to 1
|
||||
move 2 from 1 to 6
|
||||
move 1 from 4 to 2
|
||||
move 3 from 6 to 2
|
||||
move 2 from 5 to 7
|
||||
move 1 from 9 to 8
|
||||
move 6 from 2 to 4
|
||||
move 17 from 7 to 1
|
||||
move 10 from 1 to 7
|
||||
move 4 from 2 to 6
|
||||
move 10 from 7 to 8
|
||||
move 3 from 6 to 2
|
||||
move 4 from 4 to 1
|
||||
move 2 from 6 to 4
|
||||
move 4 from 2 to 6
|
||||
move 1 from 7 to 1
|
||||
move 2 from 4 to 3
|
||||
move 12 from 1 to 7
|
||||
move 5 from 6 to 3
|
||||
move 17 from 8 to 2
|
||||
move 4 from 3 to 8
|
||||
move 1 from 4 to 2
|
||||
move 20 from 8 to 7
|
||||
move 19 from 2 to 6
|
||||
move 7 from 6 to 3
|
||||
move 7 from 3 to 5
|
||||
move 2 from 5 to 7
|
||||
move 4 from 6 to 9
|
||||
move 1 from 4 to 2
|
||||
move 1 from 2 to 1
|
||||
move 2 from 3 to 6
|
||||
move 1 from 2 to 6
|
||||
move 1 from 3 to 1
|
||||
move 4 from 6 to 2
|
||||
move 1 from 5 to 9
|
||||
move 7 from 7 to 3
|
||||
move 7 from 3 to 8
|
||||
move 5 from 8 to 1
|
||||
move 2 from 8 to 3
|
||||
move 1 from 2 to 1
|
||||
move 3 from 5 to 6
|
||||
move 1 from 3 to 9
|
||||
move 2 from 9 to 2
|
||||
move 8 from 1 to 7
|
||||
move 3 from 7 to 6
|
||||
move 2 from 2 to 4
|
||||
move 21 from 7 to 3
|
||||
move 10 from 3 to 1
|
||||
move 2 from 9 to 2
|
||||
move 7 from 3 to 4
|
||||
move 3 from 3 to 7
|
||||
move 4 from 2 to 3
|
||||
move 3 from 7 to 8
|
||||
move 1 from 3 to 6
|
||||
move 1 from 3 to 2
|
||||
move 4 from 7 to 9
|
||||
move 10 from 1 to 6
|
||||
move 1 from 5 to 9
|
||||
move 6 from 7 to 2
|
||||
move 24 from 6 to 5
|
||||
move 2 from 8 to 4
|
||||
move 1 from 8 to 6
|
||||
move 2 from 2 to 9
|
||||
move 5 from 2 to 7
|
||||
move 1 from 2 to 9
|
||||
move 11 from 4 to 1
|
||||
move 3 from 3 to 2
|
||||
move 4 from 9 to 7
|
||||
move 1 from 1 to 5
|
||||
move 1 from 6 to 1
|
||||
move 5 from 1 to 9
|
||||
move 5 from 9 to 7
|
||||
move 5 from 7 to 5
|
||||
move 23 from 5 to 2
|
||||
move 5 from 7 to 8
|
||||
move 6 from 5 to 6
|
||||
move 1 from 3 to 7
|
||||
move 1 from 5 to 7
|
||||
move 6 from 7 to 8
|
||||
move 3 from 6 to 1
|
||||
move 2 from 8 to 7
|
||||
move 4 from 2 to 1
|
||||
move 4 from 8 to 5
|
||||
move 7 from 2 to 3
|
||||
move 1 from 7 to 4
|
||||
move 1 from 4 to 7
|
||||
move 4 from 3 to 8
|
||||
move 6 from 1 to 9
|
||||
move 4 from 8 to 6
|
||||
move 3 from 1 to 5
|
||||
move 3 from 8 to 5
|
||||
move 1 from 1 to 8
|
||||
move 3 from 9 to 1
|
||||
move 3 from 6 to 7
|
||||
move 1 from 7 to 9
|
||||
move 3 from 8 to 3
|
||||
move 8 from 5 to 7
|
||||
move 11 from 2 to 8
|
||||
move 5 from 8 to 3
|
||||
move 1 from 8 to 7
|
||||
move 10 from 3 to 4
|
||||
move 2 from 5 to 8
|
||||
move 3 from 9 to 2
|
||||
move 1 from 9 to 6
|
||||
move 7 from 2 to 7
|
||||
move 6 from 9 to 4
|
||||
move 1 from 8 to 5
|
||||
move 3 from 6 to 8
|
||||
move 1 from 5 to 3
|
||||
move 2 from 3 to 1
|
||||
move 6 from 1 to 3
|
||||
move 13 from 7 to 5
|
||||
move 16 from 4 to 3
|
||||
move 2 from 1 to 5
|
||||
move 5 from 5 to 4
|
||||
move 11 from 3 to 4
|
||||
move 2 from 7 to 1
|
||||
move 7 from 3 to 1
|
||||
move 2 from 8 to 3
|
||||
move 8 from 1 to 9
|
||||
move 12 from 4 to 8
|
||||
move 1 from 1 to 4
|
||||
move 2 from 6 to 2
|
||||
move 3 from 7 to 8
|
||||
move 2 from 4 to 6
|
||||
move 5 from 8 to 1
|
||||
move 3 from 7 to 5
|
||||
move 6 from 5 to 7
|
||||
move 2 from 2 to 5
|
||||
move 1 from 4 to 9
|
||||
move 5 from 1 to 8
|
||||
move 6 from 3 to 1
|
||||
move 7 from 5 to 7
|
||||
move 7 from 9 to 2
|
||||
move 1 from 6 to 7
|
||||
move 1 from 1 to 9
|
||||
move 2 from 5 to 3
|
||||
move 2 from 9 to 6
|
||||
move 13 from 7 to 3
|
||||
move 2 from 6 to 1
|
||||
move 1 from 9 to 2
|
||||
move 16 from 8 to 7
|
||||
move 6 from 8 to 5
|
||||
move 3 from 2 to 5
|
||||
move 4 from 2 to 1
|
||||
move 3 from 1 to 8
|
||||
move 2 from 8 to 9
|
||||
move 1 from 8 to 7
|
||||
move 1 from 2 to 1
|
||||
move 8 from 3 to 1
|
||||
move 1 from 4 to 5
|
||||
move 1 from 6 to 3
|
||||
move 2 from 9 to 7
|
||||
move 5 from 1 to 4
|
||||
move 15 from 7 to 9
|
||||
move 11 from 9 to 3
|
||||
move 7 from 1 to 3
|
||||
move 2 from 1 to 6
|
||||
move 1 from 6 to 3
|
||||
move 2 from 4 to 5
|
||||
move 2 from 4 to 9
|
||||
move 7 from 5 to 9
|
||||
move 5 from 9 to 3
|
||||
move 1 from 1 to 6
|
||||
move 5 from 5 to 9
|
||||
move 1 from 4 to 8
|
||||
move 1 from 8 to 4
|
||||
move 3 from 7 to 4
|
||||
move 8 from 9 to 5
|
||||
move 1 from 6 to 4
|
||||
move 4 from 9 to 3
|
||||
move 1 from 9 to 3
|
||||
move 23 from 3 to 1
|
||||
move 12 from 1 to 2
|
||||
move 6 from 1 to 9
|
||||
move 5 from 9 to 7
|
||||
move 3 from 3 to 7
|
||||
move 6 from 4 to 3
|
||||
move 1 from 6 to 8
|
||||
move 6 from 1 to 2
|
||||
move 3 from 7 to 3
|
||||
move 3 from 2 to 5
|
||||
move 10 from 3 to 5
|
||||
move 1 from 1 to 8
|
||||
move 12 from 2 to 5
|
||||
move 3 from 2 to 9
|
||||
move 2 from 8 to 4
|
||||
move 13 from 5 to 1
|
||||
move 2 from 9 to 2
|
||||
move 2 from 1 to 3
|
||||
move 11 from 3 to 1
|
||||
move 2 from 2 to 1
|
||||
move 2 from 1 to 9
|
||||
move 16 from 1 to 7
|
||||
move 17 from 5 to 8
|
||||
move 1 from 1 to 2
|
||||
move 3 from 9 to 6
|
@ -0,0 +1 @@
|
||||
rdzrddbgdbbqtbqbrrznznjzjjctcbtttrvrwwsvwssjfjcjnjzzqgzgzsggfddvnnrbbwgwfwgfgpgrprgrprmmqjmqmvmlmmgjmmgqmqppqgqlqmllszsmzzwfzfqzzgcccmggvfgvvzlvzlznnjfjsscrsrprcrscsqsfqfggrrhccpnpwphwhchfhtfhttzpzwzjzqzjjqjdqqnvqnqjqbqcbqccdllbcblbjljgjbgbhhgphghjhrrvbrvbrvvfggwbwnnghgwhhpbpgphpnpgpqqzvqzqtzzngzngnjnnffgbgbvvjvqvwwqnwqnnvrnnfgfttcftcfczzpbbdlbdbhbssrggtfgfbgfgfnffqsfqfcqqqwvvqpphfpfcfrrjmjhjrjbblcbbznzwwpbwwsvvwnvvzjvzzmllrpllqffplpwlpwwlpwwmnmrrlggvssjggdjjsffbtthlhsswvwjjbtbjbsswqsshppddcjjlrlttwgtwwcnwcncmcpmpnnhndnccqscqqzqpplglvvpggcvvhnhmhqqsvvhcvvjpphbhnndpdbdndjnnmccmjmhmrrlcrrfzfnndldffstffhqffhcffhbhwhzhnhrhprhhtqtztntnptnppjdpdqdzqqpzprrqbqmqhmqqmhqqjttlrrqbqnqdnnrqqtqfqjjdfjfdjjsnspptltlgttmctcgttcthcttdpppzphpnhhvthtccbvccpplpwwfgwfffhfbbrsbbgppnhpnhhwnnnrprcpcncffrqqpjprpddjnddnccqtcthhfqfnnnlrrzhhmvvczzlbzbrzbbjpjpbbjttmwtwbtbqqtssgdsdsmsmbsmsfftltmtwwsswbwdbdwbbblgbbqpbqbmbgmbgmbbvcvbbmrrldlpdpqqnvvrzzcddjsdjjfvjvvndnvvrsvrsvrsrmsswlswlssqllfmlffmwmttjgttzgtggghrhprppbgbdgdtgddvmdvvbmmchhjppczzglzglzglzgggsmsrrsttgddmvvhddvdhvvcfcvvglvlmvmdvmdvdcdvvgfftccljllmssrvvqhvvnlnplnlglrlvrvfvrrgjjzqjjzcjcvcsvvbppgrrbdrdsrddqsspwssdlltlcttgngzglgfgzfzhfzhfhnffmsspvsscjjrbbpgbbfgbffhggzpznzmnmcmzmdzmzjzddcsscgssdnddjbdjdtdzdwwshwhfhtthjhsjjfjvvdnnmzmtmmlrlblzzmmspsnpnbnvvczvzsszrrsgsbsrrlprrzfrrjdrdbdhdvvwrvvrfvrrvwrrqlqwwqjjpwwffdvffwfbwwdrwdrddhhhjghjhvhccgbcbvblllbwlwtlldbdzbbdpbbqmmglmllvwwzmzhhfnfcnfcfddvrvhvbvzvbvhvthtrtppsccggdgpghgfhhhnwnmmwfwtffpjfppmdpdhppvwvfvvhdhzhtzhtzzplpspmpnpzpgzgqgvvqcqcqmqffzszwzfwfzzcmchhmgmppgwwvffnnvhhttvtjvjgjljmmfcmmzmvvjfjggppqmpqqswsnwwdvwdvwdwjwrrrtprpqrrsddsshgssbbpbgpbbprprzppsnsbszszccddfcftcfczffchfcfjjffjwwsbbvfvpfprpbczqdnvrqrlhsrzvlvgzbqpwgpmgftzfvtlnlqrtmpjfstmsrbfjldtmhvvqwznrcflbvmsnbzcrjvbzgvvmwlzcwggwvhnpscnwhjldzjvmtfdgvptfhjtdtwfjntzqtswqgwvnfgqhqpdvdchfqjzfhgjmdstmchppcvgpdfrqbrhrvdvzbtnnrpqsnmnljjzgzqfnzmlvbzmwzfbfszvfsqdnqfstpjglwtcdjpmdfqzfcsngbcvvjvdzlnzndcggcdtdjpwgvfzlfdqpgbgfjjfvgtwwrgtrfcpfvmzvrwrftpfdprzmcmrpnjpfrdvbmlrfzrjcdzhvwbpgmbpdnqggjdpqttgnqbtjfmrglqbvcfjwghrqtcgjddhwpntjgtghmfgvjdhbzzgmfnrrrgvdmsfbhndfcwlbbtsdcbpgfpbvnwmpwdpjlvcbcgnwjzftsfqhvwdshzltrmqpcsngfzrvfwhffrcjzlfqjqdbcntdwhfrfnrzwftqhlfjpjqpngjqjcnfnrpmmbprdtzgsvsdjpzsnzzmzdfjplfhzqrnrwggcvrrmqzwlvslwvtvhbgwmjmnzftrbfhdrzszcvmdhgfvwgwgsgqtpwgvpvfrszczmsmstwhnhtnftmmmjblpchrnrdwlnhrvqtbwqwdchfjbcldmjmjzwlcngfgfvmblgmnwtwvjmzswzmpvdjtcfgcpvvqhrfnwcczrrrhwwvfrngwmlstqcvvrqrshwdvrgtgbffvlwtvwhvlcwwqgspnfmndbsbpvdbjwdlfntwrrmtgsdtwbfmjjcjfvsvltwdjmvswwpchpdtsjmbbgcgtddcbprwznsldmwflrgcrgfflzwllrzcrgdgqgsvrqmspqzsrzvppztrhlpsnqdlhmghdcrppvbljsnrjgcwhpvmlgcnswrjjbjltwnctqbqsffbcfpclhcbrnsjlmrstpngbvcfcbjstgvzwfgcsqbwgqqblsnmfddprrqmpqgfrjbhfptrdvltcrmtrcqgcdfpjhjptzngzqdghqhpsfwlmrwgfhldzpfrbtzzgsblcfmwztjmtjzgwrpttvwfhbntvsgnfvbpfpnscdspmcvncsqltzqnwczvdbtphwrdtjcszmhbpcfnvbrbgfpnrrhvhzlrglthpldrlfscpvpvttvjtfdrqpjvnwvmscdvclbnzfvppslzgmglrvvdvpsbsfhflnjbdnpqzjzlrfgwgjvwvpthjptftlzppmnmrrpfvdhgwfzfdnnbhqpwrzvvdgtcrflwfjgbmvbgsnqzqtmsvrdlfmlbqqdnfftljbtphnpqqrgbrlzrbbhlgvjpcdbmtvzlpqhbvjpmhpdmtrmjwvzrbfrdrdfmwsfvllljdwmnqlgcnzvpphwmlmstcsljvmljcjprtgmzfssgbtjlttssfzbcqbgnjnvrwzchtwtwdtfwngdflwzjrhzdlrrqfnsztvdbzqfwfzppqrghrhzsqtwqstsfspddpjrpffhgqvspzwmlzwhtzqqldqbwlsrqhlmvhhmzjpdsrgdcvqnfpldnmblgvvssrcdnjqvcgwtwmhqdcwtsqqhbntvjnlbljlqjqglggvpqncpdzztlvhhlghtrncfcdhjtzwjqdhlntjfrzccbnmglmnzwvplclvcmnsppqjhbggbzncqlcfnzbbzdjrvcdthcqwjzjvdbjddcbjchwfgbjhwqpzbpgsdtlwlphtvhwddjdbwbpsnqhnffqptcrljcqzzhszdfpdfsgflhwwsgbfcnwrbdqflnrcwddwwmfztlbswlzhtzzcllnvbtqgjsdzmhcpnnqpdpqgdntlfwgvddgqvhqhrbvstsmzrmgwslpdjlsbgthfhgnlftbqdnzsvcrrmllcjvdlqrzbvrbrjcbpttsvwcrnlvvbnjvfgldzmtflvmzqdgbnjcgctllrldgzltwlswmfbbwjmcqpldhhdsmqpbvnjprdqnvrbjhrjzqwqfrfqwngwtwjjmzdbqmpmvqrprjhnhnrlmlgpfwwzjhlgmbzdlpshcqpnlgrqvprbspmdznzzsvhdlzwmttpdnlrlqjllqnshjllvvsrblscjcmbcqlsgpcjlmmpgwrvjnjzvzfgvgghwqfjswjbjghmzcgdpsjwhbnzmbhtzgnchpbrmnfdbfscgzldpqmvprjpvcwtwdfjblfshffwqctdphhnhngsjlrqtqprpjhwqcbmhctqbpdtpzvbbfncfrcvmbfvqmbmqjvgtdvspfqfbqnmjwhzbcpcfgbhtllbsssqntfbmsmlwhjchgcsrvsfznbmspwwszqfnwzzljfnvcwnwmgfzqfvmwwwdjd
|
23
input/day07
23
input/day07
@ -0,0 +1,23 @@
|
||||
$ cd /
|
||||
$ ls
|
||||
dir a
|
||||
14848514 b.txt
|
||||
8504156 c.dat
|
||||
dir d
|
||||
$ cd a
|
||||
$ ls
|
||||
dir e
|
||||
29116 f
|
||||
2557 g
|
||||
62596 h.lst
|
||||
$ cd e
|
||||
$ ls
|
||||
584 i
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd d
|
||||
$ ls
|
||||
4060174 j
|
||||
8033020 d.log
|
||||
5626152 d.ext
|
||||
7214296 k
|
@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <fstream>
|
||||
#include <chrono>
|
||||
#include <string>
|
||||
|
@ -5,7 +5,38 @@ struct SDay01 : public SDay<Output> {
|
||||
//Class constructor
|
||||
using SDay<Output>::SDay;
|
||||
|
||||
std::vector<int> elfs;
|
||||
|
||||
//Solutions to both days
|
||||
Output part1() override final { return Output(); }
|
||||
Output part2() override final { return Output(); }
|
||||
Output part1() override final {
|
||||
orderCalories(elfs);
|
||||
return elfs[elfs.size()-1];
|
||||
}
|
||||
Output part2() override final {
|
||||
//If elfs has been populated (by part 1)
|
||||
if (elfs.size() > 0)
|
||||
return (elfs[elfs.size() - 1] + elfs[elfs.size() - 2] + elfs[elfs.size() - 3]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void orderCalories(std::vector<int> &elfs) {
|
||||
this->input.seekg(0);
|
||||
std::string line{ "" };
|
||||
int currentElf{ 0 };
|
||||
|
||||
while (std::getline(this->input, line))
|
||||
{
|
||||
if (line == "")
|
||||
{//Break to a new elf
|
||||
elfs.push_back(currentElf);
|
||||
currentElf = 0;
|
||||
continue;
|
||||
}
|
||||
//Add the new line to the current elf
|
||||
currentElf += std::stoi(line);
|
||||
}
|
||||
//Push the final elf
|
||||
elfs.push_back(currentElf);
|
||||
return std::sort(elfs.begin(), elfs.end());
|
||||
}
|
||||
};
|
||||
|
@ -1,11 +1,108 @@
|
||||
#include "../aoc2022.h"
|
||||
|
||||
#define WIN 6
|
||||
#define DRAW 3
|
||||
#define LOSS 0
|
||||
|
||||
enum EGameMoves {
|
||||
eRock = 1,
|
||||
ePaper = 2,
|
||||
eScissors = 3
|
||||
};
|
||||
|
||||
struct SGameMove {
|
||||
EGameMoves move, losesTo, winsTo;
|
||||
};
|
||||
|
||||
enum ERules {
|
||||
eTheirRules,
|
||||
eMyRules
|
||||
};
|
||||
|
||||
template <typename Output>
|
||||
struct SDay02 : public SDay<Output> {
|
||||
//Class constructor
|
||||
using SDay<Output>::SDay;
|
||||
|
||||
//Map to store the collection of alises and plays
|
||||
std::map<char, SGameMove*> pairs;
|
||||
std::map<EGameMoves, EGameMoves> losingMoves;
|
||||
|
||||
SGameMove rock{ eRock, ePaper, eScissors };
|
||||
SGameMove paper{ ePaper, eScissors, eRock };
|
||||
SGameMove scissors{ eScissors, eRock, ePaper };
|
||||
|
||||
//Solutions to both days
|
||||
Output part1() override final { return Output(); }
|
||||
Output part2() override final { return Output(); }
|
||||
Output part1() override final {
|
||||
//'A' 'X' = rock and loses to paper
|
||||
pairs['A'] = &rock;
|
||||
pairs['X'] = &rock; // Means Lose
|
||||
//'B' 'Y' = paper and loses to scissors
|
||||
pairs['B'] = &paper;
|
||||
pairs['Y'] = &paper; //Draw
|
||||
//'C' 'Z' = scissors and loses to rock
|
||||
pairs['C'] = &scissors;
|
||||
pairs['Z'] = &scissors; //Win
|
||||
|
||||
return playGame(eTheirRules);
|
||||
}
|
||||
Output part2() override final {
|
||||
return playGame(eMyRules);
|
||||
}
|
||||
|
||||
int theirRules(const SGameMove *player1, const SGameMove *player2) {
|
||||
|
||||
if (player1->losesTo == player2->move)
|
||||
{//We Win
|
||||
return (WIN + player2->move);
|
||||
}
|
||||
|
||||
if (player1->move == player2->move)
|
||||
{//We Draw
|
||||
return (DRAW + player2->move);
|
||||
}
|
||||
|
||||
//We Lose
|
||||
return (LOSS + player2->move);
|
||||
}
|
||||
|
||||
int myRules(const SGameMove *player1, const SGameMove *player2) {
|
||||
if (player2->move == EGameMoves::eRock)
|
||||
{//We must Lose
|
||||
return (LOSS + player1->winsTo);
|
||||
}
|
||||
if (player2->move == EGameMoves::ePaper)
|
||||
{//We must Draw
|
||||
return (DRAW + player1->move);
|
||||
}
|
||||
//We must Win
|
||||
return (WIN + player1->losesTo);
|
||||
}
|
||||
|
||||
int playGame(ERules rules) {
|
||||
this->input.clear();
|
||||
this->input.seekg(0, std::ios::beg);
|
||||
std::string line{ "" };
|
||||
int score{ 0 };
|
||||
|
||||
SGameMove *player1, *player2;
|
||||
|
||||
while (std::getline(this->input, line))
|
||||
{
|
||||
player1 = pairs[line[0]];
|
||||
player2 = pairs[line[2]];
|
||||
|
||||
if (rules == eTheirRules)
|
||||
{//part1
|
||||
score += theirRules(player1, player2);
|
||||
}
|
||||
else
|
||||
{//part2
|
||||
score += myRules(player1, player2);
|
||||
}
|
||||
}
|
||||
return score;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
@ -1,11 +1,110 @@
|
||||
#include "../aoc2022.h"
|
||||
|
||||
#define LOWEROFFSET 96
|
||||
#define UPPEROFFSET 38
|
||||
|
||||
enum ECheckType {
|
||||
eIndividual,
|
||||
eGrouped
|
||||
};
|
||||
|
||||
template <typename Output>
|
||||
struct SDay03 : public SDay<Output> {
|
||||
//Class constructor
|
||||
using SDay<Output>::SDay;
|
||||
|
||||
//Solutions to both days
|
||||
Output part1() override final { return Output(); }
|
||||
Output part2() override final { return Output(); }
|
||||
Output part1() override final {
|
||||
return readBackpacks(eIndividual);
|
||||
}
|
||||
Output part2() override final {
|
||||
return readBackpacks(eGrouped);
|
||||
}
|
||||
|
||||
int readBackpacks(ECheckType checkType) {
|
||||
this->input.clear();
|
||||
this->input.seekg(0, std::ios::beg);
|
||||
std::string line{ "" };
|
||||
int total{ 0 };
|
||||
|
||||
int counter{ 0 };
|
||||
std::string bags[3];
|
||||
|
||||
while (std::getline(this->input, line))
|
||||
{
|
||||
|
||||
if (checkType == eIndividual)
|
||||
{//Checking an individual bag
|
||||
std::string compartment1, compartment2;
|
||||
for (int i = 0; i < line.size(); i++)
|
||||
{
|
||||
if (i < (line.size() / 2))
|
||||
compartment1 += line[i];
|
||||
else
|
||||
compartment2 += line[i];
|
||||
|
||||
|
||||
}
|
||||
//Find the items that appear in both backpacks and get priority
|
||||
std::map<char, int> inCompartment1 = getMap(compartment1);
|
||||
std::map<char, int> duplicates = findDuplicates(inCompartment1, compartment2);
|
||||
total += getDuplicatePriority(duplicates);
|
||||
}
|
||||
else
|
||||
{//Checking a group of bags
|
||||
counter++;
|
||||
bags[counter % 3] = line;
|
||||
if (counter % 3 == 0)
|
||||
{
|
||||
std::map<char, int> bag1 = getMap(bags[0]);
|
||||
std::map<char, int> bag2 = findDuplicates(bag1, bags[1]);
|
||||
std::map<char, int> bag3 = findDuplicates(bag2, bags[2]);
|
||||
total += getDuplicatePriority(bag3);
|
||||
}
|
||||
}
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
//Function that take in a prefilled map and checks through a string for duplicates
|
||||
std::map<char, int> findDuplicates(std::map<char, int>& duplicates, std::string backpack) {
|
||||
std::map<char, int> newDuplicates;
|
||||
|
||||
for (int i = 0; i < backpack.size(); i++)
|
||||
{
|
||||
if (duplicates[backpack[i]] && newDuplicates.count(backpack[i]) == 0)
|
||||
{//If the item is in bothcompartments
|
||||
newDuplicates[backpack[i]] = duplicates[backpack[i]];
|
||||
}
|
||||
}
|
||||
return newDuplicates;
|
||||
}
|
||||
|
||||
//Function that takes in a string and generates a map of all of the items in it
|
||||
std::map<char, int> getMap(std::string &backpack) {
|
||||
std::map<char, int> characters;
|
||||
|
||||
for (int i = 0; i < backpack.size(); i++)
|
||||
{
|
||||
characters[backpack[i]] = getItemPriority(backpack[i]);
|
||||
}
|
||||
return characters;
|
||||
}
|
||||
|
||||
//Function that goes through a map and returns the total priority for the maps
|
||||
int getDuplicatePriority(std::map<char, int> &duplicates) {
|
||||
int total{ 0 };
|
||||
for (auto& i : duplicates)
|
||||
{//Add the sum of the duplicate items
|
||||
total += i.second;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
//Get the proiority of an item in the backpack
|
||||
int getItemPriority(char item) {
|
||||
if (islower(item))
|
||||
return item - LOWEROFFSET;
|
||||
return item - UPPEROFFSET;
|
||||
}
|
||||
};
|
||||
|
@ -1,11 +1,108 @@
|
||||
#include "../aoc2022.h"
|
||||
|
||||
enum EOverlapType {
|
||||
eContains,
|
||||
eOverlap
|
||||
};
|
||||
|
||||
struct SBound {
|
||||
int lower, upper;
|
||||
|
||||
SBound(const std::string &input) {
|
||||
std::vector<std::string> bounds;
|
||||
std::string temp;
|
||||
|
||||
for (int i = 0; i < input.size(); i++)
|
||||
{
|
||||
if (input[i] == '-')
|
||||
{//Check if we are going onto the upper bound
|
||||
bounds.push_back(temp);
|
||||
temp = "";
|
||||
continue;
|
||||
}
|
||||
temp += input[i];
|
||||
}
|
||||
this->lower = std::stoi(bounds[0]);
|
||||
this->upper = std::stoi(temp);
|
||||
}
|
||||
|
||||
//Check if the bounds contains another
|
||||
bool contains(const SBound &bound) {
|
||||
if (bound.lower >= this->lower && bound.upper <= this->upper)
|
||||
return true;
|
||||
if (this->lower >= bound.lower && this->upper <= bound.upper)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
//Check if the 2 bounds overlap eachother
|
||||
bool overlaps(const SBound& bound) {
|
||||
if (this->upper >= bound.lower && this->lower <= bound.upper)
|
||||
return true;
|
||||
if (this->lower <= bound.upper && this->upper >= bound.lower)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
template <typename Output>
|
||||
struct SDay04 : public SDay<Output> {
|
||||
//Class constructor
|
||||
using SDay<Output>::SDay;
|
||||
|
||||
int readBounds(EOverlapType overlapType) {
|
||||
this->input.clear();
|
||||
this->input.seekg(0, std::ios::beg);
|
||||
std::string line{ "" };
|
||||
int total{ 0 };
|
||||
|
||||
while (std::getline(this->input, line))
|
||||
{
|
||||
std::vector<SBound> bounds = getBounds(line);
|
||||
|
||||
if (overlapType == eContains)
|
||||
{//Check if the bounds contain eachother
|
||||
if (bounds[0].contains(bounds[1]))
|
||||
total++;
|
||||
}
|
||||
else
|
||||
{//Check if the bounds overlap
|
||||
if (bounds[0].overlaps(bounds[1]))
|
||||
total++;
|
||||
}
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
//Takes the input string and should return 2 sets of bounds
|
||||
std::vector<SBound> getBounds(const std::string &input) {
|
||||
std::vector<SBound> bounds;
|
||||
std::string bound1, bound2;
|
||||
bool split{ false };
|
||||
|
||||
for (int i = 0; i < input.size(); i++)
|
||||
{
|
||||
if (input[i] == ',')
|
||||
{//Check if we are going onto the second bound
|
||||
split = true;
|
||||
continue;
|
||||
}
|
||||
if (!split)
|
||||
{//First Bound
|
||||
bound1 += input[i];
|
||||
}
|
||||
else
|
||||
{//Second Bound
|
||||
bound2 += input[i];
|
||||
}
|
||||
}
|
||||
bounds.push_back(SBound(bound1));
|
||||
bounds.push_back(SBound(bound2));
|
||||
|
||||
return bounds;
|
||||
}
|
||||
|
||||
//Solutions to both days
|
||||
Output part1() override final { return Output(); }
|
||||
Output part2() override final { return Output(); }
|
||||
};
|
||||
Output part1() override final { return readBounds(eContains); }
|
||||
Output part2() override final { return readBounds(eOverlap); }
|
||||
};
|
@ -1,11 +1,133 @@
|
||||
#include "../aoc2022.h"
|
||||
|
||||
enum EMoveType {
|
||||
eManual,
|
||||
eCrateMover9001
|
||||
};
|
||||
|
||||
template <typename Output>
|
||||
struct SDay05 : public SDay<Output> {
|
||||
//Class constructor
|
||||
using SDay<Output>::SDay;
|
||||
|
||||
std::vector<std::stack<char>> stacks;
|
||||
|
||||
//Solutions to both days
|
||||
Output part1() override final { return Output(); }
|
||||
Output part2() override final { return Output(); }
|
||||
};
|
||||
Output part1() override final {
|
||||
parseStacks();
|
||||
runInstructions(eManual);
|
||||
std::string ans = getTops();
|
||||
return 0;
|
||||
}
|
||||
Output part2() override final {
|
||||
parseStacks();
|
||||
runInstructions(eCrateMover9001);
|
||||
std::string ans = getTops();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void parseStacks() {
|
||||
stacks.clear();
|
||||
this->input.clear();
|
||||
this->input.seekg(0, std::ios::beg);
|
||||
std::stack<std::string> stackStrings;
|
||||
int stackCount{ 0 };
|
||||
std::string line{ "" };
|
||||
|
||||
while (std::getline(this->input, line))
|
||||
{
|
||||
if (line == "")
|
||||
break; //We have finished collecting stack strings
|
||||
stackStrings.push(line);
|
||||
}
|
||||
|
||||
//Get the number of stacks needed
|
||||
line = stackStrings.top();
|
||||
stackCount = line[line.size()-2]-48;
|
||||
stackStrings.pop();
|
||||
|
||||
for (int i = 0; i < stackCount; i++)
|
||||
stacks.push_back(std::stack<char>());
|
||||
|
||||
int index = 1;
|
||||
while (!stackStrings.empty())
|
||||
{
|
||||
line = stackStrings.top();
|
||||
int index = 1;
|
||||
for (int i = 0; i < stackCount; i++)
|
||||
{
|
||||
if (line[index] != ' ')
|
||||
stacks[i].push(line[index]);
|
||||
index += 4;
|
||||
}
|
||||
stackStrings.pop();
|
||||
}
|
||||
}
|
||||
|
||||
void runInstructions(EMoveType moveType) {
|
||||
std::string line{ "" };
|
||||
|
||||
while (std::getline(this->input, line))
|
||||
{
|
||||
std::stringstream ss;
|
||||
std::vector<int> nums;
|
||||
|
||||
/* Storing the whole string into string stream */
|
||||
ss << line;
|
||||
|
||||
/* Running loop till the end of the stream */
|
||||
std::string temp;
|
||||
int found;
|
||||
while (!ss.eof()) {
|
||||
|
||||
/* extracting word by word from stream */
|
||||
ss >> temp;
|
||||
|
||||
/* Checking the given word is integer or not */
|
||||
if (std::stringstream(temp) >> found)
|
||||
nums.push_back(found);
|
||||
|
||||
/* To save from space at the end of string */
|
||||
temp = "";
|
||||
}
|
||||
|
||||
moveCrates(moveType, nums);
|
||||
}
|
||||
}
|
||||
|
||||
void moveCrates(EMoveType moveType, const std::vector<int> &nums) {
|
||||
//run each step
|
||||
std::stack<char> tempStack;
|
||||
for (int i = 0; i < nums[0]; i++)
|
||||
{
|
||||
if (stacks[static_cast<size_t>(nums[1]) - 1].empty())
|
||||
break;
|
||||
if (moveType == eCrateMover9001)
|
||||
{
|
||||
tempStack.push(stacks[static_cast<size_t>(nums[1]) - 1].top());
|
||||
}
|
||||
else
|
||||
stacks[static_cast<size_t>(nums[2]) - 1].push(stacks[static_cast<size_t>(nums[1]) - 1].top());
|
||||
|
||||
stacks[static_cast<size_t>(nums[1]) - 1].pop();
|
||||
}
|
||||
|
||||
if (moveType == eCrateMover9001)
|
||||
{
|
||||
while (!tempStack.empty())
|
||||
{
|
||||
stacks[static_cast<size_t>(nums[2]) - 1].push(tempStack.top());
|
||||
tempStack.pop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::string getTops() {
|
||||
std::string output;
|
||||
for (auto& stack : stacks)
|
||||
{
|
||||
output += stack.top();
|
||||
}
|
||||
return output;
|
||||
}
|
||||
};
|
@ -6,6 +6,50 @@ struct SDay06 : public SDay<Output> {
|
||||
using SDay<Output>::SDay;
|
||||
|
||||
//Solutions to both days
|
||||
Output part1() override final { return Output(); }
|
||||
Output part2() override final { return Output(); }
|
||||
};
|
||||
Output part1() override final {
|
||||
//Find the first unique packet of length 4
|
||||
return readPackets(4);
|
||||
}
|
||||
Output part2() override final {
|
||||
//Find the first unique message of length 14
|
||||
return readPackets(14);
|
||||
}
|
||||
|
||||
int readPackets(int chunkLength) {
|
||||
this->input.clear();
|
||||
this->input.seekg(0, std::ios::beg);
|
||||
int total{ 0 };
|
||||
std::string line{ "" };
|
||||
|
||||
while (std::getline(this->input, line))
|
||||
{
|
||||
total += countUniqueSequence(line, chunkLength);
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
int countUniqueSequence(const std::string& input, int chunk) const {
|
||||
for (int i = (chunk-1); i < input.size(); i++)
|
||||
{
|
||||
std::map<char, int> map;
|
||||
bool flag{ false };
|
||||
|
||||
for (int j = (chunk-1); j >= 0; j--)
|
||||
{//Look through chunk of 4 characters
|
||||
if (map.count(input[i-j]) > 0)
|
||||
{//If it has already appeared
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
|
||||
//Add it to the map
|
||||
map[input[i-j]]++;
|
||||
}
|
||||
//If the chunk is unique
|
||||
if (flag == false)
|
||||
return i+1;
|
||||
flag = false;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
};
|
@ -1,11 +1,69 @@
|
||||
#include "../aoc2022.h"
|
||||
|
||||
enum ECommand {
|
||||
eCD,
|
||||
eLS,
|
||||
};
|
||||
struct SFileStructure {
|
||||
std::string name;
|
||||
SFileStructure* parent;
|
||||
std::vector<SFileStructure*> children;
|
||||
};
|
||||
|
||||
struct SDirectory : public SFileStructure{};
|
||||
struct SFile : public SFileStructure {
|
||||
int fileSize;
|
||||
};
|
||||
|
||||
template <typename Output>
|
||||
struct SDay07 : public SDay<Output> {
|
||||
//Class constructor
|
||||
using SDay<Output>::SDay;
|
||||
|
||||
SFileStructure* root = new SFileStructure{"/", nullptr, std::vector<SFileStructure*>};
|
||||
|
||||
//Solutions to both days
|
||||
Output part1() override final { return Output(); }
|
||||
Output part2() override final { return Output(); }
|
||||
|
||||
void parseInput() {
|
||||
std::stringstream stream;
|
||||
std::string line{ "" };
|
||||
std::string instruction{ "" };
|
||||
SFileStructure** current = root;
|
||||
|
||||
while (std::getline(this->input, line)) {
|
||||
stream.clear();
|
||||
stream.str(line);
|
||||
stream >> instruction;
|
||||
|
||||
//Process a command
|
||||
if (instruction == "$")
|
||||
processCommand(stream, ¤t);
|
||||
//Fill a directory
|
||||
processDirectory();
|
||||
}
|
||||
}
|
||||
|
||||
SFileStructure** processCommand(std::stringstream& command, SFileStructure* directory) const {
|
||||
std::string opcode, operand;
|
||||
command >> opcode;
|
||||
command >> operand;
|
||||
|
||||
if (opcode == "cd")
|
||||
cd(directory, operand);
|
||||
|
||||
return &directory;
|
||||
}
|
||||
|
||||
SFileStructure** processDirectory(std::stringstream& directoryElement, SFileStructure* directory) const {
|
||||
std::string fileSize;
|
||||
directory->children.push_back(new SFile{ newDirectory, directory, std::vector<SFileStructure*> });
|
||||
directory = directory->children.back();
|
||||
}
|
||||
|
||||
void cd(SFileStructure* directory, const std::string& newDirectory) const {
|
||||
directory->children.push_back(new SDirectory{ newDirectory, directory, std::vector<SFileStructure*> });
|
||||
directory = directory->children.back();
|
||||
}
|
||||
};
|
||||
|
59
src/main.cpp
59
src/main.cpp
@ -1,33 +1,32 @@
|
||||
#include "days/days.h"
|
||||
|
||||
template <typename Output>
|
||||
void runSolutions() {
|
||||
//Heap allocate all solutions
|
||||
std::vector<SDay<Output>*> solutions = {
|
||||
new SDay01<Output>("day01"),
|
||||
new SDay02<Output>("day02"),
|
||||
new SDay03<Output>("day03"),
|
||||
new SDay04<Output>("day04"),
|
||||
new SDay05<Output>("day05"),
|
||||
new SDay06<Output>("day06"),
|
||||
new SDay07<Output>("day07"),
|
||||
new SDay08<Output>("day08"),
|
||||
new SDay09<Output>("day09"),
|
||||
new SDay11<Output>("day11"),
|
||||
new SDay12<Output>("day12"),
|
||||
new SDay13<Output>("day13"),
|
||||
new SDay14<Output>("day14"),
|
||||
new SDay15<Output>("day15"),
|
||||
new SDay16<Output>("day16"),
|
||||
new SDay17<Output>("day17"),
|
||||
new SDay18<Output>("day18"),
|
||||
new SDay19<Output>("day19"),
|
||||
new SDay20<Output>("day20"),
|
||||
new SDay21<Output>("day21"),
|
||||
new SDay22<Output>("day22"),
|
||||
new SDay23<Output>("day23"),
|
||||
new SDay24<Output>("day24"),
|
||||
new SDay25<Output>("day25")
|
||||
std::vector<SDay<int>*> solutions = {
|
||||
new SDay01<int>("day01"),
|
||||
new SDay02<int>("day02"),
|
||||
new SDay03<int>("day03"),
|
||||
new SDay04<int>("day04"),
|
||||
new SDay05<int>("day05"),
|
||||
new SDay06<int>("day06"),
|
||||
new SDay07<int>("day07"),
|
||||
new SDay08<int>("day08"),
|
||||
new SDay09<int>("day09"),
|
||||
new SDay11<int>("day11"),
|
||||
new SDay12<int>("day12"),
|
||||
new SDay13<int>("day13"),
|
||||
new SDay14<int>("day14"),
|
||||
new SDay15<int>("day15"),
|
||||
new SDay16<int>("day16"),
|
||||
new SDay17<int>("day17"),
|
||||
new SDay18<int>("day18"),
|
||||
new SDay19<int>("day19"),
|
||||
new SDay20<int>("day20"),
|
||||
new SDay21<int>("day21"),
|
||||
new SDay22<int>("day22"),
|
||||
new SDay23<int>("day23"),
|
||||
new SDay24<int>("day24"),
|
||||
new SDay25<int>("day25")
|
||||
};
|
||||
|
||||
for (auto& solution : solutions)
|
||||
@ -50,9 +49,13 @@ void runSolutions() {
|
||||
|
||||
//Free memory for heap allocated solution
|
||||
delete solution;
|
||||
|
||||
//Hold the console
|
||||
std::cin;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
runSolutions<int>();
|
||||
}
|
||||
runSolutions();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user