[HN Gopher] Advent of Code 2025
___________________________________________________________________
Advent of Code 2025
Author : vismit2000
Score : 651 points
Date : 2025-11-30 13:07 UTC (9 hours ago)
(HTM) web link (adventofcode.com)
(TXT) w3m dump (adventofcode.com)
| mynameismon wrote:
| Is it just me, or does it seem to be temporarily down?
| retsibsi wrote:
| It's up for me (but the first puzzle won't be available until
| 15 hours from now).
| zwnow wrote:
| > Should I use AI to solve Advent of Code puzzles? No. If you
| send a friend to the gym on your behalf, would you expect to get
| stronger? Advent of Code puzzles are designed to be interesting
| for humans to solve - no consideration is made for whether AI can
| or cannot solve a puzzle. If you want practice prompting an AI,
| there are almost certainly better exercises elsewhere designed
| with that in mind.
|
| And yet I expect the whole leaderboard to be full of AI
| submissions...
|
| Edit: No leaderboard this year, nice!
| stOneskull wrote:
| i don't think there is a global leaderboard this year. just
| private ones.
| retsibsi wrote:
| Not this time:
|
| > The global leaderboard was one of the largest sources of
| stress for me, for the infrastructure, and for many users.
| People took things too seriously, going way outside the spirit
| of the contest; some people even resorted to things like DDoS
| attacks. Many people incorrectly concluded that they were
| somehow worse programmers because their own times didn't
| compare. What started as a fun feature in 2015 became an ever-
| growing problem, and so, after ten years of Advent of Code, I
| removed the global leaderboard.
| KolmogorovComp wrote:
| > And yet I expect the whole leaderboard to be full of AI
| submissions...
|
| There will be no global leaderboard this year.
| Cthulhu_ wrote:
| I mean they're great programming tests, for both people and AI
| I'd argue - like, it'd be impressive if an AI can come up with
| a solution in short order, especially with minimal help /
| prompting / steering. But it wouldn't be a personal
| achievement, and if it was a competition I'd label it as
| cheating.
| chongli wrote:
| I am so glad there is no leaderboard this year. Making it a
| competition really is against the spirit of advent calendars in
| general. It's also not a fair competition by default simply due
| to the issue of time zones and people's life schedules not
| revolving around it.
|
| There are plenty of programming competitions and hackathons out
| there. Let this one simply be a celebration of learning and the
| enjoyment of problem solving.
| zwnow wrote:
| Yea fully agree. The leaderboards always made me feel bad.
| amitav1 wrote:
| I agree with the first point but the second point feels
| irrelevant. Yeah, people's life schedules don't revolve
| around it, but that doesn't mean shouldn't make iy a
| competition. Most people who play on chess.com don't have
| lives that revolve around it, but that doesn't mean that
| chess.com should abolish Elo rankings.
| acedTrex wrote:
| The global leaderboard encouraged bad behavior against the
| entire project. Including criminal things like attempting
| to ddos the site.
| poulpy123 wrote:
| afai your elo score don't depend of your timezone
| losvedir wrote:
| Depends how you look at it. Some of my colleagues rave about
| Claude Code, so I was thinking about trying it out on these
| puzzles. In that sense it is "going to the gym", just for a
| different thing. Since I do AoC every year, I feel like it'll
| give me a good feel for Claude Code compared to my baseline.
| And it's not just "prompting", but figuring out a workflow with
| tests and brainstorming and iteration and all that. I guess if
| the LLM can just one-shot every puzzle that's less interesting,
| but I suppose it would be good to know it can do that...
| zwnow wrote:
| It 100% can do that. LLMs are trained on an unfathomable
| amount of data. Every AoC puzzle can be solved by identifying
| the algorithm behind it. Its Leetcode in a friendlier and
| more festive spirit.
| d_watt wrote:
| Looks like after the AI automation rush last year, the
| leaderboard has been removed. Makes sense, a little sad that it
| was needed though.
| ellisv wrote:
| I never liked the global leaderboard since I was usually asleep
| when the puzzles were released. I likely never would have had a
| competitive time anyway.
| Jare wrote:
| I never had any hope or interest to compete in the
| leaderboard, but I found it fun to check it out, see times,
| time differences ("omg 1 min for part 1 and 6 for part 2"),
| lookup the names of the leaders to check if they have
| something public about their solutions, etc. One time I even
| ran into the name of an old friend so it was a good excuse to
| say hi.
| PaulRobinson wrote:
| Advent of Code is one of the highlights of December for me.
|
| It's sad, but inevitable, that the global leaderboard had to be
| pulled. It's also understandable that this year is just 12 days,
| so takes some pressure off.
|
| If you've never done it before, I recommend it. Don't try and
| "win", just enjoy the problem solving and the whimsy.
| f1shy wrote:
| While is ,,only" 12 days, are like 24 challenges. As no
| leaderboard is there, and I do it for fun, i will do it in 24
| days.
| tclancy wrote:
| Same. I usually try to use it as the "real-world problem" I
| need for learning a new language. Is there anywhere that
| people have starter advice/ templates for various languages?
| I'd love to know
|
| - install like this
|
| - initialize a directory with this command
|
| - here are the VSCode extensions (or whatever IDE) that are
| the bare minimum for the language
|
| - here's the command for running tests
| thebytefairy wrote:
| learnxinyminutes.com is a good resource that tries to cover
| the key syntax/paradigms for each language, I find it a
| helpful starting point to skim.
| hollasch wrote:
| This is an area where LLMs can really help out: getting
| started with an unfamiliar language/IDE/ framework.
| eichin wrote:
| That sounds healthy! But I would note that there's been
| interesting community discussions on reddit in past years,
| and I've gotten caught up in the "finish faster so I can go
| join the reddit discussion without spoilers". It turns out
| you can have amazing in-jokes about software puzzles and
| ascii art - but it also taught me in a very visceral way that
| even for "little" problems, building a visualizer (or making
| sure your data structures are easy-to-visualize) is
| _startlingly_ helpful... also that it 's nice to have people
| to commiserate with who got stuck in the same garden
| path/rathole that you did.
| jakeydus wrote:
| I think I'll set up a local leaderboard with friends this year.
| I was never going to make it to the global board anyway but it
| is sad to see it go away.
| doublerabbit wrote:
| And this is how I know I am not a developer/programmer. I have
| no urge or interest in such event.
| forty wrote:
| The "only" 12 days might be disappointing (but totally
| understandable), however I won't mourn the global leaderboard
| which always felt pointless to me (even without the llm, the
| fact that it depends on what time you did solved problems
| really made it impractical for most people to actually
| compete). Private leaderboards with people on your timezone are
| much nicer.
| qsort wrote:
| I'm actually pleasantly surprised to see a 2025 edition, last
| year being the 10th anniversary and the LLM situation with the
| leaderboard were solid indications that it would have been a
| great time to wrap it up and let somebody else carry the torch.
|
| It's only going to be 12 problems rather than 24 this year and
| there isn't going to be a gloabl leaderboard, but I'm still glad
| we get to take part in this fun Christmas season tradition, and
| I'm thankful for all those who put in their free time so that we
| can get to enjoy the problems. It's probably an unpopular stance,
| but I've never done Advent of Code for the competitive aspect,
| I've always just enjoyed the puzzles, so as far as I'm concerned
| nothing was really lost.
| squigz wrote:
| It's really disheartening that the culture has changed so much
| someone would think doing AoC puzzles just for the fun of it is
| an unpopular stance :(
|
| Doing things for the fun of it, for curiosity's sake, for the
| thrill of solving a fun problem - that's very much alive, don't
| worry!
| Waterluvian wrote:
| Eliminating the leaderboard might help. By measuring it as a
| race, it becomes a race, and now the goal is the metric.
|
| Maybe just have a cool advent calendar thingy like a digital
| tree that gains an ornament for each day you complete. Each
| ornament can be themed for each puzzle.
|
| Of course I hope it goes without saying that the creator(s)
| can do it however they want and we're nothing but richer for
| it existing.
| squigz wrote:
| > By measuring it as a race, it becomes a race, and now the
| goal is the metric.
|
| It becomes a race when you start seeing it as a race :) One
| can just... ignore the leaderboard
| Waterluvian wrote:
| That's also completely true and something I often say
| about gaming. You don't like achievements? Just don't do
| them. Your enjoyment shouldn't be a function of how
| others interact with the product.
| Almondsetat wrote:
| "Just ignore it" doesn't work, psychologically.
| squigz wrote:
| Lots of people play games while ignoring the
| achievements.
|
| Many people do - well, did - AoC while ignoring the
| leaderboard.
| Vespasian wrote:
| I never, in all the years of participating in AoC did
| take a look at the global leaderboard.
|
| Even before LLMs I knew it was filled with with results
| faster then you can blink.
|
| So some of us, from gut feeling the vast majority, it was
| always just for fun. Usually I spent at least until March
| to finish as much as I did in every year.
| mlhpdx wrote:
| Oh, i'm quite sure it does. In fact, it's a central thing
| in so much of psychology. The only difference is how you
| get there. Some people can just ignore and others take
| more effort.
| m000 wrote:
| I disagree. Having a leaderboard also leaks into the
| puzzle design. So the experience is different, even if
| you choose to ignore the leaderboard as a participant.
| orphea wrote:
| > Having a leaderboard also leaks into the puzzle design.
|
| Is it your opinion? Can you give an example? Or did Eric
| say that?
| amiga386 wrote:
| I've ignored the leaderboard for its entire existence, as
| the puzzles release at something like 4AM-5AM in my
| timezone; there's no point getting up 4 hours early, or
| staying awake 4 hours after bedtime, for some points on
| the internet.
|
| Instead, getting gold stars for solving the puzzles is
| incentive enough, and can be done as a relaxing thing in
| the morning.
|
| No matter what you do, as the puzzles get harder, you
| won't solve them in a day (or even a lifetime) if you
| don't come up with good algorithms/methods/heuristics.
| wging wrote:
| That 'digital tree' idea is similar to how AoC has always
| worked. There's a theme-appropriate ASCII graphic on the
| problem page that gains color and effects as you complete
| problems. It's not always a tree, but it was in 2015 (the
| first year), and in several other years at least one tree
| is visible. https://adventofcode.com/2015
| jerpint wrote:
| I did a post [0] about this last year, and vanilla LLMs didn't
| do nearly as well as I'd expected on advent of code, though I'd
| be curious to try this again with Claude code and codex
|
| [0] https://www.jerpint.io/blog/2024-12-30-advent-of-code-llms/
| the_duke wrote:
| LLMs, and especially coding focused models, have come a very
| long way in the past year.
|
| The difference when working on larger tasks that require
| reasoning is night and day.
|
| In theory it would be very interesting to go back and retry
| the 2024 tasks, but those will likely have ended up in the
| training data by now...
| mbac32768 wrote:
| Last April I asked Claude Sonnet 3.7 to solve AoC 2024 day
| 3 in x86-64 assembler and it one-shotted solutions for part
| 1 and 2(!)
|
| It's true this was 4 months after AoC 2024 was out, so it
| _may_ have been trained on the answer, but I think that 's
| way too soon.
|
| Day 3 in 2024 isn't a Math Olympiad tier problem or
| anything but it seems novel enough, and my prior experience
| with LLMs were that they were absolutely atrocious at
| assembler.
|
| https://adventofcode.com/2024/day/3
| paulddraper wrote:
| Last year, I saw LLMs do well on the first week and
| accuracy drop off after that.
|
| But as others have said, it's a night and day difference
| now, particularly with code execution.
| crystal_revenge wrote:
| > LLMs, and especially coding focused models, have come a
| very long way in the past year.
|
| I see people assert this all over the place, but personally
| I have _decreased_ my usage of LLMs in the last year.
| During this change I've also increasingly developed the
| reputation of "the guy who can get things shipped" in my
| company.
|
| I still use LLMs, and likely always will, but I no longer
| let them do the bulk of the work and have benefited from
| it.
| Aurornis wrote:
| A couple of the Slack/Discord groups I'm in do a local
| leaderboard with friends. It's fun to do with a trusted group
| of people who are all in it for fun.
| qsort wrote:
| I'm also in a few local leaderboards, but I'm not "really"
| competing, it's more of a fun group thing.
|
| Premises:
|
| (i) I love Advent of Code and I'm grateful for its continuing
| existence in whatever form its creators feel like it's best
| for themselves and the community;
|
| (ii) none of what follows is a request, let alone a demand,
| for anything to change;
|
| (iii) what follows is just the opinion of some random guy on
| the Internet.
|
| I have a lot of experience with competitions (although more
| on the math side than on the programming side), and I've been
| involved essentially since I was in high school, as a
| contestant, coach, problem writer, organizer, moving tables,
| etc. In my opinion Advent of Code simply isn't a good
| competition:
|
| - You need to be available for many days in a row for 15
| minutes at a very specific time.
|
| - The problems are too easy.
|
| - There is no time/memory check: you can write ooga-booga
| code and still pass.
|
| - Some problems require weird parsing.
|
| - Some problems are pure implementation challenges.
|
| - The AoC guy loves recursive descent parsers way too much.
|
| - A lot of problems are underspecified (you can make
| assumptions not in the problem statement).
|
| - Some problems require manual input inspection.
|
| To reiterate once again: I am _not_ saying that any of this
| needs to change. Many of the things that make Advent of Code
| a bad competition are what make it an excellent, fun,
| memorable "Christmas group thing". Coming back every day
| creates community and gives people time to discuss the
| problems. Problems being easy and not requiring specific time
| complexities to be accepted make the event accessible.
| Problems not being straight algorithmic challenges add
| welcome variety.
|
| I like doing competitions but Advent of Code has always felt
| more like a cozy problem solving festival, I never cared too
| much for the competitive aspect, local or global.
| mckn1ght wrote:
| I too like the simple nature. If you care about highly
| performant code, you can always challenge yourself (I got
| into measuring timing in the second season I participated).
| Personally I prefer a world like this. Not everyone should
| have to compete on every detail (I know you stated that
| your points aren't demands, I'm just pointing out my own
| worldview). For any given thing, there will naturally be
| people that are OK with "good enough", and people who are
| interested to take it as far as they can. It's nice that we
| can all still participate in this.
|
| One could probably build a separate service that provides a
| leaderboard for solution runtimes.
|
| I agree that it's more of a cozy activity than a hardcore
| competition, that's what I appreciate about it most.
| azkalam wrote:
| Do you know of anything like AoC but that feels less
| contrived? I often spend the most time understanding the
| problem requirements because they are so arbitrary - like
| the worst kind of boardgame! Maybe I should go pick up some
| OSS tickets...
| Mountain_Skies wrote:
| Take a look at Everybody Codes. It occurs in November
| instead of December, so this year is wrapping up. Like
| AoC, it is story based but maybe you'll find the problem
| extraction more to your liking.
|
| https://everybody.codes/events
| matsemann wrote:
| Being contrived, with puns or other weirdness is kinda on
| par for this kind of problems. Almost every programming
| competition I've ever been to have those kind of jokes.
|
| Just a random example:
| https://open.kattis.com/problems/magicallights
|
| But the Kattis website is great. The program runs on
| their server without you getting to know the input (you
| just get right/wrong back), so a bit different. But also
| then gives you memory and time constraints which you for
| the more difficult problems must find your way out of.
| b0ringdeveloper wrote:
| There are definitely some problems that have an indirect
| time/memory check, in that if you don't have a right-enough
| algorithm, your program will never finish.
| bigstrat2003 wrote:
| > The problems are too easy.
|
| The problems are pretty difficult in my book (I never make
| it past day 3 or so). So I definitely would hope they never
| increase the difficulty.
| fn-mote wrote:
| > The AoC guy loves recursive descent parsers way too much.
|
| LOL!!
|
| I agreed with a lot of what you wrote, but also a lot of us
| strive for beautiful solutions regardless of time/memory
| bounds.
|
| In fact, I'm (kind of) tired of leetcode flagging me for
| one ultra special worst-case scenario. I enjoy writing
| something that looks good and enjoying the success.
|
| (Not that it's bad to find out I missed an optimization in
| the implementation, but... it feels like a lot of details
| sometimes.)
| Jtsummers wrote:
| > - The AoC guy loves recursive descent parsers way too
| much.
|
| The vast majority (though not all) of the inputs can be
| parsed with regex or no real parsing at all. I actually
| can't think of a day that _needed_ anything like recursive
| descent parsing.
| scuff3d wrote:
| I know some folks were disappointed with their being 12 puzzles
| instead of 24 this year, but I never have time to finish anyway
| so it makes no difference to me lol
|
| I'm just glad they're keeping this going.
| jbv027 wrote:
| Exactly. I have always taken AoC as fun and time to learn.
| But there is so much going on during December and I do not
| enjoy doing more than one puzzle a day (it feels like hard
| work instead of fun). I usually spend time on weekends with
| kids and family and I am not willing to solve more puzzles
| during week days so I am falling behind all the time. My plan
| was always to finish last year puzzles to enjoy more
| interesting ones but it always felt wrong. So I hope I will
| have time to finish everything this year :-) But I feel pain
| from people with enough free time to go full on. I would love
| to be one of them but there is so much going on everywhere
| that I have to split my time. Sorry programming world and
| especially computers :-D
| integralid wrote:
| >It's probably an unpopular stance, but I've never done Advent
| of Code for the competitive aspect
|
| Is this an unpopular stance? Out of a dozen people I know that
| did/do AoC every year, only one was trying to compete. Everyone
| else did it for fun, to learn new languages or concepts, to
| practice coding, etc.
|
| Maybe it helps that, because of timezones, in Europe you need
| to be really dedicated to play for a win.
| Jtsummers wrote:
| >Is this an unpopular stance?
|
| No, it's not. At most 200 people could end up on the global
| leaderboard, and there are tens of thousands of people who
| participate most days (though it drops off by the end it's
| over 100k reliably for the first day). The vast majority of
| participants are not there for the leaderboard. If you care
| about being competing, there are always private leaderboards.
| encomiast wrote:
| A little sad that there are fewer puzzles. But also a glad that
| I'll see my wife and maybe even go outside during the second half
| of December this year.
| permalac wrote:
| Does anyone know about any good sysadmin advent?
| ahoka wrote:
| I propose Advent of Outage: just pull a random plug in the
| server room every day.
| tgv wrote:
| How about something like while [1]; do kill
| -9 $((rnd * 100000)); sleep 5; end
|
| Probably needs some external tool for the rnd function.
|
| On a serious note, I just saw this:
| https://linuxupskillchallenge.org
| udev4096 wrote:
| That's hardly an "upskill" imo. You would know almost all
| of it by running a linux server for a month or two
| fainpul wrote:
| Opinion poll:
|
| Python is extremely suitable for these kind of problems. C++ is
| also often used, especially by competitive programmers.
|
| Which "non-mainstream" or even obscure languages are also well
| suited for AoC? Please list your weapon of choice and a short
| statement why it's well suited (not why you _like_ it, why it 's
| good for AoC).
| f1shy wrote:
| I've been doing them is JS and Common Lisp. I recommend the
| problems to help learning new languages.
| StopDisinfo910 wrote:
| I respect the effort going into making Advent of Code but
| with the very heavy emphasis on string parsing, I'm not
| convinced it's a good way to learn most languages.
|
| Most problems are 80%-90% massaging the input with a little
| data modeling which you might have to rethink for the second
| part and algorithms used to play a significant role only in
| the last few days.
|
| That heavily favours languages which make manipulating string
| effortless and have very permissive data structures like
| Python dict or JS objects.
| f1shy wrote:
| You are right. The exercises are heavy in one area. Still,
| for _starting_ in a new language can be helpful: you have
| to do in /out with files. Data structures, and you will be
| using all flow control. So you will not be an ace, but can
| help to get started.
|
| I know people who make some arbitrary extra restriction,
| like "no library at all" which can help to learn the basics
| of a language.
|
| The downside I see is that suddenly you are solving
| algorithmic problems, which some times are bot trivial, and
| at the same time struggling with a new language.
| mhitza wrote:
| That's a hard agree and a reason why anyone trying to learn
| Haskell, OCaml, or other language with minimal/"batteries
| depleted" stdlib will suffer.
|
| Sure Haskell comes packaged with parser combinators, but a
| new user having to juggle immutability, IO and monads all
| at once at the same time will be almost certainly
| impossible.
| PapstJL4U wrote:
| Maybe not learning a new language from the ground up, but
| I think it is good training to "just write" within the
| language. A daily or twice-daily interaction. Setting up
| projects, doing the basic stuff to get things running,
| and reading up on the standard library.
|
| Having smaller problems makes it possible to find
| multiple solutions as well.
| 4pkjai wrote:
| Kotlin, because it's a language I like
| jpgvm wrote:
| IMO it's maybe the best suited language to AoC. You can write
| it even faster than Python, has a very terse syntax and great
| numerical performance for the few challenges where that
| matters.
| encomiast wrote:
| It was mind-boggling to see SQL solutions last year:
| https://news.ycombinator.com/item?id=42577736
| JokerDan wrote:
| This is what is great about it, the community posting hyper-
| creative (sometimes cursed) solutions for fun! I usually use
| AoC to try out a new language and that has been fun for me
| over the years.
| shakna wrote:
| I've always done it in a Scheme. Generally to learn a new
| compiler and its quirks.
|
| Scheme is fairly well suited to both general programming, and
| abstract math, which tends to be a good fit for AoC.
| fainpul wrote:
| For some grid based problems, I think _spreadsheets_ are very
| powerful and under-appreciated.
|
| The spatial and functional problem solving makes it easy to
| reason about how a single cell is calculated. Then simply apply
| that logic to all cells to come up with the solution.
| sunrunner wrote:
| My favourite "non-mainstream" languages are, depending on my
| mood at the time, either:
|
| - Array languages such as K or Uiua. Why they're good for AoC:
| Great for showing off, no-one else can read your solution
| (including yourself a few days later), good for earlier days
| that might not feel as challenging
|
| - Raw-dogging it by creating a Game Boy ROM in ASM (for the
| Game Boy's 'Z80-ish' Sharp LR35902). Why it's good for AoC: All
| of the above, you've got too much free time on your hands
|
| Just kidding, I use Clojure or Python, and you can pry
| itertools from my cold, dead hands.
| infamousclyde wrote:
| I've always used AoC as my jump-off point for new languages. I
| was thinking about using Gleam this year! I wish I had more
| profound reasons, but the pipeline syntax is intriguing and I
| just want to give it a whirl.
| ceautery wrote:
| That's a perfectly valid reason.
|
| I tried AoC out one year with the Wolfram language, which
| sounds insane now, but back then it was just a "seemed like
| the thing to do at the time" and I'm glad I did it.
| jlouis wrote:
| Go is strong. You get something where writing a solution
| doesn't take too much time, you get a type system, you can
| brute-force problems, and the usual mind-numbing boring data-
| manipulation handling fits well into the standard tools.
|
| OCaml is strong too. Stellar type system, fast execution and
| sane semantics unlike like 99% of all programming languages. If
| you want to create elegant solutions to problems, it's a good
| language.
|
| For both, I recommend coming prepared. Set up a scaffold and
| create a toolbox which matches the typical problems you see in
| AoC. There's bound to be a 2d grid among the problems, and you
| need an implementation. If it can handle out-of-bounds access
| gracefully, things are often much easier, and so on. You don't
| want to hammer the head against the wall not solving the
| problem, but solving parsing problems. Having a combinator-
| parser library already in the project will help, for instance.
| sunrunner wrote:
| > For both, I recommend coming prepared.
|
| Any recommendations for Go? Traditionally I've gone for
| Python or Clojure with an 'only builtins or things I add
| myself' approach (e.g. no NetworkX), but I've been keen to
| try doing a year in Go however was a bit put off by the
| verbosity of the parsing and not wanting to get caught
| spending more time futzing with input lines and err.
|
| Naturally later problems get more puzzle-heavy so the ratio
| of input-handling to puzzle-solving code changes, but it
| seemed a bit off putting for early days, and while I like a
| builtins-only approach it seems like the input handling would
| really benefit from a 'parse don't validate' type approach
| (goparsec?).
| jlouis wrote:
| It's usually easy enough for Go you can just roll your own
| for the problems at hand. It won't be as elegant as having
| access to a combinator-parser, but all of the AoC problems
| aren't parsing problems.
|
| Once you have something which can "load \n seperated
| numbers into array/slice" you are mostly set for the first
| few days. Go has verbosity. You can't really get around
| that.
|
| The key thing in typed languages are to cook up the right
| data structures. In something without a type system, you
| can just wing things and work with a mess of dictionaries
| and lists. But trying to do the same in a typed language is
| just going to be uphill as you don't have the tools to
| manipulate the mess.
|
| Historically, the problems has had some inter-linkage. If
| you built something day 3, then it's often used day 4-6 as
| well. Hence, you can win by spending a bit more time on
| elegance at day 3, and that makes the work at day 4-6
| easier.
|
| Mind you, if you just want to LLM your way through, then
| this doesn't matter since generating the same piece of code
| every day is easier. But obviously, this won't scale.
| sunrunner wrote:
| > It won't be as elegant as having access to a
| combinator-parser, but all of the AoC problems aren't
| parsing problems.
|
| Yeah, this is essentially it for me. While it might not
| be a 'type-safe and correct regarding error handling'
| approach with Python, part of the interest of the AoC
| puzzles is the ability to approach them as 'almost pure'
| programs - no files except for puzzle input and output,
| no awkward areas like date time handling (usually),
| absolutely zero frameworks required.
|
| > you can just wing things and work with a mess of
| dictionaries and lists.
|
| _Checks previous years type-hinted solutions with
| map[tuple[int, int], list[int]]_
|
| Yeah...
|
| > but all of the AoC problems aren't parsing problems.
|
| I'd say for the first ten years at least the first ten-
| ish days are 90% parsing and 10% solving ;) But yes, I
| agree, and maybe I'm worrying over a few extra visible
| err's in the code that I shouldn't be.
|
| > if you just want to LLM your way through
|
| Totally fair point if I constrain LLM usage to input
| handling and the things that I already know that I know
| how to do but don't want to type, although I've always
| quite liked being able to treat each day as an
| independent problem with no bootstrapping of any code, no
| 'custom AoC library', and just the minimal program
| required to solve the problem.
| riffraff wrote:
| I usually do it with ruby with is well suite just like python,
| but last year I did it with Elixir.
|
| I think it lends itself very well to the problem set, the
| language is very expressive, the standard library is extensive,
| you can solve most things functionally with no state at all.
| Yet, you can use global state for things like memoization
| without having to rewrite all your functions so that's nice
| too.
| marc_omorain wrote:
| Clojure works really well for AOC.
|
| A lot of the problems involve manipulating sets and maps, which
| Clojure makes really straightforward.
| Barrin92 wrote:
| I'll second Clojure not just for the data structures but also
| because of the high level functions the standard library
| ships with.
|
| Things like `partition`, `cycle` or `repeat` have come in so
| handy when working with segments of lists or the Conway's
| Game-of-Life type puzzles.
| bhollan wrote:
| I used MATLAB last year while I was re-learning it for work. It
| did okay, but we didn't have a license for the Image Processing
| Toolbox, which has a boatload of tools for the grid based
| problems.
| rootnod3 wrote:
| My personal choice is always Common Lisp. Absolute swiss army
| knife.
| tmtvl wrote:
| With both AoC and Project Euler I like seeing how fast I can
| get my solution to run with SBCL. Finding all palindromic
| primes below a million in less than a second is pretty neat.
| WJW wrote:
| I like to use Haskell, because parser combinators usually make
| the input parsing aspect of the puzzles extremely
| straightforward. In addition, the focus of the language on
| laziness and recursion can lead to some very concise yet
| idiomatic solutions.
|
| Example: find the first example for when this "game of life"
| variant has more than 1000 cells in the "alive" state.
|
| Solution: generate infinite list of all states and iterate over
| them until you find one with >= 1000 alive cells.
| let allStates = iterate nextState beginState # infinite list of
| consecutive solutions let solution = head $ dropWhile
| (\currentState -> numAliveCells currentState < 1000) allStates
| lkuty wrote:
| Do you plan to share your solutions on Github or something
| similar ?
| WJW wrote:
| I actually plan on doing this year in Gleam, because I did
| the last 5 years in Haskell and want to learn a new
| language this year. My solutions for last year are on
| github at https://github.com/WJWH/aoc2024 though, if you're
| interested.
| jvuygbbkuurx wrote:
| Does this solution copy the state on each iteration?
| WJW wrote:
| Haskell values are immutable, so it creates a new state on
| each iteration. Since most of these "game of life" type
| problems need to touch every cell in the simulation
| multiple times anyway, building a new value is not really
| that much more expensive than mutating in place. The
| Haskell GC is heavily optimized for quickly allocating and
| collecting short-lived objects anyway.
|
| But yeah, if you're looking to solve the puzzle in under a
| microsecond you probably want something like Rust or C and
| keep all the data in L1 cache like some people do. If
| solving it in under a millisecond is still good enough,
| Haskell is fine.
| sltkr wrote:
| Fun fact about Game of Life is that the leading
| algorithm, HashLife[1], uses immutable data structures.
| It's quite well suited to functional languages, and was
| in fact originally implemented in Lisp by Bill Gosper.
|
| 1. https://en.wikipedia.org/wiki/Hashlife
| taolson wrote:
| Yes, there are some cool solutions using laziness that aren't
| immediately obvious. For example, in 2015 and 2024 there were
| problems involving circuits of gates that were elegantly
| solved using the Lob function:
|
| https://github.com/quchen/articles/blob/master/loeb-moeb.md
| sevenseacat wrote:
| I've been using Elixir since day one, and it works pretty well
| :)
| aloisdg wrote:
| I plan to do it in elixir too this year :)
| nemo1618 wrote:
| I made my own, with a Haskell+Bash flavor and a REPL that
| reloads with each keystroke:
| https://www.youtube.com/watch?v=r99-nzGDapg
|
| This year I've been working on a bytecode compiler for it,
| which has been a nice challenge. :)
|
| When I want to get on the leaderboard, though, I use Go. I
| definitely felt a bit handicapped by the extra typing and lack
| of 'import solution' (compared to Python), but with an ever-
| growing 'utils' package and Go's fast compile times, you can
| still be competitive. I am very proud of my 1st place finish on
| Day 19 2022, and I credit it to Go's execution speed, which
| made my brute-force-with-heuristics approach _just_ fast enough
| to be viable.
| taolson wrote:
| >I made my own, with a Haskell+Bash flavor and a REPL that
| reloads with each keystroke
|
| That was impressive! Do you have a public repo with your
| language, anywhere?
| natrys wrote:
| I am going to try and stick with Prolog as much as I can this
| year. Plenty of problems involve a lot of parsing and
| searching, both could be expressed declaratively in Prolog and
| it just works (though you do have to keep the execution model
| in mind).
| keithlfrost wrote:
| Elixir Livebook is my tool of choice for Advent of Code. The
| language is well-suited for the puzzles, I can write some
| Markdown if I need to record some algebra or my thought
| process, the notebook format serves as a REPL for instant code
| testing, and if the solution doesn't fit neatly into an
| executable form, I can write up my manual steps as well.
| incognito124 wrote:
| If I remember correctly, one of the competitive programming
| experts from the global leaderboard made his own language,
| specifically tailored to help solve AoC problems:
|
| https://github.com/betaveros/noulith
| wging wrote:
| Yes (or so I thought too!), but apparently no:
| https://blog.vero.site/post/noulith
|
| (post title: "Designing a Programming Language to Speedrun
| Advent of Code", but starts off "The title is clickbait. I
| did not design and implement a programming language for the
| sole or even primary purpose of leaderboarding on Advent of
| Code. It just turned out that the programming language I was
| working on fit the task remarkably well.")
| taolson wrote:
| AoC has been a highlight of the season for me since the
| beginning in 2015. I experimented with many languages over the
| years, zeroing in on Haskell, then Miranda as my language of
| choice. Finally, I decided to write my own language to do AoC,
| and created Admiran (based upon Miranda and other lazy, pure,
| functional languages) with its own self-hosted compiler and
| library of functional data structures that are useful in AoC
| puzzles:
|
| https://github.com/taolson/Admiran
| https://github.com/taolson/advent-of-code
| mrkaye97 wrote:
| I've been using Elixir, which has been wonderful, mostly
| because of how amazing the built in `Enum` library is for
| working on lists and maps (since the majority of AoC problems
| are list / map processing problems, at least for the first
| while)
| cyberpunk wrote:
| Enum really does feel like a superpower sometimes. I'll knock
| out some loop and then spend a few mins with h Enum.<tab> and
| realise it could've been one or two Enum functions.
| yoyohello13 wrote:
| Haskell is my favorite for advent of code. Finally give me an
| opportunity to think in a pure functional way.
| matsemann wrote:
| I use python at work but code these in kotlin. The stdlib for
| lists is _very_ comprehensive, and the syntax is sweet. So easy
| to make a chain of map, filter and some reduction or nice util
| (foldr, zipwithnext, windowed etc). Flows very well with my
| thought process, where in python I feel list comprehensions are
| the wrong order, lambdas are weak etc.
|
| I write most as pure functional/immutable code unless a problem
| calls for speed. And with extension functions I've made over
| the years and a small library (like 2d vectors or grid utils)
| it's quite nice to work with. Like, if I have a 2D list
| (List<List<E>>), and my 2d vec, like a = IntVec(5,3), I can do
| myList[a] and get the element due to an operator overload
| extension on list-lists.
|
| and with my own utils and extension functions added over years
| of competitive programming (like it's very fluent
| vharuck wrote:
| I've done some of the problems in R. Vectorized-by-default can
| avoid a lot of boilerplate. And for problems that aren't in R's
| happy path, I learn how to optimize in the language. And then I
| try to make those optimizations non-hideous to read.
| ashdnazg wrote:
| My wife did one of the years in Matlab. Some of the problems
| translate very nicely into vectors and matrices.
| azkalam wrote:
| Terse languages with great collection functions in the standard
| libraries and tail call optimization. Haskell, OCaml, F# ...
| yxhuvud wrote:
| Crystal. Expressiveness and get-shit-done ability similar to
| the one of Ruby while being way faster in execution.
| Alex_L_Wood wrote:
| Not sure if Kotlin is non-mainstream, but being able to use the
| vast Java libraries choice and a much nicer syntax are great
| boons.
| auxym wrote:
| I've had a lot of fun using Nim for AOC for many years. Once
| you're familiar with the language and std lib, its almost as
| fast to write as python, but much faster (Nim compiles to C,
| which then gets compiled to your executable). This means that
| sometimes, if your solution isn't perfect in terms of
| algorithmic complexity, waiting a few minutes can still save
| you (waiting 5 mins for your slow Nim code is OK, waiting 5
| hours for your slow Python isn't really, for me). Of course all
| problems have a solution that can run in seconds even in
| Python, but sometimes it's not the one I figure out first try.
|
| Downsides: The debugging situation is pretty bad (hope you like
| printf debugging), smaller community means smaller package
| ecosystem and fewer reference solutions to look up if you're
| stuck or looking for interesting alternative ideas after
| solving a problem on your own, but there's still quality stuff
| out there.
|
| Though personally I'm thinking of trying Go this year, just for
| fun and learning something new.
|
| Edit: also a static type system can save you from a few stupid
| bugs that you then spend 15 minutes tracking down because you
| added a "15" to your list without converting it to an int first
| or something like that.
| AstroBen wrote:
| This question is really confusing to me because the point of
| AoC is the fun and experience of it
|
| So.. a language that you're interested in or like?
|
| Reminds me of "gamers will optimize the fun out of a game"
|
| I'm pretty clojure-curious so might mess around with doing it
| in that
| andriamanitra wrote:
| I think Ruby is the ideal language for AoC:
|
| * The expressive syntax helps keep the solutions short.
|
| * It has extensive standard library with tons of handy methods
| for AoC style problems: Enumerable#each_cons,
| Enumerable#each_slice, Array#transpose, Array#permutation, ...
|
| * The bundled "prime" gem (for generating primes, checking
| primality, and prime factorization) comes in handy for at least
| a few of problems each year.
|
| * The tools for parsing inputs and string manipulation are a
| bit more ergonomic than what you get even in Python: first
| class regular expression syntax, String#scan, String#[],
| Regexp::union, ...
|
| * You can easily build your solution step-by-step by chaining
| method calls. I would typically start with `p
| File.readlines("input.txt")` and keep executing the script
| after adding each new method call so I can inspect the
| intermediate results.
| christophilus wrote:
| I'd say Clojure because it has great data manipulation
| utilities baked into the standard library.
| andrelaszlo wrote:
| I think Crystal, Nim, Julia and F# were my favorites from last
| year's AoC
|
| I wrote a bit more about it here https://laszlo.nu/blog/advent-
| of-code-2024.html
|
| AoC is a great opportunity for exploring languages!
| makerofthings wrote:
| Another vote for Haskell. It's fun and the parsing bit is easy.
| I do struggle with some of the 2d map style questions which are
| simpler in a mutable 2d array in c++. It's sometimes hard to
| write throwaway code in Haskell!
| tonyedgecombe wrote:
| I think that whatever you know well is the best choice.
| nedt wrote:
| The language doesn't really matter much. I think I keep using
| PHP as in the years before.
| jcadam wrote:
| I tried to do it in emacs lisp one year. Made it about halfway
| :)
| alexfoo wrote:
| Perl is my starting point.
|
| It has many of the required structures (hashes/maps, ad hoc
| structs, etc) and is great for knocking up a rough and ready
| prototype of something. It's also quick to write (but often
| unforgiving).
|
| I can also produce a solution for pretty much every problem in
| AoC without needing to download a single separate Perl module.
|
| On the negative side there are copious footguns available in
| Perl.
|
| (Note that if I knew Python as well as I knew Perl I'd almost
| certainly use Python as a starting point.)
|
| I also try and produce a Go and a C solution for each day too:
|
| * The Go solution is generally a rewrite of the initial Perl
| solution but doing things "properly" and correcting a lot of
| the assumptions and hacks that I made in the Perl code. Plus
| some of those new fangled "test" things.
|
| * The C solution is a useful reminder of how much "fun" things
| can be in a language that lacks built-in structures like
| hashes/maps, etc.
| yifanl wrote:
| I believe Eric has said he always makes his first solutions
| with Perl.
| RobKohr wrote:
| I have been learning lua to do a VR game in lovr, so I'll
| probably use that to get sharper with it.
| Archit3ch wrote:
| Anyone doing this in OpenGL?
| legends2k wrote:
| I'm not sure I understand this. Most puzzles are number-
| crunching but very little to do with graphics (maybe one or
| two), so no usually OpenGL isn't used AFAIK.
|
| Of course, folks may use it to visualise the puzzles but not to
| solve them.
| ben-schaaf wrote:
| You definitely could do it all in shaders. People have done
| crazier things.
| holyknight wrote:
| I never understood the craze for "Advent of code". Already at
| this time of the year the last thing I want to do is code even
| more.
| ls-a wrote:
| I agree. Didn't these puzzles ruin interviewing for many years
| now. AI came along and they're still doing it. Some things will
| needlessly drag on before they die I guess
| MattRix wrote:
| How do they ruin interviewing? The whole point of these
| puzzles is that they're meant to be fun to solve, not a means
| to an end, but enjoyable for what they are.
| ls-a wrote:
| Tell HR, they don't seem to get it
| legends2k wrote:
| By the same token, AI came along and we all still have
| intelligence, needless, eh? I mean people reading and writing
| stuff has nothing to do with AI. I don't see how some people
| see everything as a zero-sum game.
| ls-a wrote:
| All AI is doing is solving these puzzles, which proves they
| don't need any form of intelligence. You're wrong for
| associating AI with human intelligence. It will never
| happen. It might be faked once, like the moon landing, but
| that's it.
| phartenfeller wrote:
| Well some people like to code and logic puzzles. And especially
| as it is in its raw form where you can forget all the noise you
| encounter while coding professionally with many hoops and
| responsibilities.
| davidcbc wrote:
| People like different things
| ls-a wrote:
| and dislike different things
| wkjagt wrote:
| I code for fun, even in December.
| kylegalbraith wrote:
| Excited to see AOC back and I think it was a solid idea to get
| rid of the global leaderboard.
|
| We (Depot) are sponsoring this year and have a private
| leaderboard [0]. We're donating $1k/each for the top five
| finishers to a charity of their choice.
|
| [0] https://depot.dev/events/advent-of-code-2025
| Arainach wrote:
| Isn't a publicly advertised private leaderboard - especially
| with cash prizes - against the new guidance? Certainly the
| spirit of the guidance.
|
| >What happened to the global leaderboard? The global
| leaderboard was one of the largest sources of stress for me,
| for the infrastructure, and for many users. People took things
| too seriously, going way outside the spirit of the contest;
| some people even resorted to things like DDoS attacks. Many
| people incorrectly concluded that they were somehow worse
| programmers because their own times didn't compare. What
| started as a fun feature in 2015 became an ever-growing
| problem, and so, after ten years of Advent of Code, I removed
| the global leaderboard. (However, I've made it so you can share
| a read-only view of your private leaderboard. *Please don't use
| this feature or data to create a "new" global leaderboard.*)
| ahoka wrote:
| This kind of crap is the reason we can't just enjoy an AoC
| anymore.
| codr7 wrote:
| Agreed, reward participation, not results.
| IsraelAfangideh wrote:
| This will be my first one! My primary languages are Typescript
| and Java. Looking forward to it!
| jeroenhd wrote:
| While part of the fun is doing the daily tasks with your
| friends, you can still access the previous years and their
| challenges if you want to continue after advent!
| gray_-_wolf wrote:
| I am very happy that we get the advent of code again this year,
| however I have read the FAQ for the first time, and I must admit
| I am not sure I understand the reasoning behind this:
|
| > If you're posting a code repository somewhere, please don't
| include parts of Advent of Code like the puzzle text or your
| inputs.
|
| The text I get, but the inputs? Well, I will comply, since I am
| getting a very nice thing for (almost) free, so it is polite to
| respect the wishes here, but since I commit the inputs (you know,
| since I want to be able to run tests) into the repository, it is
| bit of a shame the repo must be private.
| sevenseacat wrote:
| I use git-crypt to encrypt the inputs in my public repo
| https://www.agwa.name/projects/git-crypt/ :)
| rawling wrote:
| I don't push my solutions publicly, but I made an input
| downloader so you can input your cookie from your browser and
| load (and cache) the inputs rather than commit them.
| gerikson wrote:
| If enough inputs are available online, someone can presumably
| collect them and clone the entire project without having access
| to the puzzle input generation code, which is the "secret
| sauce" of the project.
| losvedir wrote:
| Are you saying that we all have different inputs? I've never
| actually checked that, but I don't think it's true. My
| colleagues have gotten stuck in the same places and have
| mentioned aspects of puzzles and input characteristics and
| never spoken past each other. I feel like if we had different
| inputs we'd have noticed by now.
| Jtsummers wrote:
| He puts together multiple inputs for each day, but they do
| repeat over users. There's a chance you and your colleagues
| have the same inputs.
|
| He's also described, over the years, his process of making
| the inputs. Related to your comment, he tries to make sure
| that there are no features of some inputs that make the
| problem especially hard or easy compared to the other
| inputs. Look at some of the math ones, a few tricks work
| most of the time (but not every time). Let's say after some
| processing you get three numbers and the solution is their
| LCM, that will probably be true of _every_ input, not just
| coincidental, even if it 's not an inherent property of the
| problem itself.
| rawling wrote:
| You do get different inputs, but they largely share
| characteristics so good solutions should always work and
| naive ones should consistently fail.
|
| There has been the odd puzzle where some inputs have
| allowed simpler solutions than others, but those have stood
| out.
| pxx wrote:
| I don't know how much they "stand out" because their
| frequency makes it so that the optimal global leaderboard
| strat is often to just try something dumb and see if you
| win input roulette.
|
| if we just look at the last three puzzles: day 23 last
| year, for example, admitted the greedy solution but only
| for some inputs. greedy clearly shouldn't work (shuffling
| the vertices in a file that admits it causes it to fail).
| pxx wrote:
| It's only a small selection of inputs.
|
| I have a solve group that calls it "Advent of Input
| Roulette" because (back when there was a global
| leaderboard) you can definitely get a better expected score
| by just assuming your input is weak in structural ways.
| alexfoo wrote:
| It depends on the individual problem, some have a smaller
| problem space than others so unique inputs would be tricky
| for everyone.
|
| But there are enough possible inputs that most people
| shouldn't come across anyone else with exactly the same
| input.
|
| Part of the reason why AoC is so time consuming for Eric is
| that not only does he design the puzzles, he also generates
| the inputs programmatically, which he then feeds through
| his own solver(s) to ensure correctness. There is a team of
| beta testers that work for months ahead of the contest to
| ensure things go smoothly.
|
| (The adventofcode subreddit has a lot more info on this.)
| 12345hn6789 wrote:
| It is quite odd to call this advent when it ends halfway into the
| month rather than on Christmas. But I will have fun doing them
| either way
| smokel wrote:
| It may have made more sense to start on Christmas Day, matching
| the Twelve Days of Christmas [1].
|
| [1] https://en.wikipedia.org/wiki/Twelve_Days_of_Christmas
| noirscape wrote:
| Taking out the public leaderboard makes sense imo. Even when you
| don't consider the LLM problem, the public Leaderboard's design
| was never really suited for anyone outside of the very specific
| short list of (US) timezones where competing for a quick solution
| was every feasible.
|
| One thing I do think would be interesting is to see solution rate
| _per hour block_. It 'd give an indication of how popular advent
| of code is across the world.
| phatfish wrote:
| LLMs spoiled it, but it was fun to see the genuine top times.
| Watching competitive coders solve in real time is interesting
| (Youtube videos), and i wouldn't have discovered these without
| the leader board.
| phplovesong wrote:
| I usually use multiple languages. Ocaml anf Go are always a pick.
| This year i think i want to try Gleam, and Haxe too.
| georgehotz wrote:
| I support the no global leaderboard. I was in 7th place last year
| but quickly got bored maintaining the aggressive AI pipeline
| required to achieve that. If I wanted to maintain pipelines I'd
| just do work, and there will never be a good way to prevent
| people from using AI like this. Advent of Code should be fun,
| thank you for continuing to do it. I'm looking forward to
| casually playing this year!
| minitech wrote:
| It was pretty boring trying to place against aggressive AI
| pipelines like yours throughout the explicit requests not to
| use them[1]. I'm sorry to hear it became boring for you too.
|
| [1]
| https://web.archive.org/web/20241201070128/https://adventofc...
| georgehotz wrote:
| I mean, everyone else was using them too, how can you not?
| That was the name of the game if you wanted to be competitive
| in 2024. Not using them would be like trying to do
| competitive pro cycling without steroids, basically
| impossible.
| minitech wrote:
| It's more like playing a casual tournament at your local
| chess club without an engine.
| NewsaHackO wrote:
| Saying everyone else is cheating is not a valid excuse for
| cheating. It's why aatrong became a pariah, even though he
| and everyone else was EPO doping.
| herni wrote:
| Gotta love the classic "everyone else is cheating too"
| karel-3d wrote:
| "It was boring to run a cycling contest on a motorbike."
|
| Although there are now rumours of hidden motors in Tour de
| France bicycles. So, I guess it's the same.
| makerofthings wrote:
| The FAQ was pretty clear about not using AI to get on the
| leaderboard last year.
| pred_ wrote:
| So, publicly admitting that you broke the rules and are part of
| the reason we can't have nice things. Why?
| bitbasher wrote:
| I'd like to play, sadly you can't without logging in with google,
| github, etc.
| Jtsummers wrote:
| You can always create a throwaway account on one of those
| services. It's not that hard.
| bitbasher wrote:
| You could, but you shouldn't have to. If you want to sign up
| for XYZ, you need to sign up for BigCorp, you need to add
| your phone number to verify your account, etc.
|
| No thanks.
| acedTrex wrote:
| You can log in with reddit, dont need a phone number for
| that one. And if you have an HN account you probably have a
| reddit acct lol
| HendrikHensen wrote:
| The "etc" is pretty important here. You can log in using
| Reddit, and you can create a random throwaway Reddit account
| without filling in any other details (no email address or phone
| number required).
| chucksmash wrote:
| I believe they no longer allow new accounts without an email
| address.
|
| It used to be that reddit had a user creation screen that
| looked like you needed to input an email address, but you
| could actually just click "Next" to skip it.
|
| The last time I had cause to make a reddit account, they no
| longer allowed this.
| jeroenhd wrote:
| Having done my own auth I get why they do it this way. LLMs are
| already a massive problem with AoC, I imagine an anonymous
| endpoint to validate solutions would be even worse.
|
| Having done auth myself, I can also understand why auth is
| being externalised like this. The site was flooded with bots
| and scrapers long before LLMs gained relevance and adding all
| the CAPTCHAs and responding to the "why are you blocking my
| shady CGNAT ISP when I'm one of the good ones" complaints is
| just not worth it. Let some company with the right expertise
| deal with all of that bullshit.
|
| I'd wish the site would have more login options, though. It's a
| tough nut to crack; pick a small, independent oauth login
| service not under control of a bit tech company and you're
| basically DDOSing their account creation page for all of
| December. Pick a big tech company and you're probably not
| gaining any new users. You can't do decentralized auth because
| then you're just doing authentication DDOS with extra steps.
|
| If I didn't have a github account, I'd probably go with a
| throwaway reddit account to take part. Reddit doesn't really do
| the same type of tracking Twitter tries to do and it's probably
| the least privacy invasive of the bunch.
| udev4096 wrote:
| Agreed. I think having an option for codeberg would be great
| quirino wrote:
| Small anecdote:
|
| In the IEEEXTREME university programming competition there are
| ~10k participating teams.
|
| Our university has a quite strong Competitive Programming program
| and the best teams usually rank in the top 100. Last year a team
| ranked 30 and it's wasn't even our strongest team (which didn't
| participate)
|
| This year none of our teams was able to get in the top 1000. I
| would estimate close to 99% of the teams in the Top 1000 were
| using LLMs.
|
| Last year they didn't seem to help much, but this year they
| rendered the competition pointless.
|
| I've read blogs/seen videos of people who got in the AOC global
| leaderboard last year without using LLMs, but I think this year
| it wouldn't be possible at all.
| letmetweakit wrote:
| Man, those people using LLMs in competitive programming ...
| where's the fun in that? I don't get people for whom it's just
| about winning, I wish everyone would just have some basic form
| of dignity and respect.
| jvanderbot wrote:
| Yeah, it's like bringing a ~bike~ motorcycle to your
| marathon. But if you can get away with it, there will always
| be people doing it.
|
| Imagine the shitshow that gaming would be without any kind of
| anti-cheat measures, and that's the state of competitive
| programming.
| integralid wrote:
| Why is that strange? Competitive programming, as the name
| suggests, is about competing. If the rules allow that, not
| using LLM is actually more like running tour de France.
|
| If the rules don't allow that and yet people do then well,
| you need online qualifiers and then onsite finals to pick
| the real winners. Which was already necessary, because
| there are many other ways to cheat (like having more people
| than allowed in the team).
| jvanderbot wrote:
| I'm a bit surprised you can honestly believe that a
| competition of humans isn't somehow different if allowed
| to use solution-generators. Like using a calculator in an
| arithmetic competition. Really?
|
| It's not much different than outlawing performance
| enhancing drugs. Or aimbots in competitive gaming. The
| point is to see what the limits of human performance are.
|
| If an alien race came along and said "you will all die
| unless you beat us in the IEEE programming competition",
| I would be all for LLM use. Like if they challenged us to
| Go, I think we'd probably / certainly use AI. Or chess -
| yeah, we'd be dumb to not use game solvers for this.
|
| But that's not in the spirit of the competition if it's
| University of Michigan's use of Claude vs MIT's use of
| Claude vs ....
|
| Imagine if the word "competition" meant "anything goes"
| automatically.
| Ekaros wrote:
| Weirdly I feel lot more accepting of LLMs in this type of
| environment than in making actual products. Point is doing
| things fast and correct enough. So in someways LLM is just
| one more tool.
|
| With products I want actual correctness. And not something
| thrown away.
| throwaway0123_5 wrote:
| Given what I understand about the nature of competitive
| programming competitions, using an LLM seems kind of like
| using a calculator in an arithmetic competition (if such a
| thing existed) or a dictionary in a spelling bee.
| mbb70 wrote:
| The goal of "actual projects" is also fast and correct
| enough though
| loeg wrote:
| These contests are about memorizing common patterns and
| banging out code quickly. Outsourcing that to an LLM
| defeats the point. You can say it's a stupid contest
| format, and that's fine.
|
| (I did a couple of these in college, though we didn't
| practice outside of competition so we weren't especially
| good at it.)
| jama211 wrote:
| We're starting to get to a point where the ai can generate
| better code than your average developer, though. Maybe not
| a great developer yet, but a lot of products are written by
| average developers.
| evil-olive wrote:
| > I don't get people for whom it's just about winning, I wish
| everyone would just have some basic form of dignity and
| respect.
|
| reminds me of something I read in "I'm a high schooler. AI is
| demolishing my education." [0,1] emphasis added:
|
| > During my sophomore year, I participated in my school's
| debate team. I was excited to have a space outside the
| classroom where creativity, critical thinking, and
| intellectual rigor were valued and sharpened. I love the rush
| of building arguments from scratch. ChatGPT was released back
| in 2022, when I was a freshman, but the debate team weathered
| that first year without being overly influenced by the
| technology--at least as far as I could tell. But soon, AI
| took hold there as well. Many students avoided the technology
| and still stand against it, but it was impossible to ignore
| what we saw at competitions: _chatbots being used for
| research and to construct arguments between rounds._
|
| high school debate used to be an extracurricular thing
| students could do for fun. now they're using chatbots in
| order to generate arguments that the students can just
| regurgitate.
|
| the end state of this seems like a variation on Dead Internet
| Theory - Team A is arguing the "pro" side of some issue, Team
| B is arguing the "con" side, but it's just an LLM generating
| talking points for both sides and the humans acting as
| mouthpieces. it still looks like a "debate" to an outside
| observer, but all the critical thinking has been stripped
| away.
|
| 0: https://www.theatlantic.com/technology/archive/2025/09/hig
| h-...
|
| 1: https://archive.is/Lda1x
| Aurornis wrote:
| > high school debate used to be an extracurricular thing
| students could do for fun.
|
| High school debate has been ruthless for a long time, even
| before AI. There has been a rise in the use of techniques
| designed to abuse the rules and derail arguments for
| several years. In some regions, debates have become more
| about teams leveraging the rules and technicalities against
| their opponents than organically trying to debate a
| subject.
| DangitBobby wrote:
| It sucks that the fun is being sucked out of debate, but
| I guess a silver lining is that the abuse of these
| tactics helps everyone understand that winning debates
| isn't about being correct, it's about being a good
| debater. And a similar principle can be applied to the
| application of law and public policy as well.
| Aurornis wrote:
| I'm a very casual gamer but even I run into obvious cheaters
| in any popular online game all the time.
|
| Cheating is rampant anywhere there's an online competition.
| The cheaters don't care about respecting others, they get a
| thrill out of getting a lot of points against other people
| who are trying to compete.
|
| Even in the real world, my runner friends always have stories
| about people getting caught cutting trails and all of the
| lengths their running organizations have to go through now to
| catch cheaters because it's so common.
|
| The thing about cheaters in a large competition is that it
| doesn't take many to crowd out the leaderboard, because the
| leaderboard is where they get selected out. If there are 1000
| teams competing and only 1% cheat, that 1% could still fill
| the top 10.
| Isamu wrote:
| It can be a matter of values from your upbringing or
| immediate environment. There are plenty of places where they
| value the results, not the journey, and they think that
| people who avoid cheating are chumps. Think about that: you
| are in a situation where you just want to do things for fun
| but everyone around you will disrespect you for not taking
| the easy way out.
| hoherd wrote:
| Yeah. I was happy to see this called out in their /about
|
| > Should I use AI to solve Advent of Code puzzles? No. If you
| send a friend to the gym on your behalf, would you expect to
| get stronger? Advent of Code puzzles are designed to be
| interesting for humans to solve - no consideration is made
| for whether AI can or cannot solve a puzzle. If you want
| practice prompting an AI, there are almost certainly better
| exercises elsewhere designed with that in mind.
| zerr wrote:
| I believe the reason is that many still use CP for hiring, so
| people go into leetcode (or AdventOfCode) grind, sadly.
| zulban wrote:
| It's a different kind of fun. Just like doing math problems
| on paper can be fun, or writing code to do the math can be
| fun, or getting AI to write the code to do the math can be
| fun.
|
| They're just different types of fun. The problem is if one
| type of fun is ruined by another.
| armchairhacker wrote:
| In 1997, Deep Blue beat Gary Kasparov, the world chess
| champion. Today, chess grandmasters stand no chance against
| Stockfish, a chess engine that can run on a cheap phone. Yet
| chess remains super popular and competitive today, and while
| there are occasional scandals, cheating seems to be mostly
| prevented.
|
| I don't see why competitive debate or programming would be
| different. (But I understand why a fair global leaderboard for
| AOC is no longer feasible).
| ewidar wrote:
| Online chess competitions actually spend quite a lot on
| preventing cheating, and even then it's a common talking
| point.
| matsemann wrote:
| When I did competitions like these at uni (~10-15 years ago),
| we all used some thin-clients in the computer lab where the
| only webpages one could access were those allowed by the
| competition (mainly the submission portal). And then some
| admin/organizers would feed us and make sure people didn't
| cheat. Maybe we need to get back to that setup, heh.
| quirino wrote:
| Serious in-person competitions like ICPC are still effective
| against cheating. The first phase happens in a limited number
| of venues and the computers run a custom OS without internet
| access. There are many people watching so competitors don't
| user their phones, etc.
|
| The Regional Finals and World Finals are in a single venue
| with a very controlled environment. Just like the IOI and
| other major competitions.
|
| National High School Olympiads have been dealing with bigger
| issues because there are too many participants in the first
| few phases, and usually the schools themselves host the
| exams. There has been rampant cheating. In my country I
| believe the organization has resorted to manually reviewing
| all submissions, but I can only see this getting increasingly
| less effective.
|
| This year the Canadian Computing Competition didn't
| officially release the final results, which for me is the
| best solution:
|
| > Normally, official results from the CCC would be released
| shortly after the contest. For this year's contest, however,
| we will not be releasing official results. The reason for
| this is the significant number of students who violated the
| CCC Rules. In particular, it is clear that many students
| submitted code that they did not write themselves, relying
| instead on forbidden external help. As such, the reliability
| of "ranking" students would neither be equitable, fair, or
| accurate.
|
| Available here: [PDF] https://cemc.uwaterloo.ca/sites/default
| /files/documents/2025...
|
| Online competitions are just hopeless. AtCoder and Codeforces
| have rules against AI but no way to enforce them. A minimally
| competent cheater is impossible to detect. Meta Hacker Cup
| has a long history and is backed by a large company, but had
| its leaderboard crowded by cheaters this year.
| gregdeon wrote:
| Oof. I had a great time cracking the top 100 of Advent of Code
| back in 2020. Bittersweet to know that I got in while it was
| still a fun challenge for humans.
| singron wrote:
| BTW the page mentions Alternate Styles, which is an obscure
| feature in firefox (View -> Page Styles). If you try it out, you
| will probably run into [0] and not be able to reset the style.
| The workaround is to open the page in a different tab, which will
| go back to the default style.
|
| 0: https://bugzilla.mozilla.org/show_bug.cgi?id=1943796
| jjice wrote:
| I _love_ the Advent of Code. I actually (selfishly) love that
| it's only 12 days this year, because by about half way, I'm
| struggling to find the time to sit down and do the fantastic
| problems because of all the holiday activities IRL.
|
| Huge thanks to those involved!
| PapstJL4U wrote:
| Yeah, last year I only got to Day7 (on dec 26). I hope the
| smaller amount reduces "the fear of falling behind".
| DangitBobby wrote:
| I agree so much. Maybe I'll finally get a year done!
| schaefer wrote:
| I'm so excited for this year.
| udev4096 wrote:
| Would love to know which exotic and niche languages are people
| going to use for this year. I am personally thinking of trying
| out Crystal or Elixir
| christophilus wrote:
| I'm probably going to use rescript. Though I may do Gleam or
| Roc.
| jeroenhd wrote:
| I find it interesting how many sponsors run their own "advent of
| <x>". So far I've seen "cloud", "FPGA", and a "cyber security"
| one in the sponsors pages (although that last one is one I
| remember from last year).
|
| I'm also surprised there are a few Dutch language sponsors. Do
| these show up for everyone or is there some kind of region
| filtering applied to the sponsors shown?
| codr7 wrote:
| I've been looking forward to this!
|
| It's kotlin and shik for me this year, probably a bit of both.
| And no stupid competitions, AoC should be fun.
|
| https://gitlab.com/codr7/shik
| d--b wrote:
| Personally, I never understood the grind of the advent of code.
| This is exactly the kind of stuff I am grateful to be able to
| delegate to a LLM.
| Snacklive wrote:
| why would delegate to an LLM something that is supposed to be
| fun. THIS specifically is the kind of stuff you shouldn't
| delegate to an LLM
| poulpy123 wrote:
| Going blind with uiua this year.
| smokel wrote:
| For those who think this is a typo, uiua [1] (pronounced "wee-
| wuh") is a stack-based array programming language.
|
| I solved a few problems with it last year, and it is amazing
| how compact the solutions are. It also messes with your head,
| and the community surrounding it is interesting. Highly
| recommended.
|
| [1] https://www.uiua.org/
| dang wrote:
| Related:
|
| _Uiua - A stack-based array programming language_ -
| https://news.ycombinator.com/item?id=42590483 - Jan 2025 (6
| comments)
|
| _Uiua: A minimal stack-based, array-based language_ -
| https://news.ycombinator.com/item?id=37673127 - Sept 2023
| (104 comments)
| alexfoo wrote:
| Looking forward to it but also sad that it is "only" 12 puzzles,
| but I completely respect Eric's decision to scale it back.
|
| I've got 500 stars (i.e. I've completed every day of all 10
| previous years) but not always on the day the puzzles were
| available, probably 430/500 on the day. (I should say I find the
| vast majority of AoC relatively easy as I've got a strong
| grounding in both Maths and Comp Sci.)
|
| First of all I only found out about AoC in 2017 and so I did 2015
| and 2016 retrospectively.
|
| Secondly I can keep up with the time commitments required up
| until about the 22nd-24th (which is when I usually stop working
| for Christmas). From then time with my wife/kids takes
| precedence. I'll usually wrap up the last bits sometime from the
| 27th onwards.
|
| I've never concerned myself with the pointy end of the
| leaderboards due to timezones as the new puzzles appear at 5am
| local time for me and I've no desire to be awake at that time if
| I can avoid it, certainly not for 25 days straight. I expect
| that's true of a large percentage of people participating in AoC
| too.
|
| My simple aim every day is that my rank for solving part 2 of a
| day is considerably lower than my rank for solving part 1.
|
| (To be clear, even if I was up and firing at 5am my time every
| day I doubt I could consistently get a top 100 rank. I've got ten
| or so 300-1000 ranks by starting ~2 hours later but that's about
| it. Props to the people who can consistently appear in the top
| 100. I also start most days from scratch whilst many people
| competing for the top 100 have lots of pre-written code to parse
| things or perform the common algorithms.)
|
| I also use the puzzles to keep me on my toes in terms of
| programming and I've completed every day in one of Perl, C or Go
| and I've gone back and produced solutions in all 3 of those for
| most days. Plus some random days can be done easily on the
| command-line piping things through awk, sed, sort, grep, and the
| like.
|
| The point of AoC is that everyone is free to take whatever they
| want from it.
|
| Some use it to learn a new programming language. Some use it to
| learn their first language and only get a few days into it. Some
| use it to make videos to help others on how to program in a
| specific language. Some use it to learn how/when to use
| structures like arrays, hashes/maps, red-black trees, etc, and
| then how/when to use classic Comp Sci algorithms like A* or SAT
| solvers, Djikstra's, etc all the way to some random esoteric
| things like Andrew's monotone chain convex hull algorithm for
| calculating the perimeter of a convex hull. There are also the
| mathsy type problems often involving Chinese Remainder Theorem
| and/or some variation of finite fields.
|
| My main goal is to come up with code that is easy to follow and
| performs well as a general solution rather than overly specific
| to my individual input. I've also solved most years with a sub 1
| second total runtime (per year, so each day averages less than
| 40msec runtime).
|
| Anyway, roll on tomorrow. I'll get to the day 1 problem once I've
| got my kid up and out the door to go to school as that's my
| immediate priority.
| deergomoo wrote:
| > You don't need a computer science background to participate -
| just a little programming knowledge and some problem solving
| skills will get you pretty far.
|
| Every time I see this I wonder how many amateur/hobbyist
| programmers it sets up for disappointment. Unless your definition
| of "pretty far" is "a small number of the part ones", it's simply
| not true.
___________________________________________________________________
(page generated 2025-11-30 23:00 UTC)