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,
|
||||
};
|
||||
|
||||
enum Result {
|
||||
Lose = 1,
|
||||
Draw,
|
||||
Win,
|
||||
};
|
||||
|
||||
RPS ToRPS(char c)
|
||||
{
|
||||
if(c == 'A' || c == 'X')
|
||||
@ -46,6 +52,28 @@ bool Won(RPS us, RPS them)
|
||||
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 rtn = 0;
|
||||
@ -73,16 +101,27 @@ int main()
|
||||
}
|
||||
|
||||
unsigned long total = 0;
|
||||
unsigned long new_total = 0;
|
||||
|
||||
for(std::string line; std::getline(ifs, line); )
|
||||
{
|
||||
char them = line[0];
|
||||
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));
|
||||
new_total += Points(todo, ToRPS(them));
|
||||
}
|
||||
|
||||
std::cout << " Total: " << total << std::endl;
|
||||
std::cout << "New Total: " << new_total << std::endl;
|
||||
|
||||
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