This commit is contained in:
Jack Bond-Preston 2018-12-01 16:59:44 +00:00
parent f131321403
commit 4a306e36a2
2 changed files with 1049 additions and 0 deletions

1000
aoc-1/inputs.txt Normal file

File diff suppressed because it is too large Load Diff

49
aoc-1/main.cpp Normal file
View File

@ -0,0 +1,49 @@
#include <iostream>
#include <fstream>
#include <string>
#include <unordered_set>
int main() {
std::ifstream in{"inputs.txt"};
/* Part 1 */
std::string line;
long total = 0;
while (std::getline(in, line)) {
long value = std::stol(line);
total += value;
}
std::cout << "[Part 1] Total: " << total << std::endl;
/* Part 2 */
total = 0;
std::unordered_set<long> seen_values;
bool reoccurence_found = false;
long first_reocurrence = 0;
while (!reoccurence_found) {
// seek back to start of file, reset EOF flag
in.clear();
in.seekg(0, std::ios::beg);
while (std::getline(in, line) && !reoccurence_found) {
if (seen_values.find(total) != seen_values.end()) { // if total is already in set
first_reocurrence = total;
reoccurence_found = true;
}
else seen_values.insert(total); // add it to set
long value = std::stol(line);
total += value;
}
}
std::cout << "[Part 2] First reoccurence: " << first_reocurrence << std::endl;
}