#AdVENt of Code
1 messages Β· Page 5 of 1
it looks fun
do try assembly
it looks fun when you are not doing it
after trying and not even figuring out how to read a file
@real hinge
you will suffer
it is also fun when you're doing it :3
override fun solvePart2(input: File): Any { val l = input.rl().map { it.substringAfter(": ").split(" | ").map { s -> s.split(" ").filterNot { it.isBlank() } } }; val cards = List(input.rl().size) { 1 }.toMutableList(); for (i in l.indices) { val matches = (l[i][0].size + l[i][1].size) - l[i][0].union(l[i][1]).size; for (j in 1..matches) { if (i + j >= cards.size) continue; cards[i + j] += cards[i] } }; return cards.sum() }
happy now?
assembly without c stdlib 
that doesnt count tho
uwu
yes
I did that for day 2 aside from printf to print the solutions at the end but even that is relatively simple to replace
@real hinge hi
dang
hi
@real hinge did you do part 2
yes
i had an assembly course earlier this year, was a surprising amount of fun
I'll do part 2 tomorrow
but I'm in bed
did this among other stuff https://github.com/aetheryx/a9-game
get out
never
it is definitely a lot of fun yeah, i really like how you have to think about things different
this just uses sprintf and the c bindings for raylib obviously (but i had to / those would replace the mode 13h interrupt without c interop)
is printing in assembly even that hard
I love risc
dang, that's definitely more complex than anything I've done in asm
sorry for missing your ping i locked myself out of my dorm and it took half an hour to get back in 
override fun solvePart2(input: File) = MutableList(input.rl().size) { 1 }.also { cards -> input.rl().map { it.substringAfter(": ").split(" | ").map { s -> s.split(" ").filterNot { it.isBlank() } } }.forEachIndexed { i, l -> (l[0].size + l[1].size - l[0].union(l[1]).size).let { matches -> (1..matches).filter { i + it < cards.size }.forEach { cards[i + it] += cards[i] } } } }.sum()
done
insanee
maybe your intersect relies on the inputs being sorted?
but also isnt .let .also kinda cheating
its just a single interrupt (for each char) iirc, it's a pain but it's not that hard all things considered
oh
that is it
you figured it out
nahh
otherwise its gonna be insanely impractical
you literally get one extrra line
python people somehow do without those
I wonder if theres single one that done today in single line
now make it as fast as possible
with walrus operators you can do most things in python single line
no ty
doubt
it seems powerful but you dont really get one extra line
okay
i mean do you count comprehension with walrus assignment as one line or not
because if you do you can do basically anything
@real hinge is a walrus
i think this is the shortest it can get
override fun solvePart2(input: File) = MutableList(input.rl().size) { 1 }.apply { input.rl().map { it.substringAfter(": ").split(" | ").map { s -> s.split(" ").filterNot { it.isBlank() } } }.forEachIndexed { i, l -> (1..l[0].intersect(l[1].toSet()).size).filter { i + it < size }.forEach { this[i + it] += this[i] } } }.sum()
I can make it shorter with python
you can remove spaces
also
in filterNot you can use a function reference
sum((m:=len(set((s:=l.split())[2:12])&set(s[13:])))and 1<<(m-1)for l in open(0)) part 1 is pretty straightforward
what lang
python
what the hell
comprehensions + walrus π
I haven't done python in ages but I do remember how amazing list comprehension was
i miss list/dictionary comprehension so much when coding in js/ts
Object.fromEntries(Object.entries(obj).map(([k,v]) => [k, v])) just is just so gross
compared to {k: v for k, v in d.items()}
ah
[<expr> for <var> in <iter> if <expr>]
and they turn into generators
with lazy evaluation
override fun solvePart1(input: File) = input.rl().map { it.substringAfter(": ").split(" | ").map { it.split(" ").filterNot { it.isBlank() } } }.sumOf { 2.pow(it[0].intersect(it[1].toSet()).size) / 2 }
how about part 2?
here
look at what was taken from us https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features#legacy_generator_and_iterator
it already had
Why do you know
So bad
I was suprized to see cargo existed
Thought it was preinstalled
aoc sweats are insane
cause i installed it...
i just woke up stupit
Vee, Are we getting a leaderboard for aoc
Ah
cause where would I put the channel
Someone smarter than me can find a good solution
i this english
That sentence tripped me up hard when reading it
Poor venny
i think it's saying
card 1 has five winning numbers. and it has eight numbers that you have
@hazy sinew this is the best I could do in python sum(d.append(((t:=sum(c for c,x in d if i<x)+1),1+i+len(set((s:=l.split())[2:12])&set(s[13:]))))or t for d in([],)for i,l in enumerate(open(0)))
actually my strategy here probably sucks
144 bytes hmm
for d in([],) is cheating really hard
or it should be for d in[[]]
oh yeah
wait what i thought my numbers were on the left
bruh
i mean its irrelevant
but if i did it with a loop i wouldve failed
i love how i already solved 3 days in ruby yet my repo still has more rust even though i used rust only for one single day last year
i wouldnt know
mines even longer https://github.com/eagely/adventofcode/blob/main/src/main/kotlin/solutions/y2022/Day11.kt
i wasnt very good at kotlin or puzzles when i did that
yeah i did one day in zig, all 4 in julia
monkeyactivity
i remember day 11 took me like a week to solve
and i gave up after that till november
wtf
i was moduloing by different numbers for a while afaik
i forgot / lost motivation after day 11
For me that is swift
advent of call of duty
why tf 24 in php
oh the remaining languages were in no paticular order
did u just pick the best one for the day
After say 7-8 it becomes insane
Last year I needed to do path finding algorithm
Gave up immediatly
same
if its path finding its an easy day
the wording today confused me so much
@real hinge remember when you wrote a C++ solution and forgot to initialise array so it was using random bytes
and you got a different solution each time u ran

