Code of Excellence

    Why we love sports programming and why you should love it too.

    image

    Sports programming combines tournaments of various levels - from school and student competitions to the finals of the World Cup. The largest international companies organize their contests and sponsor reputable competitions like ACM-ICPC . There are four programming world champions in our team, and for the fourth time, together with Codeforces, we are hosting the VK Cup , our own VKontakte tournament.

    image
    VKontakte managing director Andrey Rogozov, Codeforces founder Mikhail Mirzayanov with winners and prize-winners of VK Cup 2017

    Where do the champions come from?


    Often, everything starts from school: computer science competitions, student competitions, and then the stages of international championships. Sports programming requires, first of all, a lot and inventive thinking, and not acting on some standard pattern. Despite this, the ability to solve olympiad problems also needs to be trained. Gatherings, lectures, and solving endless sets of tasks - all this is somewhat reminiscent of the training of ordinary athletes.

    If you have already chosen another professional path, do not be upset. You can look into the world of sports programming in a simpler way.

    On the Codeforces platform, anyone can try their hand at solving problems of various difficulty levels. For each problem solved within the framework of the rating rounds, the participant receives points. Based on these points, the participants in the rounds are ranked and get a rating . After the end of the round, you can read the analysis of the solution if you could not find it yourself. A selection of tasks over the years the project has accumulated is impressive, see for yourself .

    I’m sure that programming competitions are a fascinating and effective way to learn how to code, understand data structures and develop algorithmic thinking. Try participating, Codeforces rounds are open to everyone and take place every week. Our goal is to offer interesting tasks for each participant!

    Mikhail Mirzayanov, founder of Codeforces

    Tournaments and Tasks


    Tournaments may vary in detail, but general principles remain. Usually, participants are given a strictly limited time, the tasks themselves can be ranked by “cost” depending on the level of complexity, and decisions are evaluated using a set of ready-made tests. The most popular sports programming language is C ++, although there are exceptions. For example, in one of the rounds of VK Cup 2017, it was necessary to solve each problem in a separate language.

    Competitions can be personal and team, with restrictions on the age of participants and without. A tournament may have a specific theme - for example, AI, exchange strategies or classic algorithms. The task may be to hack a remote server or create a neural network for good results on a synthetic dataset.

    Creating tasks is a separate art, which requires the author no less preparation than the participant himself. Past winners often take part in writing tasks for a new tournament. A good task has characteristic properties:

    1. It can be solved.
    2. It can be solved in the allotted time.
    3. To verify the solution, you can create a set of tests on which the correct solution will work, and the wrong one - give an error (or not fit into the restrictions on the execution time and memory size).
    4. She is interesting. The Olympiad problems are not solved “head on”, and even if some fundamental algorithm is overlooking the conditions, you will have to think carefully to understand how to apply it here.

    Although experienced competitors have already seen thousands of different tasks and rarely remember them in detail, the authors try to add a lively description of the problem. The Codeforces archive comes across tasks about the fiery flow of love, “fibonacciability” and Vasya's hipster. How to skip this?

    After the victory


    The winners of prestigious competitions want to get the most famous IT companies in their staff. It happens that a job offer awaits the participant even before summing up the contest.

    No wonder. In addition to the obvious (such people are smart), experience in sports programming in many cases will give an advantage to the developer. He is not afraid of difficulties, because he is used to constantly deal with non-trivial tasks. He can quickly make decisions in difficult situations and effectively use all available resources.

    Of course, not in all industries, the skills of such a developer will be used to the maximum. Excellent knowledge of fundamental algorithms and the ability to choose effective data structures make it possible to attract the best of the best to the development of highly loaded complex systems, where they can prove themselves fully.

    This applies to us - almost all VK VK developers took part in competitions. We use self-written databases created by talented programmers who have won more than once in the most prestigious championships, including ACM-ICPC.

    image
    Champions of ACM-ICPC 2014 - Egor Suvorov, Dmitry Egorov, Pavel Kunyavsky. Trainer Andrey Lopatin. Two members of this team are now working on VKontakte.

    VK Cup


    VKontakte has always supported this trend: we sponsored training in Olympiad programming at St. Petersburg State University, helped organize the Summer Computer School, and made our contribution to the creation of Codeforces. The next logical step was the organization of your own tournament.

    The history of the VK Cup began in 2012 with the first personal competition. Now the cup is held in the format of a tournament for teams of two people. The age of participants is limited - not younger than 14 and not older than 23 years.

    image
    VK Cup 2017 final at VKontakte headquarters

    From March to July, participants solved the problems of the qualifying rounds . Of the 2736 teams that took part in the qualification, only the top 20 reached the final. The championship finals are traditionally held at VKontakte headquarters, Singer House on Nevsky Prospekt. We talked about the results of VK Cup 2017in this article .

    I want to participate!


    We will be waiting for you at the VK Cup 2018. And we urge you to try your hand at other open tournaments:

    - Facebook Hacker Cup
    - Google Code Jam
    - AtCoder
    - IPSC
    - Topcoder Open
    - deadline24
    - SnackDown
    - Russian Code Cup
    - Yandex.Algorithm

    Also popular now: