Rules of XII Open BSUIR Programming Championhip


1.1. Testing system

Intel(R) Xeon(R) CPU E5-2660 @ 2.20GHz, 2048KB cache, virtualizаtion on 6 core, 8GB RAM, OS Linux. Available compilers:

  • C11 (gcc-12.2.1)
  • C++17 (gcc-12.2.1)
  • C++20 (gcc-12.2.1)
  • Go (go-1.19.5)
  • Pascal (fpc-3.2.2)
  • Python3 (pypy-7.3.9)
  • Python3 (python-3.10.10)
  • Rust (rustc-1.64.0)
  • Java (openjdk-19.0.2)
  • C# (mono-6.12.0)

1.2. Work places

During on-campus contests of the Championship participants are provided with IBM PC compatible computer connected to local network in following configuration: CPU Pentium or compatible processor, at least 2 GB of RAM, Microsoft Windows OS and accompanying software.

Participants should indicate, which IDEs are needed. Otherwise, availability of only one of mentioned is guaranteed.


The participants in the competition are secondary school students from the Republic of Belarus, as well as students of institutions of secondary special education, students (I and II levels) and graduate students of institutions of higher education of the Republic of Belarus and other countries.

A team must consist of 2 or 3 members. Being part of more than one team is prohibited for participants. A team consisting of at least one university student, graduate student or postgraduate student of a higher educational institution or college is considered to be a student team. A team that includes participants from different educational institutions, except primary and secondary general education, is considered a mixed team. Mixed teams do not take part in on-campus Finals. An incomplete team consisting of less than 2 participants does not officially participate in the intramural final.

Programming Championship is conducted according to the ICPC rules. Championship is held in 3 stages. Discussing ideas and sharing problem solutions outside the team is prohibited at all stages of championship.

2.1. First Qualification Contest (Quarter-Finals)

First contest is held online. Participating teams are given from 12 to 15 problems to solve (problem statements are written in Russian) in 133 hours (5 days 13 hours). Judges are entitled to extend contest in case of any unforeseen circumstances. To pass to the next contest participants must solve at least 50% of problems.

Teams’ solutions that have UNDENIABLE SIGNS OF «COPYING» SOURCE CODE of the programs, will be disqualified at the end of the contest. In case of clear violations, participants who has sent such solutions may also be disqualified for the next year’s championship.

First contest is mandatory for BSUIR and school teams. First contest is not mandatory for teams from other universities of the Republic of Belarus and foreign countries. These teams immediately pass to Semi-Finals, though they can also participate in Quarter-Finals.

2.2. Second Qualification Contest (Semi-Finals)

Second contest (Semi-Finals) is held in 2 forms: On-Campus and Online. Participating teams are given from 4 to 12 problems to solve (problem statements are written in English and Russian) n 4-5 hours. Judges are entitled to extend contest in case of any unforeseen circumstances.

The BSUIR teams participate in the tour full-time at the university. Non-BSUIR teams participate in the tour in absentia at their educational institutions. To participate on their site, participants of the "Students" category need to use a proctoring system. It is necessary to synchronously record the screen of the device (not a specific application) that the team will use during the tour and record the workplace with the participants' faces on which the computer is located. The record should be informative enough for the organizing committee to make sure that the rules of the championship are followed. The coach of the team is also responsible for compliance with the rules of the contest. Participants of other educational institutions who have expressed a desire to participate in the semifinal in the BSUIR should inform the organizers in advance.

Only 30 best teams join next contest (Finals) but no more than:

  • 7 teams of students, graduate students and postgraduate students of the BSUIR;
  • 2 teams from each university or college of the Republic of Belarus and foreign countries;
Separate Finals are held for teams from secondary general educational institutions. Not less than 15, not more than 25 teams and not more than one team from each educational institution are invited. Decision on the participation in school Finals for teams in which participants represent different educational institutions is adopted by the organizing committee individually.

2.3. Finals

The Finals of the Championship are conducted on-campus. Participating teams are given from 4 to 12 algorithmic problems to solve (problem statements are written in English and Russian) in 5 hours.

2.4. Other conditions

Second contest (Semi-Finals) is mandatory for all registered teams, wishing to participate in the Championship.

Teams from higher educational institutions with at least two finalists of ICPC season 2023-2024 and teams from general secondary educational institutions (school, gymnasium, lyceum), which include at least two award-winners of the final stage of the Republican Olympiad in informatics in 2024 (diploma of 1st, 2nd and 3rd degree), are allowed to participate in the Finals of the competition without passing qualification stages and above the established quota for an educational institution.

During the second Qualification Contest (Semi-Finals) and Finals of the competition each team is given one computer.

Participants can bring and use dictionaries (English-Russian, etc.), blank sheets of paper and writing tools. It is forbidden to use any (other than those provided by the jury) books, printouts, electronic means of storing and transmitting information: personal computers, flash drives, floppy disks, calculators, mobile phones, etc.

By the decision of organizers and judges the number of teams that pass in the next stage, their composition, as well as the quota can be changed.

During on-campus contests, teams may use a network printer to print their solutions. Delivery of printouts is carried out by representatives of the organizers.

During on-campus contests participants can only communicate with members of their team, judges and competition organizers.

3. Problem solving

During the contest participants solve given problems. Solution is considered to be a program (source code). The program must not include other files or modules other than the standard ones.

