#advent of code 2025

1 messages Ā· Page 10 of 1

feral valve
#

i should use the makefile

native maple
#

make DAY=10

feral valve
#

not like the makefile does any linking

robust yacht
#

elle abandoned soon

native maple
#

genuinely so confused..???

#

is your elle up to date??

feral valve
native maple
#

do ellec solution.le --ssa and send result

feral valve
#

oh just had to do install-runtime instead of install-stdlib

native maple
#

you can just call make to update everything at once

#

compiler, stdlib, runtime

feral valve
#

I don't use the normal target build-dir so it breaks

native maple
#

ah

feral valve
native maple
#

blehhh why is it broken

native maple
#

ok im going to bed

#

ping me if you get it working ill see it in the morning

feral valve
native maple
#

it is 1:15am girl 😭

#

i have school tomorrow

feral valve
#

smh

#

i'm doing aoc instead of studying for exams

#

its actually horrible

native maple
#

LITERALLY ME

#

i have an exam on friday lol

feral valve
native maple
#

prepared? āŒ

#

well kinda

#

ill just study tomorrow

feral valve
#

I'm kinda cooked

native maple
#

im glad i finished day 10 in a reasonable amount of time (it literally took all day)

feral valve
#

yeah I told myself I was only gonna solve p1 today

#

i looked at it last night and already knew p2 was gonna be hell

native maple
#

<1s still doable (thank fuck)

robust yacht
feral valve
#

@native maple if the input is 166 lines long it breaks (gets that out of bounds err). If it is 165 or 167 lines long it works

#

haha

#

one of the strangest errors I've ever seen

feral valve
#

of course, since it works with 167 lines, this is the fix

-    lines := io::read_to_string(args[1]).split("\n");
+    lines := io::read_to_string(args[1]).concat("[.] (0) {0}").split("\n");
#

is this cursed or what

#

of course, this has something to do with memory because a 166 line file filled with [.] (0) {0} will compute without fail

robust yacht
#

167...

#

67

pale stirrup
#

@robust yacht I'm trying your solution is it supposed to take 10 million years

feral valve
#

hell yeah idk whats going on

#

@native maple heres what you wanted

terse edge
#

z3

terse edge
#

@native maple

#

i had right answer at 5 mins

#

but with overflow

robust yacht
#

eagely is an ai

terse edge
#

i feel so stupid i drew it out in graphviz and was going thruogh the individual nodes counting their paths to out until i noticed a negative number and therefore an overflow 25 mins after writing my solution

robust yacht
#

is this path finding

terse edge
#

yes

terse edge
#

@native maple my solution is 3 lines

#

for p2

#

for both parts actually

#

just as a hint

feral valve
#

do i need ||topo sort|| for p2? seems pretty good

pale stirrup
#

fast fourier transform reference

feral valve
#

today was pretty clean

#

I liked it

feral valve
#

gm

native maple
#

i'll do today in the car

feral valve
#

i like how p1 assimilates into p2 once again

native maple
#

you're compiling without gc right?

feral valve
#

yep

native maple
#

strange

feral valve
#

isnt that just so clean

robust yacht
#

@pale stirrup
.

#

did you do yuet

pale stirrup
#

no im not doing them at midnight anymore

feral valve
#

i was gonna do this at midnight but i accidentally doomscrolled until 1am

terse edge
#

its fast

native maple
#

ok that was more annoying than i wouldve liked

#

fast tho

#

