Central European Olympiad
in Informatics 2004
University of Information Technology and Management, July 2004, Rzeszˇw, Poland
 CEOI 2004 
 Results !!! 

Regulations of the Central European Olympiad in Informatics


The Olympiad is organised by the Ministry of Education or another appropriate institution of one of the eight Central European countries.

According to the rules accepted by the initiators of the CEOI, teams of eight Central European country, i.e. Croatia, Czech Republic, Germany, Hungary, Poland, Romania, Slovak Republic and Slovenia (suspended), are invited as regular participants. Moreover, the host country may invite guest participants as well.

The International Committee (IC) of the CEOI consists of the eight team leaders, and a representative of the host country, who chairs the meetings of the IC. A host which is willing to organise a CEOI in a given year in its country, has to announce its intent at least one year before that CEOI (during the previous CEOI competition days). Selection of the next host is made by the IC by a majority vote. Revision of the Regulations of the CEOI is adopted by the IC by a 2/3 majority vote. Enlarging or decreasing the set of CEOI countries can only be adopted by consensus.


The CEOI aims at motivating secondary school students of Central Europe to :
  • get more interested in informatics and information technology in general,
  • test and prove their competence in solving problems with the help of computers,
  • exchange knowledge and experience with other students of similar interest and qualification,
  • establish personal contacts with young people of the Central European region.
Additionally, the CEOI may :
  • provide training for the students participating in the International Olympiad in Informatics (IOI),
  • initiate discussion and co-operation in informatics education in the secondary schools of the Central European countries.

General Regulations

Each team is composed of up to four secondary school students, and a team leader and a deputy team leader. Only the cost of travel to and from the place of the competition should be paid by teams; all local expenses are covered by the organisers. Accompanying persons and observers are welcome, but they should pay for their stay. Interested people are advised to contact the local organisers.

The official language is English. Students may use their mother tongue. Programming problems will be formulated in English and then translated by the team leaders to the mother tongue of their team. Both versions will be given to the students. Team leaders must be able to speak and write in English, as well as the language of their team.

The computers will be IBM PC compatibles with selected software packages. Only the computers and software with built-in help facilities provided by the organisers may be used in the competition. In particular, the use of printed materials will be forbidden. The programming languages of the contest are Pascal, C and C++; the precise versions of these languages will be updated each year. The compilers and programming environments for the above mentioned programming languages will be installed on the hard disk.

Team Composition

Students have to be in school during the year when the contest is held and at most 19 years old. The team leader will be a member of the General Assembly. Observers and persons accompanying a delegation have to pay a fee.

General Assembly

General Assembly (GA) is composed of the team leaders of the participating countries and the president nominated by the host country. General Assembly selects problems to be solved in the competition from a set of problems prepared and proposed by the Scientific Committee.

The selection procedure is the following:

  1. The chairperson of the Scientific Committee distributes the proposals. Their number equals the number of problems to be solved by the contestants.
  2. The GA members may either accept or, in case of a major ambiguity of formulation or other serious reasons, deny the proposals by voting. When and if a proposal is denied, another prepared proposal will be offered to the GA. For such cases, the Scientific Committee should prepare at least two extra proposals for each round. The text of the accepted proposals must not be changed by the GA, except for minor rephrasing that is needed to avoid smaller ambiguities.
  3. The selected problems will be translated by the team leaders into the national languages of the teams.

Scientific Committee

The Scientific Committee (SC) consists of a chairperson and a number of experts (SC members) from the host country. It becomes active well before the beginning of the Olympiad and has the task of selecting and preparing problem proposals.

A further task of the Scientific Committee is to test and evaluate the solutions of the contestants.

Problems, Competition

The competition consists of two rounds in two days. In both rounds the working time is five hours and the contestants will be given one to four problems to solve. The selected problems will be translated by the team leaders into the national languages of the teams.

