The first Hash Code was held in France in 2014 and involved a mere 200 participants. The competition gained in popularity each year; in 2017, more than 26,000 programmers from Europe, Middle East and Africa took part in the competition. This year, as many as 37,000 applicants registered for the first round of the competition.

Teams from ITMO University, too, participated in the qualification round. The first team included Andrey Stankevich, Pavel Mavrin, Pavel Kunyavskiy, and Egor Kulikov; Stankevich and Mavrin are tutors at ITMO University’s Computer Technology Department. The second team was made up of Computer Technology Department students Ivan Belonogov, Ilya Zban, and Mikhail Putilin, and Information Systems Department student Adam Bardashevich. Both teams were part of the qualifying round’s top-5 and competed for the final round’s first place.

Google Hash Code. Credit: opportunitydesk.org
Google Hash Code. Credit: opportunitydesk.org

During the competition, teams must solve optimization tasks modeled after those that Google engineers encounter in their everyday work. For example, the first year’s participants modeled optimal routes for camera-equipped cars that collect data for Google Street View. Last year’s qualifying round involved a task on the optimal distribution of YouTube videos among servers to minimize users’ wait times; in the final round, teams found ways to find cheap and efficient solutions for organizing a wireless router system in a building.

Unlike with the ACM ICPC contest, Google Hash Code’s tasks don’t have a single correct answer. Results are uploaded into a special system that automatically tallies scores, meaning that teams need to provide the most precise, correct solution. A jury of Google engineers oversees the competition. Teams can use any programming language and are given four hours to figure out a solution to their tasks.

Google Hash Code. Credit: opportunitydesk.org
Google Hash Code. Credit: opportunitydesk.org

Following the results of the qualifying round, 40 teams from 17 countries made it into the final round of Google Hash Code-2018.

This time around, the participants had to solve a task on urban planning. The global population keeps growing and more and more people are now living in cities. According to the World Bank, global urbanization reached 50% in 2008 and 54% in 2016. The growth of urban areas creates new, unusual architectural issues. The teams were asked to find ways to help urban developers use urban space efficiently and balance the residential houses’ needs in regards to utilities, public services and access to schools, hospitals, parks and the like.

The student team from ITMO University secured the first place; members of the team are all participants of the various ACM ICPC competitions from 2014 to 2017: Ilya Zban and Ivan Belonogov are last year’s world champions, Mikhail Putilin is this year’s bronze medal winner, and Adam Bardashevich is a silver and bronze medal winner of the 2016 and 2014 competitions.

ITMO University team at Google Hash Code-2018
ITMO University team at Google Hash Code-2018

“In order to find the solution, we’ve implemented several greedy heuristics and applied a local optimisation method,” – commented Ilya Zban, – “It turned out to be an effective approach not to plan a major city as a whole, but to find a solution for a small block and then fill out the city with identical blocks – not very realistic, but effective in the given task. The most difficult part for us was understanding how to tackle the problem: the methods that ended up working were not obvious to us in the beginning. What helped us win was our well-planned teamwork: we distributed sub-tasks between the members and constantly exchanged ideas.”

The team that included ITMO University tutors Andrey Stankevich and Pavel Mavrin, as well as their teammates Pavel Kunyavskiy and Egor Kulikov, placed fifth on the scoreboard. Notably enough, the top 5 spots of this year’s Google Hash Code went to Russian teams. The top three teams received prizes and certificates from Google.