||```rs
use std/prelude;

let cache = HashMap::new<(string, string), i64>();
let graph = DefaultMap::new<string>(fn() HashSet::new<string>());

fn dp(string start, string end) -> i64 {
if graph[start].contains(end) { return 1; }
if _, res := cache.get($(start, end)) { return res; }

res := graph[start].iter().map_with(dp, end).sum();
cache[$(start, end)] = res;
return res;

}

fn solve(string[] lines) {
for line in lines {
name, rest := line.split(":").map(string::strip);
for d in rest.split(" ") { graph[name].add(d); }
}

i64[2] total = #[0, 0];
total[0] = dp("you", "out");

for a, b in ["dac", "fft"].permutations() {
    total[1] += dp("svr", a) * dp(a, b) * dp(b, "out");
}

return total;

}

fn main(string[] args) {
lines := io::read_to_string(args[1]).strip().split("\n");
$dbg(solve(lines));
}

native maple
#

things went wrong anyway

#

entirely irrelevant to the problem i was trying to solve

native maple
native maple
#

well look at what its doing

#

also that is not long its like 35 lines overall lol

terse edge
#
    override fun solvePart2(input: File) = dp(input.lines.map { it.split(" ", ":").dropBlanks() }.associate { it.first() to it.drop(1) }, "svr", false, false)

    @Memoize
    private fun dp(cons: Map<String, List<String>>, cur: String, dac: Boolean, fft: Boolean): Long {
        if (cur == "out") return if (dac && fft) 1 else 0
        return cons[cur]?.sumOf { dp(cons, it, cur == "dac" || dac, cur == "fft" || fft) } ?: 0
    }
}
#

u dont need the 2 bools even

#
from functools import cache

G = {k[:-1]: v for k, *v in map(str.split, open("i.txt"))}
D = cache(lambda c, g="out": c == g or sum(D(n, g) for n in G.get(c, [])))
print(D("you"), D("svr", "dac") * D("dac", "fft") * D("fft") + D("svr", "fft") * D("fft", "dac") * D("dac"))
native maple
#

oh you can

quartz aurora
#

Today's was easy, 246 bytes ||```py
G={L[:3]:L[4:].split()for L in open(0)}
O={"out":[1,0,0,0]}
for K in[G]99:
A=B=C=D=0
try:
for V in G[K]:p,q=V=="fft",V=="dac";a,b,c,d=O[V];A+=a;B+=b+a
p;C+=c+a
q;D+=d+cp+bq
O[K]=A,B,C,D;del G[K]
except:0
print(O["you"][0],O["svr"][3])

terse edge
native maple
#

how fast

native maple
#

its already very simple

terse edge
#

shorter i mean

#

and more readable imo

#

do u think tomorrow will have a part 2?

quartz aurora
frigid socket
#

@hoary mirage

native maple
quartz aurora
hoary mirage
frigid socket
#

now doing d11 in tay

hoary mirage
#

lets see day 11

#

how terrible it is

frigid socket
#

it seems decent

#

@hoary mirage some day should i back solve older aocs

hoary mirage
#

yop do

#

it seems like heapq problem

#

lets cook

#

okay p1 was easy

#

had to debug because I wrote
p1 =+ 1 rather than p1 += 1

#

hmmm part2 wants me to abondon heapq and make it a list

hoary mirage
#

ITS RUNNING SINCE SECONDS

#

WHY ITS NOT FINISHED

#

heap did make stuff fast really šŸ„€

#

rosie its not completing

frigid socket
#

@hoary mirage do you think d12 will be dj akstra

hoary mirage
#

idk

#

idk how eric managed to stand without making djakstra until today

frigid socket
#

is today dj akstra

hoary mirage
#

nop

#

smthn wrong w my code

#

it worked in example

#

I dont think it would cause any loops

#

bro theres a loop

#

my p1 code doesnt work either

#

WHY ERIC

native maple
#

tomorrow is the last day and surely it will be easy

hoary mirage
#

why

#

ROSIE WHY IS IT NOT COMPLETING

#

oooh

frigid socket
#

@hoary mirage

#

mantushkawkturkfasi

hoary mirage
#

ssssh

#

I am thinking a way to do p2

frigid socket
#

@hoary mirage

#

@hoary mirage

#

@hoary mirage

#

@hoary mirage

#

@hoary mirage

#

@hoary mirage

#

@hoary mirage

hoary mirage
#

KYS NON0

hoary mirage
#

ig i will nbeed to do recursion

#

jhateeee

#

That's not the right answer; your answer is too high. If you're stuck, make sure you're using the full input data; there are also some general tips on the about page, or you can ask for hints on the subreddit. Please wait one minute before trying again. [Return to Day 11] death

#

That's the right answer! You are one gold star closer to decorating the North Pole.

#

FINALLY

hoary mirage
#

discord loves refusing to spoiler python code

native maple
#

just replace || with or

#

it's still valid syntax

cloud girderBOT
# hoary mirage ||https://github.com/mantikafasi/aoc25/blob/master/day11/main.py#L1-L27||

