Competition Days

The competition days of BOI 2004 are Thursday, April 22 and Friday, April 23. On each competition day there will be one competition round in which the contestants will have five hours to complete three tasks.

There will be a practice round on Wednesday, April 21. In the practice round the contestants will have two hours and one practice task to get familiar with the contest environment, including their workstations and the evaluation system interface.

The solutions submitted during the practice round will be evaluated, but the results will not be considered in the final ranking.

Competition Equipment

For each competition round each contestant will have a desk with an IBM PC-compatible computer.

The following software will be available on each computer:

The software will be installed in standard configuration including help files and examples (if any are supplied by the vendor).

Blank paper and all necessary forms will be available in the competition room. Contestants can bring pens, pencils and erasers with them. Using any printed materials (except official BOI 2004 materials), or any electronic devices or diskettes (except official BOI 2004 equipment) is prohibited.

The Tasks

The tasks posed at BOI 2004 are intended to be of algorithmic nature. That is, the focus is on designing correct and efficient algorithms.

The Solutions

Unless stated otherwise in the task description, the solution of a task is a program written in the Pascal, C, or C++ language. The source code of each solution must be contained in one file and submitted through the BOI 2004 evaluation system interface.

The program must read input data from an ASCII text file with the name given in the task description. Contestants must not include full path in file open operations. They must assume that input file is in the current directory. Programs must not attempt to read any additional data neither from the keyboard nor from files not specified in the task description. Contestants may always assume that the input data agrees with the task description.

The input file consists of a number of lines, each of them (including the last one) terminated by an end-of-line marker. Input values are separated from each other by either a single space character or a single end-of-line marker. The structure of input is always such that a contestant does not need to worry about end-of-file conditions.

The program must write output data to an ASCII text file with the name specified in the task description. Contestants must not include full path in file open operations. They must create the output file in the current directory. Output on the screen or contents of any other files will not be evaluated. It is allowed to make working files in the current directory during program execution.

Output data must consist of a sequence of items separated by space characters or end-of-line symbols as specified in the task description. Contestants must not add output of their own. Leading and trailing spaces on each line are ignored and any number of spaces may separate two output values on a line.

Each output line (even the last one) must end with end-of-line symbol.

Any of the above conditions may be overridden in the task description.

Please note that the input and output file names are case-sensitive and the input file is read-only in the evaluation system.


When contestants enter a competition room at the beginning of a competition round, their computers will be switched on. Competition tasks will be inside an envelope next to the computer. Contestants are not allowed to open the envelope or touch the computer until the start signal is given.

For each contestant task descriptions are presented in English and in his/her native language (if such a translation is prepared by his/her team leader). In case of any discrepancies, the English text is binding and official.


A contestant may ask a room supervisor for assistance at any time. The supervisors will NOT answer questions about the competition tasks (see the section "Requests" below), but will deliver question forms, help to find toilets, and attend to computer problems.


Contestants may submit questions and technical support requests.

Questions must be submitted using BOI testing environment (tab "Questions", only in English) or by writing on paper question forms available in competition rooms in English or in the contestant's native language.

If the question is submitted in native language it will be translated into English by the team leader. Paper-based requests should be submitted to the room supervisor.

Contestants may ask questions concerning the competition tasks only during the first hour of the competition. Only one of the following three answers is possible: "Yes", "No", or "No Comment". All questions not related to the text of the competition tasks will be answered "No Comment".

The Jury will answer every question submitted by contestants in the same format as it was submitted (electronically or on paper-based form) . Answering may take some time, so the contestant should continue working while waiting for the answer to a given question. The contestant shall not be involved in the discussion.

If contestants encounter problems with hardware, they can submit a technical problem request to the room supervisor. In case of hardware failure, extra time will be granted to a contestant, but this will cover only the amount of time needed to replace the hardware.

Delivering the Solutions

Contestants submit their solutions using the web-based evaluation system interface.

The URL, username, and password needed to access the system will be given to each contestant together with the tasks.

Ending the Competition

Contestants will be given a warning both 15 and 5 minutes before the end of the competition. The contestants have to submit their solutions before the end signal. At the end signal contestants must immediately stop working.

Evaluation Process

After each round, an evaluation process starts.

Evaluation of a program involves several test runs with confidential input data and special evaluation software. A test run for a program consists of the following steps:

The points awarded for each test run are aggregated to give the final score for the problem. The team leader will receive a printed form with evaluation results.

The evaluation will run on separate computers in the following configuration:

Programs must not attempt to modify hardware and operating system settings. Programs must not attempt to use more than 64 MB of memory, the stack size must not exceed 8 MB. The size of a source file must not exceed 1 MB.