IOI 2001 Competition Rules

This page contains the competition rules for IOI 2001. There is more detailed information about several of the issues, such as hardware, compilers, etc. on respective competition web pages. These rules are written in a form which is addressed to the contestant.

IOI 2001 Competition rules

These competition rules include the Competition Procedures and Judging Procedures information, which the host is obliged to send to invited countries four months prior to the competition. Minor changes to these rules are possible. The final version will be distributed in the first GA meeting.

Competition dates
Competition equipment
Programming environment
Competition tasks
Competition-time routines
Other information

Competition Dates
IOI 2001 takes place from Saturday 14 July (Arrival Day) to Saturday 21 July (Departure Day). The First Competition Day is Monday, 16 July, and the Second Competition Day is Wednesday, 18 July. On both competition days you will be given three tasks to complete in the five hours from 9.00 to 14.00.

There is also a practice competition on Sunday, 15 July. All contestants must take part in the practice competition.

Competition Equipment
The competition computers are Osborne Pro PCs with 933MHz Pentium III processors, 128 MB RAM, a standard US keyboard, a mouse, and a color screen. Blank writing paper, pens, pencils and erasers will be provided for you. You may not take any material such as e.g. diskettes, calculators, written or printed materials, or communication devices into the competition area. A contestant who is in possession of this type of material in the competition room may be disqualified from the competition.
Programming environment
The computers have a dual-boot installation of Debian Linux release version 2.2r2 and Windows 98 SE. Items may have been removed from the standard installations and the installations may have been changed in order to improve security and get smaller installations.

In both Linux and Windows environment, the programs installed for the competition are set up in such a way that they can be found from the users' path (ie. no extra setup is needed to use the tools). Both Linux and Windows platforms include

These are the official compilers of IOI 2001.

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.

Similar installations will be used for the computers in the translation computer room. Thus, the installations include a part of the Microsoft Office 2000, with e.g. Microsoft Word and some multilingual support for Microsoft Office, and TeX for Linux.


The Debian Linux release 2.2r2 basic installation is done using a CD set built according to the instructions on the Debian web pages. The packages are chosen by the method "Simple" with the following choices:

The last two are primarily for the convenience of the delegation leaders to be used on the delegation computer room.

The Linux environment includes for program development:

The respective standard manual and info pages are also installed.


The Windows environment includes for program development:

The Turbo tools are installed because the IDEs for the competition compilers, in particular Freepascal, may have some problems. The Turbo tools, however, carry with them the DOS limitations, most importantly, the memory is limited.

The Windows installation includes the standard Windows 98 SE installation, along with e.g. the MS-DOS editor "Edit" (version 2.0.026) and the standard Microsoft Notepad and Wordpad.

The Windows installation includes a part of the Microsoft Office 2000, with e.g. Microsoft Word and some multilingual support for Microsoft Office.

Gcc is installed as a part of the DJGPP packages, and the respective standard info files are also installed. Rhide also comes with info files. Freepascal is installed as the "full" version.

Additional tools

Additional tools may be available for assisting the contestants with the tasks. All documentation about these which does not reveal the nature of the tasks will be made available on the competition web pages in May. The documentation also includes information about what, if anything, of the documentation may be translated for the students to be available in the competition event.

There may be some messages or other material which will only be made available for translation along with the task description in the respective GA meetings.

Competition Tasks
All of the tasks involve computations of algorithmic nature. The solution for each task is either a single source file of a program to perform algorithmic computations or such a set of output data files, each file related to some input information, that obtaining the output files involves computations of algorithmic nature.

Whenever efficiency algorithmic computations is important, there will be at least one grading input where inefficient program can also score some points.

Each task has a title and a short name. The short names are used to identify the tasks.

If you are working on Linux and, as an example, the tasks are called storage, rocket, and notes, then your home directory has subdirectories storage, rocket and notes, and the task-related material is in the respective subdirectories.

If you are working on Windows 98 and, as an example, the tasks are called storage, rocket, and notes, then your computer has folders C:\ioi\storage, C:\ioi\rocket, and C:\ioi\notes.

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

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

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

When a set of output data files is required as a solution, then the task documentation will specify

In this case the input data will be in ASCII text files.

