Skip to content

Commit 9d4f6b8

Browse files
committed
2025/11
1 parent 323b938 commit 9d4f6b8

7 files changed

Lines changed: 131 additions & 49 deletions

File tree

2025/Day11/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## --- Day 11: Reactor ---
2+
You hear some loud beeping coming from a hatch in the floor of the factory, so you decide to check it out. Inside, you find several large electrical conduits and a ladder.
3+
4+
Climbing down the ladder, you discover the source of the beeping: a large, toroidal reactor which powers the factory above. Some Elves here are hurriedly running between the reactor and a nearby server rack, apparently trying to fix something.
5+
6+
_Visit the website for the full story and [full puzzle](https://adventofcode.com/2025/day/11) description._

2025/Day11/Solution.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
namespace AdventOfCode.Y2025.Day11;
2+
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
7+
record State(string node, string path);
8+
9+
[ProblemName("Reactor")]
10+
class Solution : Solver {
11+
12+
public object PartOne(string input) =>
13+
PathCount(Parse(input), "you", "out", new Dictionary<string, long>());
14+
15+
public object PartTwo(string input) {
16+
var g = Parse(input);
17+
return
18+
PathCount(g, "svr", "fft", new Dictionary<string, long>()) *
19+
PathCount(g, "fft", "dac", new Dictionary<string, long>()) *
20+
PathCount(g, "dac", "out", new Dictionary<string, long>()) +
21+
22+
PathCount(g, "svr", "dac", new Dictionary<string, long>()) *
23+
PathCount(g, "dac", "fft", new Dictionary<string, long>()) *
24+
PathCount(g, "fft", "out", new Dictionary<string, long>());
25+
26+
}
27+
28+
long PathCount(
29+
Dictionary<string, string[]> g,
30+
string from, string to,
31+
Dictionary<string, long> cache
32+
) {
33+
if (!cache.ContainsKey(from)) {
34+
if (from == to) {
35+
cache[from] = 1;
36+
} else {
37+
var res = 0L;
38+
foreach (var next in g.GetValueOrDefault(from) ?? []) {
39+
res += PathCount(g, next, to, cache);
40+
}
41+
cache[from] = res;
42+
}
43+
}
44+
return cache[from];
45+
}
46+
Dictionary<string, string[]> Parse(string input) => (
47+
from line in input.Split("\n")
48+
let parts = line.Split(" ").ToArray()
49+
let frm = parts[0].TrimEnd(":").ToString()
50+
let to = parts[1..].ToArray()
51+
select new KeyValuePair<string, string[]>(frm, to)
52+
).ToDictionary();
53+
}

2025/Day11/graph.png

2.43 MB
Loading

2025/Day11/input.in

9.75 KB
Binary file not shown.

2025/Day11/input.refout

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

2025/SplashScreen.cs

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

99
var color = Console.ForegroundColor;
1010
Write(0xcc00, false, " ▄█▄ ▄▄█ ▄ ▄ ▄▄▄ ▄▄ ▄█▄ ▄▄▄ ▄█ ▄▄ ▄▄▄ ▄▄█ ▄▄▄\n █▄█ █ █ █ █ █▄█ █ █ █ █ █ █▄ ");
11-
Write(0xcc00, false, " █ █ █ █ █ █▄█\n █ █ █▄█ ▀▄▀ █▄▄ █ █ █▄ █▄█ █ █▄ █▄█ █▄█ █▄▄ 0x0000 | 2025\n ");
12-
Write(0xcc00, false, " \n ");
13-
Write(0xffffff, false, "____ ' ' ' ");
14-
Write(0xffff66, true, "* ");
15-
Write(0xffffff, false, "' .''. ' ");
11+
Write(0xcc00, false, " █ █ █ █ █ █▄█\n █ █ █▄█ ▀▄▀ █▄▄ █ █ █▄ █▄█ █ █▄ █▄█ █▄█ █▄▄ /* 2025 */\n \n ");
12+
Write(0xcc00, false, " ");
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 ");
24-
Write(0x32211a, false, ". ");
23+
Write(0xffff66, false, "**\n ");
24+
Write(0x32211a, false, ". ");
2525
Write(0x999999, false, "_______");
2626
Write(0xaabbcc, false, "||");
27-
Write(0x999999, false, "_________ ");
28-
Write(0x32211a, false, ". . . . ' \n . ");
27+
Write(0x999999, false, "_________ ");
28+
Write(0x32211a, false, "''' '. . . '... . \n . ");
2929
Write(0x999999, false, "| ");
3030
Write(0x9b715b, false, "_");
3131
Write(0xbb66ff, false, "@");
@@ -37,8 +37,8 @@ public void Show() {
3737
Write(0xff0000, false, "'.");
3838
Write(0x999999, false, "|_ _________________________ ");
3939
Write(0xcccccc, false, " 2 ");
40-
Write(0xffff66, false, "**\n ");
41-
Write(0x32211a, false, "'' ");
40+
Write(0xffff66, false, "**\n ");
41+
Write(0x32211a, false, ". ");
4242
Write(0x999999, false, "|_");
4343
Write(0xff0000, false, "&");
4444
Write(0x999999, false, "_");
@@ -62,8 +62,8 @@ public void Show() {
6262
Write(0x666666, false, ". ");
6363
Write(0xff0000, false, ".");
6464
Write(0x666666, false, ". ");
65-
Write(0x999999, false, "| \n ");
66-
Write(0x32211a, false, "'. ' . ");
65+
Write(0x999999, false, "| \n ");
66+
Write(0x32211a, false, "' . '... ");
6767
Write(0x999999, false, "\\_");
6868
Write(0xaabbcc, false, "]");
6969
Write(0x999999, false, "__");
@@ -79,8 +79,8 @@ public void Show() {
7979
Write(0xaabbcc, false, "//");
8080
Write(0x999999, false, "_| ");
8181
Write(0xcccccc, false, " 3 ");
82-
Write(0xffff66, false, "**\n ");
83-
Write(0x32211a, false, "' ' .' '.'. ' ..' ' ");
82+
Write(0xffff66, false, "**\n ");
83+
Write(0x32211a, false, "'' . . ' '. '. ");
8484
Write(0x999999, false, "____________");
8585
Write(0xaabbcc, false, "//");
8686
Write(0x999999, false, "___ \n __________________________ ");
@@ -137,13 +137,15 @@ public void Show() {
137137
Write(0x999999, false, "_");
138138
Write(0x9b715b, false, "T");
139139
Write(0x999999, false, "_");
140-
Write(0xaa7744, false, "...' ");
141-
Write(0x32211a, false, "' ' ' . ");
140+
Write(0xaa7744, false, "...' ");
141+
Write(0x32211a, false, ".. ' '' .. ");
142142
Write(0xcccccc, false, " 5 ");
143143
Write(0xffff66, false, "**\n ");
144144
Write(0x9900, false, "|| ");
145-
Write(0x999999, false, "____________ _______________________ ");
146-
Write(0x32211a, false, "'.. \n ");
145+
Write(0x999999, false, "____________ ");
146+
Write(0x32211a, false, ".. ");
147+
Write(0x999999, false, "_______________________ ");
148+
Write(0x32211a, false, ". \n ");
147149
Write(0x999999, false, "_");
148150
Write(0x9900, false, "||");
149151
Write(0x999999, false, "__/");
@@ -156,7 +158,7 @@ public void Show() {
156158
Write(0xff00, false, ".'");
157159
Write(0xff0000, false, "'. .");
158160
Write(0x999999, false, "| ");
159-
Write(0x32211a, false, "' ");
161+
Write(0x32211a, false, "? ");
160162
Write(0xcccccc, false, " 6 ");
161163
Write(0xffff66, false, "**\n ");
162164
Write(0x999999, false, "|");
@@ -193,8 +195,8 @@ public void Show() {
193195
Write(0xaabbcc, false, "| ");
194196
Write(0x999999, false, "| ");
195197
Write(0xcccccc, false, " 7 ");
196-
Write(0xffff66, false, "**\n ");
197-
Write(0x32211a, false, "' '. .'. ");
198+
Write(0xffff66, false, "**\n ");
199+
Write(0x32211a, false, "' '' ' .. ");
198200
Write(0xffff66, false, "'...");
199201
Write(0x999999, false, "|");
200202
Write(0xffff66, false, "<>");
@@ -212,8 +214,8 @@ public void Show() {
212214
Write(0x9b715b, false, "[");
213215
Write(0x999999, false, "_");
214216
Write(0xaabbcc, false, "O");
215-
Write(0x999999, false, "_| \n __________________________ ");
216-
Write(0x32211a, false, ".' ' ");
217+
Write(0x999999, false, "_| \n __________________________ ");
218+
Write(0x32211a, false, "' . ");
217219
Write(0xaabbcc, false, "| ");
218220
Write(0xcccccc, false, " 8 ");
219221
Write(0xffff66, false, "**\n ");
@@ -261,14 +263,33 @@ public void Show() {
261263
Write(0x9b715b, false, "-/");
262264
Write(0x999999, false, "___");
263265
Write(0xaabbcc, false, "|");
264-
Write(0x999999, false, "_| \n ");
265-
Write(0x666666, false, "_________||______ ");
266+
Write(0x999999, false, "_| \n _________");
267+
Write(0xaabbcc, false, "||");
268+
Write(0x999999, false, "______");
269+
Write(0x666666, false, " ______________________________ ");
266270
Write(0xcccccc, false, "10 ");
267271
Write(0xffff66, false, "**\n ");
268-
Write(0x333333, false, "| ___ | \n |_| |_(:::::)_| ");
269-
Write(0x333333, false, " ");
270-
Write(0x666666, false, "11\n \n ");
271-
Write(0x666666, false, " 12\n \n");
272+
Write(0x999999, false, "| ");
273+
Write(0xaabbcc, false, "___ ");
274+
Write(0xff00, false, "'..");
275+
Write(0x999999, false, "|");
276+
Write(0x666666, false, " | | \n ");
277+
Write(0x999999, false, "|_");
278+
Write(0xaabbcc, false, "|");
279+
Write(0xff0000, false, "'");
280+
Write(0xff00, false, "..");
281+
Write(0xaabbcc, false, "|");
282+
Write(0x999999, false, "_");
283+
Write(0xaabbcc, false, "(");
284+
Write(0x666666, false, ":::::");
285+
Write(0xaabbcc, false, ")");
286+
Write(0x999999, false, "_|");
287+
Write(0x666666, false, " | ^ ^ ^ ^ | ");
288+
Write(0xcccccc, false, "11 ");
289+
Write(0xffff66, false, "**\n ");
290+
Write(0x333333, false, " | .--. | <^> <^> <^> <^> | \n '------' '---#_<<^>>__<<^>>");
291+
Write(0x333333, false, "__<<^>>__<<^>>_| ");
292+
Write(0x666666, false, "12\n \n");
272293

273294
Console.ForegroundColor = color;
274295
Console.WriteLine();

0 commit comments

Comments
 (0)