Add 2022 solutions

This commit is contained in:
Thraix committed 2025-11-26 23:02:30 +01:00
1 parent 908b362ee5
commit ff9bd6ce01
76 files changed
+3840 -27

No files matched your search

+65
View File
@@ -0,0 +1,65 @@
#include "common/aoc.h"
namespace y$1::day04
{
struct Range
{
int left = 0;
int right = 0;
};
struct Pair
{
Range r1;
Range r2;
};
REGISTER_DAY(2022, Day04, std::vector<Pair>, int);
REGISTER_TEST_EXAMPLE(2022, Day04, ExampleInput, 1, 2);
REGISTER_TEST(2022, Day04, Input, 1, 477);
REGISTER_TEST_EXAMPLE(2022, Day04, ExampleInput, 2, 4);
REGISTER_TEST(2022, Day04, Input, 2, 830);
READ_INPUT(input)
{
std::string str;
std::vector<Pair> pairs;
while (std::getline(input, str))
{
std::stringstream ss{str};
Pair pair;
ss >> pair.r1.left >> "-" >> pair.r1.right >> ",";
ss >> pair.r2.left >> "-" >> pair.r2.right;
pairs.emplace_back(pair);
}
return pairs;
}
OUTPUT1(input)
{
int sum = 0;
for (auto& pair : input)
{
if ((pair.r1.left >= pair.r2.left && pair.r1.right <= pair.r2.right) ||
(pair.r2.left >= pair.r1.left && pair.r2.right <= pair.r1.right))
{
sum++;
}
}
return sum;
}
OUTPUT2(input)
{
int sum = 0;
for (auto& pair : input)
{
if (pair.r1.left <= pair.r2.right && pair.r1.right >= pair.r2.left)
{
sum++;
}
}
return sum;
}
}