This year, the selection for the Olympiad will be based on a single long contest. According to the schedule, the long contest of the qualifying stage of the Olympiad takes place from December 1, 2024, to January 15, 2025.
Anyone interested can participate in the qualifying stage of the Olympiad. Participation in the Olympiad is free. Registering for the Olympiad involves the participant registering on the website and filling out the registration form. During registration, participants must provide accurate information. Each participant can use only one login in the testing system.
Only students attending school as of September 1, 2024, can be invited to the final stage. Other participants can take part in the long contest outside the competition. After the end of qualification stage, from 300 to 600 participants will be invited to the final stage. The selection criteria will be published after the completion of the qualification contest. The criteria may differ for participants from different countries and different grades.
The participant’s final score is determined as the sum of the points earned by the last submitted solution for each problem. The number of submitted solutions for each problem is not considered and does not affect the final score. Based on the final scores, the jury determines the minimum score for the qualifying stage winner, separately for each grade. Participants who score no less than the established minimum score for a winner in their grade are declared winners of the qualifying stage and are invited to the final stage of the Olympiad.
During the qualifying stage, participants in the Olympiad are presented with 9 problems in a single long contest. The jury may make changes to the problem statements, add and modify tests, and rejudge solutions. The participant’s final result in the qualifying stage is the sum of their scores for all problems.
The solution to each problem is the source code of a program written in one of the available programming languages (a list of compilers and compilation options is available in the testing system). Problems may fall into one of three types:
Standard problems. For these problems, the participant is required to submit a program written in one of the available programming languages. The program should read data from standard input, output the result to standard output, or read data from the file input.txt
and output the result to the file output.txt
. The program must follow the input and output format requirements.
Interactive problems. For these problems, the participant is required to submit a program written in one of the available programming languages. The participant’s program interacts with the jury’s program by reading data from standard input and writing data to standard output. The program may involve multiple stages of input or output. At each stage, the data passed to the program may depend on the participant’s output from previous stages. The program must follow the interaction format described in the problem statement.
Grader problems. In these problems, the participant is required to write code that implements one or more functions to solve the problem. These functions will be compiled along with the jury’s program (the grader), and they will be called from the grader. The functions must meet the requirements specified in the problem statement. During the execution of the functions, the program is not allowed to read from or write to the standard input/output streams or to arbitrary files. There may be additional restrictions on the programming languages that can be used to implement the solution.
Programs are tested using an automated testing system on a fixed set of test cases. The program must meet the time and memory usage constraints.
Each problem is scored by 100 points. Points are awarded based on the tests passed. Immediately after submitting a problem for verification, the participant can receive the verification result only for a part of the tests. The result for the remaining tests becomes known only after the end of the qualifying stage of the Olympiad. The exact rules for verification and scoring are specified in the problem statements. During the testing of solutions, tests whose results do not affect the score for the problem may be skipped.
Reference solutions for the Olympiad tasks are written in C++. The jury does not guarantee that tasks can be fully completed (for the maximum score) using other programming languages.
Participants can ask questions about problem statements and their verification through the testing system by sending a message to the jury.
During the contest, each participant can submit up to 500 solutions; the size of one solution must not exceed 64 KiB, and the total size of all submitted solutions must not exceed 10 MiB. The source code of solutions in the testing system will not be available for viewing.
All tasks must be completed independently. It is prohibited to publish problem solutions on the Internet or share them with other participants of the Olympiad. Participants of the Olympiad must take reasonable measures to ensure the security of their solutions (for example, it is not advisable to save solutions in directories on computers that are accessible to other users).
The jury has the right to disqualify participants of the Olympiad or invalidate their scores for individual tasks in the following cases:
The decision on the “similarity” of solutions is made by the jury. The jury has the right to disqualify a participant, even if their solution was obtained and submitted by another participant without their knowledge.