TopCoder Open 2016

TopCoder Open (TCO) is a programming and designing tournament open to all TopCoder members from 18 and older who meet the eligibility criteria. There are six competition tracks; Algorithm and Marathon are contests in sports programming; in these tracks, contestants have to solve tasks using Java, C#, C++ or Python. Those participating in the "Marathon" have a lot more time for it: solving tasks for the preliminary round takes up to several weeks, and they get twelve hours for the onsite round. Contestants in the Algorithm track get only one and half hours. The other tracks are about other stages of software development: in the Development track, partner companies offer prizes for the development of a complete product, First2Finish is about adding functions or correcting a program, website or infrastructure, UI Design's participants have to develop design concepts from scratch, whereas UI Prototype track has to add back-end to an existing design.

"The tracks of the TopCoder Open envelop almost all areas of a programmer's work, and that's great, as the participants can try out new tasks. If you have an idea for a particular product, you have to understand how it will be used by the end-user, what the possible restrictions for system components can be, etc. It's a great way to become an all-rounder, so that you won't need help with your ideas, and make sure that you're capable of doing a whole project all by yourself", - shares Lydia Perovskaya, tutor at the Computer Technology Department at ITMO University.

Traditionally, all rounds except the finals are online, but since last year the organizers decided to conduct onsite rounds in tracks popular in a particular region: for instance, the regional tournament in design took place on August 6th and 7th in Yogyakarta (Indonesia), and ITMO University - Alma Mater of world's champions in programming - organized the Russian regional tournament in the Algorithm track. This event came last in a series of onsite tournaments in Beijing (China), New York (USA) and Jaipur (India).

Eight best contestants from the online rounds which started in March will get into the finals. Also, two more positions are reserved for participants of regional tournaments: tens of winners from every regional stage will compete in the so-called Wildcard Round. One can think that onsite tournaments are the easiest way to get into the finals, as you don't have to compete with thousands of programmers from all over the world. Yet, the best of the best come to these tournaments - winners of many contests and hackathons, and winning proves to be much more difficult.

56 participants came to the tournament in St. Petersburg on 3 September. Each brought his own notebook, some also carried triple adaptors and extension cords: previous experience showed that there may not be enough sockets for everyone. The whole tournament is conducted within the TopCoder Arena: all the tasks specifically developed for the regional tournament are given out, done and checked there. Participants get points for every task, and its "cost" starts decreasing as soon as they open the statement. For the most simple task with the minimal cost of 250 points, one has to calculate the minimal amount of turns in which one can defeat an opponent in a turn-based RPG if one has two types of attacks - normalAttack and buffedAttack. According to Lydia Perovskaya, even minimal skills are enough to solve such a task; still, there are two other, much more difficult tasks, and participants only have 85 minutes to solve all three.

"After the participant sends in his answers, he has to wait for the results of the preliminaries. Still, after the Coding phase comes the most important Challenge phase, where contestants check each other's solutions.  If one finds a wrong solution, or one that takes needlessly long, he can earn additional points and win back the time he lost on the previous phase. To do this, one must think up a test during which the solution gives a wrong answer: for instance, if his opponent forgot about the possibility that the input data can equal zero, and divides it, - explains Lydia Perovskaya. - It's a fun thing that it's all added to the test pool, and you can fail your own solution with your test. Often it also happens that a person fails many solutions with this test, but earns only 50 points per opponent".

Only two participants solved all the three tasks of the TopCoder Open Algorithm in St. Petersburg - Gennady Korotkevich, two-time champion of ACM ICPC, and Petr Mitrichev, two-times its silver medalist, though only Mitrichev's solution passed the system tests. Six of the winners of the regional tournament are students and graduates from ITMO: Adam Bardashevich, Boris Minaev, Nyaz Nigmatullin, Ilya Zban and Vadim Semenov. Also, Aidar Sairanov and Igor Pyishkin from St. Petersburg State University, Moscow Institute’s of Physics and Technology graduate Yakov Dlugach and Moscow State University's graduate Egor Kulikov came into ten best. All of them will have to compete with winners of other regional tournaments for a position in the finals, which will take place in Washington DC (USA) from 18th till 21st of November.