Input and output data
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-spefic 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 specification.

The output data files consist of a similar sequences of items, and they should be formatted strictly according to the task-specific instructions. The actual checking of data items is done by using the C++ streams in such a way that extra whitespace (e.g. space) within a line is meaningless.

You will be able to use the competition computers for practice in the periods that will be announced at the competition site. Also, you must take part in the practice competition on Sunday, 15 July.
A curfew will start at the start of a GA meeting where tasks for a competition day are chosen. During the curfew the contestants are not allowed to communicate by any means with any people who attend this meeting. Also, the contestants and the people taking part in the meeting must obey any instructions which limit the area where they are allowed to stay. The people authorised to attend the meeting are not allowed to communicate task-related information to other people before the end of the curfew.

A contestant breaking this rule may be disqualified from the competition. If some other person associated with a national delegation breaks this rule, then all contestants of the respective delegation may be disqualified from the competition. The curfew will be lifted on both competition days after the competition has started.

Competition-time routines
Starting the competition

You are taken to the competition hall before the competition starts. A randomly chosen computer is designated to each contestant (different for both competition days).

The computer is switched on and displays a menu, from which you may choose to boot up either Linux or Windows 98. The competition envelope containing the task definitions and other necessary competition information is in front of the computer. At the starting whistle, you may operate your computer and open your competition envelope.

You do not need to log in for Windows 98. You should log in to Linux with
username: ioi
password: ioi


During the first hour of competition, you may submit written questions concerning any possible obscurities or ambiguities in the competition tasks. The following reply to a question will be one of: "Yes", "No" or "No Comment".

You must submit your question(s) in English or in your 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.


You 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 to find toilets and refreshments, and assist in computer problems.


You will be able to get printouts by printing through a facility provided to you as a part of the competition environment. The lab supervisors will take the prints to you. You may expect a small delay.


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

Test execution

For problems, which require a program as a solution, you will be able to submit your solution along with an input file for test execution. The test execution will be run on Linux, and it will consist of compilation, and execution with the resource limitations for the particular task. You will be shown the output, the execution time, and possible error messages. Test execution does not grade or backup your solution, and it does not verify the correctness of the output.

Submitting solutions

You submit your solutions through a facility provided to you as a part of the competition environment. The facility checks certain things about your submission. If your submission is source code, the facility will check that it compiles and solves a simple test case. If your submission is a data file, the facility will check its format.

If the checks are not passed, you will get an error message. If the checks are passed, the solution is accepted for grading, and you will be informed about that. However, the actual grading is done separately and you will not be informed about your score while the competition is running.

In case a contestant submits a solution for the same task several times, then the last submission which is accepted by the facility will be used in the grading.

Ending the competition

You will be warned at 15 minutes (3 short whistles and a verbal announcement "15 minutes"), 5 minutes (2 short whistles and a verbal announcement "10 minutes") and 1 minute (1 short whistle and a verbal announcement "1 minute") before the end of the competition. After the end signal (3 long whistles and a verbal announcement "end of competition"), you must immediately stop working. Put the keyboard on top of your terminal. Do not switch off your computer. You must not operate your computer or touch anything on your desk. When you are told, you may leave the competition hall and you may take your competition envelope contents with you.

The grading system evaluates the submitted tasks after the competition.

The evaluation forms and evaluation data will be made available to the delegations due to the schedule of IOI 2001. Complaints about the scoring are to be submitted within a separately announced time to the Scientific Committee.

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

If your submission has succeeded, then the compilation is succesful and your program has managed to solve some simple test case, but no more. In particular, it does not mean that your program would obey the resource constraints given in the task description when different input parameter values are being used.

Other information
A contestant may be disqualified from the competition.

For submitting solutions, taking backups, and printing, the computers are connected in an internal network. These facilities are arranged using a secure connection. You 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 organisers. Even sending a single 'ping' command is strictly prohibited. If the network does not seem to work, contact the lab supervisors. Also, you are not allowed to make any material accessible to the network from your computer. The network traffic is monitored and logged during the competition, and a contestant breaking this rule may be disqualified from the competition.

Your programs

If your programs try any of this, you may be disqualified from the competition.

Jyrki Nummenmaa