Within the first hour the contestants may submit written questions (either in English or in their national language) to the Scientific Committee concerning the formulation and interpretation of the problems. Only questions that can be answered with 'Yes', 'No' or 'No comment' may be accepted. The answers will be produced by the members of the Scientific Committee and approved by the chairperson of the SC as soon as possible.

When the competition ends, each contestant should prepare his/her solution for the evaluation, according to regulations issued by the organisers.

No special hardware requirement or software packages (e.g. graphic packages) will be needed to solve the problems. The whole communication between the CEOI authorities and contestants will be in a written form.


When the working time is over, the solutions of each of the contestant will be checked by an evaluator, using previously unpublished test data. The evaluation is based on the test data and the responses of the programs only.

The evaluation procedure concludes with the meeting of the Scientific Committee, where the evaluation reports are discussed. Potential disagreements are dissolved by voting. Achieving a proper and balanced evaluation is the responsibility of the Scientific Committee. If a team leader does not accept the results of the evaluation, he/she may appeal to the General Assembly.

Finally, the president of SC or IC presents the anonymous results to the General Assembly to take final decisions.

Results and Prizes

The General Assembly will determine the minimum scores for the gold, silver and bronze medals. The proportion of these gold, silver and bronze medals should be approximately 1:2:3. About 50% of the contestants should receive medals. Each contestant will receive a certificate of participation. The medals, certificates and other prizes will be given to the contestants at the official closing ceremony.

Competition Rules

Competition Dates

CEOI 2004 takes place from Monday, July 12 (Arrival Day) to Sunday, July 18 (Departure Day). The first competition day is Wednesday, July 14, and the second competition day is Thursday, July 15. On both competition days contestants will be given three tasks to complete in the five hours from 9:15 to 14:15 CEST.

There is also a practice session on Tuesday, July 13. All contestants are required to attend this session to get used to the local environment.

Competition Equipment

The competition computers have Pentium IV/1.6 GHz processor, 256 MB or more RAM, standard US keyboard, mouse, and color CRT screen.

Blank paper and writing utensils will be provided for contestants. Contestants may take their own pens, pencils and erasers, but must NOT take any materials such as computing equipment (including calculators, organizers, PDAs, computers, ...), books, manuals, written or printed materials, diskettes, CD-ROMs, or communication devices into the competition area. A contestant who is in possession of such a kind of materials in the competition room may be disqualified from the competition.

Programming Environment

The computers have a dual-boot installation of Debian GNU/Linux 'Sid' and Windows XP Professional. In both Linux and Windows environments, the programs installed for the competition are set up in such a way that they can be found in the users' path (i.e. no extra setup is needed to use the tools). Both Linux and Windows platforms include:

  • GCC compiler version 3.3
  • Freepascal (fpc) compiler version 1.0.10

The contestant should be familiar with the programming package of his/her choice, including the use of libraries or units. The contestant should be able to execute programs, change the working directory and manage files, and use a web browser.
Linux installation includes OpenOffice.org, as well as TeX.

Similar installations will be used for the computers in the translation room, but Windows installation will include MS Word XP.

Additional tools may be available for assisting the contestants with the tasks. All documentation on computing environment which does not reveal the nature of the tasks will be made available on the competition web site.

Competition Tasks

All of the tasks in CEOI 2004 are designed to be of algorithmic nature. The solution for each task is either a single source file of a computer program or a set of output data files, where each file is related to some input information.

Efficiency plays an important role in some tasks. Whenever efficiency of algorithmic computations is important, there will be at least one grading input where a correct but nevertheless inefficient program can also score some points. It is important, therefore, to attempt a task even though the contestant may not know the 'best' solution. If a contestant is working under Linux and, as an example, the tasks are called Codes, Caves, and Hammer, then his home directory has three subdirectories codes, caves and hammer, and the task-related materials are in the respective subdirectories.

If a contestant is working under Windows XP and, for example, the tasks are called Codes, Caves, and Hammer, then his computer has folders C:\ceoi\codes, C:\ceoi\caves, and C:\ceoi\hammer, and the task-related materials are in the respective subdirectories.