main.py: Lines 1-27
||```py
from functools import cache
p1, p2 = 0, 0
connectionMap = {}
allPossibleWays = {}

@cache
def findAllPossibleWays(start, target, hasdac, hasfft):
r = 0

for target in connectionMap[start]:
    if target == "out":
        if hasdac and hasfft:
            r += 1
    else:
        r += findAllPossibleWays(target, "out", hasdac or target ==
                                 "dac", hasfft or target == "fft")
return r

with open("input.txt", "r") as file:

for i in file.readlines():
    connectionMap[i.split(":")[0]] = i.split(":")[1].strip().split(" ")

p1 = findAllPossibleWays("you", "out", True, True)
p2 = findAllPossibleWays("svr", "out", False, False)

print(p1, p2)

quartz aurora
#

That's a bit bigger than mine

native maple
#

@lusty atlas

feral valve
#

carblobcatcozy

feral valve
native maple
#

oh yeah also

#

uhhh i think zed just straight up never frees any memory

#

i think when i start a shell within zed it forks the process and therefore all memory allocated within processes ran within that shell instance never have their memory freed to the os

#

so i can oom by just running my solutions enough times

native maple
#

i started to put a seperate terminal under zed lol

#

since i have a tiling wm its actually pretty decent to use

verbal parrot
native maple
#

happens if ur low on storage but also just happens sometimes

verbal parrot
#

it happened for me when i made a screenshot and tried to copy it without saving

#

it just like didn’t copy anything

feral valve
#

i’ve never had any clipboard issue on mac

feral valve
robust yacht
#

roinga

feral valve
#

i used tiling window managers for a couple years but i’ve stopped

native maple
native maple
#

yes

#

wait no

#

no SIP is enabled

#

i misinterpreted your question

feral valve
#

isn’t the space switching slow then?

native maple
#

not really?

#

i use gestures

#

to switch

#

just the stock swipe gestures

feral valve
#

ah

#

i use ctrl+N so if it’s not instant it’s slow

native maple
#

well its instant

feral valve
#

I thought that was only the case if SIP was disabled

native maple
robust yacht
#

hiii roie

native maple
#

hiii

feral valve
native maple
#

well tbf i kinda dont wanna remove it lol

#

i like the animation

feral valve
#

it’s still there if you swipe though

native maple
#

i never use hotkeys anyway so that wouldnt affect me much

#

its certainly much better than a non-tiling wm tho

#

i dont have to fiddle around for ages to open 2 things side by side

#

or i guess before i used to just put them on different desktops and switch between them

#

but thats still bad

feral valve
#

i’m on a non tiling wm and it’s actually more convenient for me, most important thing is spaces and hotkeys

native maple
#

idk i dont mind either

feral valve
hoary mirage
frigid socket
#

@hoary mirage do i solve d11 or finish discord connect four

hoary mirage
#

solve d11

frigid socket
#

tomorrow yk

native maple
native maple
#

@lusty atlas solve day 11

native maple
#

what do we think of the font

lusty atlas
#

ulgyt

lusty atlas
native maple
#

its not really pathfinding there are easier ways to do it

#

its not a grid problem its a graph problem

lusty atlas
#

anyway still would rather work on smth else blobcatcozy

native maple
#

fair enough

robust yacht
feral valve
robust yacht
#

yop

terse edge
#

@native maple im really mad

#

this is the worst aoc day ever

robust yacht
brazen valley
#

im hard

#

rn

terse edge
brazen valley
#

i havent gone through day 11 and 12

#

how hard is it 12

robust yacht
pale stirrup
#

i looked at it and yeah it looks tough

#

@robust yacht you know those puzzle games where you have to fit a bunch of blocks together

#

its that

#

but a lot

terse edge
#

@pale stirrup

#

my solution is 1 short line

#

the puzzle is stupid

#

its either made wrong or he purposefully made it stuid

pale stirrup
#

is that one line with utilities

terse edge
lusty atlas
terse edge
#

i dont have a util for tryFittingAllRotationsOfTheseShapes

pale stirrup
#

you will now

terse edge
#

i love spending 54 minutes on a smart solution then going on reddin and seeing that the solution is ||one division|| and the puzzle is either accidentally terrible or eric is evil

robust yacht
#

@pale stirrup have you done d11

pale stirrup
#

nop i intended to but then the game awards happened

robust yacht
#

same

#

@pale stirrup make Advent of wing

quartz aurora
#

90 bytes ||```py
print(sum(int(B[:2])int(B[3:5])>7sum(map(int,B[6:].split()))for B in open(0)if'x'in B))