Verification of submitted solutions is carried out during the competition. Participants send solutions to the testing system using the provided software. Solution is tested by running on a set of tests, which is not accessible for participants. This set of tests always stays the same for all participants. The solution is approved if it gives the right answer to all tests. Otherwise, participants may make repeated attempts (the number of attempts is not limited).

Input and output are implemented through standard streams (stdin, stdout), unless otherwise specified. Testing is held automatically. Because of this, programs should correctly follow input and output format, described in the problem statement. Unless otherwise specified, all inputs are assumed to be correct and satisfy all restrictions specified in the problem statement.

Maximum time per test is specified for each problem. If the program exceeds this time on one of the tests, the solution is considered to be incorrect.

In solutions of problems, it is forbidden to:

  1. Work with subdirectories and files.
  2. Use any network devices.
  3. Use any other devices or behavior, that may disrupt the software of the (including the use of Assembler code inserts).

Inspection programs use various methods to monitor compliance with these requirements. Violators will be disqualified.

When ready, participants send their solutions to the testing system for verification. After that, participants may continue working with other problems. After the testing system verifies the solution, participants get the test result message. This message will appear on the screen (in the client’s program window of the inspection system). This way, participant is getting informed whether the solution is approved or not. If the solution is rejected, the error type and the test number on which the error has occurred is indicated.

In case of “Compilation error” participants see compilation protocol. The test number will not be indicated.

All tests are performed in the same order. The number of test with error in testing results is considered to be a number of the first test where the program gives an incorrect answer. For example: «Time limit exceeded: Test 9» means that:

  • Tests 1-8 were correct;
  • On 9th test program exceeded time limit.

If the message «Presentation error» is received, it means that the format of the result (output) of the program differs from the required.

The message «Run-time error» means a program crash. Message «Wrong answer» means wrong answer.

To make searching of input/output mistakes easier it is guaranteed that 1st test is the same as the example specified in the problem statement.

During the competition, participants can ask questions on the terms of the problems. It should be general suggestive question with answers «ДА» («Yes») or «НЕТ» («No»). If the question is incorrect or the answer follows directly from the problem statement, judges will answer «Без комментариев» («No comments»). If the judges agrees that there is ambiguity or error in the problem statement, then announcement is made to all participants.

The team that solves the most problems correctly wins. If the number of solved problems is equal, the team with the fewest penalty points wins. Penalty points are awarded separately for each successfully solved problem and added up. For each problem, the number of penalty points equals the time from the start of the competition to problem’s successful solution (in minutes) with the addition of 20 minutes for each unsuccessful attempt. Each attempt to turn in a problem AFTER the solution for that problem has already been scored can be perceived as a «failed attempt» and lead to an additional penalty time.

During the competition, participants can view the current results of all teams on their computers. In the on-campus contests results table gets «frozen» one hour before the end of the competition: teams have the opportunity to see verdicts on their submissions and the presence of submissions on the problems of other teams without indicating whether the attempt was successful or not. An example of results table:

Place User A B C D E F Total Penalty
1 kegbl + + +1 +5 + + 6 370
2 K5 + + +1 +5 +2 + 6 667
3 abra + +3 +1 +1 +3 + 6 876
4 K4 + +3 +3 +2 +1 5 788
5 LGS + + +1 +2 +3 5 6184
6 4lulz +1 + +4 +3 +1 5 9769
7 AI +2 + +4 +1 +1 5 15438
8 abcd + + +2 +2 4 305
9 Doll_backs + + +1 +2 4 418
10 ШИК + +2 -8 +2 + 4 504
Total 13 18 35 18 27 12 123
Success 10 10 9 4 10 7 50
% 77% 55% 26% 22% 37% 58% 41%

«User» – Name of the team, A, B, C, D, E, F – Problems, «Total» - Number of successfully solved problems, «Penalty» – Number of penalty points. Sign «+» means that the problem was successfully solved, «+n» means that problem was solved after n unsuccessful tries, «-n» means that problem was not solved and there were n unsuccessful tries.


4.1. С/С++

If the problem solution is written in С/С++, then for the testing system to work correctly, it must terminate with the return code 0, for example,

int main() { ... return 0; }

rather than

void main() { ... }

Also, instead of __int64, write long long (VC++ also understands long long). To use hash_xxx, connect namespace __gnu_cxx (instead of stdext in VC++).

Instead of:

#include <iostream.h>

You should write:

#include <iostream> using namespace std;

itoa, atoi may not compile - then use sscanf, sprintf

4.2. Pascale/Delphi

If you insert a directive {$MODE DELPHI} at the beginning of the program, the compiler will run in Delphi emulation mode. The integer will be stored in 4 bytes.

4.3. Java

The solution should be in the form of a public Main class in the default package. A file can have an arbitrary number of non-public and nested classes. Program entry point – standard method main(String[]).


import*; public class Main { public static void main(String args[]) { //solution } }


The results of the competition are presented by judges.

For violating the rules of the championship or disrupting the course of the competition (for example, improper behavior, connection or disconnection of additional equipment and wires without the consent of the representatives of the organizing committee) team may be disqualified. Members of teams disqualified for breaking the rules, according to decision of judges may not be allowed to compete next year.

Within a pre-announced time (usually within one hour) after the competition, team may send a written appeal to the jury in case of incorrect determination of the winners, loss of the sent solution, etc. The jury hears the appeal, decides and informs the team.

The jury has the exclusive right to determine the correctness of the submitted solutions, determine the winners and disqualify the teams. The jury analyzes the issues that arose as a result of unforeseen events and circumstances. The decisions of the jury are final and not subject to appeal.