« first day (12 days earlier)      last day (1126 days later) » 

04:36
Wonder if our submarine will get eaten by a whale at any point in our journey
(If that's what today's lore is y'all owe me a +500 bounty :p)
20m
The entire premise of the story is that we escaped a whale, though
Wait it is
I haven't paid any attention lol
Maybe the cave is actually the whale's intestines and we've been eaten already loooong ago
And thus the crabs betrayed us? Why would they do that?
04:42
For the money
All crabs love money
And how could the whale smash the mouth of its own body (from the beginning of Day 8)
And why would there be lava tubes inside a whale? (from Day 9)
Yeah yeah, don't ruin my AoC headcanon :p
Or live octopuses? (From Day 11)
Or a maze of caves? (From Day 12)
Or active volcanoes (From Day 13)
Quite simply, the entire idea makes no sense if you pay any attention at all to the story
I know, I know, it was not a serious suggestion lol
Then again, if you had told be there would be bugs expanding in folded space on Eris (from 2019 day 24), I would likely have rejected it out of hand in the same manner.
So, Advent of Code often makes little sense, but your "we're all inside a whale" hack makes even less sense
And, remember, we have infinite plot armor; we (or, at least, those of us who solve all the puzzles) will find the keys by day 25
04:47
@TheFifthMarshal Once again, it was a joke
The point is that it's a ridiculous suggestion
10m
dah frick I have to speedrun getting the vyxal flask app running again
Oops that reminds me I need to fix my server
I'll probably just go shut it off after AoC
And do it tomorrow morning
there we go
all done
the joys of localhost
04:56
can't wait for whatever 2d thinking they make us do today
Can't wait for 6d GoL
bold of you to assume there will only be two dimensions
ninja'd you :p
sort of
3
oh yeah what year was it we had fucking
increasing dimensions gol
that was fun
or some cellular automaton
Better than GoL-but-the-number-of-dimensions-increase-after-every-step
04:58
Increasing dimensions of game of life was 2020 day 17
Do you have these memorized? :p
i really need to find that microfiber cloth so i can clean my screen
the dust is way too visible with a desk light on
so basically this is just regex substitution in a way
or at least insertion
05:08
2/19
brain not working well enough for good p2 time
like i immediately knew what i needed to do but i lost a lot of time figuring out how to do the final counting
100pts until #3, gained 27pts on ecner
Ok unnaive approach time
(I knew it)
I'm a sussy baaka
*baka
only one a
i really need to actually use defaultdicts
05:16
same but i never remember where to import them from or how to use them
i actually think i've legitimately never used one before
@tjjfvi F
Got 104 on part 2; I probably could've scored some points if I hadn't been delayed :/
Part 2 is hard
Am I doing it wrong?
adventofwhyismycomputerlagging.com
why didn't i realize earlier that i'm just double counting
...and why didn't i realize earlier that python operator precedence needs parentheses if i want to correct for it as hackily as possible
111/267 :/
I've done some stuff for p2 but now I'm unsure how to count single elements
I have a dict of {pair:count}
05:21
oh yeah and of course that's why i was double counting
@emanresuA imagine using a dictionary.
of course it didn't help that i initially just took the max and min pair counts lmao
26/500 lol
I'm on the leaderboard!
the first and the last symbols in my polymer template are equal, lost 2 minutes on this
05:23
Don't know why p2 was so tricky for me...
so uh question: what does the non-naive/quick way involve?
I had an off-by-one, for one
@lyxal Dictionary of the pairs
@RedwolfPrograms so basically I can't do quick way today. Dang.
you shouldn't have enough distinct pairs that you need the performance of a proper hash map
05:24
Not sure how I did p2 so slowly
i think you could use matrix multiplication if you really wanted
that takes over 2 minutes for the actual input
Y'all had to increment the first and last letter's counts for p2, right?
probably over 3 or 4
05:25
Did I just get unlucky with an input that caused an off-by-one?
Since you do need to do that to get correct counts for those with my method
you might have gotten unlucky with one of them being the min or max
.... p2 requires 40 steps
fml
took 4 minutes for p1 to finish
and that's just 10
Debugging that cost me probably like 300 places but I don't fcking care lol
@UnrelatedString or both...
the debugging in this shit is a wild, wild ride
this is how i ended up turning the pair counts into the final answer
because i never realized the first and last chars will be static
kekw
05:27
oh good so i'm not alone in not using defaultdicts or counters
lol
This was a pretty fun one
also i just used the .values() of my char count dict
Here's my p2, keep in mind there are some library functions used
05:29
> p2-without-library.js
> keep in mind there are some library functions used
(counts, rules, and a few other vars were already declared)
what other lies have I been told by the council
@hyper-neutrino As in without the library code :p
worry not, i can't read js to begin with
if p[0] + q not in npc: npc[p[0] + q] = 0
npc[p[0] + q] += pc[p]
if q + p[1] not in npc: npc[q + p[1]] = 0
npc[q + p[1]] += pc[p]
05:29
wait do you actually havce the library code directly in your sols
i really need to use default dict
i also need to get better brain cells
also in this case apparently there's also Counter
@UnrelatedString No, it's 1k sloc so I paste it in separately
05:30
could just for x, y in pc instead of for p in pc to save on the p[0] p[1] shit
@RedwolfPrograms Wait no, just 1k loc
i thought Counter was the thing from itertools for just counting up infinitely but i guess not
Probably like 400 sloc since I overuse blank lines
Ugh bugs in code
@hyper-neutrino i'm legitimately allergic to bracket indexing at this point lmao
slicing? fine
getting individual values? unlikely
05:32
Taking my time and actually reading the challenges has made this a lot more fun
yeah I agree
I made so many stupid mistakes due to not reading stuff right
it's started feeling more like "can I find a good solution quickly" not "can i rush out my impl and type fast without reading half the question"
like when the speed starts coming from experience with problem solving and not experience skipping irrelevant flavortext in AoC problems
it becomes a lot more balanced and enjoyable
honestly wonder if i'd have been able to do star 1 faster if i'd taken a second to think of the non-naive implementation
05:34
Yeah. I missed that transition by a few days, and totally threw the first few times it got tough
Which was like two days ago lol
i missed it by 1 day and ended up doing comparatively worse because i misread shit a ton
Oh no, my counting, it's broken
oh yeah it was the flash problem i think?
Day       Time  Rank  Score       Time  Rank  Score
 14   00:03:43    26     75   00:22:44   530      0
 13   00:05:04    45     56   00:11:06   155      0
 12   00:15:49   960      0   00:59:30  3322      0
 11   00:31:51  2785      0   00:35:56  2725      0
 10   00:05:52   409      0   00:09:34   194      0
  9   00:04:32   213      0   00:11:07   114      0
  8   00:03:31    74     27   00:17:36    60     41
  7   00:01:40    67     34   00:03:47   139      0
  6   00:02:19    27     74   00:04:57    56     45
05:34
because any time there's a fixed number of iterations for something where a naive solution grows something in memory you pretty much know you have to do something more clever
the non-naive impl isn't even harder
if i did it from the start
it's legit easier
i would've gotten fewer points almost certainly
aside from making sure you don't fuck up counting at the end
^
yeah that was what got me for p2
but here's the thing
05:35
The counting at the end really made me think
wasting a minute on p2 might lose you like 5-10 places
@UnrelatedString How did y'all do it?
wasting a minute on p1 will lose you like 30-50 places
(Because I've got a dict of pair counts)
05:36
so i'd rather spend extra time doing p2 instead of saving overall time doing them together, because it's better for ranking
@emanresuA You can just add up the counts of the characters in the pairs, increment the first and last, and divde them all by two
@emanresuA i just added pair counts for each character then divided the final result by 2
and yeah you might need to handle the first/last issue
If you're unlucky, ^ will give you an off-by-one (speaking from experience :( )
I submitted an incorrect answer for the first time today
you could ceiling divide perhaps
05:36
Ok...
actually no if the min is missing one but not the max
ugh
I tried ceiling divide once, but got all dizzy and did it at my desk instead
ceiling divide the min and max independently
6 minutes into running p2 and still isn't finished
You're not doing it the naive way are you
That would be sus
05:38
And, ugh, my code works for the sample but fails on the puzzle input
depends on what you mean by naive
(and it's not just an off-by-one)
@lyxal As in the p1 solution
dang
FRICK leading newlines in the rules
05:39
just realised I ran 10 steps instead of 40
6 minutes for nothing
@RedwolfPrograms maybe I am...
It grows exponentially
no duh
And I had 20 KiB by step 10
You're probably not going to live long enough to do p2 the naive way :p
so then what's the non-naive solution that doesn't involve dictionaries/hashmaps?
Simulate a dictionary with an array of pairs
05:40
i'm going to do this in jelly now
@RedwolfPrograms and then what?
no but like okay so say there's a dictionary workaround. What do i do with said dictionary?
@RedwolfPrograms More like an off-by-.5 error
All non-negative numbers that aren't 0 or Infinity are roughly the same as 1
05:48
ಠ_ಠ I had a working piece of code 20 minutes ago but broke it
916/2114
First sub-1k in a while
Lol 5k people are still working on p2
Yeah, it's tough if you don't already know roughly what to do
I spent about half an hour debugging a one-character typo
Anyway, done 230/2679
The typo was, if anyone is interested, a = where I should have had a +=
05:58
I love how all of our p2 rankings are like 10x higher than our p1s
lol
even hyper's is nearly 10x going from 2 to 19 lmao
mine only more than doubled 😎
Dec 4 at 5:27, by Redwolf Programs
I feel an odd sense of comraderie in our collective failure to do that part right :p
@UnrelatedString Same lol
Mine was like 20x higher lol
26 to 500
On the private leaderboard I'm stuck at #14
 
1 hour later…
07:09
fuck yeah got part 2
and it only takes 21 seconds on my input
2 hours ago, by Unrelated String
i think you could use matrix multiplication if you really wanted
@UnrelatedString i got delayed by an exam
ooo matrix transform?
07:19
raise to the 40th power i guess
wonder how long it took to figure that out
lyxal was asking how to do it without dictionaries, so... yeah
i did it without dictionaries storing a bunch of arrays
that was the main alternative mentioned
one for the pair occurrences and one for letter occurrences
and it should be pretty performant because you only have a constant number of distinct pairs you're keeping counts for
07:22
oh yeah you could definitely do this with matrix transform
gimme a bit
wait that was a matrix thing?
oh
lol i didn't feel like reading that much jelly
well if it's a boolean matrix you can pull some math trick to use very little exponentiation
it should be so long as there aren't rules of the form XX -> X but if there are then there could be entries with value 2
or would rather
actually come to think of it i think my code makes that assumption anyways
 
4 hours later…
11:44
(both my jelly and my python; i used a completely gratuitous set to store the pairs each pair results in)

« first day (12 days earlier)      last day (1126 days later) »