📜 ⬆️ ⬇️

Top Achievement Code

Why do 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 World Cup finals. Major international companies organize their contests and sponsor reputable competitions like ACM-ICPC . Four world programming champions work in our team, and for the fourth time, together with Codeforces, we are holding the VK Cup - our own VKontakte tournament.
')
image
Managing Director of VKontakte Andrei Rogozov, founder of Codeforces Mikhail Mirzayanov with the winners and prize-winners of VK Cup 2017

Where do champions come from?


Often, everything starts from school: computer science competitions, student competitions, and then stages of international championships. Sports programming requires, first of all, a lot and creative thinking, and not to act on some standard pattern. Despite this, the ability to solve Olympiad tasks also needs to be trained. Gathering, lectures, soliciting infinite sets of tasks - all this is somewhat similar to the training of ordinary athletes.

If you have already chosen another professional way, do not be upset. A glimpse into the world of sports programming is possible in a simpler way.

On the Codeforces platform, anyone can try their hand at solving problems of different levels of complexity. For each task solved in the framework of rating rounds, the participant receives points. Based on these points, round participants 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. The selection of tasks over the years of the project has accumulated impressive, see for yourself .

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

Mikhail Mirzayanov, the founder of Codeforces

Tournaments and Challenges


Tournament regulations may vary in detail, but the general principles are preserved. Typically, participants are given a strictly limited time, the tasks themselves can be ranked by “cost” depending on the level of complexity, and solutions 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 , each task had to be solved in a separate language.

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

Creating tasks is a separate art that requires no less preparation from the author than from 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 test the solution, you can create a set of tests on which the correct solution will work, and the wrong one - give an error (or do not fit into the limits on execution time and memory size).
  4. She is interesting. Olympiad problems are not solved "in the forehead", and even if some fundamental algorithm is peeping behind the conditions, you will have to think how to apply it, how to apply it here.

Although experienced competitors have seen thousands of different tasks and rarely memorize them in detail, the authors try to add a vivid description of the problem. The Codeforces archives come across tasks about an ardent stream of love, “fibonacci” and hipster Vasya. How to skip this?

After winning


Winners of prestigious competitions want to get to his staff the most famous IT-companies. It happens that a job offer is waiting for a participant before the contest results are announced.

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 used to constantly deal with non-trivial tasks. He is able to quickly make decisions in difficult situations and effectively use all available resources.

Of course, not all industries will have the skills of such a developer to the maximum. Excellent knowledge of fundamental algorithms and the ability to choose effective data structures allow us to attract the best of the best to the development of highly loaded complex systems, where they can express themselves fully.

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

image
Champions of ACM-ICPC 2014 - Yegor Suvorov, Dmitry Yegorov, Pavel Kunyavsky. Coach Andrei Lopatin. Two members of this team are now working VKontakte.

VK Cup


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

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

image
VK Cup 2017 finals in VKontakte headquarters

From March to July, participants solved the tasks of the qualifying rounds . Of the 2,736 teams that participated in the qualification, only the top 20 reached the final. The championship finals are traditionally held at VKontakte headquarters, Singer House on Nevsky Prospect. We told about the results of VK Cup 2017 in this article .

I want to participate!


We will be waiting for you on 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

Source: https://habr.com/ru/post/333024/


All Articles