Google Code Jam has been held annually since 2003 as a means for finding the best minds who can work at Google; since then, it has become one of the world’s largest programming championships. In recent years, it has brought together over 50,000 participants each time, half of which pass the qualification stage. This time, the number of applicants exceeded 60,000 people.

Anyone can participate in Google Code Jam. Upon sending in an application, the participants take part in the qualification round which lasts for a day. The next three rounds of the competition take place on different dates and take several hours each.

After the second round, 500 participants remain, and only 25 of them make it to Google Code Jam’s finals. Every year, the finals take place at a different place. For instance, 2017’s Google Code Jam took place in Dublin, Ireland, and this time, the competition ended in Toronto, Canada. The cash prize for winning the competition is 15,000 dollars.

Credit: twitter.com/googlecodejam
Credit: twitter.com/googlecodejam

Rules

Participants of Google Code Jam have to solve three algorithmic tasks in a set amount of time. This year, the competition’s  system has been updated, and now the participants’ code is launched on the company’s test computers. Therefore, it has to be in one of the following languages: Bash, C, C++, C# (mono), Go, Haskell (ghc), Java 8, Javascript (nodejs), Python 2, Python 3, PHP, and Ruby).

The competition’s distinctive feature is that each round involves two parts. The first one is said to be simpler, as it can be solved using less effective algorithms, and there are fewer limitations. As soon as a participant sends in their solution, they find out whether it's correct or not. If they get a message that its correct, then everything is OK; if not, they can check their answer and send in a new one. Other tasks involve using more complex algorithms. What is more, participants find out their results for these tasks only at the final’s end during the award ceremony.

This year, the finalists had to solve five tasks. According to the competition’s official analysis, the simpler ones were tasks called Jurisdiction Restrictions and Two-Tiling, and tasks like Go, Gophers!, Swordmaster and The Cartesian Job implied coming up with more complex solutions. The Go, Gophers! Task was the most popular amongst the participants, and played a key role in defining this year’s winners: from the 20 solutions accepted by the system, only 7 turned out to be completely correct.

Credit: twitter.com/googlecodejam
Credit: twitter.com/googlecodejam

Results

For the fifth time in a row, the victory went to ITMO student Gennady Korotkevich, two-times winner of ACM ICPC, five-times winner of Yandex.Algorithm, as well as winner and runner-up of many other international contests.

According to the competition’s results, he got 104 points, having got ahead of his immediate competitors Kamil Debowski from Poland (second place, 96 points) and Makoto Soejima from Japan (third place, 86 points). Mikhail Ipatov, ACM-ICPC 2018’s champion and student of Lomonosov Moscow State University also made it to the top-5 with 86 points, though his timing was slightly behind that of the Japanese student. You can see the competition’s results in detail here.

Google Code Jam finalists. Credit: twitter.com/googlecodejam
Google Code Jam finalists. Credit: twitter.com/googlecodejam

According to Gennady Korotkevich, the distinguishing feature of this year’s Google Code Jam is the changes in the competition’s rules. Whereas before, participants launched their solutions themselves, now they were tested on the jury’s computers. The system used for the competition has also been redeveloped. What’s more, in previous years the participants could choose an OS to work with - Linux or Windows, and now Linux has become their only option.

“In such competitions, every single detail often plays a role, and winners are identified during the last few minutes. As the conditions we had to work in proved to be unfamiliar, it was important to not waste time on technical issues and focus on key aspects, comments the competition’s winner. As you can see from the leaderboard, I became one of the few participants to solve the Two-Tiling task. It didn’t take much time to solve: I spent about an hour and a half on it, given that we had four hours for the whole of the final round. Though it didn’t bring much points, it was this very task that brought me victory.”

Gennady Korotkevich will be starting his PhD at ITMO University in September. Just recently, he successfully completed one of his entrance examinations remotely from Canada.