aocpp/day01.cpp

34 lines
781 B
C++

#include <algorithm>
#include <numeric>
#include <cstdlib>
#include <cstdint>
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
#include <string>
#include <aocpp/Startup.hpp>
auto main(int argc, char** argv) -> int {
auto fin = aocpp::Startup(argc, argv);
std::vector<std::int64_t> input;
std::copy(std::istream_iterator<std::int64_t>{fin},
std::istream_iterator<std::int64_t>{},
std::back_inserter(input));
auto fuel = [](std::int64_t& x) { return x=x/3-2; };
std::int64_t part1 = 0;
std::int64_t part2 = 0;
for (auto x : input) {
part1 += fuel(x);
for (; x > 0; fuel(x)) {
part2 += x;
}
}
std::cout << "Part 1: " << part1 << std::endl;
std::cout << "Part 2: " << part2 << std::endl;
}