Add solution for 2017 Day 2

This commit is contained in:
Thraix committed 2026-09-26 19:59:52 +02:00
1 parent bcf645a6c0
commit d0bd08c596
2 files changed
+47 -8

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
5 9 2 8
9 4 7 3
3 8 6 5
+44 -8
View File
@@ -2,30 +2,66 @@
namespace y2017::day02
{
REGISTER_DAY(2017, Day02, std::vector<int>, int);
REGISTER_DAY(2017, Day02, std::vector<std::vector<int>>, int);
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 1, 0);
REGISTER_TEST(2017, Day02, Input, 1, 0);
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 2, 0);
REGISTER_TEST(2017, Day02, Input, 2, 0);
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 1, 18);
REGISTER_TEST(2017, Day02, Input, 1, 48357);
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 2, 9);
REGISTER_TEST(2017, Day02, Input, 2, 351);
READ_INPUT(input)
{
std::vector<int> vec;
std::vector<std::vector<int>> vec;
std::string str;
while (getline(input, str))
{
std::vector<int> vec2;
std::stringstream ss{str};
int i;
while (ss >> i)
{
vec2.emplace_back(i);
}
vec.emplace_back(vec2);
}
return vec;
}
OUTPUT1(input)
{
return 0;
int checksum = 0;
for (const auto& vec : input)
{
int min = std::numeric_limits<int>::max();
int max = 0;
for (const auto& i : vec)
{
min = std::min(min, i);
max = std::max(max, i);
}
checksum += max - min;
}
return checksum;
}
OUTPUT2(input)
{
return 0;
int checksum = 0;
for (int i = 0; i < input.size(); i++)
{
std::vector<int> divisible;
for (int j = 0; j < input[i].size(); j++)
{
for (int k = 0; k < input[i].size(); k++)
{
if (j == k)
continue;
if (input[i][j] % input[i][k] == 0)
checksum += input[i][j] / input[i][k];
}
}
}
return checksum;
}
}