This commit is contained in:
2025-12-05 21:47:57 +00:00
parent dda4d56f53
commit 2859a83b88
6 changed files with 1275 additions and 0 deletions

1170
2025/5.txt Normal file

File diff suppressed because it is too large Load Diff

0
2025/6.txt Normal file
View File

BIN
2025/aoc

Binary file not shown.

View File

@@ -12,6 +12,7 @@
#include "day2.hpp"
#include "day3.hpp"
#include "day4.hpp"
#include "day5.hpp"
void GenerateDay(int day, std::filesystem::path base)
{

82
2025/day5.hpp Normal file
View File

@@ -0,0 +1,82 @@
#pragma once
#include "aoc.hpp"
#include <set>
class Day05 : public AOCDay
{
public:
Day05() {}
~Day05() {}
int Day() override { return 5; }
std::vector<std::pair<uint64_t, uint64_t>> freshIDs;
uint64_t PartOne(File& f) override
{
bool ranges = true;
int ret = 0;
for (auto line : f.Lines())
{
if (line == "")
{
ranges = false;
continue;
}
if (ranges)
{
int dash = line.find('-', 0);
uint64_t a = std::stoll(line.substr(0, dash));
uint64_t b = std::stoll(line.substr(dash + 1));
freshIDs.push_back({a, b});
}
else
{
uint64_t foodStuff = std::stoll(line);
for (auto range : freshIDs)
{
if (foodStuff >= range.first && foodStuff <= range.second)
{
ret++;
break;
}
}
}
}
return ret;
}
uint64_t PartTwo(File& f) override
{
// sort by first ID
std::sort(freshIDs.begin(), freshIDs.end());
uint64_t total = 0;
uint64_t curL = freshIDs[0].first;
uint64_t curR = freshIDs[0].second;
for (size_t i = 1; i < freshIDs.size(); i++)
{
auto [L, R] = freshIDs[i];
if (L > curR + 1)
{
total += (curR - curL + 1);
curL = L;
curR = R;
}
else
{
curR = std::max(curR, R);
}
}
total += (curR - curL + 1);
return total;
}
};
ADD_AOC_DAY(Day05);

22
2025/day6.hpp Normal file
View File

@@ -0,0 +1,22 @@
#pragma once
#include "aoc.hpp"
class Day06 : public AOCDay
{
public:
Day06() {}
~Day06() {}
int Day() override { return 6; }
uint64_t PartOne(File& f) override
{
return 0;
}
uint64_t PartTwo(File& f) override
{
return 0;
}
};
ADD_AOC_DAY(Day06);