#advent-of-code

1 messages · Page 14 of 1

placid lake
#

ah yeah, those suck

woven sable
#

which i absolutely struggled with

#

i gave up last year bc i slept really early one day and got behind on aoc during the hardest puzzles bc it was like day 16

ripe scroll
#

On day3 part 1 what does adjacent even mean here, in the example they said 14 isn't adjacent, but it is diagonally adjacent to * . 58 is adjacent to +.

This is turning to be a english comprehension competition at this point.

woven solar
#

*lanternfish, not jellyfish, but yeah that one was fun

woven sable
#

that one and the snail fish

#

i hated the snail fish wtv so much

#

didn't they multiply or smth it threw me off

woven sable
woven solar
#

they did math

ripe scroll
#

on line 6

lusty rover
woven sable
#

it'd be adjacent if it was +58

#

instead it's +.58..

woven sable
#

idk if i'll finish aoc this year bc i j don't have the time

#

2nd worst was the cuboids stuff and the worst was the scanner beacon thing it took me like 6 hours to find thensolurio

ripe scroll
woven sable
#

yeah as long as it's a cell away

woven solar
#

yeah, beacon scanner was a nightmare disguised as a day-19 task

#

cuboids? which one was that?

woven sable
#

like

..467...
.....+..
``` is touching
ripe scroll
#

Okay thanks for the explanation. The statement should've been more verbose

woven sable
#

splitting 3d cubes

magic oxide
#

my worst puzzle was by far amphipods

#

took me 2 weeks

woven sable
#

which one was that

#

i feel like i remember that one

magic oxide
#

2021 day 23

woven sable
#

my fav problems in 2021 were the flooding ones

woven solar
#

ah, right, reactor reboot. yeah, I also cheesed it with numpy and then got dumped into 3d-interval-intersection-hell in part2.

woven sable
#

i loved getting to use BFS & DFS and all

#

i honestly forgot what they were

#

but i'll relearn them eventually

woven solar
#

i never forgot bfs and dfs ever since my professor casually mentioned that the only difference between them is using a queue vs a stack to store nodes to be processed. this is how I thought of them ever since.

magic oxide
#

I learnt bfs 5 weeks into learning python

#

and dfs last year day 19

#

don't think I've ever used iterative dfs tho

humble copper
#

i remember this

#

it was torture

woven solar
#

yeah, 2022 day 19 was pretty evil too. you needed a good heuristic or the search was way too slow.

humble copper
#

honestly i prefer 2021 day 19 over 2022

woven sable
#

im prob gonna give up on day 15 again tbh

humble copper
#

ive tried 2022's 3 separate times and still haven't gotten it to work

magic oxide
#

I spent a good while on day 19 before it finally clicked and I understood what I was doing

placid lake
#

day 19 was harddd

#

definitely had to memoize that one

humble copper
#

one of the days for 2021, cant remember which one it was

#

it had like a trajectory prediction thing

#

in all honesty i just bruteforced it on a large enough area

#

and it got the right answer in a really reasonable amount of time

#

oh day 17

placid lake
#

wow i’m looking at my past solutions for these oh gosh

#

hah i implemented lshift and rshift for day 17

#

that’s pretty funny

humble copper
#

my solution for part 2 of day 15 takes 5 hours to run

#

but it works

placid lake
#

finding the cycle for day 17 was really something

placid lake
woven solar
#

my notes for day17 (rocks falling) say "don't know why this works, but it does"

cyan sleet
#

hopefully it's going to be less of a pain than ocaml

humble copper
#

idk why i do this to myself but ive made it a challenge every year to try to complete these without any imports

placid lake
#

hahahaha no way i’m doing that

#

sounds like hell

humble copper
#

not even stdlib imports

#

it absolutely is

#

the one year i completed a full calendar was my first one doing it

#

instant burnout on day 25 🤩

woven sable
#

aoc def gave me burnout in 2021

#

i think i stopped coding for a few months after

long jacinth
#

todays puzzle long

ivory dagger
#

I don't know if this event is something for me. I've been studying python for data science on datacamp for a couple of months to prepare for a bootcamp I will take. Tried the first couple of days but I never learned anything remotely close to this and at this point I wonder if I'm wasting my time.

sinful pewter
#

What is DIGIT_MAP?

flat vortex
#

Finished day 2 🥹🥹

#

I agree day 2 was fun lolol on day 1 there's a tricky test case :v

hollow wharf
#

another day another part 2 easier than 1

#

i belive thats just cause the parsing is already done

random flower
#

I wanted to automate receiving the puzzle input with a get request
But forgot we needed to login in order to get it at all

kind oasis
#

breaths in
breaths out
holy *&@#/ part 2 today is really not cooperating with my part 1 solution

#

xD

sullen ruin
sour trout
#

Does anybody have any methods toc hcek if a number is adjacent to a symbol?

long jacinth
#

your answer is not right
for first part, man how do i debug whats wong now lol

hollow wharf
#

print out everything you can for the example case

#

and see what goes wrong

long jacinth
#

example case produces the correct result

hollow wharf
#

well now you have a problem

long jacinth
#

that i do

#

ive made a map of all the correct parts, so its probably something im going to have to find manually

long jacinth
#

oh i think i got it

#

alright, second part seems easy

halcyon pulsar
#

Does anyone have advice on debugging? like spotting silly mistakes, slight logic errors, edge cases, etc?

low condor
#

Usually, but not always, you can shake out any issues by doing that

#

I write automated unit tests for my code. So with one click I can run all tests and show my code isn’t broken by a change I made

long jacinth
#

alright part 2 done, super easy

halcyon pulsar
hidden musk
#

functional fever i suppose

low condor
#

Yeah that’s unlucky

#

But the next thing is then to grab a section of your real input and test against that

halcyon pulsar
#

So I was like hang on

low condor
#

Also, you can avoid bugs by writing more resilient code

magic oxide
#

it might be because I'm doing this with an added challenge, but today seems much harder than I would expect from day 3

low condor
long jacinth
#

my solution has 193 LoC for todays, way more 'difficult' than previous days

low condor
#

But you can check for digits using str.isdigit() or using regex with \d

#

And these are more robust ways of detecting if you have a digit

halcyon pulsar
low condor
#

I still suspect the ante has been upped because of AI

halcyon pulsar
#

How

low condor
#

Well because you don’t need to code in all the digits directly

#

Another option is string.ascii_digits

#

Oh lol - one sec

#

!d string.digits

marsh currentBOT
low condor
#

You could have used this and add . on the end

#

In general you want to reduce the amount you have to hardcode

#

The more you hardcode the more potential sources of errors can creep in

halcyon pulsar
#

Ok good to know

modern terrace
#

i couldn't do this earlier because it was sunday

sour trout
#

Does anybody know any methods to check for adjancet numbers? i cant figure one decent.

modern terrace
#

i have used it for the past 3 days

sour trout
#

||Also what pattern if possible?||

modern terrace
#

i actually just used ||regex|| for the ||.findall() feature||

sour trout
#

Thanks

random flower
#

im on first day:
how is the last line interpreted as 77?

1abc2
pqr3stu8vwx
a1b2c3d4e5f
treb7uchet

there's only one 7. or is it because of this hint:
||```
...single two-digit number.

