Twenty-five contestants tackled three programming problems in the final round of the first ever Facebook Hacker Cup. Finalists from around the world used languages such as C++ and Java to solve set problems.
Once their submissions had been graded, Russian developer Petr Mitrichev, working in Java, was acclaimed as World Champion.
The final round of the Facebook Hacker Cup 2011 took place on Friday March 12 at Facebook's HQ in Palo Alto, California.
The prizes were awarded as follows:
1st place: Petr Mitrichev - $5,000
2nd place: Anh Tuan - $2,000
3rd place: Tiancheng Lou - $1,000
The rest of the finalists were each awarded $100.
There had been a total of 11,768 entrants to Facebook's contest and after three online elimination rounds, each requiring algorithmic problems to be solved, 25 finalists had been selected from around the world. The countries represented were: Poland (7), Russia (6), the U.S. (4), Japan (2) China (1), Germany (1), Netherlands (1), Singapore (1), Switzerland (1) and Ukraine (1).
The finalists were given two hours to solve three problems with defined input, output and constraints - and unlike many programming competitions success depended on getting the right answers in the shortest times.
"It's almost more of a math contest than a programming contest,"
said Facebook engineer David Alves, who helped organize the competition and write the problem sets - which turned out to be a formidable challenge.
You can see the problems, the competitors scores, and their source code by registering here. The problems are also available without registration.
Looking at the problems in the sort of time that the contestants had before they had to start to code something, only one of the three, Safest Place, a minimax problem, seemed relatively easy and do-able in about an hour. The other two seemed much harder with the first, Alien Game, being very difficult to fathom in the time available - even its description was tough to follow. The final problem. Party Time, is a fairly standard graph theory optimisation but very difficult to program without making an error. Look at the questions for yourself to appreciate the difficulty of the challenge.
Only three coders produced answers to all three problems and winner Petr Mitrichev was the only person to get all three answers right. Chinese developer Tiancheng Lou, who produced one wrong answer, was placed third and second place went to Anh Tuan Mitrichev, who was the fastest and most accurate of the four contestants who answered two problems. Another 10 finished one problem, with six of them getting a right answer.
Given a choice of PC or Mac, all the finalists chose PCs although several developers installed Linux rather than use Windows. They could choose any language and tool and while C++ was the most popular choice, Tiancheng Lou used Visual Basic and Petr Mitrichev used Java with IntelliJ IDEA.
Asked about his choice of language and platform Petr Mitrichev said
"It's harder to make a mistake in Java ... [IntelliJ] runs the same on all platforms so I don't care what OS I use."
More information and photos:
Facebook 2011 Hacker Cup Finals