Skip to content

Commit d02f9d8

Browse files
committed
2025/03
1 parent 39cbcee commit d02f9d8

6 files changed

Lines changed: 104 additions & 34 deletions

File tree

2025/Day03/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## --- Day 3: Lobby ---
2+
You descend a short staircase, enter the surprisingly vast lobby, and are quickly cleared by the security checkpoint. When you get to the main elevators, however, you discover that each one has a red light above it: they're all <em>offline</em>.
3+
4+
"Sorry about that," an Elf apologizes as she tinkers with a nearby control panel. "Some kind of electrical surge seems to have fried them. I'll try to get them online soon."
5+
6+
_Visit the website for the full story and [full puzzle](https://adventofcode.com/2025/day/3) description._

2025/Day03/Solution.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
namespace AdventOfCode.Y2025.Day03;
2+
3+
using System;
4+
using System.Linq;
5+
6+
[ProblemName("Lobby")]
7+
class Solution : Solver {
8+
9+
public object PartOne(string input) => MaxJoltSum(input, 2);
10+
public object PartTwo(string input) => MaxJoltSum(input, 12);
11+
12+
public long MaxJoltSum(string input, int batteryCount) =>
13+
input.Split("\n").Select(bank => MaxJolt(bank, batteryCount)).Sum();
14+
15+
long MaxJolt(string bank, int batteryCount) {
16+
if (batteryCount == 0) {
17+
return 0;
18+
}
19+
if (bank.Length < batteryCount) {
20+
return -1;
21+
}
22+
for (int jolt = 9; jolt >= 0; jolt--) {
23+
var index = bank.IndexOf((char)(jolt + '0'));
24+
if (index >= 0) {
25+
var res = MaxJolt(bank[(index + 1)..], batteryCount - 1);
26+
if (res >= 0) {
27+
return jolt * (long)Math.Pow(10, batteryCount-1) + res;
28+
}
29+
}
30+
}
31+
throw new Exception();
32+
}
33+
}

2025/Day03/input.in

19.7 KB
Binary file not shown.

2025/Day03/input.refout

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
17432
2+
173065202451341

2025/SplashScreen.cs

Lines changed: 53 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,25 @@ public void Show() {
88

99
var color = Console.ForegroundColor;
1010
Write(0xcc00, false, " ▄█▄ ▄▄█ ▄ ▄ ▄▄▄ ▄▄ ▄█▄ ▄▄▄ ▄█ ▄▄ ▄▄▄ ▄▄█ ▄▄▄\n █▄█ █ █ █ █ █▄█ █ █ █ █ █ █▄ ");
11-
Write(0xcc00, false, " █ █ █ █ █ █▄█\n █ █ █▄█ ▀▄▀ █▄▄ █ █ █▄ █▄█ █ █▄ █▄█ █▄█ █▄▄ sub y{2025}\n \n");
12-
Write(0xcc00, false, " ");
13-
Write(0xffffff, false, "' ____ ' . ");
14-
Write(0xffff66, true, "* ");
15-
Write(0xffffff, false, "'. .' . '. ");
11+
Write(0xcc00, false, " █ █ █ █ █ █▄█\n █ █ █▄█ ▀▄▀ █▄▄ █ █ █▄ █▄█ █ █▄ █▄█ █▄█ █▄▄ {'year': 2025}\n ");
12+
Write(0xcc00, false, " \n ");
13+
Write(0xffffff, false, "' ' ____ ' ");
14+
Write(0xffff66, true, "* ");
15+
Write(0xffffff, false, ". ' '. . . ' ");
1616
Write(0xff9900, false, "<");
17-
Write(0xffffff, false, "o ' . \n ________/");
17+
Write(0xffffff, false, "o ' \n ________/");
1818
Write(0x999999, false, "O___");
1919
Write(0xffffff, false, "\\__________");
2020
Write(0xff0000, false, "|");
2121
Write(0xffffff, false, "_________________O______ ");
2222
Write(0xcccccc, false, " 1 ");
23-
Write(0xffff66, false, "**\n ");
23+
Write(0xffff66, false, "**\n ");
24+
Write(0x32211a, false, "'' ");
2425
Write(0x999999, false, "_______");
2526
Write(0xaabbcc, false, "||");
26-
Write(0x999999, false, "_________ \n | ");
27+
Write(0x999999, false, "_________ ");
28+
Write(0x32211a, false, "' ' ' . . . ' . \n ' ");
29+
Write(0x999999, false, "| ");
2730
Write(0x9b715b, false, "_");
2831
Write(0xbb66ff, false, "@");
2932
Write(0x9b715b, false, "__ ");
@@ -32,10 +35,10 @@ public void Show() {
3235
Write(0x66ff, false, "o");
3336
Write(0x9b715b, false, "_ ");
3437
Write(0xff0000, false, "'.");
35-
Write(0x999999, false, "|");
36-
Write(0x666666, false, "_ _________________________ ");
38+
Write(0x999999, false, "|_ _________________________ ");
3739
Write(0xcccccc, false, " 2 ");
38-
Write(0xffff66, false, "**\n ");
40+
Write(0xffff66, false, "**\n ");
41+
Write(0x32211a, false, ". ");
3942
Write(0x999999, false, "|_");
4043
Write(0xff0000, false, "&");
4144
Write(0x999999, false, "_");
@@ -49,21 +52,47 @@ public void Show() {
4952
Write(0xaabbcc, false, "^");
5053
Write(0x9b715b, false, "=");
5154
Write(0x999999, false, "_");
52-
Write(0x9b715b, false, "[");
53-
Write(0x333333, false, " \\| _ .. .. .. | \n \\_]__--|_|___[]_[]_[]__//_| ");
54-
Write(0x666666, false, " 3\n \n ");
55-
Write(0x666666, false, " 4\n ");
56-
Write(0x666666, false, " \n 5\n ");
55+
Write(0x9b715b, false, "[ ");
56+
Write(0x999999, false, "\\|");
57+
Write(0xff00, false, "..' ");
58+
Write(0xaabbcc, false, "_ ");
59+
Write(0xff0000, false, ".");
60+
Write(0x666666, false, ". ");
61+
Write(0xff0000, false, ".");
62+
Write(0x666666, false, ". ");
63+
Write(0xff0000, false, ".");
64+
Write(0x666666, false, ". ");
65+
Write(0x999999, false, "| \n \\_");
66+
Write(0xaabbcc, false, "]");
67+
Write(0x999999, false, "__");
68+
Write(0x9b715b, false, "--");
69+
Write(0xaabbcc, false, "|_|");
70+
Write(0x999999, false, "___");
71+
Write(0xaabbcc, false, "[]");
72+
Write(0x999999, false, "_");
73+
Write(0xaabbcc, false, "[]");
74+
Write(0x999999, false, "_");
75+
Write(0xaabbcc, false, "[]");
76+
Write(0x999999, false, "__");
77+
Write(0xaabbcc, false, "//");
78+
Write(0x999999, false, "_| ");
79+
Write(0xcccccc, false, " 3 ");
80+
Write(0xffff66, false, "**\n ");
81+
Write(0x333333, false, " ____________//___ \n |");
82+
Write(0x333333, false, " \\ // @@| ");
83+
Write(0x666666, false, " 4\n ");
84+
Write(0x333333, false, " |_[#]_@@__//_@@@| \n ");
85+
Write(0x333333, false, " ");
86+
Write(0x666666, false, " 5\n \n ");
87+
Write(0x666666, false, " 6\n ");
88+
Write(0x666666, false, " \n 7\n ");
5789
Write(0x666666, false, " \n ");
58-
Write(0x666666, false, "6\n \n ");
59-
Write(0x666666, false, " 7\n ");
60-
Write(0x666666, false, " \n 8\n ");
61-
Write(0x666666, false, " \n 9");
90+
Write(0x666666, false, "8\n \n ");
91+
Write(0x666666, false, " 9\n ");
92+
Write(0x666666, false, " \n 10\n ");
93+
Write(0x666666, false, " \n 11");
6294
Write(0x666666, false, "\n \n ");
63-
Write(0x666666, false, " 10\n ");
64-
Write(0x666666, false, " \n 11\n ");
65-
Write(0x666666, false, " \n 12\n");
66-
Write(0x666666, false, " \n");
95+
Write(0x666666, false, " 12\n \n");
6796

6897
Console.ForegroundColor = color;
6998
Console.WriteLine();

0 commit comments

Comments
 (0)