halcyon pulsar
hollow wharf
#

forming a 2 digit number

#

so in this case both from left and from right side the first number is 7

#

hence number will be 77

low condor
#

On each line, the calibration value can be found by combining the first digit and the last digit (in that order) to form a single two-digit number.

random flower
low condor
#

Advent of Reading Comprehension :)

random flower
#

my day1part1 didn't just compile in two minutes
my laptop is crying

low condor
#

I’m curious to see what your code looks like

random flower
low condor
#

Oh what language are you using?

random flower
low condor
#

Ah

#

It still takes that long to compile? Interesting

random flower
low condor
#

Ahh

#

That explains that

jade atlas
#

where can I see the full leaderboard? I just saw Petr Viktorin in the aoc leaderboard and I am curious to see which other core developers are taking part here

edgy hearth
#

is day 2 easy guys?

hardy zenith
#

today's AOC is cruel

any number adjacent to a symbol, even diagonally

hardy zenith
hollow wharf
#

im scared of day 4

edgy hearth
#

im scared of falling too much behind

#

going to try and nuke all of 2 today

hardy zenith
#

oh 2 is much easier than you think

#

today however... it'll probably take me an hour

hollow summit
#

i think for day 3 i'll just convert input into a 2d array

#

so i can index stuff easier

hardy zenith
lime fulcrum
#

today seems kind of hard

molten fulcrum
#

[Day 2] ||Regex|| has always confused me a bit. If I'd like to find how many red, blue and green ones there are in a draw, for example:

  • 3 blue, 4 red
  • 1 red, 2 green, 6 blue
  • 2 green

||How would I go about parsing all these with the same regex, and still know which part of the parsed data is blue, red and green? And how do you handle the different orders of items, as well as some items not being present in all draws?||

#

I'm not looking for a full solution, but rather how I should approach thinking about this problem in terms of ||regex||

hardy zenith
#

but also, you can use ||OR statements, like (blue|green|red)||

molten fulcrum
hardy zenith
#

you can't solve the problem with one tool alone

potent rivet
#

guys ... day 03 ... went to grab bunch of correct numbers, but the sum not ok ... missing something here?
grab all numbers with adjacent to symbols ... i checked like 8 lines from the txt

hardy zenith
molten fulcrum
long jacinth
#

i dont think today was difficult

#

just time consuming

#

i mean, maybe it was difficult if youre like.. golfing it lol

low condor
#

I think today is difficult if you don’t have a good approach, and I think more people than usual for a day 3 puzzle will not have that

#

But if you have a good approach then it’s fine

magic oxide
#

today is difficult for me because i overthink things

bronze vault
#

Can the same number have more than one adjacent symbol?

earnest forge
#

Theoretically yes but it doesn't seem to ever actually occur

bronze vault
#

ok thats greatr

royal gull
hollow wharf
#

Bro where all the ghost pings coming from 💀

#

Oh I have the role

hollow wharf
#