lmao
i hope theres a lot of puzzles like day 12 this year
Yeah 
I was going insane
just a standard bfs
i mean impressive it worked at all
when even address sanitiser can't help
I wonder why not
since you're technically reading random memory
i think i didnt initialise my array either but I always wrote before reading so it didn't cause problems
**solution.cc: **Line 11
char crt[6][40];
Probably
The funny thing is
Adding another uninitialized array to top of it was fixing the problem
HAHAHAH
That was what driving me insane

c++ moment
?!?!?!
WHEN DID THEY DO THIS
WHY
IN FAVOR OF WHAT
Am i getting this right?? lookaheads with quantifiers in regex are deprecated?
that seems like it'd be a correct interpretation
yes, it's terrible
it's be amazing if js had list comprehensions
es 7 where did you go wrong
Object.__parent__ ?????
what the hell is this... https://developer.mozilla.org.cach3.com/en-US/docs/Archive/Web/Sharp_variables_in_JavaScript#document-main
A sharp variable is a syntax in object initializers that allows serialization of objects that have cyclic references or multiple references to the same object.
is that pointers in js...
yummy circular references
object.parent function.caller and the comprehensions I think are the biggest losses
especially the comprehensions
Are those Firefox only or globally
Also wasnt javascript backwards compatible
Do they remove features
the # means something different now
Private properties are counterparts of the regular class properties which are public, including class fields, class methods, etc. Private properties get created by using a hash # prefix and cannot be legally referenced outside of the class. The privacy encapsulation of these class properties is enforced by JavaScript itself.
yes
but only if removing them has small impact
there are many deprecated features that are still used heavily so they won't remove them
vencord uses multiple deprecated features
var is also depraced for long time right
no
let has way more sensible semantics but iirc there are occasional times when you want things to be hoisted to fix module circular dependency issues
also like transpiler/minifier pipelines only output var so almost every page uses it extensively in their bundle
let/const are still mostly seen on dev side instead of in browser runtime
horor
yoooooo
xbox looking ass graphic
xbox 360 rgh aurora dashboard
she advent on my code
is there a way to fetch the example?
like this
but for the example instead of input
i dont wanna have to scrape
i doubt, since sometimes its different examples
i just want to automate the boilerplate creation >.<
the examples are always in a pre > code
so if you can parse HTML you can get it
the python aocd helper package has it implemented
i don't really use it though lol
the format changes sometimes and its hard to fetch the answers though
Get your Advent of Code data with a single import statement - wimglenn/advent-of-code-data
god part 2 description is horrible
so confusing
ruby is so fucking goofy i swear
normal languages: arr.includes(thing)
fucking ruby: arr.include? thing
is ruby popular still
my only experience with it is using it for aoc once years ago
the stupid 2016 day 5 https://adventofcode.com/2016/day/5 where its braindead if your programming language has md5sum built in and a pita if it doesn't
2015 and 2016 had a few that required md5sum but the maker stays away from that kinda standard library check these days
ayy done
no normal language has includes everthing uses contains
**solution.rb: **Lines 18-19
winningCardCount = owned.count { |n| winning.include? n }
next if winningCardCount == 0
why is it the absolute value of n
2 lines for both parts πΌπΌπΌ
ok nerd
As you do in all problems "regex"
File.foreach(file).with_index do |line, idx|
end
this syntax is kinda cursed
File.foreach(file).with_index
its cool tho
Ven add ventracker here when
it attaches indexes to the iterator
its similar in kotlin
File.forEachIndexed { file -> /* stuff */ }
or
File.forEachIndexed { it.doStuff() }
or for (i in File.readLines().withIndex())
include_str!("input.txt").to_string().lines().for_each( |γγγ | {stuff})
@tranquil vapor WHY HUSK
|γγγ |
Accidently switched to japanese keyboard

