Hashcode 2021 Finals

Xrefs: Problem | Scoreboard
Team: cat /dev/random | grep "to be or not to be"
Who: Jan-Willem Buurlage, Ragnar Groot Koerkamp, Timon Knigge, Abe Wits
Score: 274253375
Rank: 19 of 38

Not good.
Not bad.
Definitely ugly.

Linkerrijtje (aka top half).

I would have liked to write that I’m happy with the result, but to be fair–I’m not. Just the fact that I can’t sleep and feel the need to write this in the middle of the night surely is indication of this. Plenty of things could have gone better, and there are so many things we (I) could have done differently to actually break that elusive 300M barrier (and potentially get that top 10 place we were hoping for), that I’ll definitely be sad for a little while.


  • practice previous rounds
  • improved template (fancy local search; parameter search)
  • walk in the park / heat
  • food
  • warming up


  • early brainstorm: this is tough - moving deadlocks everything
  • scoring woes - again
  • testcase analysis - nothing obvious
  • scoreboard impressions - we’re missing something, but let’s stay in our tunnel
  • local search improvements
  • greedy heuristic tuning
  • parameter search

Post contest clarity

  • Of course, we need to move
  • Missed out 60+M on D and F, but we were clueless during the contest
  • Always moving is key – this idea never even crossed our minds once. We had assumed that moving just blocks too much and is too costly to make up for. Even though that’s just completely false for some cases.


  • scores per testcase with/out upsolving


  • stay calm
  • think more before starting to code
    • get good ideas before tunneling
    • analysis always helps - my assumptions were completely off for some
  • print %features completed as headroom indication
  • estimated max score?