Add solution for 2025 Day 1
This commit is contained in:
@@ -0,0 +1,10 @@
|
|||||||
|
L68
|
||||||
|
L30
|
||||||
|
R48
|
||||||
|
L5
|
||||||
|
R60
|
||||||
|
L55
|
||||||
|
L1
|
||||||
|
L99
|
||||||
|
R14
|
||||||
|
L82
|
||||||
+39
-7
@@ -5,10 +5,14 @@ namespace y2025::day01
|
|||||||
using InputType = std::vector<int>;
|
using InputType = std::vector<int>;
|
||||||
REGISTER_DAY(2025, Day01, InputType, int);
|
REGISTER_DAY(2025, Day01, InputType, int);
|
||||||
|
|
||||||
REGISTER_TEST_EXAMPLE(2025, Day01, ExampleInput, 1, 0);
|
REGISTER_TEST_EXAMPLE(2025, Day01, ExampleInput, 1, 3);
|
||||||
REGISTER_TEST(2025, Day01, Input, 1, 0);
|
REGISTER_TEST(2025, Day01, Input, 1, 1152);
|
||||||
REGISTER_TEST_EXAMPLE(2025, Day01, ExampleInput, 2, 0);
|
REGISTER_TEST_EXAMPLE(2025, Day01, ExampleInput, 2, 6);
|
||||||
REGISTER_TEST(2025, Day01, Input, 2, 0);
|
REGISTER_TEST(2025, Day01, Input, 2, 6671);
|
||||||
|
|
||||||
|
void test(int i)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
READ_INPUT(input)
|
READ_INPUT(input)
|
||||||
{
|
{
|
||||||
@@ -17,8 +21,11 @@ namespace y2025::day01
|
|||||||
while (std::getline(input, str))
|
while (std::getline(input, str))
|
||||||
{
|
{
|
||||||
std::stringstream ss{str};
|
std::stringstream ss{str};
|
||||||
|
char c;
|
||||||
int n;
|
int n;
|
||||||
ss >> n;
|
ss >> c >> n;
|
||||||
|
if (c == 'L')
|
||||||
|
n = -n;
|
||||||
vec.emplace_back(n);
|
vec.emplace_back(n);
|
||||||
}
|
}
|
||||||
return vec;
|
return vec;
|
||||||
@@ -26,11 +33,36 @@ namespace y2025::day01
|
|||||||
|
|
||||||
OUTPUT1(input)
|
OUTPUT1(input)
|
||||||
{
|
{
|
||||||
return 0;
|
int dial = 50;
|
||||||
|
int zeros = 0;
|
||||||
|
for (int n : input)
|
||||||
|
{
|
||||||
|
dial += n;
|
||||||
|
dial %= 100;
|
||||||
|
dial = (dial + 100) % 100;
|
||||||
|
if (dial == 0)
|
||||||
|
zeros++;
|
||||||
|
}
|
||||||
|
return zeros;
|
||||||
}
|
}
|
||||||
|
|
||||||
OUTPUT2(input)
|
OUTPUT2(input)
|
||||||
{
|
{
|
||||||
return 0;
|
int dial = 50;
|
||||||
|
int zeros = 0;
|
||||||
|
for (int n : input)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < std::abs(n); i++)
|
||||||
|
{
|
||||||
|
dial += Helper::Sign(n);
|
||||||
|
dial = ((dial % 100) + 100) % 100;
|
||||||
|
if (dial == 0)
|
||||||
|
{
|
||||||
|
zeros++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return zeros;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user