Added 2022 (cpp)
This commit is contained in:
33
2022/cpp/03/Makefile
Normal file
33
2022/cpp/03/Makefile
Normal file
@ -0,0 +1,33 @@
|
||||
PART := 1
|
||||
CXXFLAGS := -Wall -O3 -DPART=$(PART)
|
||||
OBJ_DIR = build
|
||||
OBJ = answer.o
|
||||
|
||||
.PHONY = clean asdf sample1 sample2
|
||||
|
||||
asdf: result
|
||||
@echo "------- RESULT -------"
|
||||
@./result "input" | xclip -selection c
|
||||
@xclip -selection c -o
|
||||
|
||||
check: test
|
||||
./test
|
||||
|
||||
test: $(OBJ_DIR)/$(OBJ)
|
||||
|
||||
verbose: clean
|
||||
$(eval CXXFLAGS += -DVERBOSE)
|
||||
|
||||
$(OBJ_DIR)/$(OBJ): $(OBJ_DIR)/%.o: %.hpp
|
||||
|
||||
$(OBJ_DIR)/%.o: %.cpp
|
||||
@echo "Compiling $<..."
|
||||
@mkdir -p $(@D)
|
||||
gcc $(CXXFLAGS) -c -o $@ $<
|
||||
|
||||
result: $(OBJ_DIR)/$(OBJ)
|
||||
|
||||
clean:
|
||||
-rm -f *.o
|
||||
-rm -rf $(OBJ_DIR)/
|
||||
|
77
2022/cpp/03/answer.cpp
Normal file
77
2022/cpp/03/answer.cpp
Normal file
@ -0,0 +1,77 @@
|
||||
// AOC - 2022 - 03
|
||||
#include "answer.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <cctype>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <unordered_set>
|
||||
|
||||
std::vector<Input> get_input(const char *filename) {
|
||||
std::ifstream stream(filename);
|
||||
std::string str;
|
||||
std::vector<Input> ret;
|
||||
|
||||
while (getline(stream, str))
|
||||
ret.push_back({.content = str});
|
||||
return ret;
|
||||
}
|
||||
|
||||
int get_priority(const char &c) {
|
||||
return std::islower(c) ? 1 + (c - 'a') : 27 + (c - 'A');
|
||||
}
|
||||
|
||||
std::string get_result(std::vector<Input> input) {
|
||||
std::string ret;
|
||||
|
||||
int score = 0;
|
||||
#if PART == 1
|
||||
// filter through the first half to find common elements
|
||||
for (auto &sacks : input) {
|
||||
size_t size = sacks.content.size();
|
||||
if (size % 2 == 1)
|
||||
error("sack does not have even number of elements");
|
||||
|
||||
std::string sack1 = sacks.content.substr(0, size / 2);
|
||||
std::string sack2 = sacks.content.substr(size / 2);
|
||||
std::unordered_set<char> common_items;
|
||||
|
||||
std::copy_if(
|
||||
sack1.begin(), sack1.end(),
|
||||
std::inserter(common_items, common_items.end()),
|
||||
[sack2](char c) { return sack2.find(c) != std::string::npos; });
|
||||
|
||||
std::cout << sacks << std::endl;
|
||||
std::cout << common_items << std::endl;
|
||||
|
||||
// get priority of items found
|
||||
for (auto &item : common_items)
|
||||
score += get_priority(item);
|
||||
std::cout << "score: " << score << std::endl;
|
||||
}
|
||||
#else
|
||||
std::vector<std::vector<std::string>> groups;
|
||||
for (size_t i = 0; i < input.size(); i += 3) {
|
||||
groups.insert(groups.end(), {input[i + 0].content, input[i + 1].content,
|
||||
input[i + 2].content});
|
||||
}
|
||||
for (auto &group : groups) {
|
||||
std::cout << group << std::endl;
|
||||
std::unordered_set<char> common_items;
|
||||
std::copy_if(group[0].begin(), group[0].end(),
|
||||
std::inserter(common_items, common_items.end()),
|
||||
[group](char c) {
|
||||
return group[1].find(c) != std::string::npos &&
|
||||
group[2].find(c) != std::string::npos;
|
||||
});
|
||||
|
||||
// get priority of items found
|
||||
for (auto &item : common_items)
|
||||
score += get_priority(item);
|
||||
std::cout << "score: " << score << std::endl;
|
||||
}
|
||||
#endif
|
||||
ret = std::to_string(score);
|
||||
return ret;
|
||||
}
|
33
2022/cpp/03/answer.hpp
Normal file
33
2022/cpp/03/answer.hpp
Normal file
@ -0,0 +1,33 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include "lib.hpp"
|
||||
|
||||
#ifndef PART
|
||||
#define PART 2
|
||||
#endif
|
||||
|
||||
#ifndef VERBOSE
|
||||
#define VERBOSE 0
|
||||
#endif
|
||||
|
||||
struct Input{
|
||||
std::string content;
|
||||
bool operator ==(const Input & rhs) const{
|
||||
return this->content == rhs.content;
|
||||
}
|
||||
};
|
||||
|
||||
inline std::ostream& operator<<(std::ostream &os, Input & inp){
|
||||
os << inp.content;
|
||||
return os;
|
||||
}
|
||||
|
||||
std::vector<Input> get_input(const char *);
|
||||
|
||||
std::string get_result(std::vector<Input>);
|
||||
|
||||
inline void error(const char * msg){
|
||||
std::cerr << msg << std::endl;
|
||||
exit(1);
|
||||
}
|
||||
|
BIN
2022/cpp/03/build/answer.o
Normal file
BIN
2022/cpp/03/build/answer.o
Normal file
Binary file not shown.
300
2022/cpp/03/input
Normal file
300
2022/cpp/03/input
Normal file
@ -0,0 +1,300 @@
|
||||
wgqJtbJMqZVTwWPZZT
|
||||
LHcTGHQhzrTzBsZFPHFZWFFs
|
||||
RnLRClzGzRGLGLGCNRjTMjJfgmffSffMqNgp
|
||||
WPLgsfLmLgqZvZgSRR
|
||||
RbwHdbDdQFFFMvvMjbhqhZZS
|
||||
lzTdldBDszfGcRsr
|
||||
ZjnhJjMjnbdnbHdFLmmfFLmnCCWFFl
|
||||
PpNwtRsNsZSsRwCfzQQBfQszCBsC
|
||||
PpwcqqVZRtbggggjcgJJ
|
||||
ntczBcVcgnHzgBHnVntcBBFhgsmmmssqWNWNWqLvNhsqTN
|
||||
bSSGdSDZbGSGdDmLmGTvTGmLFFhm
|
||||
PlFbDpJDPbPdPbZQZDZlSCDBfMVRwBzBtBQzfzRHVMVRtH
|
||||
fDVrmmrvcmCcVpfcfGlswpPwsttMpjJMPPjjtP
|
||||
RgSTdndFLbJqqPssWWjPWjPjHS
|
||||
FqgzQnTqJRRQqLLhTCDhDCDmcmlvvlhcVm
|
||||
nnqVtHbfVHZVmtlvmHtZtrFSFTRRFhRccTbrLsLSGr
|
||||
cCNJQJPJQgjjMQdDrGGsRhTFGFRFSpMS
|
||||
gzdCwWdjNPgzcJgjwdZtVlHHmvvmZlvffHnz
|
||||
FFgsgwNwWvggQsMWDwvQQvQcccdcJZDtJGBtVGGGtcVlzt
|
||||
rjfTrbjpjRSRTbTpzldjjHBtJGBdltJG
|
||||
RbrPTfpCfmbpmnfRRCvMvQWNBwFFgMsgBL
|
||||
zzLHgjjjdFHWbGBjjzcbgQRmSvqsSpmRsRSQSmRMWv
|
||||
ZfJVrwPhZhZlhQQqBSQSNSqM
|
||||
tnCfrDCltfPzHFFLBgngHz
|
||||
DCpwrrMhwCrCMVCpGFqpVDnWWTWBtnTWvWfvbbTdFWRv
|
||||
lmhhcsQPmTtTnnPBTB
|
||||
QmcjNJsJzHNljZsNqDCGGhwqCqhgDDZV
|
||||
hLfRnSLfhcndCCPfJJjzJfzt
|
||||
pHNWwDpGGNJBZjjNNj
|
||||
gmgwwHpWTpmGDmDTggqHmmDSsnnhvcqScdVVSVcjLrRcnq
|
||||
CdlTJgnQJVCllNVWTPZBmPPGhGRmghPRGs
|
||||
wHDrSwtHbmhRvHVZ
|
||||
DzzwrtVFjLNnMTCTLCWW
|
||||
SppdsnGpNVnZZZLPMlMPGq
|
||||
mdcfvTTbBddLJgZJLlcFqJ
|
||||
fzTvfwjjfzzCbvvjvQjWvNHVNNVWrRtdnVNppNprDp
|
||||
lmlCGTmNbZlbSFlbNGfnzWfWzCdWWfVdwRCf
|
||||
jDHtHHvLjQtqrsqpjBBLprRzwfwJfzzhRnczhWQVwzVR
|
||||
rqpPtpPjDqpqDLtLrPGGFSFgPlNZZSGMPnMZ
|
||||
pSHShqgSMzVpphFnJMFMBtssdjRJ
|
||||
PZDbZfmCDgDfDNQPwCflCQNJsjRBRBFsdBWBsJRjsbsFJF
|
||||
DQvCwwZrPPlffDmQCDwZQPmPhqVTcGhSHSLTpSGhLHzpGghr
|
||||
gPqgqqmmmPgsqvGmsMCCnfZZfvBpWZhVrrZdHBvH
|
||||
TSlcttTjRTDlDDTRhZVdrHHpWVnfVrtd
|
||||
SFJzFzcJjcRJwGGqJMMCwW
|
||||
gzWNLSjRLzlNqqQMLhvQccGGmcQm
|
||||
fFrttPdTFTrpVwGpbdVQQp
|
||||
HnTBGfHTGzWWqCqngn
|
||||
SddrLdVpjjVSgRBszFswzwlV
|
||||
mtPMbMqPMvqHHHDTTglBvsFshFFg
|
||||
bmBHbtPctMtbMNMtbPtPqHmMjpdZdcJGrjSWWZGjJZnjndWj
|
||||
nljWJHRHGrDcMBbDLZHV
|
||||
wdvwmhghhbtBMcLtwZ
|
||||
gvQvvghTfPSmpmQljGFRjQbFGCsJbC
|
||||
BmphBWmDBBQfpVgQZpjg
|
||||
rqqGrrrqlnqqHqjNnVDSSSgQQffj
|
||||
FqLrbsLFsbLbLqHlMrmwwPDcCmMMmJBwDJcC
|
||||
wZccfslqZPFFjrFbFfQQ
|
||||
vvTvVWCJJZVBWCSvnVJJrhjQVMjVjzbgMQbjpphh
|
||||
BBmNWBvZRvSqwsGwssPcmc
|
||||
LGpnfcnzfzQdNFNHqHJptq
|
||||
RBNNvZSBRbRCCDJqHrDZqHFZtw
|
||||
SRNhRsNhWSNWsRRvgjngQnnMTnTgQjGMff
|
||||
twtZmwqBHtmqnnmlGLfcfvQQ
|
||||
dgMSPSMdQGclRRdF
|
||||
pVMrDgThDDlPWPWbBZtZqqttBqjqjT
|
||||
PPSWCGSzpCCQwNsNPFhTNVbB
|
||||
vqcgJngqLLcZLvBhNTVlbsvdFF
|
||||
DDmHgRjHZhHtGfWpQH
|
||||
sBLbwWWBvsBsqLqStRjcGGRnggjGcntJDn
|
||||
NCMQPMQPMQNzGGRRgRJRGzcG
|
||||
dHQNfPCFTQfFfVVNvwwJvSWSqWqrSqdS
|
||||
prDBnnDpFDprnDPBDQBvpBZttcSqSZSZcScFJSHcZJtz
|
||||
VhMVdLsjdqVWJSWZZZcHst
|
||||
hLVdGLfqjGjlfhCfCLjTTmrlpQBPBmvnrgDgpp
|
||||
SSSTJmmgbGwtmRZHCCZRCH
|
||||
FWcPQrrWqflzSWpRHZCZHRSt
|
||||
PSQzzdcQTghdndDJ
|
||||
cLlrNPvljRhRgTlM
|
||||
VmDBGnVdmJDnDBndnnVwDRvMgRsTbTzMMsgZghzzsB
|
||||
SpHvmGnSDJnwvDQqfrCPLpPLCfpF
|
||||
PppbRCCgpzzQCgCSgZTlNNTWnNNDNlRnGl
|
||||
hwMhLtBcBdjjNzWzlclcNGTs
|
||||
FjJFHJwhfwLHMLJLwPmqfQPgVCmQgCmCzC
|
||||
jTtMqFjMBqBmTntTztBTnTZBRZRLpLJgDgJNhghJrNNhhLJh
|
||||
DCDdvdGsVDVsflVdQSsfSwhRJlgppgpRpbWLgJbJpgbR
|
||||
wfSHSsdSVvQSwfwQPQPqHtFDcMzmtjBntqMTqn
|
||||
HQhQWLCSHCSCjnjQdSJdCSQgTTmZPTVZmqnTpPtnpmRmpp
|
||||
vDrzhvGzfchvlGvMFMrqVqPgZVVtZtVRgZgm
|
||||
bcvMfwvDsDfbvfwDbbdhCShWCBLLJWjHsHjj
|
||||
zLSsJNCjsjLCNLCgGcwBPPdwBwqwqz
|
||||
WMFZprZDbrddWRVRRDvlPPBcPhhlBqqHPGPhhffg
|
||||
VdbFvZWWWZZDFTLtCmNntjTnLSnn
|
||||
JLVhhwRbhVwcLFJFhhJcccqwsvpRlllvpWvZSBSSSRsNWpzl
|
||||
jgzfPffgZNspgZQS
|
||||
fjCmDCGnfmTfFqrFnhqbFzqt
|
||||
SfMRRNHSNNLfRfHcRRsqwdCCsssTqBCvgBLv
|
||||
llDDWQnFGtQnmtGQDWQFsgdHVBddndHsgqTsCTsg
|
||||
GzGjpWmWbmQmbpGGmGjHSrZcMfZSRPJPfcMRcb
|
||||
PDdMdRTRrLDSwzJvfSvJ
|
||||
FnjQnsqsFTnStvplhhzzFS
|
||||
TBHHCsgVRRcMHbLR
|
||||
GcLdGBJvBvLJHccJBvqHpGzDFfzwfzjwhDwrSFpfpDSn
|
||||
mZZrTTQVmQmlsMPVblZQVZmfCwjzzjChzCCbDSzhFjfnSb
|
||||
gZlRlZNPlmlgTTPmNRvJWcqrNLdvHWLBcHtH
|
||||
jWWbBwgwWwwtvvSCtHvgWsMFmscHzTGMmcssGFTTGz
|
||||
ZrLtpLnlfQJqnfJtpLnZlrqdNNGqcDNNFFTNDzzMMTMsMNMs
|
||||
LJQrnZnfLZnlrZflJJRVRQbbwBgCtCVjWgjBjjgbPjBB
|
||||
fqQVfRqSqmpnlLnm
|
||||
jFcjMJTjhwwggjFtgzCHmCzCmGzGlzpn
|
||||
wstMFFjWDfQRvmDPSB
|
||||
PgTFGPgcBZPcHPFBZRjGPgwCnmwCsmSdQdThmMMMQCQS
|
||||
JbpvWtvfHblWDHJDzmndSdMQnSwCdhMdQD
|
||||
rfvWlLlbtfJvvLJpqWbbqZRRGPVFNHVFgZNVFBgH
|
||||
TRMrrGBLMLPtbssTGtBHwZmdQQbdNzzZZNZZdwjd
|
||||
CVlVhCnclvhWSFFfQrWNrjmpNfwmjZ
|
||||
rlqFlclChhCvnlDvgVvRRtPtqTGJHRMBRTPPqM
|
||||
gZzCrQGQdrQvZHPTHWDbTgWPJM
|
||||
nSpLlcnnVjsSVLLnLSnhLSsJPTTWFsqfbPMFMqJDbfqM
|
||||
VwwnpwLnlPdQCwPPCC
|
||||
lRlrnlrsrMlhVsRnVhGPvCFNcPBDBvccrCGr
|
||||
RZQTzWTRdDNvBDdNcC
|
||||
TqjZbWRHmlMJgnmsng
|
||||
scQmLfQBQQvvZfLsmmvDJwpgSNSDDdcJSSwTGD
|
||||
PHlMbtzCCnlbztMRzlPNNdNwGpDpwgwptNLGpw
|
||||
rRHnLbhCzbbCHnHjMbzzjzFZmfQqWZQqvmhmfVZmqFBW
|
||||
fLTQWTMQtjcCGCJCbf
|
||||
gGsmsVSzmjCFHJCJgg
|
||||
SPRsSwSvBsPRPsqzwSVqzmhVWtLWhTDNLlTDtLTWGpNMtDLt
|
||||
mbzRbchRRQzzssLdhLggLddJ
|
||||
DCqDNNNWvDvjcPLsJcLLdv
|
||||
cpFCVNnVBHtbfFRtMRFf
|
||||
PFRcCCPtsDDDtjVspgwmgTNpTgTpspsw
|
||||
BqqqdJdHdMgSfMmZpZND
|
||||
vDHJGdLbLzBJdGnDdrBqVtCzWPPhthtPFzzPCFtV
|
||||
HvhvHdFdvJDfHdZdpfhrmGPljPRrGPPVDGrWWC
|
||||
NMMsRBMzcRRMMBSzcnbmNGrCVCWrCqPClmPqlG
|
||||
zLBbwMzQnRSQMThtZFLvpdgHtJfF
|
||||
DpcJcJPmMcLSHHZCfpnH
|
||||
BsBFvvqTFlbhgdbBBblfZLCLzfHWfjnjLCnCrh
|
||||
dTsNgqFvNgsGlZJRtVtMPmtDmG
|
||||
LdGQqzPGCCjJTJdTLJQJtFcFRSctcrFNFltPFtcc
|
||||
HphMMbbMdBMHbBhhgHMnhvwFFvtrlSNRNgcRllcvcc
|
||||
spHMhBnHnnsmWdnsnMBMdVGGmzjzLmZLDQCCCCZjqjTD
|
||||
DDZMzcTRgDMLzqCffhfWfcWnfj
|
||||
NsHVVJmswwSSwNPPNjnhqhnCCnhNvjfTnv
|
||||
rSSddrGSGrlMrpTpQT
|
||||
bbbfCfrLHMMMWVWC
|
||||
SqsvNZqQvvqcjNvqZsMMwgFgFplTHQVRFgWH
|
||||
BSZWWqBZBjmPGJGLbBtf
|
||||
RNCNfzfRHmzHwSdRdGfzRJPqFcFcDFGccZZqtLtGLtgl
|
||||
pjhVMhvhbjvPcDJvcZqt
|
||||
bsQMTsjppmSdTnHSJH
|
||||
PtLwpSwdSJwQnGvvqtvMhZ
|
||||
TlFcHlTjVjsDTQnCQhbZGCVVnb
|
||||
cjljTslTrlzzHDNRfNgLSNBJfBwNfG
|
||||
HvsZZqqqwWZswWHTmHsvvfhSfBfDffjchfBbhD
|
||||
MCpnCVpQClRNnlNQVQClfDhScmjBfLhmLDGbBNbS
|
||||
gmtpJpQQllJnWdZWwJWFwJJT
|
||||
TzBvBwwdhgRPGHlRHh
|
||||
NLWttJsrLWttppLpsGlsmVbVGRljGDRgjV
|
||||
MlllnNFnnQqCdzqq
|
||||
vptzrJhMMGGMptJPhJGJPvdFTFcSsTBVsczBScTSFFfn
|
||||
gbRjWgRjCqjZnfHCHnTSVBHF
|
||||
mRwqNbmqlbbjqRNlLbNrDJntNDGtDhNpGMrpvJ
|
||||
GPWZLgWqLHHGbgbbGPPmqHqfcjjRHJJBDRBRjBBjMHjwvwQc
|
||||
dhpFSpzVSSMSlDBvMQ
|
||||
TndsVNztVTspnsdpshtmZLPCGGNPfgqbWWfDGb
|
||||
CbqDjjCdClqgrfJvrv
|
||||
NGNPtGGzzHztPWWnlgJvfBnWBFgp
|
||||
hGzNHhsmGccwHPHZHcwdCCdbTVRTvSmTCjbLCb
|
||||
sqnqsHGpJbqnrbshpshHmmmCWZZmWwfTjTjHmfLZ
|
||||
dPggRgSDDttMFgctgdDtDcDcRWJBmjTWwmRLBLfmwBBjZWTB
|
||||
PFcVPlJPglbqhhrnnlNz
|
||||
wZdDNDdPPfhqwWqbsF
|
||||
VTngRzpnzMLvzTCLlhvDfltqqDttqFqs
|
||||
mggTVpCDDSNjBmPZrd
|
||||
cSdqJSTTTJcSJpCdQbqTCPPdjdDtGzwzjDwjwwwwzD
|
||||
rVvsBBVgsVBhHhfljtgbPgGtWjPtwt
|
||||
fvHsVZHVnRHpSJJRmbbSLT
|
||||
lDDPRRjwLGlvVRDRPlwwwPvmpSfhVWSzhqfzqpHpVpVHfqSH
|
||||
qBnqBNsBBChhCSfZ
|
||||
nTQbQnNNQJTLvlmTPLqqmG
|
||||
TTCJhDrmDpRVhvhHfffwzwfz
|
||||
dmmdmglWcqvHvWsHzB
|
||||
gdQMZbtlgQlZcMSttCNmVVrLSTTJ
|
||||
PLZLqhZZzZLBjjjGrrPjMH
|
||||
CcQcCcfRlWDjdrMrBrHC
|
||||
WlWFMcFpcRFmsWFcmflqSJzTqzwLvshggsZJwz
|
||||
LgqRDDDHHGTpgpJrQrQhhhCqrwPw
|
||||
ZSBWjjFshCFlQDrJ
|
||||
SjWnnbWtWnsztgGDDbDTGgHHGp
|
||||
llfvMlvzjzGzGRfvMSGRfSdStrCtQNCZrrFdJJLnNtLZ
|
||||
shhhshPHsTTqsBHTVTwTwZZnCtQrQnJtQCCJBCCZdZ
|
||||
TPHTPTHmDnljplfpGfGm
|
||||
qcNTmvvSvTNrWhRrTdthzW
|
||||
bDVJphpMMJwJpMHtrrttWsgwtzRW
|
||||
bFpGJbllPfplVQmnhvvcSmCFqq
|
||||
GTPJGMQTPQMqZjHTBmnndBVddHrrzNrz
|
||||
bbcRFgDpptRbffwmzmrvLmcZvmLmLv
|
||||
WCwgWbpgwtgfpfMlQGPhSPZWTZPl
|
||||
DsPCswsMPBMwPDCVJPnTPPWFGJNJmbJW
|
||||
RvvddfvftdtvNzghGSbFnWTntJSttGbG
|
||||
LNgRddgRlgzcgCDjjjHjcBCwcM
|
||||
gnVtgBnpwBgShBgcwhJJhjCMMMDmLRjDRMjrDMMMDMqMRF
|
||||
slsblHPNHlbTNbsPvszHQWbzqrZLMRmFMFmdFmrtDFdMLNZD
|
||||
bPzfvbfsvvlHtlzPHllHGTlTppCJpgcngcpwnwCGGJnnShwV
|
||||
cgQRgtzDbHPcgHzQWpTjTLdjjNNpNLsDss
|
||||
nwccZBmwcJqmJnjsTvmlTSsdlTNs
|
||||
CCGFCBVrBwwGBhqVnZBrqWMMQzHfQcHzzzPtfztGfg
|
||||
lhnwnhlbgbngbcfDgJLJQqDdVd
|
||||
FSrvtMFZVJJJVtcq
|
||||
jZNNNNjmjSPjFTJmGGzswwzHwHpBsbPblhhW
|
||||
tnDWHntzDtzQBZLMLzNLDDcRFFjhJBmcFRCTjRchcRvT
|
||||
sqwsPlbGfSbPGSVbJfpjjhcTFmCRjjvmTTvRdw
|
||||
lJqSqPVbgGSGrVSqJqflbWZQNDMLHnrQQWNDMtQMQz
|
||||
lpltwwJqsWVLPtVt
|
||||
DGHsDdZQzHLSLZcFRrFS
|
||||
BGsGCnHmMlMwCfwT
|
||||
nrRNzRMPrrPnNwNzTSFSTNtqZdtMttvQqQmjdjvZpgjZ
|
||||
GWVhGcGhHhGcffbZGDmmtttQvpdtbpppdj
|
||||
HGlHBhHGJfJJhCfZzLTTNnNrTnCNwT
|
||||
jBpCZStjBwWrQCMrhw
|
||||
TvcHBzHdPPzdvFTzzJlvzdQfThrhhrhfQTWMQfWMqfwf
|
||||
bzGJJBJcJvdvBPFzddGgjZSbZZngRZNNnnsjRs
|
||||
dqPqbpPFJfsFfMcNQNNtNmzrNQJn
|
||||
VVBDWvwZWDLwGlDhLGWWVcmQtSNmLmtSdSSTmrcQQm
|
||||
lZlhwDCdhhHllvWvjMHbgMpgffMggpPb
|
||||
SWSFLLFWDSWDNFzmmLMfGlfsdfnJMBfwMGVnBf
|
||||
vPtgZcctcTQQZRRcgCtZwRfqBVGqnVTBGVnqlsdBJnqV
|
||||
RcjgwbbgNSbFbhDb
|
||||
JrRZLrHvjQFPLnnBPQ
|
||||
DhwbtHbzpcpFTgtQ
|
||||
zlDwlHlzWSwDqhMMbSJVZVvrCrCZJZNZdJ
|
||||
fgNCZSDtDfDZTrTfqWghQGzGQshgpGGFQg
|
||||
RFvLnvFjnVjmLQGPQWLmWh
|
||||
MdwwVMFbMdRHFbccbCZJtbDJrqqJZNJZCZ
|
||||
fdZVBMMdfdfBCzhTzMdMCgCrGGrpQJmSmGJGmpJQVpLmqV
|
||||
RbFnhNsvlDsFHttllGmqGpPLvJpmPJSqLL
|
||||
tjNsDnNwbNjttNNZTzhMWzcZcMTwMd
|
||||
DjSSMShjRjPCbDFCdCSDbpBBswfNWZBZZrBVBPNfVmVf
|
||||
zltLjLqqGlzQntqqGztqcgncZrVrmNfNwWBVrVmrgwrfswsW
|
||||
qcTqHLlnJzGznLJtHGhMbhjFhMMpFbpbThpp
|
||||
ZVFZcctFQzsCtbZFnPPHqmqpwmvPmp
|
||||
NrjGfMgcLLcfdLqpmRwRRqJJmdPw
|
||||
LMNDgMBGlgGDLMNDGljctVbVWZTTCWChhTttsl
|
||||
RMGRRhhgzgZMtHdGTtvDwDJFCDvvwdvwqFFv
|
||||
rfrrjLNmmSnSjVSmNNPPbJVbqvqsqvhvFqCq
|
||||
flrpnSlrSNfjrNjSphNSWlHRGzTgtQGHQtttBTRBRQHW
|
||||
tplDDprhbvprvrJDprCpbsvHRfzSzTtzmRqSTznRRBRnSfFF
|
||||
MVwWjVNVQGfcMnTmRnBm
|
||||
VQwGLNLjWNWPGjZbsDBppBZhhDvBlZ
|
||||
RVVrGVVchRZsnzRzBWZb
|
||||
FQHWWCHwQmWmlqfCHSwJnsbNJnNsvttntBtb
|
||||
QQSFgqgqLMLPPdWdMVhWDT
|
||||
cZrMjncTdfJpPJbr
|
||||
WHNqnQwwCwvlqHtCtHNslNlvLLPDfSVdVPVDVSfVSbftffVf
|
||||
NCwwwQwllwnvgsvZzgzFZzBzjGGGMM
|
||||
MvHpfzcTcZzpphhbsDSTStsltqSDtS
|
||||
PRmnwCrWnWQrmNMRNnlNGbqlbDltdlbDtNtD
|
||||
CRJnmRVWJfgMLvcz
|
||||
HPFbHrrwLdVdgbDZqcphCqSZBhLZ
|
||||
tQRfRRGtvTNNSGTMjjmDCRhmqpBChqhsRDZh
|
||||
vjSfMzGQNQQnMtNTTWNNjgblFdFHwgdJJHHPwddgnr
|
||||
BggPRVBPPgfCBmJTjTTqpTNpZBwMbr
|
||||
lclLLllsQLFlsbMqNrMwTpwpcM
|
||||
SvbDzSDbWFJfWPPgdnfR
|
||||
GbpSSbGDNbSSJbDZNZbDppGtMntHLHvHCTLCJMHnRCMLTT
|
||||
cdwddjBfPsmPPQqQqscnHgRMtngvtjjgCCTMzM
|
||||
WvwPvWvflBwdQPlNVVhbDGpFhNGhbl
|
||||
WZRGmRvpCRFTZMQQQMCdddDDcD
|
||||
lqgqsgvjVtbMDzzbtcDQ
|
||||
NsNNgjNNjsNhnSvRmnpGRmSTSG
|
||||
nTgFtDTDDLrFBStdGdcHcbvGSc
|
||||
QPzfPCMzWCjfMPJhWGlRbRWRWrRRdVVH
|
||||
zhCrCQCjPrpNNBsNspNnwq
|
||||
zTJpqFzbTzsWsVbbfLGfSSCDNSBCHfMLHG
|
||||
rZcvtmhctrvmlPPmmmrhhmBLCHDCCLLDlqMlGMNDMwDC
|
||||
rRhRhnnQPZhtZcZtdttZgqFWWVjssqQpppWpFpJW
|
||||
NWPhdWJPWVzVqQrqmSsPbrPP
|
||||
cZDRjGsffGsCDfffgjGgRQSrTcTmSlTrbnqmSSrlln
|
||||
fFGCjGCjLDLFRgfDHZvzLVWtvsWWBtzJNWMB
|
||||
qMVbtnmMMTpCppsR
|
||||
NffHGrWzWWgDBfTRhChCnSCWcnjT
|
||||
QrlQBPBrlPHrrQlrHFLqPnLvVvbVmVVJtq
|
||||
MVMpHMZLVCpMrfWjvWnfrJ
|
||||
hlblzDDzwlSlGtRhRlSdrfGGWnWWfFPjJjnfqWGF
|
||||
lmlhBRlDhhhDRRhwDmBpHJmsNCHmCgNHJCJLsc
|
||||
jvsLgmqLgHvbPPVbNjSCjC
|
||||
pwTcRpRWLRMLJJFwBBGWcFWNVlDDCSTVttNPblZZCVVDlP
|
||||
GcdhccpcpRpGRhGmfsHHzLQQHrmsnh
|
||||
FMmSRgtMltMnVgnmNvlrsJrsZWjspvsZJp
|
||||
QbdhqwqbNqdHbTdcbcpsrpvjfWfLJLfwJrWp
|
||||
DQBBQqQGccdTPGqqBNtFGRSMRSFGtnVSnnmM
|
||||
fPjGrfFrrprprdrbQPZwlcZwZmlJwH
|
||||
qvNnvWnvWDvSvqNtWSLWStqbcJBQwQJwQZHLBZbcmJbblb
|
||||
DMtvqSvvDtntCRfwzGCgdzzFjG
|
||||
TfdZgtmfDgqgvlLFFsFHvcvZ
|
||||
pphWQMVjQVVBWWjRlHlHnlcLDDhcnF
|
||||
JQwwWVPBwMJpJwpWwGBWNzrDzSSzfgTPqTSTTtSPgt
|
35
2022/cpp/03/lib.hpp
Normal file
35
2022/cpp/03/lib.hpp
Normal file
@ -0,0 +1,35 @@
|
||||
#include <ostream>
|
||||
#include <unordered_set>
|
||||
#include <vector>
|
||||
|
||||
template<class T>
|
||||
std::ostream &operator<<(std::ostream &os, const std::unordered_set<T> &list) {
|
||||
unsigned long i = 0;
|
||||
os << "[";
|
||||
for (auto el : list) {
|
||||
os << el;
|
||||
if (i < list.size() - 1) {
|
||||
os << ", ";
|
||||
}
|
||||
i++;
|
||||
}
|
||||
os << "]";
|
||||
|
||||
return os;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
std::ostream &operator<<(std::ostream &os, const std::vector<T> &list) {
|
||||
unsigned long i = 0;
|
||||
os << "[";
|
||||
for (auto el : list) {
|
||||
os << el;
|
||||
if (i < list.size() - 1) {
|
||||
os << ", ";
|
||||
}
|
||||
i++;
|
||||
}
|
||||
os << "]";
|
||||
|
||||
return os;
|
||||
}
|
BIN
2022/cpp/03/result
Executable file
BIN
2022/cpp/03/result
Executable file
Binary file not shown.
23
2022/cpp/03/result.cpp
Normal file
23
2022/cpp/03/result.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
#include "answer.hpp"
|
||||
#include <iostream>
|
||||
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
if (argc < 2)
|
||||
error("Please specify the input file as first argument.");
|
||||
|
||||
#if !VERBOSE
|
||||
std::cout.setstate(std::ios_base::failbit);
|
||||
#endif
|
||||
|
||||
std::vector<Input> input = get_input(argv[1]);
|
||||
std::string result = get_result(input);
|
||||
|
||||
#if !VERBOSE
|
||||
std::cout.clear();
|
||||
#endif
|
||||
|
||||
std::cout << result << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
6
2022/cpp/03/sample1
Normal file
6
2022/cpp/03/sample1
Normal file
@ -0,0 +1,6 @@
|
||||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
6
2022/cpp/03/sample2
Normal file
6
2022/cpp/03/sample2
Normal file
@ -0,0 +1,6 @@
|
||||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
BIN
2022/cpp/03/test
Executable file
BIN
2022/cpp/03/test
Executable file
Binary file not shown.
34
2022/cpp/03/test.cpp
Normal file
34
2022/cpp/03/test.cpp
Normal file
@ -0,0 +1,34 @@
|
||||
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
|
||||
#include "../doctest/doctest/doctest.h"
|
||||
#include "answer.hpp"
|
||||
|
||||
#if PART == 1
|
||||
TEST_CASE("Part 1") {
|
||||
std::vector<Input> expected_input;
|
||||
expected_input.insert(expected_input.end(), {
|
||||
{.content = "vJrwpWtwJgWrhcsFMMfFFhFp"},
|
||||
{.content = "jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL"},
|
||||
{.content = "PmmdzqPrVvPwwTWBwg"},
|
||||
{.content = "wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn"},
|
||||
{.content = "ttgJtRGJQctTZtZT"},
|
||||
{.content = "CrZsJsPPZsGzwwsLwLmpwMDw"},
|
||||
});
|
||||
std::vector<Input> actual_input = get_input("sample1");
|
||||
|
||||
SUBCASE("Testing input is parsed correctly") { CHECK(actual_input == expected_input); }
|
||||
|
||||
SUBCASE("Testing output is the one expected from AOC") {
|
||||
CHECK(get_result(actual_input) == "157");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if PART == 2
|
||||
TEST_CASE("Part 2") {
|
||||
std::vector<Input> actual_input = get_input("sample2");
|
||||
|
||||
SUBCASE("Testing output is the one expected from AOC") {
|
||||
CHECK(get_result(actual_input) == "70");
|
||||
}
|
||||
}
|
||||
#endif
|
Reference in New Issue
Block a user