i just did this:
||```py
if color == 'red' and quantity > fewest_red:
fewest_red = quantity
elif color == 'green' and quantity > fewest_green:
fewest_green = quantity
elif color == 'blue' and quantity > fewest_blue:
fewest_blue = quantity

halcyon pulsar
pliant hornet
#

Just sorted Day 2, without looking for hints and only a couple of googles!

hollow wharf
#

day 3 looks tricky

low condor
magic oxide
magic oxide
#

it's still bad tho i agree

tepid cairn
#

maybe I'll try solving some of the puzzles with gleam 👀

proven orbit
#

Does anyone know if the inputs and by extension solutions vary per the person? Just submitted Day 3 part 2 and was winding dowin watching a video og some of the "pros" and their solution number was different than mine?

earnest forge
#

(sometimes, when you get a wrong answer, the submission page will tell you it's the right answer for someone else :P)

proven orbit
#

Oh that's devilish. Thanks!!

hardy zenith
#

omg

#

part 2 is insane again today

hardy zenith
low condor
#

I wouldn't even say it's p1 vs p2

#

for day 3 i think the difficulty is part of the whole day, not just p2

hardy zenith
#

I felt part 1 was at least intuitively solvable ||if you know about sets|| at least

#

but that led me down the absolute wrong path for part 2

low condor
#

right - day 1 part 2 is the hardest day 1 puzzle

magic oxide
#

i found part 1 of today significantly harder than part 2, but i think that was mostly my solution for part 1 being well suited for part 2

long jacinth
#

part 2 took me 5 minutes, part 1 took me 2 hours 👀

hardy zenith
# naive stone how so?

||because I didn't preserve the position of the cogs so I could check neighboring numbers||

naive stone
#

oh i see

hardy zenith
#

so now I need to write another parsing function instead

#

I think that'll be an easier approach

#

very intuitive naming

woven solar
#

consider having todo!() in parse2, instead of doing -> !. the former won't be an error.

hardy zenith
#

you can't use todo in the return position

woven solar
#

yeah, i mean just don't specify the return type. or, I guess, ! would work too.

hardy zenith
#

on nightly it's not an error I think

woven solar
#

huh

hardy zenith
#

I don't think the never type is stable

hidden musk
#

seriously?

hardy zenith
earnest forge
#

*Never as ! is unstable

#

Never as std::something::Infallible is perfectly stable

#

I forget where in std Infallible is but it is stable

hardy zenith
#

in python it's just called typing.NoReturn

#

but I don't think it has the same characteristics as never where anything can be cast into it

hollow wharf
#

in python you dont even have to typehint

hidden musk
#

!d typing.Never

marsh currentBOT
#

typing.Never```
The [bottom type](https://en.wikipedia.org/wiki/Bottom_type), a type that has no members.

This can be used to define a function that should never be called, or a function that never returns...
hidden musk
#

!d typing.NoReturn

marsh currentBOT
#

typing.NoReturn```
Special type indicating that a function never returns.

For example:

```py
from typing import NoReturn

def stop() -> NoReturn:
    raise RuntimeError('no way')
```  `NoReturn` can also be used as a [bottom type](https://en.wikipedia.org/wiki/Bottom_type), a type that has no values. Starting in Python 3.11, the [`Never`](https://docs.python.org/3/library/typing.html#typing.Never) type should be used for this concept instead. Type checkers should treat the two equivalently...
hardy zenith
#

oh, I didn't know it was added in 3.11

#

that's very recent

untold briar
#

Dang problem today is not so easy anymore

#

This 2D problem is on a different level from the previous ones

vital lotus
untold briar
#

Took me 3 hours to solve them

#

Yeah about 3 times the previous ones for me too

hardy zenith
#

the language has been a lot harder to understand in the prompts to me as well

hidden musk
vital lotus
hardy zenith
#

the sample set they provided did not have the edge-cases you needed to solve for

rapid wolf
#

yeah, that I don't like

hidden musk
#

i think the main struggle with d1p2 was not having clarification for the edge case

hardy zenith
#

but if they had it in the sample set, you would've found it very early because your tests would fail

untold briar
naive stone
#

not informing you of every edge case is an intentional part of the difficulty. I have no problem with it

untold briar
#

With lots of flavor text (read: gibberish for LLMs) as well

hardy zenith
#

but it was poorly worded and the edge case wasn't possible to catch

rapid wolf
#

ehhh, having to manually invent test cases isn't something I find interesting.

vital lotus
hardy zenith
#

the very first number is

#

unless you mean ||the right edge|| but that should be intuitive

vital lotus
untold briar
#

For me I was having a bit of troubles with indexing

hidden musk
naive stone
hidden musk
#

in day 1 part 2, ||the overlapping word digits||

hardy zenith
#

spoiler that please

vital lotus
untold briar
#

18 probably

#

Oh those too

hollow wharf
#

||eightwo|| real one

naive stone
#

I'm not convinced that needed to be explicitly explained. I think it would have to be explained if ||overlapping|| made it so they weren't valid

untold briar
#

I didn't have troubles with overlapping ones though, since I found the digits independently from each other

hardy zenith
#

it was clear ||they only wanted you to replace one through nine||

naive stone
#

when i was writing my solution, i didn't even realize that was happening in the input, my code just handled it without me knowing

untold briar
hardy zenith
#

I thought you were indicating ||eighteen||

vital lotus
hardy zenith
#

you would get wrong answers if you replaced more parts

untold briar
#

Well no problem stated quite clearly that we were looking for digits, not numbers

hardy zenith
#

actualy wait

#

no you wouldn't, but it wasn't part of the question

#

digits are numbers

untold briar
#

On each line, the calibration value can be found by combining the first digit and the last digit (in that order) to form a single two-digit number.

#

Bruh digits =/= numbers

hardy zenith
#

yes they are

woven sable
#

i had some really weird regex solution

#

i should've just iterated thru the string and put the string into buckets of 5, and see if it contained a digit and then convert it to its number form in the string

hardy zenith
#

ughh... another day where sample input parses correctly but the actual set doesn't

hardy zenith
#

3

low condor
#

Happy to chat more in #aoc-solution-hints but in genral I would say ||check boundary conditions - can you parse numbers and symbols at the edge of your input, etc.||

hardy zenith
#

hmm, it might be missing ||if a gear is at the end of the bound since that's kind of tricky||

see:
||```rs
for m in number_finder.find_iter(input.inner[y - 1]) {
let x_start = m.start();
let x_end = m.end();

                // check the start bound edge case
                let slice_start = if x_start == 0 {
                    0
                } else {
                    x_start - 1
                };
                // check the end bound edge case
                let slice_end = if x_end == input.x_max {
                    x_end
                } else {
                    x_end + 1
                };

                if (slice_start..slice_end).contains(&x) {
                    neighbors.push(m.as_str().parse().unwrap());
                }
            }
low condor
hardy zenith
#

ohhhhh

#

I'm dumb

#

that's supposed to be nested in the inner loop

#

got it

sleek cave
#

heh, so much javascript i forgot python syntax for a sec

#

python destructuring when

hardy zenith
#

you can use dataclass with dataclasses.as_tuple

sleek cave
#

yea ik there's unpacking

hardy zenith
#

doing a decent pace for part 2 minus the first day when I had work lol

simple raven
#

is the star of the left a part of the tree graphic or am I missing something on day2 and 3?

placid lake
#

trebuchet

ripe meteor
#

Its you being loaded and then flung into the sky

woven sable
median juniper
#

how to get "Advent of Code" role?

#

and should i get it?

#

i think i see

#

hmm

#

im confused
what does &aoc link denballakh do? i dont see any changes neither in discord nor in AoC website

median juniper
velvet anvil
#

I have to study for a test tomorrow and i randomly decided to do AOC day 1 in regex... WTF is wrong with me

hardy zenith
#

so I was pushing all the neighbors for a row into a given list

hardy zenith
hearty sinew
#

Is it ok to ask a clarification question regarding day 3 part 2?

minor cave
modest ermine
#

i've used regex every day so far lol

hearty sinew
#

I wanted to clarify:

A gear can only have EXACTLY 2 adjacents? Anything with more than 2 can't be a gear?

modest ermine
#

correct

hearty sinew
#

Awesome. learned my lesson in day 1 about understanding the instructions and wanted to clarify

#

thank you!

modest ermine
#

yw!

#

dw that happens a lot to me where there are specific stipulations that i miss

sleek cave
#

i take it all back

#

im suffering again

#

even after reading up on solutions

#

i can't implement in python

low condor
#

Which day is this?

sleek cave
#

and these numbers are huge

#

aoc '21, reactor reboot

low condor
#

Ahhhh

#

Honestly there’s no shame in that

#

In 3 years of AOC it’s the toughest problem for me personally

sleek cave
#

im currently following

but when i try to implement it in python...

  1. the intersection cuboids i store multiply exponentially, completely unfeasible
  2. i get wrong answer for larger sample input 😩
#

ig if i may have some hints

#

i'd greatly appreciate :D

#

in spoilers ofc

low condor
#

There is one solution that sort of worked for me

#

I actually don’t know where to write AOC 2021 spoilers lol

tiny field
#

Anyone know hmac?

sleek cave
#

with ||

#

oh

#

ping me :) i'm taking a short break and will be back to tackle this soon

low condor
#

Sure!

#

Let me look up what I wrote

