Yandex.Algorithm 2013 rules
1. Eligibility
You are eligible to take part in the contest if you are 18 years of age or older as of the beginning of the test round (June 27, 2013). If you are 14–18 as of the beginning of the test round (June 27, 2013), you may only take part in the test, qualification and three elimination-stage rounds.
All employees of Yandex, people directly involved in organising the contest and their immediate relatives and family members are not permitted to take part in the contest.
2. Registration
To participate in the contest, you need to register and provide the requested information. The organising committee 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 be opened at 17:00 on May 30 (in the Moscow time zone, UTC + 4) and will close at the end of the qualification round (July 9, 2013).
3. Scoring system for each round: TCM/Time
Conducting the tournament
Each contest round lasts 100 minutes. Submitted solutions are tested during the round. Contestants submit their solutions 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. 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.
Outcome | Test number is provided? | For “open” submissions | For “blind” submissions | Possible reason |
---|---|---|---|---|
OK | No | The solution is accepted | The solution passed all sample test cases | The solution works correctly on the corresponding set of test cases |
Compilation error | No | Compilation of the solution failed | Compilation of the solution failed | 1. Syntax or semantic error in the solution 2. Solution language was chosen incorrectly |
Wrong answer | Yes | 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 |
Presentation error | Yes | 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 |
Time-limit exceeded | Yes | 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 | Yes | 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 |
Run-time error | Yes | 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.
Preliminary and final rankings of 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).
4. Contest structure. Grand Prix 30
The contest consists of six rounds. All times mentioned are in the UTC + 4 (Moscow) time zone. Only those contestants who have correctly solved at least one problem in the test or qualification rounds will be eligible to proceed to the elimination round.
The test round consists of problems that have already been used before in previous competitions and contests. For all other rounds, the problems will be original.
The test round will start on June 27, 2013, at 9 p.m, The top 200 contestants will advance to the elimination stage without participating in the qualification round. Another 50 randomly chosen contestants who solved at least one problem will advance to the elimination stage without participating in the qualification round.
The qualification round will start on July 8, 2013, at 7 p.m., and run for 24 hours. Participation is open to new contestants who did not take part in the test round, as well as test-round contestants who did not qualify to proceed straight to the elimination stage. Contestants can start their qualification (lasting 100 minutes) by pressing the “start virtual contest” link. The top 2,000 contestants who solved at least one problem will advance to the elimination stage. Participation is open to new contestants who did not take part in the test round, as well as test-round contestants who did not qualify to proceed straight to the elimination stage.
The elimination stage will thus involve 2,250 competitors, and will consist of three rounds lasting 100 minutes each. Each round of the elimination 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.
Place | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Score | 100 | 80 | 60 | 50 | 45 | 40 | 36 | 32 | 29 | 26 | 24 | 22 | 20 | 18 | 16 |
Place | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
Score | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
If several participants perform equally in a round, the earned points are divided evenly between them.
Round 1 will start on July 14, 2013, at 9 p.m.
Round 2 will start on July 18, 2013, at 1 p.m.
Round 3 will start on July 22, 2013, at 5 a.m.
The top four participants of each round will advance to the final.
Another nine participants with the best cumulative results in two best-out-of-three elimination-stage rounds will also advance to the final.
Finally, another four participants with the best cumulative results of all three elimination stage rounds will advance to the final.
The cumulative score consists of the sum of points, the total number of solved problems and the sum of penalty time earned in rounds.
Out of the 2,250 elimination-stage competitors, 25 will thus make it into the final.
The Yandex.Algorithm organising committee reserves the right to invite additional participants to the final round if there are declined invitations. Additional participants will be invited based on the cumulative result of all three rounds of the elimination stage.
The finals will take place in the Russian Academy of Sciences’ Academics House named after M. Gorky (Vladimir Palace, 26 Dvortsovaya Embankment), St. Petersburg, Russia, on August 21–23, with the final round competition itself taking place on August 22, 201. Each participant who has advanced to the final round must confirm their participation by July 25, 2013, or else he or she will be disqualified.
5. T-shirts
All participants in the final round will receive a T-shirt. Besides the finalists, the top 75 participants according to the cumulative result of all three elimination stage rounds will also receive a T-shirt. You can also receive a T-shirt if you are not eligible for or decided not to participate in the final round.
6. Awards
Each final round participant will receive a round-trip economy-class airplane ticket or round-trip second-class (coupe) train ticket to St. Petersburg to participate in the final. The Organiser will provide single-occupancy accommodation and meals for finalists during the event (August 21–23, 2013). The Organiser will not provide travel documents or accommodation for finalists’ guests or compensate for additional multiple-occupancy charges.
The top three participants in the final round will be awarded the following prizes:
1st place – 300,000 rubles
2nd place – 150,000 rubles
3rd place – 90,000 rubles
Prizes are net of personal income tax, which will be accrued and paid by the Organiser in accordance with the legislation of the Russian Federation.