#

Sort of an actual spoiler this time actually

native maple
#

@terse edge today is so easy lol

terse edge
#

its only easy if u submit the upper bound

quartz aurora
#

Actually solving the task is a nightmare

#

Getting the right answer is trivial

terse edge
quartz aurora
#

Within the universe's lifetime? Probably not

native maple
# terse edge its not

||```rs
use std/prelude;

fn solve(string[] blocks) {
total := 0;
sizes := blocks.slice(0, 6).iter().map(fn(b) b.iter().map(fn(c) c == '#').sum()).collect();

for part in blocks[6].nums<i64>().iter().chunks(8) {
    area := part.remove(0).unwrap() * part.remove(0).unwrap();
    total += area > sizes.iter().zip(part.iter()).map(fn(p) p.x * p.y).sum();
}

return total;

}

fn main(string[] args) {
blocks := io::read_to_string(args[1]).split("\n\n");
$dbg(solve(blocks));
}

#

runs in 41.3ms

#

<500ms for all parts!!!!!!!!!

terse edge
terse edge
#

well its O(n) but per line its O(1)

cloud girderBOT
# terse edge https://codeberg.org/eagely/adventofcode-kotlin/src/branch/main/src/main/kotlin/...

Day12.kt:

package solutions.y2025

import Solution
import utils.extractNumbersSeparated
import utils.product
import utils.sdanl
import java.io.File

class Day12 : Solution(2025) {
    override fun solvePart1(input: File) = input.sdanl().last().map { it.extractNumbersSeparated() }
        .count { g -> g.take(2).product() >= g.drop(2).sumOf { it * 9 } }

    override fun solvePart2(input: File) = "worst aoc day ever"
}
native maple
#

what the fuck

#

@terse edge @robust yacht @feral valve gonna start progtamming like this

terse edge
#

or malayalam

quartz aurora
native maple
#

ofc a hand rolled solution will be faster than using a general library

gray panther
#

i forgot this

hoary mirage
#

ROSIEEE

#

AOC TIME

gray panther
#

day 1 in nĀ·vim
part 1:
||- :%s/R/+<CR>:%s/L/-<CR>:%s/.*/(((\0)%100)+100)%100=<CR>gg prepare the expressions

  • ea50<Esc> base case
  • qq0yt=$"=<C-r>0<CR>p0f=lYj0llpq9999999@q create and evaluate formulae (might want to clipboard -= unnamnedplus)
  • :v/=0/d get rid of useless lines
  • :%s/.*\n/+1/g0x prepare the counting of 0s
  • yyV"=<C-r>0<CR>p answer||
    part 2:
    ||- :%s/L\(.*\)/(((-\1)%100)+100)%100=;(-\1-100)\/100=<CR>:%s/R\(.*\)/(((+\1)%100)+100)%100=;(+\1)\/100=<CR>gg prepare the expressions
  • ei50<Esc>f;la50<Esc> base case
  • qq0yt=f="=<C-r>O0<CR>pllyt=$"=<C-r>0<CR>p0f=lyt;j0ePf;lpq999999@q create and evaluate formulae (might want to clipboard -= unnamnedplus)
  • %s/.*;(0-.*/\0-1 we actually over count because we count 1 after matching exactly 0 and going left from that so we add one to these
  • :%s/.*=/<CR>:%s/-/<CR> cleanup
  • :%s/\(.\)\n/\1+<CR>$x prepare the big sum
  • yyV"=<C-r>0<CR>p answer||
#

i’ve been trying to come up with a visualization for day 9 but the map is so big nothing works

#

i’ve tried generating a png 10 different ways but it corrupts itself somehow

#

so i’m generating a ppm

#

rn converting it to png with imagemagick

#

109 Gigabytes of temp files

frigid socket
#

this looks so difficult

native maple
#

theres a trick to it

#

it would be hard but the input is really nice

hoary mirage
#

ROSIE WHAT IS IT TRYING TO SAY

gray panther
#

yeah look at the actual input

#

my solution fails on the sample

gray panther
#

it was too much of a mess to do all the parsing and manipulating in c

#

day 6 in nĀ·vim (not optimized at all for least keyĀ·strokes):
part 2
||- GddggP not necessary but seemed convenient

  • e<C-v>GelxGo<CR><Esc>pgg prepare things to make it easier for the macro (really not necessary probably)
  • /[\*+]<CR>qqggn<C-v>n4jhxGo<CR><Esc>pggq9999@q rearrange the blocks for easier parsing (takes a bit (also for some reason you end up in the middle of nowhere but it’s fine))
  • <Esc>gge<C-v>4jlxGo<CR><Esc>p rearrange last bit
  • :%s/^\(....\).$/\1<CR>:%s/^..$/\0 /<CR>:%s/^...$/\0 /<CR> normalize blocks for regex parsing
  • :%s/^\([\*+]\) \n[0-9 ][0-9 ]\([0-9 ]\)\([0-9 ]\)\n[0-9 ][0-9 ]\([0-9 ]\)\([0-9 ]\)\n[0-9 ][0-9 ]\([0-9 ]\)\([0-9 ]\)\n[0-9 ][0-9 ]\([0-9 ]\)\([0-9 ]\)\n/\0\2\4\6\8\1\3\5\7\9\r<CR>:%s/\(.\) \n\([0-9 ]\)\([0-9 ]\)[0-9 ][0-9 ]\n\([0-9 ]\)\([0-9 ]\)[0-9 ][0-9 ]\n\([0-9 ]\)\([0-9 ]\)[0-9 ][0-9 ]\n\([0-9 ]\)\([0-9 ]\)[0-9 ][0-9 ]\n/\2\4\6\8\1\3\5\7\9\1<CR> we need to do it in two times because nĀ·vim only has 9 named captured groups
  • :%s/ //g<CR>:%s/^$\n/<CR>Gdd:%s/.$/<CR>:%s/\(.*\)[^0-9]$/\1<CR>:%s/\(.*\)[^0-9]$/\1<CR> cleanup (yes twice. not the most efficient but yk)
  • :%s/\(.*\)\n/(\1)+<CR>$xyyV"=<C-r>0<CR>p the grand evaluation (might take a bit)||
hoary mirage
#

idg whats the deal with input

gray panther
hoary mirage
#

ig you just count if space is enough

#

rather than if it fits

gray panther
#

try and see

#

holy shit chat

#

gimp just opened a 28 gigabytes big ppm file

#

and it’s working fine

hoary mirage
#

bro how are there 50 shape indexes when theres only 5 shapes

#

???

gray panther
#

36 times shape 0

hoary mirage
#

oh

#

k

#

hmm this approach doesnt work

gray panther
#

don’t worry about the sample

#

the sample has cases the actual input doesn’t have

hoary mirage
#

That's the right answer! You are one gold star closer to decorating the North Pole. [Continue to Part Two]

#

bro šŸ„€

#

this is stupid

#

why doesnt it work on example but work on real input

terse edge
hoary mirage
gray panther
hoary mirage
#

finished aoc this year

#

no djakstra

#

sad

gray panther
#

true

native maple
#

well done!!!!!

#

aoc this year was way easier than last year

hoary mirage
#

yop

#

EXCEPT Z3 DAY

#

@robust yacht day12 part 2 is hardest yet

#

for you

frigid socket
#

i still didnt do d11

hoary mirage
#

do

frigid socket
hoary mirage
#

nin0 so lazy

frigid socket
#

first I finish discord connect 4

hoary mirage
#

WHAT THE HELL IS DISCORD CONNECT 4

frigid socket
hoary mirage
frigid socket
#

kill yourself

#

for some reason my copilto stopped working so i cant even vibecode

#

cba to make it work

hoary mirage
#

use google antigravity

frigid socket
#

if its a fucking vscode fork

#

yes more space on my mac please!

#

why is this an option???

hoary mirage
#

but freeeeeeeeee tokens

hoary mirage
terse edge
#

im the cvo

#

chief vibe officer

#

vibe architect

gray panther
#

(day 09 part 2)

#

it just flood filled a 28 Gigabyte file

native maple
#

i kinda cheated in day 9, 11, and 12

#

there were ways to simplify the problem heavily

gray panther
#

day 9 i assume ||you could like make a list of rectangles than when ORed together are the area?||

cloud girderBOT
# native maple ||https://github.com/acquitelol/aoc2025/blob/mistress/solutions/09/solution.le#L...

solution.le: Lines 1-50
||```le
use std/prelude;