tiny field
#

Anyone know hmac?

low condor
woven sable
#

or acc no that was the snailfish one

#

cuz i genuinely couldn't figure it out

low condor
#

It was DEFINITELY not reactor reboot

#

well, maybe it was

#

but it wasn't MY solution

woven sable
#

was reactor reboot the cube one

low condor
#

I had to look up a solution because I was completely and utterly lost

#

yes it was

woven sable
#

yeah i lowkey took inspiration from someone's solution for that one too

#

i was lost

#

lemme look

low condor
#

snailfish on the other hand I am proud of my solution for that

woven sable
#

ur code looks so clean wtf

low condor
#

hah

#

well i still don't understand it

#

I'm trying to read whatever the hell I wrote

#

right now

woven sable
#

me too i found my solution and idk wtf is going on

low condor
#

you solved it though so that's very good :)

bronze vault
#

aoc is awesome

simple raven
#

there is a guy on aoc reddit who solved it in 21 lines of code, it's pretty crazy

short karma
#

Wow

cinder tree
#

does anyone know for day 3 part 2 if a possible edge case is: ||more than 2 adjacent, and if so, for example if I had 3 adjacent, should those all then be multiplied?||

simple raven
cinder tree
#

oki thank ya

#

oh another question sorry

simple raven
cinder tree
#

||what if line 2-4 has a number in line 4 for a gear, that is then also correct for like 4-6 for example?||

cinder tree
#

although we have diff puzzle inputs, so maybe mine will if yours doesnt

simple raven
# cinder tree sure

||no, all stars have only 1 or 2 numbers attached if my script is running well||

simple raven
cinder tree
#

yea

#

everyone gets a different generated input list

simple raven
#

O.o I had no idea 😄 that's really nice

cinder tree
#

as far as I know

#

so you cant just cheat off someone else I guess

simple raven
#

is your first line .....180.........230..........................218.....189......415.......................322....507..................206..............111...?

cinder tree
#

nope my first line is ...............307............130..................969...601...186.........................................312....628..........878..........

simple raven
#

wow, okay so you should probably account for the edge case then 😄

cinder tree
#

roger

cinder tree
simple raven
cinder tree
#

sure

#

||- in line 3 I have an * that's adjacent to a num ber in line 2: 455 and a number in line 4: 333.

  • in line 5 I have an * that's adjacent to a num ber in line 4: 333 and a number in line 6: 111.

will I end up having to use line 4:333 twice? or is it excluded if it is already used? ||

simple raven
cinder tree
#

alrighty, thanks a lot 🙂 then I can not over engineer this one

simple raven
#

actually wait...

cinder tree
#

ruh-oh

simple raven
#

let me check I said the right thing

cinder tree
#

legend

simple raven
# cinder tree legend

I've just read my entire input and I don't have that edge case 😅 so I have no idea which is correct, but in my code ||I only consider each number once||

#

sorry

simple raven
# cinder tree legend

based on how the assignment reads I think my previous suggestion was correct, I would expect my solution to fail for your edge case

#

@cinder tree sorry for spamming, once you solve it could you send me your input so I can check if my solution is correct by comparing against your answer?

median juniper
#

i forgot that this thing exists

hazy patrol
#

Hi! I'm working on solving AoC in a single line of Python code. Does anyone have any tips? I made it through a dozen days last year and have Days 1-3 for this year! https://github.com/savbell/advent-of-code-one-liners

Mostly I'm wondering if anyone has any little-known tricks for shortening longer code/statements into a single-line expression! A few of the things I'm already doing are under the "Fun Stuff" in the Readme.

GitHub

🐍📅 One-line Python solutions for Advent of Code 2022 and 2023. - GitHub - savbell/advent-of-code-one-liners: 🐍📅 One-line Python solutions for Advent of Code 2022 and 2023.

jovial jay
#

hardest day so far for you guys?

jovial jay
#

to me, day 1 is the hardest. though i didn't do that in python

simple raven
#

I had to think about day3 the most so that's my choice

hazy patrol
jovial jay
#

the example didn't provide enough for the test. so i was left confused for hours

hazy patrol
simple raven
#

I'm not a programmer so seeing people do magic with regex is way beyond my comprehension and what you've already done is incredible to me

untold briar
#

Is anyone able to use the /aoc join command mentioned in the aoc-faq channel?

minor cave
#

I see the error on our side. It's unclear why it's happening though. Did you get the board you were assigned to?

untold briar
#

No, I got the message that the application did not respond, only that.

untold briar
bright laurel
#

advent of code should edit their inputs so it suits the sample input, because i'm not gonna inspect thousand of lines to see where the fuck is the erro

random flower
#

what the hell did i do
the result for day1 part2 changes when run a bunch of times
It shouldn't do this

im laughing so hard idfk what i did lmaoooo

random flower
#

yep
the iterator gives back values in arbitrary order
gotta think of something else

jovial jay
bright laurel
#

what is that

jovial jay
#

When you execute the code and see what it did at the a visual level. So you can see what is going on. I'm using G'MIC to do AoC, so when I execute my code, I get displays of images reflecting the output of my code.

bright laurel
#

my code gives the right answer for every single input, idk how and why aoc full input is not accepted

jovial jay
#

Day 2?

bright laurel
#

1 part2

jovial jay
#

Oh that. The simple example doesn't cover corner cases

bright laurel
#

which are

jovial jay
#

twone -> two one

bright laurel
#

right, doesn't work, thanks

#

solved, thanks again

cyan sleet
hidden musk
#

that's quite impressive

#

oh it's rust, nevermind

#

if python that would be fun

cyan sleet
#

make your own

earnest forge
#

GL everyone

#

Hopefully no stupid bugs today 🙃

sharp panther
#

may the odds be ever in your favor

earnest forge
#

damn I used to know the response for that it's been too long since I read/watched hunger games lol

sharp panther
#

there's a response?

earnest forge
#

I could have sworn there was

sharp panther
#

i just like the phrase :p

earnest forge
#

Maybe I'm hallucinating

#

there isn't and I'm just dumb

minor cave
#

Language Roulette: Day 4
The language is ... Lisp

mossy basin
#

dope language

sharp panther
#

any one in particular?

earnest forge
#

(oh (no))

median juniper
#

