Results April Fools' Contest

The results of the April Fools' Contest are here!

Benjamin Schmid
News

For a whole week at the start of April, participants and organizers alike tried their best at cracking the challenging problems that Mouse Binna and Mouse Stofl came up with. Let’s review what happened!

First of all, big congratulations to Hannah Oss and Daniel Rutschmann for winning bragging rights!

While Hannah only had to spend 2 coins on her prize, Daniel spent a whopping 13’371’337 coins to get his bragging rights. As it turns out, you just had to take on an enormous amount of debt to win:

jj25_dacin21_debt
 jj25_ultrafalcon jj25_hannah jj25_ursus jj25_dacin21 jj25_alex jj25_johannes jj25_leo

In the end, out of the available 41 tasks, there were only two tasks which no one solved for 100 points: oldisnew and bestfriendsunloadedreloaded. While the author of the contest does have a solution for the former, whether the latter is solvable is still an open problem.

One of the features I was very excited about seeing how it played out was the interactive solving using the editor. It worked surprisingly well and produced very amusing code, and even the more challenging tasks like implementing a segment tree supporting many different operations was solved successfully. In total, 132 chat sessions were submitted and 11 people solved catactiontriangle.

Speaking of submissions, there were a total of 1980 of them during the contest. The top tasks by number of submissions were majority with 413, addition with 256, error with 185, and bottles with 184 respectively. Though all these submissions for majority did not turn into many solves, with only 5 people managing to solve it successfully. Interestingly, more people solved bottles (22) than tennis (18), even though tennis was supposed to be the easiest task in the contest.

The cheese task created some very nice profile pictures, I have included my favorites in this post.

Unfortunately, the telephone game with task descriptions did not work out as intended. The idea was to get big chains of alternating between writing a description based on code, and then solving the task based on this description. Due to various reasons this didn’t really work and the longest chain was just three items long.

Some tweaks also had to be done during the contest itself. For example, many people seemed to dislike additionreloaded for some unknown reason, which prevented them from solving the whole addition saga involving a total of 8 tasks. Due to this, the dependencies were adjusted so additionreloaded was no longer needed to unlock the further tasks.

In bestfriendsreloaded the brainfuck interpreter/compiler used to check submissions turned out to be way too slow and use multiple gigabytes of memory. This may or may not be related to the fact that the author did not have a solution for this task themselves… The task had to be disabled until the issue could be resolved. But armed with a correct solution by Daniel, the task limits could be adjusted and the brainfuck interpreter could be optimized to recognize often used patterns and run them much faster. But even so, I gave up on trying to grade the task in a reasonable time frame and adjusted the grading timeout to 2 hours (compared to 15 minutes for the other tasks). Luckily, the actual grading usually only took 6 minutes though.

The farm posed even more challenges, with solutions scaling their operations way beyond what was tested beforehand and unearthing some slight scaling issues of the puzzles. With the puzzles getting into multiple megabytes, the clients started to see failing requests due to size limits. One of the farmers convinced me to increase these limits so they could expand their farm even more. But this turned out to be a mistake, as now the server started to have issues with very long request times. And restarting the farm server started to fail as the main backend could no longer synchronize the state with the farm server due to the huge puzzles. To get some peace while resolving the issue, a new feature to burn down individual farms had to be implemented. After limiting the puzzle sizes and unburning the affected farms, everything was running smoothly again. Sadly, this fire in the farm caused one of the farmers to miss skill level 100 by a few minutes.

But of course, the farm tasks were not intended to be solved by farming anyways, as the intended [1] solution was to just loan some gourmet stars and be done with it.

The star of the contest were obviously the prizes! The contestants had the chance to win a wide variety of random stuff we found in our cupboard. Besides the bragging rights mentioned above, twelve prizes were purchased, with Johannes purchasing six of them. These will be delivered in the next few months at onsite events.

Of course, the scores are also somewhat important. As mentioned above, there were a total of 41 tasks which could be solved, and quite a few people managed to solve a lot of them. In total, there were 26 people with more than 100 points, and an additional 8 who got 2 points in addition and decided they couldn’t be bothered.

Rank User Score Solved Problems
1 Daniel Rutschmann 3660 36
2 Johannes Kapfhammer 3055 30
3 Ferdinand Ornskov 2522 24
4 Leo Chen 1917 18
5 Ursus Wigger 1508 14
6 Jan Schär 1489 14
7 Benjamin Andreas Hausherr 1404 13
8 Albert Kovacs 700 6
9 Hannah Oss 695 6
10 Yaël Arn 630 6

Looking at the scores over time, we can see a clear upwards trend. While the first place was never contested, the other ranks saw quite a few changes during the contest.

jj25_scores
 

If you did not have time to solve all of the tasks, you can still try them on the upsolve grader for the next few weeks (or months, depending on interest). Give the unsolved tasks a go, maybe we manage to find full solutions for them after all?

A big thanks to everyone who participated in this fun little contest, I hope you enjoyed the tasks as much as I did creating them.

[1]the author was not aware of this solution before the contest