Skip to content

Commit 7a6a780

Browse files
committed
no message
1 parent 554fc66 commit 7a6a780

File tree

6 files changed

+146
-54
lines changed

6 files changed

+146
-54
lines changed

2025/Day12/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## --- Day 12: Christmas Tree Farm ---
2+
You're almost out of time, but there can't be much left to decorate. Although there are no stairs, elevators, escalators, tunnels, chutes, teleporters, firepoles, or conduits here that would take you deeper into the North Pole base, there <em>is</em> a ventilation duct. You jump in.
3+
4+
After bumping around for a few minutes, you emerge into a large, well-lit cavern full of Christmas trees!
5+
6+
_Visit the website for the full story and [full puzzle](https://adventofcode.com/2025/day/12) description._

2025/Day12/Solution.cs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
namespace AdventOfCode.Y2025.Day12;
2+
3+
using System;
4+
using System.Linq;
5+
using System.Text.RegularExpressions;
6+
record Todo(int w, int h, int[] counts);
7+
8+
[ProblemName("Christmas Tree Farm")]
9+
class Solution : Solver {
10+
11+
public object PartOne(string input) {
12+
// 🎄 🎄 🎄 rotfl
13+
14+
var blocks = input.Split("\n\n");
15+
16+
var areas = (
17+
from block in blocks[..^1]
18+
let area = block.Count(ch => ch == '#')
19+
select area
20+
).ToArray();
21+
22+
var todos = (
23+
from line in blocks.Last().Split("\n")
24+
let nums = Regex.Matches(line, @"\d+").Select(m => int.Parse(m.Value)).ToArray()
25+
let w = nums[0]
26+
let h = nums[1]
27+
let counts = nums[2..]
28+
select new Todo(w, h, counts)
29+
).ToArray();
30+
31+
var res = 0;
32+
foreach(var todo in todos) {
33+
var areaNeeded = Enumerable.Zip(todo.counts, areas).Sum(p => p.First * p.Second);
34+
if (areaNeeded <= todo.w * todo.h) {
35+
res ++;
36+
}
37+
}
38+
return res;
39+
}
40+
}

2025/Day12/input.in

24.5 KB
Binary file not shown.

2025/Day12/input.refout

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
495

2025/SplashScreen.cs

Lines changed: 81 additions & 36 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 █ █ █▄█ ▀▄▀ █▄▄ █ █ █▄ █▄█ █ █▄ █▄█ █▄█ █▄▄ /* 2025 */\n \n ");
12-
Write(0xcc00, false, " ");
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 ");
2323
Write(0xffff66, false, "**\n ");
24-
Write(0x32211a, false, ". ");
24+
Write(0x32211a, false, "' ");
2525
Write(0x999999, false, "_______");
2626
Write(0xaabbcc, false, "||");
2727
Write(0x999999, false, "_________ ");
28-
Write(0x32211a, false, "''' '. . . '... . \n . ");
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, "__");
@@ -80,7 +80,7 @@ public void Show() {
8080
Write(0x999999, false, "_| ");
8181
Write(0xcccccc, false, " 3 ");
8282
Write(0xffff66, false, "**\n ");
83-
Write(0x32211a, false, "'' . . ' '. '. ");
83+
Write(0x32211a, false, ".' .. ''. ' . ' ");
8484
Write(0x999999, false, "____________");
8585
Write(0xaabbcc, false, "//");
8686
Write(0x999999, false, "___ \n __________________________ ");
@@ -137,15 +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, "|| ");
145145
Write(0x999999, false, "____________ ");
146-
Write(0x32211a, false, ".. ");
147-
Write(0x999999, false, "_______________________ ");
148-
Write(0x32211a, false, ". \n ");
146+
Write(0x32211a, false, ".' ");
147+
Write(0x999999, false, "_______________________ ");
148+
Write(0x32211a, false, "? \n ");
149149
Write(0x999999, false, "_");
150150
Write(0x9900, false, "||");
151151
Write(0x999999, false, "__/");
@@ -157,8 +157,8 @@ public void Show() {
157157
Write(0xff0000, false, "~ ");
158158
Write(0xff00, false, ".'");
159159
Write(0xff0000, false, "'. .");
160-
Write(0x999999, false, "| ");
161-
Write(0x32211a, false, "? ");
160+
Write(0x999999, false, "| ");
161+
Write(0x32211a, false, "' ");
162162
Write(0xcccccc, false, " 6 ");
163163
Write(0xffff66, false, "**\n ");
164164
Write(0x999999, false, "|");
@@ -195,8 +195,8 @@ public void Show() {
195195
Write(0xaabbcc, false, "| ");
196196
Write(0x999999, false, "| ");
197197
Write(0xcccccc, false, " 7 ");
198-
Write(0xffff66, false, "**\n ");
199-
Write(0x32211a, false, "' '' ' .. ");
198+
Write(0xffff66, false, "**\n ");
199+
Write(0x32211a, false, ".' . . ");
200200
Write(0xffff66, false, "'...");
201201
Write(0x999999, false, "|");
202202
Write(0xffff66, false, "<>");
@@ -214,8 +214,8 @@ public void Show() {
214214
Write(0x9b715b, false, "[");
215215
Write(0x999999, false, "_");
216216
Write(0xaabbcc, false, "O");
217-
Write(0x999999, false, "_| \n __________________________ ");
218-
Write(0x32211a, false, "' . ");
217+
Write(0x999999, false, "_| \n __________________________ ");
218+
Write(0x32211a, false, "' . ");
219219
Write(0xaabbcc, false, "| ");
220220
Write(0xcccccc, false, " 8 ");
221221
Write(0xffff66, false, "**\n ");
@@ -265,31 +265,76 @@ public void Show() {
265265
Write(0xaabbcc, false, "|");
266266
Write(0x999999, false, "_| \n _________");
267267
Write(0xaabbcc, false, "||");
268-
Write(0x999999, false, "______");
269-
Write(0x666666, false, " ______________________________ ");
268+
Write(0x999999, false, "______ ______________________________ ");
270269
Write(0xcccccc, false, "10 ");
271270
Write(0xffff66, false, "**\n ");
272271
Write(0x999999, false, "| ");
273272
Write(0xaabbcc, false, "___ ");
274273
Write(0xff00, false, "'..");
275-
Write(0x999999, false, "|");
276-
Write(0x666666, false, " | | \n ");
277-
Write(0x999999, false, "|_");
274+
Write(0x999999, false, "| |");
275+
Write(0xff0000, false, "'..'");
276+
Write(0xff00, false, "'..'");
277+
Write(0xff0000, false, "'..'");
278+
Write(0xff00, false, "'..'");
279+
Write(0xff0000, false, "'..'");
280+
Write(0xff00, false, "'..'");
281+
Write(0xff0000, false, "'..'");
282+
Write(0x999999, false, "| \n |_");
278283
Write(0xaabbcc, false, "|");
279284
Write(0xff0000, false, "'");
280-
Write(0xff00, false, "..");
285+
Write(0xff00, false, ".");
286+
Write(0xff0000, false, ".");
281287
Write(0xaabbcc, false, "|");
282288
Write(0x999999, false, "_");
283289
Write(0xaabbcc, false, "(");
284290
Write(0x666666, false, ":::::");
285291
Write(0xaabbcc, false, ")");
286-
Write(0x999999, false, "_|");
287-
Write(0x666666, false, " | ^ ^ ^ ^ | ");
292+
Write(0x999999, false, "_| | ");
293+
Write(0xffff66, true, "* ");
294+
Write(0x9900, false, "() ");
295+
Write(0xffff66, true, "* ");
296+
Write(0x9900, false, "() ");
297+
Write(0xffff66, true, "* ");
298+
Write(0x9900, false, "() ");
299+
Write(0xffff66, true, "* ");
300+
Write(0x999999, false, "| ");
288301
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");
302+
Write(0xffff66, false, "**\n ");
303+
Write(0x32211a, false, "'. ");
304+
Write(0xaabbcc, false, "| ");
305+
Write(0x32211a, false, "''' ");
306+
Write(0xaabbcc, false, ".--. ");
307+
Write(0x999999, false, "| ");
308+
Write(0x9900, false, "<");
309+
Write(0xff0000, false, "o");
310+
Write(0x9900, false, "> <^");
311+
Write(0xff00, false, "o ");
312+
Write(0x9900, false, "<");
313+
Write(0xffff, false, "o");
314+
Write(0x9900, false, "> ");
315+
Write(0xbb66ff, false, "o");
316+
Write(0x9900, false, "^> ");
317+
Write(0x999999, false, "| \n ");
318+
Write(0x32211a, false, "'' ");
319+
Write(0xaabbcc, false, "'------' '---#");
320+
Write(0x999999, false, "_");
321+
Write(0x9900, false, "<<^");
322+
Write(0xff9900, false, "o");
323+
Write(0x9900, false, ">");
324+
Write(0x999999, false, "__");
325+
Write(0x9900, false, "<");
326+
Write(0xffff66, false, "o");
327+
Write(0x9900, false, "^>>");
328+
Write(0x999999, false, "__");
329+
Write(0x9900, false, "<<^>");
330+
Write(0x66ff, false, "o");
331+
Write(0x999999, false, "__");
332+
Write(0x9900, false, "<<^");
333+
Write(0xff0000, false, "o");
334+
Write(0x9900, false, ">");
335+
Write(0x999999, false, "_| ");
336+
Write(0xcccccc, false, "12 ");
337+
Write(0xffff66, false, "**\n \n");
293338

294339
Console.ForegroundColor = color;
295340
Console.WriteLine();

0 commit comments

Comments
 (0)