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