fn contained(i64[4][] edges, i64[2] mx, i64[2] my) {
for i := 0; i < edges.size; i += 1 {
e := edges.elements[i]; // skip bounds check
if mx[0] < e[2] && mx[1] > e[0] && my[0] < e[3] && my[1] > e[1] {
return false;
}
}

return true;

}

fn solve(string[] lines) {
tiles := lines.map(fn(l) l.split(",").map(i64::parse));
edges := Array::with_capacity<i64[4]>(tiles.len()).filled();
i64[2] best = #[0, 0];

for i := 0; i < tiles.len(); i += 1 {
    px, py := #[tiles[i], tiles[(i + 1) % tiles.len()]];
    edges[i] = #[
        math::min(px[0], py[0]), math::min(px[1], py[1]),
        math::max(px[0], py[0]), math::max(px[1], py[1])
    ];
}

edges.sort_with(fn(a, b) a[0] - b[0]);

for i := 0; i < tiles.len(); i += 1 {
    for j := 0; j < tiles.len(); j += 1 {
        if i >= j { continue; }
        p1, p2 := #[tiles.elements[i], tiles.elements[j]];

        mx := p1[0] < p2[0] ? #[p1[0], p2[0]] : #[p2[0], p1[0]];
        my := p1[1] < p2[1] ? #[p1[1], p2[1]] : #[p2[1], p1[1]];
        area := (mx[1] - mx[0] + 1) * (my[1] - my[0] + 1);

        if area > best[0] { best[0] = area; }
        if area <= best[1] { continue; }
        if contained(edges, mx, my) { best[1] = area; }
    }
}

