The IOI'99 Competition Rules

(Minor changes to these rules are possible. The final version will be distributed in the first GA meeting.)

The Competition Date

IOI'99 takes place from Saturday, 9th October (arrival day) to Saturday, l6th October (departure day). Monday, 11th October and Wednesday, 13th October are the competition days. On each of these days the contestants will be given three programming tasks to complete in the five hours from 08:30 to 13:30.

Competition Equipment

The competition computers will be PCs, with Intel Celeron processors running at 433 MHz, 32MB RAM, standard US keyboard, mouse and a color screen.

A diskette for backups and printing, blank writing paper, pens, pencils and erasers will be provided. The contestant may NOT take any aids of his/her own, such as program disks, calculators, manuals or books, into the competition room.

Programming Tools

The following tools will be installed on each computer: All packages will be fully installed with help files.

Competition Tasks

All of the tasks at IOI'99 are programming tasks and are designed to be of algorithmic nature.

Each task has a title (at the top of the page) and a short name (at the bottom of the page). The short name is maximal 6 characters long and is used to identify the task (e.g. in forming the name of the executable, the name of the task directory, etc.).

The following will be stated on the task overview page:

In addition to the task overview page, for each task the contestant will get a specification in English and its translation to his/her native language, which is done by his/her delegation leaders. All relevant figures in the English specification are numbered. The translated versions may refer to the figures by their number, but captions will be translated. All figures and examples in the English original are considered as a part of the task specification.

Directories and Execution Path

Here is an example. Assume that the short names of the tasks for the first day tasks are (XNATU, PEPPER, EYES) and for the second day are (RORO, GOLD, CARS). In this case the contestant will find the following directories on the hard drive of his/her computer: First competition day: Second competition day: The execution path environment variable PATH of DOS will be set to give access to all programming tools.


In Antalya, the contestant will be able to use the competition computers for practice in the periods that will be announced at the IOI'99 site. The standard competition environment will be provided. Before the competition, the computer that will be used by each contestant will be assigned by a random process.

Contestants' Programs

While the contestant may choose to write his/her programs in any of the programming languages Pascal and C++, s/he must compile his/her source programs into a stand-alone MS-DOS executable.

The programming tasks can all be solved in any of the available programming languages. The input and output operations are simple, allowing the contestant to concentrate on the algorithmic details. No special features of the programming environment are required, nor should they be used. In particular, the following features will NOT play a role in the programming tasks and are discouraged:

The contestant should be familiar with the programming package of his/her choice, including the use of libraries or units. The ability to use the Integrated Development Environment (IDE), specially, the built-in editor, compiler and debugger, will be helpful. Some knowledge of compiler options may also be an advantage. Furthermore, you should be able to use MS-DOS for tasks such as executing a program, changing the working directory and managing files.

Efficiency plays an important role in some tasks. Whenever efficiency is important, then at least one test run will be included where the input is such that a correct, but nevertheless inefficient, program can also score some points. It is important, therefore, to attempt a task even though you may not know how to achieve the "best" solution.

Turbo C++ users shall use the MEDIUM memory model compiler option for tasks of reactive type.

External Communication

The only external communication allowed by the contestant's program is reading input files, writing output files and calling external functions in libraries, as specified in the task specification.

In particular, you are not allowed to

Any attempt to violate the above will result in disqualification and a score of 0.

Input Data

Programs should read their input data from ASCII text files consisting of one or more lines. This is the case even if the program requires only one single value. The names of the input files are given in the task specification. The names of the input and output files must be spelt precisely as given; variations will not be accepted.

It may be assumed that the input data agrees with the task specifications.

Input data consist of a sequence of items. An item is either an integer or a non-empty character string of Latin letters ('a' to 'z' and 'A' to 'Z') and/or decimal digits ('0' to '9'). Exactly a single character, which is either a single space character or a single end-of-line, separates items.

Examples of input files are provided for all tasks, both in the task specification and in the task directory.

Output Data

Each programs should write its output data to the ASCII text file specified in the task specification, Programs are not required to write to the screen. The contestant shall remove all screen output from his/her programs before creating the final executable.