#aoc-leaderboard when
I can no longer use a language that doesnt have unwrap
why to_string
I dont remember
(unwrap is actually bad and you shouldn't use it in a real program)
I love .enunerate(), very useful for rust iterators
nO
yop
I was sitting today
And said
What if I unwrapped myself
Wouldnt it be unwrapping cool
Sounds painful
Whats the alternative tho
actual error handling?
But it could be
If some electromagnetic rays striked my computer yes
Rust has results and options to try and force you to error handle everything
Obviously some of those are never going to happen in your situation
But it's still better to have at least an error message that isn't a panic unwind
Match blocks
Or if let
Or let Some(_) = ... else {}
Yeah but it returns "Some"
Yes
And match blocks let you extract the fields inside of enums
love automod
But yeah match patterns are very flexible it's pretty cool
There are so many safe ways to unwrap a result or option
That aren't ".unwrap() and hope it doesn't panic"
have you seen Gleam before
Now I am even more confused why rusher hates golang
Yeah you dont do if err every second but you do something similar to it
Die
Never
Why is rust lang dot org malware


@warped dust RUST HAS SPREAD OPERATOR?!?!
vap discovers pattern matching
what if you unwrapped yourself just to find out youre a None
in that case I wouldnt able to unwrap myself
@real hinge hi
hello
indices*
WHY IS WINDOWS IN BOTTOM LEFT
both are correct.
yeah and iterator.indices sounds much better than iterator.indexes
it's okay to be wrong
please explain that to my code
lmao π
okay
@real hinge help me get rust set up
Write cargo init
single file
Idk if that is possible
wrong
its working now
@real hinge ```rust
//bin/true; rustc -o "/tmp/$0.bin" 1>&2 "$0" && "/tmp/$0.bin" "$@"; exit $?
use std::fs::read_to_string;
fn main() {
let m = read_to_string("./input/day-07.txt").unwrap();
println!("{}", m);
}
you wrote your first unwrap
congrats
i will unwrap you
@real hinge i got a bunch of days ready
C++, Rust, Julia, JS
reading the file, running it works
@real hinge i did part 2 from last night
do you love
yopp
@warped dust help
death from uiua
rust users when i unwrap my presents (they might panic) 
@sullen fiber when you gonna do aoc in malbolge
id panic too if i got an empty box :(
assembly users when I call printf (terminated by signal SIGSEGV (Address boundary error))
how are you doing asm btw? through c?
I use gcc to link the binary and one function from the c standard library to print the results but otherwise it's all just raw assembly
my entire build process
damn even file reading?
I cheat and embed the input into the executable
ah thats true
ruby kinda nice it's just a little weird sometimes
would rather use ruby than python 
yeah
ruby more like cozy
they're not comparable
but it's obviously
typescript > ruby > kotlin > java > rust
so true
try julia :3 (im gonna keep shilling because its actually kinda nice)
no,,,
do aoc in groovy
oh i didnt know this but its actually compiled with llvm
:/ sry im not gonna touch a programming language for straights
julia looks cool
i will use
but tomorrow is crystal meth day so can't use julia
wdym
oh crystal?
oh sure ill do tomorrow :3
yeah I'll try crystal tmrw
Did you ever find a good way to fetch example and example output?
no
you would need to scrape it probably
i checked and the examples don't have any html classes unfortunately
oh my god you guys are so lazy
import requests
import bs4
text = requests.get('https://adventofcode.com/2023/day/4')
soup = bs4.BeautifulSoup(text.text, 'html.parser')
for i,code in enumerate(soup.select("body > main > article > pre > code")):
with open(f"example-{i}.txt","w") as file:
file.write(code.text)
there
I looked at it and I am going to try
tho for part2 you need to provide headers
I think the best method is finding all code > em
I am pretty close
Then taking the last if there are multiple
I AM ALREADY DONE IT
GUYS
I don't see why the answer wouldn't be the last one on the page
const examples = articles.map((index, article) => doc(article).find('pre > code').first().text())
const exampleAnswers = articles.map((index, article) => doc(article).find('p > code > em').last().text())
Doesn't that not work day 4
how would you even get answers
would that be reliable
fair
I don't see why the answer wouldn't be the last one on the page
Day 4 has a bunch of emphasized code blocks but they all lead up to the final one which is the answer
can someone find any examples where any of the following assumptions isn't true
- there are 1 or 2 articles on the page, corresponding to the text for part one and two
- the contents of the first
pre > codein each article is the example input for that part - the contents of the last
p > code > emin each article is the example output for that part
why would you bother scraping the output
you need to put it in your specific lang file anyways
or are you guys doing a single language π
no?
yes
actually nvm
yeah it works
I haven't solved that one, so I don't have it's part two
but part one I got
15.ex.json
{
"partOne": {
"input": "Sensor at x=2, y=18: closest beacon is at x=-2, y=15\nSensor at x=9, y=16: closest beacon is at x=10, y=16\nSensor at x=13, y=2: closest beacon is at x=15, y=3\nSensor at x=12, y=14: closest beacon is at x=10, y=16\nSensor at x=10, y=20: closest beacon is at x=10, y=16\nSensor at x=14, y=17: closest beacon is at x=10, y=16\nSensor at x=8, y=7: closest beacon is at x=2, y=10\nSensor at x=2, y=0: closest beacon is at x=2, y=10\nSensor at x=0, y=11: closest beacon is at x=2, y=10\nSensor at x=20, y=14: closest beacon is at x=25, y=17\nSensor at x=17, y=20: closest beacon is at x=21, y=22\nSensor at x=16, y=7: closest beacon is at x=15, y=3\nSensor at x=14, y=3: closest beacon is at x=15, y=3\nSensor at x=20, y=1: closest beacon is at x=15, y=3",
"output": "26"
}
}
oh
I would rather it to use real new linestbh
.split("\\n") 
pretty sure .split("\n") would work fine
i will split mantika
what kinda language has string.lines()?
rust
if string.lines() doesn't work on a string with \n newlines, then that is string.lines() problem
I think it would recognize \n as \\n
how
because it literally contains \n not \\n
BRAINDEAD
well yes but in regular text files \n gets converted into \\n
NO
r7 76 gmftfuyghkjjhuigjk,lg vkl,fy6ky
are you being stupit on purpose
Just added example scraping and a command to view it
Now just to use it to test stuff automatically
Whar
On json yes it indeed converts \n into newline
But doesnt on regular file
Void broke my heart by calling me stupit
Whar
whatever
Whats the difference
" is a 2 len string and ' is a char
Doesnt matter on python
beautiful
we do read the problem
its just a very quick way to check if our answers are correct against a free test case
takes two seconds to copy paste it
it was just because I can, im never going to actually use that to look at the input lol
thats two seconds
ill probably delete that subcommand soon, I was just bored lol and wanted it to be fancy
someone should get ai to summarise the AOC assignments
cause got damn those are some essays
aint reading allat π
so true
am i the only one who skips the first few paragraphs
I try to read it but inevitably end up skipping it
i appreciate the effort the creator put in but at the same time i kinda just want the exercise
i start reading the last few paragraphs and then go up
shit reminds me of math class
10pm isn't too late for me but still my brain is not comprehending that stuff when I just want to solve the puzzle and go to bed
im pretty sure the reason they're making the prompts insane now is to distrupt ai
good
ai gonna be waffling about gondolas instead of solving the problem
real
i hate ai so much
wtf is a gondola
ruining everything
girlie...
The gondola (English: , Italian: [ΛΙ‘ondola]; Venetian: gΓ³ndoΕa [ΛΙ‘oΕdoΙ°a]) is a traditional, flat-bottomed Venetian rowing boat, well suited to the conditions of the Venetian lagoon. It is typically propelled by a gondolier, who uses a rowing oar, which is not fastened to the hull, in a sculling manner, and also acts as the rudder. The uniquenes...
YOU CALL THESE GONDOLAS??
gondola LIFT
can i get an uber
A gondola lift is a means of cable transport and type of aerial lift which is supported and propelled by cables from above. It consists of a loop of steel wire rope that is strung between two stations, sometimes over intermediate supporting towers. The cable is driven by a bullwheel in a terminal, which is typically connected to an engine or ele...
the direct translation is telpher apparently
brb lemme get on this telpher
who up telphering
she telpher on my gondola till i
Currently it only updates xx.ex.json when the start script is ran. But once I integrate a submission bind, it will automatically update it when I successfully submit part 1
I have added race mode to my script.
It waits until the next day unlocks, and immediately
- opens the problem in the browser
- creates and opens a file to create the solution in
- downloads the input
- parses the problem page to get a test input/output for part one
loser
lmao
be nice bitch
fucking have fun with things
I care about doing it fast because my brain is highly suseptible to wanting to maximize meaningless internet points
I'd like to do it fast but I'm never going to be zoomy enough to get any significant reward from it so who cares
If I do make fancy setup stuff it's for convenience or because I'm bored, not because I actually care about speed
id love to compete but what is that time man its horrible
my ass is not coding at 6am
8pm 
Advent of code favors people outside america
yes americans are the only people with conflicting timezones
timezones in red are disadvantaged due to sleep and timezones in orange are disadvantaged due to traditional work hours
ironically the US/Canada still has a lot of advantage all things considered
west coast US is particularly good
east coast is fine for me, 12 am is my normal brain active hours

and doesn't conflict with school, work or clubs
WTF IS THIS
NOT A GONDOLA FAKE FAKE FAKE
YES
FAKE FAN
Can't believe you're not immersed
@warped dust rate my day 4
delete cause ulgy
Don't worry, no one can read it anyways
im about to sleep
no
soon
youre gonna do aoc
okay
holy text wall
aw poor guy was so busy
i dont even read the prompt i just start writing parsing
getting food
SAME
@real hinge hi
Kill
Part2 doesnt look good
did you already do part 1
38 people
I AM ON PHONE
fear my data structures
so
Cant code
can
Unneccesaryli painful
I would rather wait until I get my pc
Anyway it looks like we just need to convert numbers to each other billion times
Guhhh @steady fog fix rust analyzer on vens vps
how
Idk
String@real hinge
Yes
evil
insanity
They are Very funny
nop
Yop
NOP
Zt looks at google play store memes everyday
wrong
In day-05-crystal.cr:15:23
15 | p! seed_to_soil_index + 1
^
Error: undefined method '+' for Nil (compile-time type is (Int32 | Nil))
whar
oh ok
its like java
have to assert that its not nil
@real hinge do aoc
PHONE
I dont think you are supposed to do that
part 1 done
part two is meaaaaaan
Part2 will never get finished
best rank i think i've ever gotten
oh god
part two
the naive method is obviously not gonna work
i dont wanna do this in uiua
this might be where i start doing them in typescript
yea ts it is
why does vps not have glibc
they prob have musl
garlic powder
horror
STILL SAME ERROR
oh my god
it requires libgc 29
BUT DNF DOESNT HAVE THAT
it has 28
how did it end up like that
I'm gonna do it
For the memes
You can't stop me
Hehhehehehehhe
Rust go brrrrrrr
It's going rn
oh well! I am alright with my six minute solution
73% of seed group 2
ur insane
explode
I know
This is literally a crypto miner and it's hilarious
Wonder how long it'll take
I know there's this one package I used once for dealing with range overlaps quickly
probably should have spent the timing remembering what that package instead of doing it manually
JESUS CRIST
oh damn it worked
im surprised the input wasn't big enough to rule out brute force solutions
rust too powerful
my largest range was 811,833,837
and overall it checked 2,549,759,327 seeds
bro can topaz stop trying to throw off llms and make the early days easier
22 minutes for top 100 is too long for day 5
optimize this
I will eventually
I want to figure out the real solution not the dumb one at some point
i tried doing that in kotlin, it didnt even finish the first range after 15 minutes
but i think the real solution is a oneliner
Well yeah I don't think you are going to get very far on anything that doesn't use native executables
i think my only chance of getting global is if its a late day and i already have a utils function for the solution
maybe like day 18
of 2022
with a 3d grid and u have to count something
ppl will be implementing 3d arrays from scratch and still getting global
my js solution did it in 6.5 minutes 
Every single number???
yop
it could be we have wildly different numbers of seeds
True
you can see how long my input takes with your stuff if you want
that would be cool! unfortunately: i have finals next week and don't have time to make asm aoc solutions for two weeks ;w;
could do a bootloader instead
er
I guess you need the larger numbers from 32 bit protected mode
so efi would be easier yea
You seem to have a little over half my seeds
And I'm not waiting for it to finish so idk who cares, I got the solution
makes sense
a little over half would put our solutions at roughly the same speed then maybe
Is your computer decent
my shit keeps stopping randomly before it finishes
i th ink my math is right but
no errors
Is it OOM'd?
no, it would say OOM if it was OOM
idk
I fixed my OOM error by chunking seeds into arrays of 65536 size
I just never generate the list of seeds but ok
Iterators are my friend
But no clue why yours would just die that makes 0 sense
yea
I increased my chunking size and it made it further, its still going
range 3/10 16%
Glad to see at least 2 others followed me to the dark side
dark side?
This horrible solution of brute forcing it
I can't think of anything better
WHY DOES MY CODE WORK ON EXMA_PLE
BUT GIVES WRONG NUMBER ON UINPUT
I WILL KILL EVERYONE
I can think of a way I just didn't feel like it
I'll solve it correctly eventually
That too
I would, but I hate threading in js
wait
i had the right answer the whole time
WTF DID I SUBMIT
?!#@$r%tyr^u&%#$r
that is so stupid
typescript so good
assembly level speed
i will inspect how the speedy solution is supposed to work
I have a plan that I might try tomorrow
π ποΈ
mine was 111,184,803
oh that speedy solution makes sense i guess
where is the speedy solution?
vap's repo
it kinda bothers me that the speedy solution is one that doesn't feel elegant at all
it makes sense why it works and how but it doesn't feel nice, at least to me
ngl i think its only unelegant because ||ts/js doesnt have range as a stdlib type||
||it would prob be good in a langauge there is a nice range type, idk any tho||
It took my js 23.3 minutes to brute-force it
||toMap in Mapping::mapRange would easily just be range.intersect(source), and before / after would be a disjoint range.subtract(source)||
I didn't know there were languages with that in their stdlib
my python solution gets 50.6 ms for part 2 but theres a lot of inefficiency
got it down to 2.47 ms by adding a couple of break statements 
wait
wth is the second part
need a nasa computer
oh my god
I need to remake my entire solution
I was storing them in arrays and do entire step at once
are you printing progress on every seed
if you are then most of your processing time is probably taken up by i/o and not actually calculating the solution
Every 100000
this years aoc SUCKS
why are we getting optimization problems so early already
i started a bruteforce but it finished (10 mins or so) before i was done with the optimized version
i did eventually get it though https://github.com/aetheryx/aoc/blob/main/src/2023/day5/index.ts
tf is today

Tuesday
thanks manti.
Np void
how am i gonna put this on 1 line
shouldve used javascript
also please spoiler your stuff
still havent had time to do it
the text is so small u can only tell that today is hard
but sure
what is crystal
@warped dust uiua might actually be bad for my brain
i spent like a minute wondering how tf to reshape an array in ts
uiua brainrot
this is almost 1 line (if i use .let and .also everywhere and inline seeds and mapping)
YOU KNOW WHAT
||the mappings are bijective, i will just binary search the maps backwards for uiua||
instead of val result = hashMapOf<LongRange, Boolean>()
hashMapOf<LongRange, Boolean>().let { result ->
everything else
}
π€¨
.flat().chunks(5)
FR
NEED
it doesnt even need to be multidimensional really
if i could do it all 2D it woudl eb eoucpic
WTF
inv
/id takes 0 arrays
thats getting deprecated
not / but like dumping onto the stack arbitrarily
also inv -> un
and unbox -> un box
unbox deprecated ??
true
they say stuff like that
and im like "!?!?!? in favor of what???
and theyre like oh sike its being renamed
uiua devs on fuckinb crack
it looks cool but, there was like no debug information in the errors π
making you write the worrst js
dude it looked so bad esp making callback closures
probbly trimmed
.unwrap().dyn_into::<ArrayBuffer>().unwrap()
les goo
2 minutes and 46 seconds
single thread tho
I wonder how low I can go if I multithread
but doing mt in rust is 
people using spoilers like they're censoring a govt document is kinda funny to read
@sullen fiber what is this
part 1 in uiua
wth is that
stack oriented array language

WHAT IS THAT
copilot writing your emotions for you
@warped dust uiua bytecode is actualyl really cool
stuff like fork both bracket gets inlined
and temporal execution limit is built into the interpreter
also shout out to NumProcs
not as COOL as THe BEAM
https://github.com/piman51277/AdventOfCode/blob/master/solutions/2023/5/part2.cu GPU accelerated brute forcing 
what the
I was curious so I went on the reddit thread
wait is fast solution || just mapping the ranges instead of 600 million numbers ||
||yea thats what i did||
makes sense
||the pain is that a single mapping can split one range into 3 at most||
yeah that can be horror
holy shit
||yea i was gonna linear search the reverse map but i was scared of how long it'd take in uiua||
||lemme actually try it rq||
I'm surprised how many people went brute force on this one
it is the easiest one ig
|| both reverse scanning and range matching is a bit horror||
It's funny but also they could have just made the numbers a few digits bigger and this problem would have been solved
||tho reverse search would probably be easy to implement (but also I think thats a gamble too if they made smallest number something like 18284718 it would take forever again) ||
@tranquil vapor your solution soon
@real hinge do you love
if I could understand it
there is a chance
wth is that
that isnt rust
what the hell
I am never looking at aoc subreddit again
even devilbro cant get this worse
https://i.redd.it/hru2vhytzf4c1.png whoa this is cool
Someone visualized their input
i was doing the same thing
imma not do that anymore cus it sucked
thats so sick
aoc hash function
i was gonna do it in desmos instead of svg but svg is a lot saner
WTF
@solemn python can i tell you a way to optimize your bruteforce, i wanna see how fast it runs in rust
okk aoc timee
oh wow urs was fast for a normal bruteforce wtf
CRYSTAL IS SO BAD
maybe i'll try my optimization idea on urs and see if it makes it fast
do
I don't really have any time until tonight but sure I could try
When I have time
no worries no worries imma try it on manti's
DESCRIPTION SO CONFUSING AGAIn




