#TuentiChallenge8: Show me more numbers

Jakub Holubansky
Jun 13, 2018 · 3 min read

Participants

This year, 650 people passed the first problem, and four of them solved all the problems correctly. This is the second time in a row that we had 15 challenges instead of the usual 20, but we made them a little bit easier this year, since during the last edition nobody managed to solve the last problem in time.

There was only one “stopper” (problem with less solves than the next one) this time: problem 7, in which consisted in downloading a Game Boy ROM, extracting the base64-encoded string it contained, decoding it, reversing the word order and then executing it with a Pikalang parser. The steps weren’t straightforward, so many people skipped the problem after running out of ideas.

The second problem required the usage of 128-bit or arbitrary-precision integers. A lot of participants may have not known about them, and so it has the highest amount of users who either stopped at the test phase or skipped the problem.

Problem 11 had the highest ratio of wrong answers (and almost the same amount as problems 4 or 5!). It was solvable by transforming the venue into a graph and finding the minimum vertex cover. Almost all the participants who tried other methods ended up submitting a wrong answer.

Languages

A total of 31 languages were used this year to solve the problems. You can clearly see that C++ and Python dominate most of the problems, although C++’s ratio is very small in problems 2 and 8, which were normally solved using arbitrary-precision integers (and Python natively includes this functionality!).

As for the less common languages, bc and Picat were only used for one solution. PARI/GP appeared three times: one solution was fully written in it, while the other two solutions were a mix of Perl and GP (they were both Perl scripts which generated GP code, which outputted the correct solution).

The strangest we’ve seen is an iOS application which outputted the solution through the debugging log. You can also see the most used languages per challenge in the following graph (excluding challenges 7 and 12, in which people normally just uploaded plain-text instructions for finding the solution):

Lines of code

The shortest code this year goes to a 103 bytes long bash script which executes an AWK program. The largest, however, is a 1214 lines long Swift solution for problem 2 which included code for the BigInt class. Looking at the average lines of code figures of the most popular languages, Python wins another edition with only 57 lines per solution, one line better than last year!

Writeups and solutions

We have compiled some solutions and writeups made by participants that you may find interesting. We hope you like them.

Making Tuenti

Sharing the daily awesomeness of making Tuenti

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store