sol.jpg (5031 bytes) rules-orta.jpg (10572 bytes) sag.jpg (5017 bytes)



[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:

  • MS-DOS Version 6.2
  • Turbo Pascal Version 7.0
  • Turbo C++ Version 3.0

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:

  • task short name,
  • directory path,
  • name of the input and output files,
  • name of the executable,
  • upper limit of the execution time,
  • maximum points awarded for the task.

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

First competition day:

  • C:\TP Turbo Pascal
  • C:\TC Turbo C++
  • C:\DAY1\XNATU Task directory for the XNATU task of the first day.
  • C:\DAY1\PEPPER Task directory for the PEPPER task of the first day.
  • C:\DAY1\EYES Task directory for the EYES task of the first day.

Second competition day:

  • C:\TP Turbo Pascal
  • C:\TC Turbo C++
  • C:\DAY2\RORO Task directory for the RORO task of the second day.
  • C:\DAY2\GOLD Task directory for the GOLD task of the second day.
  • C:\DAY2\CARS Task directory for the CARS task of the second 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

  • Any screen output,
  • DOS/BIOS calls

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

  • do any keyboard or mouse input,
  • write to the serial ports,
  • attempt to change any interrupt,
  • create or use persistent files except those specified in the task specification.
  • The creation and use of temporary files in the execution directory are allowed (though this is certainly not required to
    solve any task).

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


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

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

  • Are the programs saved with the correct name in the correct task directory? (No other files or directories will be evaluated)
  • Are the debug features in the programs turned off?
  • Is the screen output removed?
  • Were the executables made using the right compiler options?
  • Did the programs produce output in acceptable formats? Is this checked with the format-check programs.

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 program(s) executables that got evaluated.
  • Source codes found in the task directory with the extensions (PAS,C,CPP).
  • The format-checker and the evaluation programs for each task
  • Test data used for the evaluation.
  • The language environments.

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:

  • Evaluation of a program involves several "test runs" with input data that complies with the task specification but is unknown prior to the contest. The evaluation of each program will consist of the following steps:
  • All directories will be renamed.
  • The executable program stored with the exact name stated in the task specification and the test data will be copied into a special evaluation directory.
  • The executable will be executed (without any command-line parameters).
  • A network clock or, if necessary, an external timer device will time the execution.
  • If your program terminates "normally" (with exit code 0) within the time limit, then the output is saved for checking, otherwise it is aborted and the output will NOT be considered.
  • After completion of all runs the saved output files will be transferred to a server computer and their correctness will be evaluated there.
  • Under no circumstances will the evaluation be based on the source code of the contestant. This includes also the case in which an 'executable does not exist but a source code exists'. Objections based on source code will be denied.
  • In any conflict it is the backup that will be considered, which is made right after the competition ends, by the technical


Dates | Location | Contact | BOI'98 | IOI'99