return best;

}

fn main(string[] args) {
lines := io::read_to_string(args[1]).strip().split("\n");
$dbg(solve(lines));
}

native maple
#

what syntax highlighting is this using 😭 why are my newlines GREEN

feral valve
#

wow today looks quite hard

#

i have exams today and tomorrow so i’ll put it off

feral valve
silk smelt
#

well this was a wonderful end to this years aoc, though it was very short

#

ill go to slumber again, see you next year

frigid socket
#

@robust yacht

robust yacht
#

@frigid socket

frigid socket
#

@robust yacht

robust yacht
#

how

frigid socket
#

read

#

zesty zeet

robust yacht
#

@frigid socket

frigid socket
robust yacht
#

nino death

loud lanternBOT
#

Game over!

šŸ”“ @frigid socket won.
🟔 @robust yacht lost.

Connect 4

šŸ”³ šŸ”³ šŸ”³ šŸ”³ šŸ”³ šŸ”³ šŸ”³
šŸ”³ šŸ”³ 🟔 🟔 šŸ”³ šŸ”³ šŸ”³
šŸ”³ šŸ”³ ā¤ļø 🟔 šŸ”³ šŸ”³ šŸ”³
šŸ”“ 🟔 šŸ”“ ā¤ļø šŸ”³ šŸ”³ šŸ”³
🟔 šŸ”“ šŸ”“ 🟔 ā¤ļø šŸ”³ šŸ”³
šŸ”“ 🟔 🟔 šŸ”“ 🟔 ā¤ļø šŸ”³

robust yacht
#

oh

frigid socket
#

you love my implementation @robust yacht

#

500 lines of TypeScript

#

classes

robust yacht
#

salad will rewrite

feral valve
terse edge
verbal parrot
native maple
# terse edge i vibe architected every day

honestly i wouldn't be surprised if you end up using some "coding agent" or some bullshit like that and add your whole kotlin utils as context so you can get solutions that look similar to what you'd actually write

#

is that how context works? can you even add multiple files

hoary mirage
#

rosie jumpscare

native maple
#

helo

verbal parrot
native maple
#

the number of additions this aoc alone are so silly

#

thanks aoc this was great

terse edge
native maple
#

oh ok ā¤ļø

native maple
#

every single message eagely sends is a shitpost

#

he is almost always ragebaiting don't take anything he says seriously ever

verbal parrot
#

oh thank god

robust yacht
#

@hoary mirage thoughts?

hoary mirage
#

she was always vibecoder

robust yacht
native maple
#

all 35k 38k lines of code in elle are vibe coded

robust yacht
#

@native maple hiiii

hoary mirage
#

@native maple hii

robust yacht
#

@hoary mirage

hoary mirage
#

@robust yacht

robust yacht
#

@hoary mirage have you done d12

hoary mirage
#

yes I done all

robust yacht
#

how

#

did you use ai

hoary mirage
#