Documentation for tasks for which a program source file is requested as a solution

When a program source file is required as a solution, then the program source code provided by the contestant must be in a single file. The task documentation will specify:

  • exact name of the file with the program source,
  • input and output format and value ranges,
  • resource limitations (e.g. cpu time, memory),
  • possible other constraints of the program behaviour

The program must read its input from the standard input and write its output to the standard output in the format specified in the task description, except otherwise stated in the task description. The submitted source program must be smaller than 100 kB and its compiling time must be less than 60 seconds on the evaluation server computer. If the submitted program does not meet these constraints, then this submission will be not processed.

Documentation for tasks where output data files are requested as a solution

A task can be proposed where input data is given to the contestants and the contestants are required to produce only the output data as an answer. The contestants' programs (if any) producing the answer are not needed as a part of the solution. When a set of output data files is required as a solution, then the task documentation will specify:

  • exact filenames
  • format of the input and output files

The input data will be in ASCII text files. The output data files should be formatted strictly according to the task-description. In all tasks, input and output data consists of a sequence of items. An item is a string of printable non-space characters (ASCII code from 33 through 126). An item may represent an integer or a general string. This is explained in the task-specific documentation.

Items can be separated by a space or an end-of-line. The format of the input data will be specified in the task description.


Contestants must take part in the practice session on Tuesday, July 13.

Competition-time Procedures

Starting the competition

Contestants are taken to the competition hall before the competition starts. A randomly chosen computer is designated to each contestant. The computers are switched on and displays a menu, from which one may choose to boot up either Linux or Windows. The competition envelope containing the task definitions and other necessary competition information is in front of the computer. Contestants are not allowed to touch the keyboard or open the envelope until the start signal is given. After the starting whistle, contestants may operate computers and open competition envelopes.

One does not need to log into Windows. Contestants should log into Linux with username: ceoi and without a password.


During the first hour of competition, contestants may submit written questions concerning any possible obscurities or ambiguities in the competition tasks.

Contestants must submit their question(s) in English or in their native languages on the provided forms. If required, delegation leader translates question(s) and answers.

The answer to the question can be one of the following: YES, NO or NO COMMENT. The Scientific Committee answers every question submitted by the contestants. This may take some time. Therefore, contestants should continue working while waiting for the answers. Contestants will not be involved in discussion.


Contestants may ask the support staff for assistance at any time. The staff will not answer questions concerning the tasks, but will deliver question forms, help to find toilets and refreshments, and assist in computer problems.


Contestants will be able to get printouts by printing through a facility provided as a part of the competition environment. The support staff will take the printouts to contestants. Contestant may expect a small delay.


Contestants will be able to make and retrieve backups through a facility provided as a part of the competition environment.

Submitting solutions

Contestants can submit solutions through a facility provided as part of the competition environment. The facility checks certain aspects at the submission. If a source code is submitted, the facility checks that it compiles and solves a simple test case that is given in the task description. The submission is not accepted if either condition fails. If data file is submitted, the facility checks its format. If the checks are not passed, contestant gets an error message.

If the checks are passed, the submission is accepted for grading, however, the actual grading is done separately and contestants are not informed about scores while the competition is running.

If several solutions are submitted for the same task, then the last submission accepted by the facility is used for the evaluation.

Ending the competition

Contestants will be warned at 15 minutes, 5 minutes and 1 minute before the end of the competition.

After the end signal, contestants must immediately stop working, put the keyboard on top of the terminal, do not switch off computers. Contestants must not operate computers or touch anything on the desk.

When it is announced, contestants may leave the competition hall and take their competition materials with them.


The evaluation forms and evaluation data will be made available to the delegations according to the schedule of CEOI 2004. Complaints about grading are to be submitted within an appointed time to the Scientific Committee.

For grading, the submitted source files will be re-compiled and executed under Linux using the resource limitations specified for the tasks. The compiler options for Pascal programs are -O2 -XS and the compiler options for C and C++ programs are -lm -O2 -static.

