Google Code Jam, that has been conducted annually since 2003, is considered to be among the world’s largest programming competitions: the event brings together over 50,000 programmers, as participation is open to all. 

The selection for the final round involves several stages. After submitting applications, participants take part in the qualification round that takes about a day. In order to pass, one has to get a specific number of points. Then, programmers participate in a series of three rounds, each of which takes place on a separate date and lasts for two and a half hours. Only 25 contestants remain after this online selection, and are invited to the on-site round the location of which changes every year. For example, last year’s Google Code Jam finals took place in Toronto, Canada, and this time, the venue was in San-Francisco, USA. The prize for winning the contest is 15,000 USD.

This year, Gennady Korotkevich, two-time winner of ACM ICPC (2013 and 2015), five-time winner of Yandex.Algorithm, as well as winner and runner-up of many other international contests, got first place for the 6th time. This achievement is yet to be repeated by any other of Google Code Jam participant.

Gennady got 143 points, having gotten ahead of Makoto Soejima from Japan and Andrew He, an MIT student, who got 121 points each. Two other ITMO graduates also got into the contest’s finals: Boris Minaev, another winner of 2015’s ICPC, with 56 points, and Evgeny Kaplun with 54 points. 

The full results of the competition are available here.

We’d like to add that the competition involves solving a set of algorithmic problems within a fixed period of time. Since last year, the code is tested on the company’s computers. The participants have to use one of the following programming languages: Bash, C, C++, C# (mono), Go, Haskell (ghc), Java 8, Javascript (nodejs), Python 2, Python 3, PHP, and Ruby.

This time, the final round involved six tasks with two parts each. The first was the easier one, as it can be solved with a simpler  algorithm, and the programmers face less restrictions. Upon completing it, the contestants could learn whether it was correct right on the spot, and do it over if it wasn’t.  The second part called for a more complex algorithms. What’s more, the participants only learned their results during the award ceremony. The time spent on solving the tasks also affected the score.

Gennady Korotkevich completed four of the six tasks, that is, both parts of the four tasks. In addition, he successfully solved the first part of the fifth problem and submitted a more efficient solution to it.