nop

robust yacht
#

lies

hoary mirage
#

day 12 is very easy

#

but its stupid

robust yacht
#

i will be gone next week

#

wont be able to finish everything

hoary mirage
#

why

#

today is last

robust yacht
#

im behind on other days

hoary mirage
#

WHERE ARE YOU GOING NEXT WEEK

robust yacht
#

:)

#

fixing my grid util

#

@hoary mirage hi

hoary mirage
#

hi

terse edge
#

im not almost always ragebaiting

#

im always ragebaiting

native maple
#

@terse edge have you ever heard of a https://en.wikipedia.org/wiki/Finger_tree

In computer science, a finger tree is a purely functional data structure that can be used to efficiently implement other functional data structures. A finger tree gives amortized constant time access to the "fingers" (leaves) of the tree, which is where data is stored, and concatenation and splitting logarithmic time in the size of the smaller ...

terse edge
native maple
#

@lusty atlas

#

DEVIN, STOP REMOVING THIS LINE YOU DUMBASS, YES TYPESCRIPT DOES THROW AN ERROR IF YOU DON'T HAVE IT, NO THIS IS NOT "UNUSED", AND YES YOU ARE BREAKING OUR CI PIPELINE EVERY TIME YOU DO IT

lusty atlas
quartz aurora
terse edge
#

@native maple day 13 worse that yesterday

#

time urself doing it

robust yacht
#

yea

#

day 13 looks scary

hoary mirage
hoary mirage
native maple
#

wow i got 2nd overall despite being in elle

#

thats asweome

gray panther
#

there’s a global leaderboard actually?

native maple
#

no, in vencord

gray panther
#

damn gg

native maple
#

i think if skye finishes d10 and 12 i would go in 3rd

#

perhaps

gray panther
#

day 12 is like mega hard though

robust yacht
frigid socket
#

did vee not do 11 12

native maple
#

@lusty atlas doooooo

gray panther
#

you guys are not real grugs. you don’t have brute force in your soul. well i have. and this takes 2 hours to compute the answer but it damn does. grug power!

#

ignore line 75

#

i didn’t believe in grug power then

#

also not sure about freeing a null pointer but whatever it doesn’t happen

native maple
#

freeing a null pointer is a noop

gray panther
#

cool

frigid socket
#

Watch out for the Mod Bilboofan

robust yacht
#

Watch out for the Mod Bilboofan

native maple
#

Watch out for the Mod Bilboofan

frigid socket
#

dead chat xD

#

@hoary mirage should i do d1p2 in the next decade

lusty atlas
robust yacht
#

@hoary mirage do d14

hoary mirage
feral valve
#

done with exams

#

how should i do day 12?

#

seems pretty hard to enumerate all tilings

feral valve
#

wait the input makes this super easy

#

also only one part?

feral valve
#

@native maple

#

longest days were 2 and 10 lol

robust yacht
#

roinga

fallen lily
feral valve
fallen lily
#

optimizing my d2 was probably the thing i enjoyed the most this AOC

feral valve
fallen lily
feral valve
#

wow fast

lusty atlas
fallen lily
#

yop

lusty atlas
#

are you old enough to have lived at the same time as jesus

robust yacht
#

sadan is 3

robust yacht
#

do day 17 @pale stirrup @lusty atlas @fallen lily

#

so hard

quartz aurora
#

Oh yeah and I wrote a proper d10p2, it's 375b if you remove the newlines ||```py
from numpy import*;r=arange
from functools import*
for L in open(n:=0):
[,*P,],Q,R=L.split()
B=[bincount(eval(q[1:-1]+","),None,len(P))for q in Q]
S=len(B);M=r(1<<S)[:,None]>>r(S)&1
F=cache(lambda
V:any(V,*[W:=V-M@B]0)and min([sum(M[i])+2F(*W[i]//2)for i in where(all(~W&(W>=0),1))[0]]+[1e9]))
n+=min(M[all(M@B%2^less('#',P),1)].sum(1))+F(*eval(R[1:-1]+","))*1j
print(n)

robust yacht
quartz aurora
#

Think the first draft was about 500 bytes

blissful geyser
#

i might start doing aoc after lunch

#

wish me luck

frigid socket
#

@hoary mirage

hoary mirage
#

WHAT

frigid socket
#

@hoary mirage

#

d13 dropped @hoary mirage