The output should be formatted exactly as shown in the task specification, The contestant shall never add output of his/her own, as this may disrupt the evaluation process. Every line must be terminated with an end-of-line character, including the last line.

Output data consist of a sequence of items. An item is either an integer or a non-empty character string of Latin letters ('a' to 'z' and 'A' to 'Z') and/or decimal digits ('0' to '9'). Exactly a single character, which is either a single space character or a single end-of-line, separates items.

For every task the contestant will be provided with a program that checks the validity of an output file. This program will check only the format of the output and write its diagnostic message (in English) to the standard-output device. It will not evaluate taskwise the correctness of the context. The contestant will find these programs located in each task directory with the name:


If we consider the example given previously in the section: Directories and Execution Path, the format-checker program for the PEPPER task would be located at:


The generic forms of all of the possible messages that may get generated by these format-check programs will be provided to the delegation leaders at the first GA meeting. The contestants will receive, along with the task translations, a separate list of the translations of all these messages.

Ordering of Input/Output Data

Ordering of the data items on a line of an input/output file is the same as the order in which they are mentioned in the description of the input/output file in the task specification unless otherwise stated explicitly. For example, if an input/output description states that a certain line contains x and y then x occurs first, followed by y assuming that no other specification is given regarding their ordering.

Exit Code

The contestant's program should terminate normally and return properly to the DOS prompt. Any other behavior will be considered identical to a failure by time out.

Starting the Competition

The contestant will be allocated a table of 150x 80 cm in the competition room on which a computer is placed. The computer will have been switched on. The competition task specifications will be inside an envelope underneath the keyboard.

The contestant is not allowed to touch the keyboard or open the envelope until the start signal is given. The start signal is a long whistle blow.


During the first hour of competition (08:30 to 09:30) the contestant may submit written questions concerning any possible obscurities or ambiguities in the specification of competition tasks. Only one of the following replies will answer your questions:

"Yes", "No" or "No Comment"

The contestant must submit his/her question(s), in English or in his/her native language, on the 'Question Form' provided. If required, your delegation leader will translate your question(s).

The Scientific Committee will answer every question submitted by the contestants. This may take some time. Therefore, you should continue working while waiting for the answer to your question(s). You will not be involved in discussion.

The contestant may ask the lab supervisors for assistance at any time. The supervisors will not answer questions about the competition tasks, but will deliver your question forms, help you find toilets, obtain refreshments, etc. and attend to computer problems.


The contestant will be provided with a diskette to backup your files during the competition. S/he is advised to maintain backups, so that s/he can recover in the unlikely event of a machine failure. If the contestant's machine fails with an irrecoverable error, s/he may be allowed a time compensation at the Evaluation Committee's discretion.


During the competition the contestant will be able to get printouts of ASCII files. This is done by copying the file(s) into the subdirectory "A:\PRINT" of his/her diskette and hand it to the supervisor. The diskette will be returned with the printout of the files and the files printed will be moved to the directory "A:\TRASH", automatically after printing. No other alternation to the diskette will be performed.

Ending the Competition

The contestants will be warned at 15 minutes (supervisor will display a written notice and announce it in English) and at 5 minutes (supervisor will display a written notice and announce it in English) before the end of the competition. The last warning will be done by a long whistle blow one minute before the end. After the expiration of this last minute the power will be switched off.

The contestant shall take this warning opportunity to go through the following checklist for the tasks:

The contestant may NOT remove any diskettes from the competition room. S/He may remove the competition envelope.


As it was decided in IOI'98, IOI'99 will adopt a new evaluation scheme. The evaluation will be done by the Evaluation Committee by a process in which the delegation representative and the student will NOT be present.. This process will be highly automated making use of the local area network infrastructure. In parallel with the report generation phase of this evaluation process, the following will be made accessible to the delegations at the delegation computers. This access will be restricted and confidential. A delegation leader will have the right to access the information only of the contestants of his/her team. The local organization staff will allow the entrance of the contestants into the delegation computer room one per team at a time. Objections (if any) will be filed by submitting an objection form within three hours of the release of evaluation reports..

The following points are worth to mention: