You may participate in the Contest if you are at least six years old. If you are under 18 years of age as of the Contest Announcement, are an employee of Yandex or affiliated companies not directly involved in organizing the Contest, or the immediate relative or family member of such a person, you may take part in the Qualification and Elimination stages of the Algorithm track, Optimization track and ML track, but not in the Final round of the Algorithm track.
Solutions submitted by the Contestant must be created solely by the contestant. Group work or problem discussion during the rounds can lead to disqualification. The exception to this rule is the ML track, where problem discussion is allowed.
In order to participate in the Contest, you need to register and provide the requested information. The Organizer reserves the right to disqualify any Contestant for submitting incorrect information during the registration process. The full list of required information is provided in the Contest regulations. Registration will open at 00:00 on February 1st, 2018 (Moscow time zone, UTC + 3). To participate in the Algorithm track, a participant has to register before the end of the Qualification stage of Algorithm track. To register for the Optimization or ML track, a participant has to register before the end of the track.
3. Conducting the tournament: Algorithm track
The contest consists of the Algorithm track, the Optimization track and the ML track
The Algorithm track has six rounds, split into the Qualification stage, the Elimination stage and the Final round. For all rounds, the problems will be original. The specified start time is in the + 3 (Moscow) time zone. Only those contestants who have correctly solved at least one problem in the Qualification stage will proceed to the Elimination stage.
The Qualification stage consists of a warm-up round and a qualification round. The warm-up round will start on February 11, 2018 at 20:00 and will last for 100 minutes. All contestants will start and finish at the same time. All contestants who solved at least one problem will advance to the Elimination stage.
The qualification round will start at February 17, 2018 at 00:00, and run for 48 hours. Contestants can start their qualification round (lasting 100 minutes) by pressing the “start virtual contest” link at any time that is convenient for them within the 48-hour period. All contestants who solved at least one problem will advance to the Elimination stage.
The Elimination stage consists of three rounds. The Elimination stage will start on March 03, 2018 at 10:00. Each round of the Elimination stage will be scored separately using the Grand Prix 30 system. The top 30 participants of each round will earn score points based on table below.
If several contestants perform equally in a round, the earned points are divided evenly between them.
Round 1 will start on March 03, 2018 at 10:00 and last for 100 minutes.
Round 2 will start on March 13, 2018 at 21:00 and last for 100 minutes.
Round 3 will start on April 08, 2018 at 15:00 and last for 100 minutes.
The Elimination stage result includes two values: the sum of the scores, and the lowest rank for the three rounds.
A Contestant will rank higher in the rankings of the Elimination stage if:
they have higher scores;
their lowest rank for the three rounds of the Elimination stage is higher (provided that the scores of two contestants are equal).
The top 25 participants of the elimination round will advance to the final round, provided that that have submitted a solution to at least one task.
The Organizer reserves the right to invite additional participants to the final round if there are declined invitations. Additional participants will be invited based on the results of the Elimination stage.
The final round will take place at Piskariovski Prospekt, building 2, block 2, Saint Petersburg, Russia, on May 19-20, 2018. Each participant who has advanced to the final round must confirm their participation and submit all the necessary documents before April 15, or else he or she will be disqualified. The final round will be held in accordance with TCM/Time rules. The duration of the round will be from 120 to 180 minutes and will be announced immediately before the start of the round.
4. Submission and examination of solutions in the Algorithm track
Submitted solutions are tested during the round. Contestants will submit their solutions, when they are ready, into the contest system with the help of the software provided. Before submitting a solution, the contestant chooses the compiler that will be used by the contest system, which runs on Linux, to compile the solution (if it is applicable depending on the task). Information about the compilers and their settings as well as the configuration of the testing servers can be found in the “Compiler settings” web page of the competition site.
Solutions are tested by running them against a set of test cases that is not available to the contestants and is the same for all contestants. A solution is considered accepted if it produces correct answers to all test cases in the given time and memory limits. Testing is run automatically, so solutions have to follow input and output formats described in the problem statement of each problem precisely. Unless written otherwise, all input data is supposed to be correct and satisfy all constraints mentioned in the problem statement.
The maximum execution time for any test case is specified in each problem statement. If a solution exceeds this limit on at least one of the test cases, this solution is considered incorrect. When a solution is ready, the contestant submits it into the contest system for checking, and may then continue working on other problems.
Before submitting a solution to each problem for the first time, the contestant has to choose whether he or she wants to make the submission “open” or “blind”. This decision cannot be changed later. Results will be shown to the contestant immediately after a submitted solution has been tested.
After making an “open” submission, the contestant is informed whether his or her solution is accepted. If it is not, the contestant is also told the type of error and the index number of the failed test case.
Solutions that are “blind” submissions are tested on the sample test cases only (from the problem statement). If a solution doesn’t pass these test cases correctly, the contestant is told the type of error and the number of failed test case. If it does pass, the problem is considered to be preliminarily solved. Submitting further solutions to this problem becomes impossible. The final result of testing is announced after the end of the contest.
|Test number is provided?
|For “open” submissions
|For “blind” submissions
|The solution is accepted
|The solution passed all sample test cases
|The solution works correctly on the corresponding set of test cases
|Compilation of the solution failed
|Compilation of the solution failed
|1. Syntax or semantic error in the solution 2. Solution language was chosen incorrectly
|Incorrect output on one of the test cases
|Incorrect output to one of the sample test cases
|1. A mistake in the solution 2. Wrong algorithm
|Output cannot be checked as its format doesn’t satisfy the requirements
|Output to one of the sample test cases cannot be checked as its format doesn’t satisfy the requirements
|1. Incorrect output format 2. No output at all 3. Extra output
|The solution exceeded the time limit
|The solution exceeded the time limit on one of the sample test cases
|1. A mistake in the solution 2. The solution isn’t efficient enough
|Memory limit exceeded
|The solution exceeded the memory limit
|The solution exceeded the memory limit on one of the sample test cases
|1. A mistake in the solution (eg.: infinite recursion) 2. The solution isn’t efficient enough
|The solution stopped working with a non-zero exit code
|The solution finished working with a non-zero exit code on one of the sample test cases
|1. Runtime error 2. The solution doesn’t end with “return 0” in case of C/C++ 3. Non-zero exit code is manually specified
In the case of Compilation error, the solution is not run against any test cases. In the case of Run-time error, Memory limit exceeded, or Time limit exceeded, output of the solution is not taken into account.
Consecutive submissions of the same source code made by the same contestant are ignored. If a submission was considered incorrect because of a compilation error, this submission is not taken into consideration when the total penalty time is calculated. “Blind” submissions that did not pass at least one sample test case are not taken into consideration either.
The sample test cases in the system always match the sample test cases from the problem statement in the same order.
5. Preliminary and final rankings of Algorithm track round
Contestants are ranked by number of solved problems. Contestants who solve the same number of problems are ranked by total penalty time.
Total penalty time is determined as the sum of time taken and “bonuses for blind submissions” for each accepted problem.
The time taken for a solved problem is the time elapsed from the beginning of the contest to the submission of the accepted solution, plus, if the submissions to this problem were “open,” 20 penalty minutes for each previously submitted incorrect solution.
If a problem is solved with a “blind” submission, the total penalty time is decreased by n seconds, where n = ((number_of_contestants_who_did_not_solve_this_problem) × (contest_length_in_seconds)) ÷ (total_number_of_contestants).
Total penalty time is calculated up to a second. Problems that have not been solved by the end of the contest do not add anything to the total penalty time (including penalty for incorrect submissions).
In the rankings, problems solved with an “open” submission are denoted by “+” followed by the number of incorrect submissions to this problem (if any). For example, the rankings contain “+” if the problem is solved on the first attempt, and “+2” if it is solved on the third attempt. Unsolved problems that have “open” submissions are denoted by “-” followed by the number of incorrect submissions to this problem. Problems that have a “blind” submission which passed all sample test cases are denoted by a question mark, “?”. The current rankings are displayed under the assumption that all “blind” submissions will be accepted.
After the end of the contest, all “blind” submissions are retested on the full set of test cases, which is the same as the set of test cases that was used for testing “open” submissions (“system test cases”). The results of this testing become the only results for these solutions. In the final rankings, unlike the preliminary rankings, problems that have a “blind” submission which passed all system test cases are denoted by a green tick (✓), and problems which have a “blind” submission which failed on at least one system test case are denoted by a red X (X).
6. Conducting of Optimization and ML tracks
The Optimization track consists of two rounds.
The first round of the Optimization track will start on March 05, 2018 at 10:00 and last 7 days.
The second round of the Optimization track will start on April 02, 2018 at 10:00 and last 7 days.
The contestant will be presented with a single task that does not suppose a complete solution, but allows multiple approximate approaches. The presented solution will undergo checks using a preliminary set of tests during the round. The contestant will be informed of the score that their solution has achieved upon the results of each preliminary test, as well as of the overall score. The content of the preliminary tests will not be shown to the contestants. During the round the contestants will be ranked according to their overall score achieved upon the results of the preliminary set of tests.
When the round ends, the final solution of each contestant will be tested upon the full set of tests, and the final score of each contestant shall be defined as the overall score that their solution has achieved upon the results of all tests of the full set of tests. The contestants shall be ranked according to their final score.
The process of testing a solution is no different from the process described in “Conducting the Tournament” section.
The ML track consists of one round that will start on March 30, 2018, 10:00 and last 24 days.
Contestants will submit their solutions, when they are ready, into the contest system with the help of the software provided. Each contestant is not allowed to submit more than 100 solutions and to submit more than once an hour.
Contestants who placed first, second and third in the Optimization track and ML track have to provide the Organizers with the source code of their solution and its written description to be confirmed as contest winners.
Contestants who placed first, second and third in the Optimization track and ML track have to provide the Organizers with a written description of their solution to be confirmed as contest winners.
Contestants are not allowed to use given dataset other than for contest participation purposes, or share, publish or use it in any other way.
The top 256 participants of the Algorithm track according to the cumulative result of the Elimination stage will receive a contest T-shirt.
The top three participants in the final round of the Algorithm track will be awarded the following prizes:
first place – 300,000 roubles;
second place – 150,000 roubles;
third place – 90,000 roubles.
The top 128 participants of the Optimization track will receive a contest T-shirt.
The top three participants of the Optimization track will be awarded the following prizes:
first place — 100,000 roubles;
second place — 70,000 roubles;
third place — 50,000 roubles.
The top 128 participants of the ML track will receive a contest T-shirt.
The top three participants of the ML track will be awarded the following prizes:
first place — 100,000 roubles;
second place — 70,000 roubles;
third place — 50,000 roubles.
Prizes are net of personal income tax, which will be accrued and paid by the Organizer in accordance with the legislation of the Russian Federation.