Other Information

A contestant

  • trying to interfere with other contestants' activities,
  • trying to break the installations or evaluation facilities,
  • trying to harmfully interfere with the running of the competition in any way

may be disqualified from the competition.

For submitting solution, and printing the computers are connected in an internal network. These facilities are arranged using a secure connection. Contestants are not allowed to access the network for any other purpose or with any other tools than the ones provided for the above purposes by the organizers. Even sending a single 'ping' command is strictly prohibited. If the network does not seem to work, contact the lab supervisors. Also, contestants are not allowed to make any material accessible to the network from their computer. The network traffic is monitored and logged during the competition, and a contestant breaking this rule may be disqualified from the competition.

Further, a contestant is not allowed to:

  • operate on any other computer than the one he/she has been assigned to
  • bring any auxiliary materials like books or written material, calculators, computers, papers, etc. into the competition room.

Contestant's programs are not allowed to:

  • access the network,
  • fork,
  • create files other than those required in the task definition,
  • attack system security or the evaluation system,
  • attempt to execute other programs,
  • change file system permissions,
  • read file system information.

If contestant's programs try any of this, he/she may be disqualified from the competition.

Competition Environment


Please first check the general information about the competition programming environment from the Competition Rules.

The main environment for the contest is Linux. Linux is available as a programming environment (specifications below) and also the servers and the evaluation (grading) runs under Linux. However, the contestants are provided with dual-boot computers where one can program either in Linux or in Windows environment.

The evaluation is based on source-code submission and the evaluation system compiles the submitted source code. As a consequence, the programs written in the Windows environment are re-compiled for evaluation under Linux (using the same compiler). This is something that all contestants using Windows must be aware of. For example, uninitialized variables may cause undefined behaviour during the evaluation.

We favour fairly standard operating system installations, but we may modify the installations for hardware support and security fixes.

The compilers used in the competition are GCC for C and C++ programs and Freepascal for Pascal programs.

Generally, the installations are designed for the following main alternatives:

  1. Pascal as the programming language, Freepascal compiler, Freepascal IDE or RHIDE IDE.
  2. C/C++ as the programming language, GCC compiler, RHIDE IDE.
  3. Editors (emacs, vim, ...), command-line compilation/debugging, a graphical front end ddd for debugging.

Option 3 is targeted primarily for Linux, although it is possible to use Windows Edit and command-line compilation.


For Linux we are using Debian 'Sid' (also known as 'unstable').

The kernel used will be 2.4.18 or newer in case of any problems with hardware or system stability. For more information, see http://www.kernel.org.

For X-windows system, the window manager KDE 3.2 is available.

Additional packages are offered:

  • ddd - The Data Display Debugger, a graphical debugger frontend.
  • mc - Midnight Commander - A powerful file manager. - normal version
  • mozilla - Mozilla Web Browser
  • mozilla-firefox - lightweight web browser
  • vim - Vi IMproved - enhanced vi editor
  • vim-gtk - Vi IMproved - GTK version
  • emacs21 - The GNU Emacs editor.
  • emacs21-el - GNU Emacs LISP (.el) files.
  • joe - user friendly full screen text editor
  • xwpe - programming environment and editor
  • rhide - another IDE
  • stl-doc - documentation of the standard template library in HTML format
  • fp-docs - Free Pascal Documentation

GCC on Linux

We use gcc-3.3.* which is installed as a part of the Linux Debian 'Sid'.

Pascal on Linux

Freepascal 1.0.10 is installed.

Pascal IDE for Linux

You can use RHIDE as a pascal IDE. Freepascal works well with RHIDE. You need to set the option "Option > Environment > Preference > Use FPC pascal compiler".


Windows XP Professional is installed.

The Windows environment includes vim and notepad.

GCC on Windows

The GCC compiler version we are using in the windows environment is GCC 3.3.*

Pascal on Windows

Freepascal 1.0.10 is installed. You can use Freepascal with its IDE, or RHIDE.