())()()((((())

mossy basin
#

any flavor?

median juniper
minor cave
#

pick your fave flavor

naive stone
#

i knew i was gonna see parenthesis the second the language was chosen

earnest forge
#

Lmao

woven sable
#

what are the languages in the roulette?

sharp panther
#

they're all pinned (the ones so far, anyway)

minor cave
muted aurora
#

hanging out in VC0 if anyone wants to chill and talk about the AOC

woven sable
#

oo

earnest forge
#

*(knows (fisk) (see (brackets)))

woven sable
#

i hate lisp

#

sm

mossy basin
#

i love lisp, but i can't type parens very easily

sharp panther
#

someone need's to greenspun's tenth rule this one and implement their own lisp

woven sable
#

i get lost w all the parentheses

#

scheme is a flavor of lisp right

sharp panther
#

it's close enough

woven sable
#

in freshman year we had to code using scheme

#

😭

covert arrow
#

30s

#

glhf

median juniper
woven solar
#

lisp but [], () and <> all mean the same thing

sharp panther
#

{} feeling left out, ouch

woven sable
#

scheme is horrible tbh

#

cool lang tho

shut trellisBOT
sharp panther
#

oh nice, parsing work isn't bad

earnest forge
#

33/18 let's go

magic oxide
#

looks simple enough

#

damn

#

nice

#

what's p2?

#

not at home rn so can't do it

earnest forge
#

I feel like I probably shouldn't say that at least until the p2 leaderboard is full

compact wasp
#

we're so back

magic oxide
#

yeah ok

earnest forge
compact wasp
#

ty

magic oxide
#

Jesus 9/6

earnest forge
#

where's oliver ni

magic oxide
#

insane

compact wasp
#

83

sharp panther
#

done at 00:07:08, much better than yesterday's 00:11:37

compact wasp
#

did he leave the server?

shadow musk
earnest forge
# magic oxide what's p2?

||Instead of getting points you get bonus cards (copies of the next N cards where N is the number of matches), figure out how many you have in total||

shadow musk
#
def crazy():
    print("""Crazy?
I was crazy once. 
They put me in a room with a function.
A recursive function.
A recursive function with no base case.
That made me crazy.\n""")
    crazy()

crazy()
#

💀

minor cave
earnest forge
#

43s for p1 is NUTS btw

pine tiger
#

that might be gpt
but i'm probably coping

earnest forge
#

Wait I'm 89th global now let's go

covert arrow
#

64/396 p2 choke again

earnest forge
#

Rip

magic oxide
#

nah today p1 looks doable in that time at least imo
I'm not good at writing quick code tho so idk

covert arrow
#

I didn't read and thought p2 was looking for ||the total score and not the number of cards||

earnest forge
#

I should really get used to using F5 to run my code lol it probably cost me several places

compact wasp
#

the time difference though lmao

pine tiger
#

ayo i accidentally left the pydis lb

#

can someone tell me how i can join again

earnest forge
#

/aoc join iirc

pine tiger
#

your guess is as good as mine

compact wasp
#

read from bottom to top

#

the top stuff is all useless

magic oxide
#

elves are pretty useless

compact wasp
#

honestly you could get this one just by reading the example

naive stone
#

feels like fate that lisp was chosen for today

median juniper
#

done

#

pretty confusing problem tbh

earnest forge
#

(e.g. for today, it's pretty clear that ||two splits + extracting ints|| is a good parse)

covert arrow
humble copper
#

is there any way to get this linked to my github account? i made this current account with my gmail but i want it to be able to display my gh username and link to my gh page

earnest forge
earnest forge
#

If not, make one, then IIRC there's a setting

#

Oh wait yeah you might be able to just link another oauth provider

magic oxide
#

yeah if your github account has no progress you can just migrate it across

#

I did that a few days ago myself

earnest forge
#

(in settings)

feral hazel
#

ah the example made me do a double take

Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
In the above example, card 1 has five winning numbers (41, 48, 83, 86, and 17) […]
"wait what 41 isn't in the numbers"

[…] and eight numbers you have (83, 86, 6, 31, 17, 9, 48, and 53). Of the numbers you have, four of them (48, 83, 17, and 86) are winning numbers
(rereading it after risking it anyways and finishing) "oh"

compact wasp
earnest forge
covert arrow
#

I saw the example input and "Card 2 has two winning numbers" and I could tell what was going on

compact wasp
#

i only used the int extractor though bc i know there are 10 numbers on the left

earnest forge
humble copper
#

ik theres a setting for it but it resets every time i click out

#

oh

#

nvm

#

theres a save button

#

💀

earnest forge
#

LMAO

magic oxide
#

💀

#

yeah that tripped me up as well when I was doing it

humble copper
#

there we go

jovial jay
#

Is there inherent disadvantage when it comes to timezones?

earnest forge
#

I mean being in the UK and having it at 5AM isn't great from a sleep POV

magic oxide
#

yeah probably

median juniper
#

doing this at 8am is pretty hard
(because i didnt sleep)

magic oxide
#

having it midday isn't very nice either

#

since I'm almost always out

jovial jay
#

Guess I'll accept never having a score

median juniper
#

midnight feels like a sweet spot

magic oxide
#

nighttime would be ideal imo

#

slightly before midnight

#

like 10-11 would be sweet

median juniper
#

yeah

earnest forge
jovial jay
#

Imagine coding a solution in Python from your phone

earnest forge
#

I mean QPython is a thing

magic scaffold
#

fumbled soo hard on part two lol

deep ferry
#

💀 so much space wasted already

naive stone
#

ugh, i'm so close with part 2. Works with the example but not my input. I have a headache though, not sure i can look at my screen much longer...

woven sable
#

this was a really confuisng problem

#

took me 10 minutes to read part 2

worldly raven
#

yeah, reading it at first was a little confusing, but once you understand it's pretty simple

woven sable
#

yeah

#

i still odn't understand it to an extent lmao

#

i finished but i kinda don't get it

#

like it hurts my head to think about it

placid vessel
#

Oh boy when I finally get home I will get creative

median juniper
#

turns out at my pace i would need ~8h per each AoC (whole year) if i wanted to solve previous years

woven sable
#

it took me 6h for one problem once in AOC in 2021 lmao

#

it really gets hard around day 15-20

placid vessel
#

I couldn't participate in 22 cause I went to work trip or smth

woven sable
#

i gave in 22

#

up

#

i j had no time with school

placid vessel
#

Now I am gonna complete it all brainmon

placid vessel
median juniper
#

i will try to complete all AoC's until new year

placid vessel
#

My 25th solution probably gonna be written in hieroglyphs

worldly raven
#

i'm too lazy to go back and do the years i didn't finish

cerulean epoch
#

this is my first time doing aoc, so far the questions have been fairly straitforward. How hard does it get?

median juniper
woven sable
#

notoriously hard problems

#

i would say u can get through it tho

woven sable
worldly raven
peak dock
#

i swear ill finish 2022

pine tiger
#

lmao

humble copper
pine tiger
#

i'm sure you will!

magic oxide
#

I agree

woven sable
humble copper
#

19 and 22 were from the pits of hell

magic oxide
#

snailfish was fun for me

woven sable
pine tiger
woven sable
#

it was hard though

woven sable
#

i hated it

#

so much

magic oxide
#

I didn't have much trouble with snailfish tbh

humble copper
woven sable
#

i went to sleep at 4 am and woke up at 3 pm the next day and solved it bc i thought of the solutoin in my sleep 😭

worldly raven
#

i'm very inconsistent it turns out 😩

peak dock
#

oh god i remember beacons and scanners

median juniper
woven sable
#

i'm pretty sure the hard part was part 2

#

i'll check

pine tiger
humble copper
#

day 23 i stupidly decided to do without any code

#

just a whiteboard

magic oxide
#

oh god day 22 is cuboids

pine tiger
#

what was 23

magic oxide
#

no that was hard

#

amphipods

peak dock
woven sable
#

this was part 2

humble copper
#

hes funny

cerulean epoch
#

I see... this is quite tedious to code

flat sequoia
humble copper
#

2022 day 19 i cannot finish

#

no matter how i try

flat sequoia
#

I could not comprehend the problem for some reason

humble copper
#

not even pt 1 its like you'd think the most obvious solution would work

#

but it just doesnt

scarlet wasp
kindred badge
median juniper
#

day 19 is scary

compact wasp
flat sequoia
#

day 19 is the robots?

woven sable
#

the beacons

#

the worst

humble copper
flat sequoia
#

There's not a particularly clever solution or anything you just have to prune the search space when you know it's no longer possible

peak dock
woven sable
#

those r my least fav problems

#

where the naive solution doesn't work

#

but i also learn the most so

peak dock
#

💀

#

im so sad i lost my solutions

median juniper
flat sequoia
#

the # timesteps just goes up from 24 to 32

flat sequoia
flat sequoia
#

oh we're talking about different problems

median juniper
humble copper
#

underrated problem

#

2021 day 16 part 2

woven sable
#

day 16 was rlly cool

#

but i didn't understand it at all 💀

peak dock
#

i did 2021 day 23 by hand lmao

woven sable
#

was that the armapods

#

oh they're called amphipjods

#

i didn't get that one either lmao

peak dock
#

armpits

pine ravine
#

||for part b i had a 30 second run time using recusion, then i memoized it and went down to instant runtime, am proud||

woven sable
#

autocorrect 💀💀

median juniper
ripe scroll
#

what in the recursion is part 2 😦

pine ravine
#

i made that up

magic scaffold
#

DP problem

weary kelp
#

Day 4 is a bit early for a ||dp problem|| innit

long jacinth
#

well, todays easy!

vestal token
#

is it just me or was day 4 easier than day 3?

magic scaffold
weary kelp
covert arrow
#

wait until next year when december 1 is a sunday

magic scaffold
long jacinth
#

oh is that what it is, are sundays tough?

covert arrow
long jacinth
#

i see, its my first year this year so i have no prior experience, but i guess that does work great

hazy ermine
untold briar
#

Man I hate it when my code runs on the small testcase but not the big bad input

atomic cairn
untold briar
#

Yes yes, the period of pure despair

#

Which lasts until we find where things went wrong

atomic cairn
untold briar
modern terrace
#

i don't have one 👍

cyan sleet
#

I think the randomness in the roulette is broken 😛

#

3rd functional in a row

magic oxide
#

there is no random

#

kat is the roulette

rapid wolf
#

you can write imperative lisp if you want to, it is supported in common lisp

cyan sleet
#

also which lisp? pick whatever?

magic oxide
#

flip a coin

tall silo
#

Someone has probably already mentioned this but everyone who hasnt done any days in the python discord AoC leaderboard is tied at 69

cyan sleet
# magic oxide flip a coin

The programming language Lisp is the second-oldest high-level programming language with direct descendants and closely related dialects still in widespread use today. The language Fortran is older by one year. Lisp, like Fortran, has changed a lot since its early days, and many dialects have existed over its history. Today, the most widely known...

cyan sleet
#

the boring answer is to use common lisp

#

(is python a lisp?)

#

(it sure can process lists)

peak dock
#

(for (sure))

gloomy kernel
#

I'll do day 4 in rust

wicked elm
#

difficulty really be completely random

hidden musk
#

I got lucky the past 2 days but now I've never used any lisp

hidden musk
cyan sleet
#

I'm doing clisp and I hate everything

#

granted my baseline hate is high

hidden musk
#

i think i'll do clojure

#

i think people still use that

winged tartan
#

guys, if i want to talk about the implementation of a solution that im struggling with, do I ask in the python threads or in here?

earnest oriole
#

why are there only 10 people in the leaderboard

earnest forge
#

If you're talking about a particular private leaderboard on the aoc website, it's because pydis uses lots of them due to the limit of 200 users per private leaderboard

earnest forge
#

If you're talking about the command, it's because they removed the full leaderboard paste

earnest oriole
#

i joined this

earnest forge
#

That's for people doing the language roulette

earnest oriole
#

oh

#

damn

earnest forge
#

Possibly there's only 10 of them :P

hidden musk
#

😭

earnest oriole
#

how do i join the regular leaderboard

earnest forge
#

/aoc join

earnest oriole
#

here?

lime fulcrum
modern terrace
earnest forge
#

(yes)

modern terrace
#

i didn't know that

earnest forge
lime fulcrum
#

is it? i just looped it somehow

earnest oriole
lime fulcrum
#

didn't know there is a special name for that

earnest oriole
#

idk dp and i did it

earnest forge
earnest oriole
#

i guess i used it then

lime fulcrum
rocky spire
#

I'd say ||dp|| is just a very fancy word for a ||recursive relation but you save the result for reuse later||

earnest forge
#

Technically I didn't say ||kept a separate list||, now did I :P

hidden musk
#

it's very hard to resist clicking

rocky spire
#

It's... well, spoilers, spoiling the idea of today's AoC
So if you don't mind that just click (?

lime fulcrum
#

sorry. should i delete?

hidden musk
#

no it's fine lol

#

I'm just saying

rocky spire
#

Few mortals can resist the temptation of the clickable black bars

earnest forge
#

||pop||||pop||||pop||||pop||||pop||||pop||
||pop||||pop||||pop||||pop||||pop||||pop||
||pop||||pop||||pop||||pop||||pop||||pop||
||pop||||pop||||pop||||pop||||pop||||pop||
||pop||||pop||||pop||||pop||||pop||||pop||
||pop||||pop||||pop||||pop||||pop||||pop||

lime fulcrum
#

nice

rocky spire
#

Dude my friend sent me that exact same message but bigger just a few days ago

marsh currentBOT
#

:incoming_envelope: :ok_hand: applied timeout to @earnest forge until <t:1701695412:f> (10 minutes) (reason: emoji spam - sent 100 emojis).

The <@&831776746206265384> have been alerted for review.

modern terrace
#

oopsies

hidden musk
#

bannable imo

marble schooner
#

100 is a lot, good lord

magic oxide
#

damn

rocky spire
modern terrace
#

oh

#

minesweeper

#

that's a possible thing

sinful pewter
#

So 100 is the limit

marble schooner
#

!unmute @208918673178492929 just keep it ontopic please

marsh currentBOT
#
Bad argument

Could not convert "user" into UnambiguousMember or UnambiguousUser.
@208918673178492929 is not a User mention, a User ID or a Username in the format name#discriminator.

hidden musk
marble schooner
#

!unmute 232948417087668235

marsh currentBOT
#

:incoming_envelope: :ok_hand: pardoned infraction timeout for @earnest forge.

earnest forge
#

Sorry lmao

#

(and yes it was minesweeper)

sinful pewter
earnest forge
#

It's 20, I checked

#

4x4 minesweeper anyone? /j

peak dock
#

we may or may not have a minesweeper pinned in ot1

earnest forge
#

Yeah (just checked) but it isn't fixed-width lmao

sinful pewter
#

Guys, slightly off topic. How do I share a PyCon event in this discord? PyCon Pakistan is happening after a for few years.

hidden musk
#

a few years?

sinful pewter
#

Sorry it after a few years

marble schooner
#

Reach out to @plucky beacon if you are one of the event organizers, otherwise, suggest it in #community-meta

sinful pewter
#

Got it, thank you

sleek cave
#

snow day :D

#

what a beautiful time to grind aoc from morning til dark

#

goal today is to get aoc '21 dirac dice and day 25 of '22 cus i missed that freebie lol

#

and maybe beacon scan

tepid cairn
young tree
#

does greedy match with a negative lookahead not work?

onyx flicker
#

wym? why not? what's your pattern?

hidden musk
#

clojure is hard bruh

#

I just got part 1

vestal breach
#

i found todays easier cuz less regex

unique osprey
#

Question for day 3 p1 as I'm just getting around to it: ||do we count multiple occurrences of the same part number on the board indivually?||

pine tiger
#

yeah i think so(?)

tepid cairn
# hidden musk clojure is hard bruh

Clojure/conj is so packed with must-see content that, unless you clone yourself, you can’t possibly attend all the great talks. To solve this problem and save your precious time, we have thoroughly analyzed the entire canon of Clojure talks and distilled them down into a single inspiring, thought-provoking, decomplected masterpiece that will blo...

▶ Play video
unique osprey
noble skiff
#

Gotta say this is easily the hardest first 4 days I remember for AoC

magic oxide
#

1 and 3 were definitely anomalous imo

#

2 and 4 seemed standard

#

following the pattern, tmr is going to be very difficult

simple raven
#

day4 part1 was a nice break after yesterday 😄

sinful pewter
#

Top3 at work are separated by 1 point each. 1st one is the only female among the 10 of us. This year is a blast.

cyan sleet
#

&aoc lb

shut trellisBOT
#
Wrong Channel

You are not allowed to use that command here. Please use the #aoc-bot-commands, #sir-lancebot-playground, #bot-commands channel(s) instead.

hidden musk
#

@shut trellis nerd

magic oxide
#

@long egret nerd

long egret
#

What

noble skiff
# magic oxide 2 and 4 seemed standard

I'd agree about 2, but even 4 part 2) has a bit of a twist.
For comparison, last year's part 4 was literally just taking pairs of integer ranges, and seeing if a) one is a union of the other, then b) if they have non-zero intersection at all

#

very mechanical. For 4 part 2 you do need to be a bit careful propagating data forward and the most naive solutions will fail (and some already have)

#

I was mostly thinking of the overall trend though. It seems significant/consistent enough that it feels deliberate. I wonder if the goal is to make AoC harder as a whole, or just to make the start more challenging.

hardy zenith
#

I just used ||a mapping to buckets and filled the future buckets using a nested for loop||

noble skiff
#

yeah

hardy zenith
#

if I was smart, I'd ||cache the winning results so I wasn't re-calculating every time I needed to propagate, I bet @lru_cache would've solved that nicely||

#

though I'm not sure how that works with copying, maybe it doesn't work nicely

#

What is the report command again?

#

eh, can't find anything in the info channels, so I'll do a tag thing.

<@&831776746206265384> someone trying to solicit private sales off-server

user: 893177187723788318
message: 1181310928034214050

sleek cave
#

aoc '21 day 21: dirac dice

#

this is the most cursed thing i've written in some time

#

my logic was so straightforward 😂

#

just combinatorics everything with DP

#

leading to 8 levels of indentation

torn sapphire
#

@plain sluice don't post ads like this in this server

torn sapphire
compact wasp
#

so my guess is that the first 10 or so days will be more difficult than usual, and after that it will be around the same level as the previous years

modern harness
# compact wasp i'm willing to bet it's a gpt countermeasure

That is a really good point that I didn't think of despite noticing the problems seemed harder this year. They potentially even pre-screened these questions against chatGPT. Based on their announcement banning chatGPT, it seemed they might be mainly focused on preventing 100% automated solutions, which I wouldn't be surprised if the difficulty increase on the early problems does just that, though I haven't tried putting any of these into chatgpt, but I thought I recalled the fully automated solutions last year stopping at some point when they got a bit more challenging.

noble skiff
#

there's fluctuations in the difficulty from year to year

#

but it's definitely possible

#

it would be very cool if the author goes on record about this at some point

#

I'm also not really sure (literally) to what degree human difficulty and AI difficulty match up.

hidden musk
#

we need john henry pt 2 for aoc problems

noble skiff
#

I've started benchmarking stuff

#

I'm debating whether I should benchmark solving both 1 and 2 together, or each individually

#

I know that if I do teh former I'm going to rewrite code in some pretty awkward ways to share stuff

#

day 4 is a pretty good example. counting matches for each line is significant, so you would want to share that between 1 and 2.
but dumping the number of matches into a vec is a needless heap allocation so you'd want to avoid that

#

so you'd need to have like, an "object" solver for part 1 and part 2, that has an update method, that recieves the number of matches for each line

short karma
#

bruh what the hail is this scartch card rule system XD

minor cave
#

Really fighting the urge to do d3p1 by hand.......

sinful pewter
#

Technically doing it by hand

#

Considering the pain

#

Why do I do this to myself?

royal gull
sinful pewter
#

Often times, when I am feeling down, someone makes me feel elated to be part of such a vibrant community of nerds and geeks. Thank you so much. I will ask in #aoc-solution-hints. It's easy to isolate yourself.

cyan sleet
#

is there a 2d regex?

sinful pewter
sinful pewter
cyan sleet
#

I was mostly just curious if there was such a thing

#

I did day 3 with quite different machinery while wrestling with haskell 🥴

hidden musk
#

😩

terse comet
#

エニラ joked about creating 2D regex lol
(...at least I think that it was only a joke?)

earnest forge
#

Tbh I don't see how that could possibly work

cyan sleet
#

a(?:↑b+)c

earnest forge
#

Lol

terse comet
#

idk, it would probably end up very esoteric, but I could imagine it being a thing

earnest forge
#

But now is C above the b+ or to the right of it?

cyan sleet
#

I imagined something like

.b.
.b.
abc
earnest forge
#

The only way I can really see that working is if you actually write it as a 2D string, but that would be painful to write in an actually fair way (you'd need some kind of defined padding character)

cyan sleet
#

(?:) for scoping directions 🥴

cyan sleet
#

or maybe it just being a direction change makes more sense pithink

royal gull
#

or maybe as a 1D string, but using line length modulo (offset?)

cyan sleet
#

abcba↑ba←a*↓c+

..aaa
..c.b
abcba
..c..
earnest forge
#

How about:

abcd((?vefgh)|(?^ijkl))
   l
   k
   j
   i
abcd
abcd
   e
   f
   g
   h
cyan sleet
#

↶↷ for relative turns

#

v for down is a brave choice

earnest forge
#

((?<), (?>), (?^), and (?v) are all disallowed sequences in 1D regex AFAIK)

earnest forge
cyan sleet
#

why do we need to restrict ourselves to ascii?

earnest forge
#

Because we're doing good and proper language design here

cyan sleet
#

?< ?> feels quite similar to lookaround pithink

earnest forge
#

oh crap yeah ?<= is lookaround

#

Maybe ?{direction}

#

Heck it could even extend to 3D regex with * and X 🙃

#

ok and?

cyan sleet
#

?{NW}

earnest forge
cyan sleet
#

you want ?{^<} ?

earnest forge
#

no, no diagonals

#

^v<>*X only

#

(*X being for 3D)

cyan sleet
#

clearly I meant north-west 😛

#

N S W E NW ... SE L R B

earnest forge
cyan sleet
#

I guess F for completeness

#

that would be a hilarious esolang feature

hidden musk
cyan sleet
#

aren't we always?

hidden musk
#

only the haskellers

#

and occasionamly the ocamlers

earnest forge
#

And rustaceans 🙃

#

(but only because we are better)

hidden musk
#

rustaceans are descendants of the ocamlers

cyan sleet
#

"point your device northwest for the code to run as expected"

earnest forge
#

'works on my machine' to a whole new level

cyan sleet
#

it annoys me that on mobile 🧭 shows it pointing NW, looking at details shows it pointing NE

earnest forge
cyan sleet
#

it's not

earnest forge
#

Oh just discord being very dumb

#

I know that they have to use apple emoji on ios for some reason, didn't realise it's just broken in that menu on android

cyan sleet
#

discord normally uses twemoji

#

but apparently not everywhere

earnest forge
#

I'm pretty sure that's new since the change to RN

simple raven
#

Day4Part2 was so hard for me 😦 Had to read through a couple solutions to understand how to write the recursion but I finally solved it

earnest forge
#

(and frankly the RN change sucked)

#

((if they're going to change the android codebase they should use flutter))

cyan sleet
#

I didn't even do a recursive solution

earnest forge
#

Me neither

hidden musk
#

me neither

#

i just reduced over the lines

cyan sleet
#

it was iterative in nature (but written recursively because lisp)

simple raven
#

hm... maybe I overcomplicated it then

hidden musk
#

oh? i didn't recurse at all

cyan sleet
#

I could have done a reduce I guess

#

with state being kept in the accumulator

hidden musk
#

yeah. clojure has these cool "reducer" things which are sorta similar to concurrent.futures.Executor.map

#

super easy to parallelize things by just adding another argument to the function call

cyan sleet
#

oh right, you have a nice lisp

simple raven
#

I saw someone ||make a list and then keep adding copies of the new cards to it while iterating over that list which eventually went over all the copies which I thought was neat||

hidden musk
#

that's pretty funny

simple raven
hidden musk
#

in python it's functools.reduce

cyan sleet
#

you don't need to iterate over all copies anyway

hidden musk
#

i guess you could end up with a solution that touches all the copies somehow. but that would have a fun time complexity

cyan sleet
#

oh, people wrote such things in here

simple raven
#

oh I completely forgot about this function, I suppose it's not recursion but achieves the same

earnest forge
cyan sleet
#

took like 16 seconds, fixing it made it 250x faster

simple raven
#

my part2 solution runtime is 7.47s 🙂

cyan sleet
#

probably significantly less with our constraints

hidden musk
hidden musk
#

why do you have a Deck class 😩. they're not playing cards

simple raven
#

holy classes 😄 nice

earnest forge
lusty rover
simple raven
#

a collection of cards is a deck so it checks out

cyan sleet
#
1 1 1 1 1 1
  2 2 2 2 2
    4 4 4 4
      8 8 8 ...
earnest forge
#

Oh yeah fair enough

simple raven
lusty rover
cyan sleet
#

I'm kinda curious what the expression is

#

for adding to the next k

earnest forge
#

Misremembered the number

#

I'm surprised yours is as low as 1M though

hidden musk
#

huh. i got 1.1e7

lusty rover
earnest forge
#

Anyway time to go get 4h30 of core sleep before waking up for AoC tomorrow 🙃 o/ see you all later

simple raven
#

or like what does it stand for

lusty rover
#

Your puzzle answer was 5920640.

#

Ah, 5M
I misread as 500k

simple raven
#

I had 8805731, took a while to get done 😄

lusty rover