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:
- 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
computer:
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.
Practicing
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:
- 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:
shortname_F.EXE
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:
C:\DAY1\PEPPER\PEPPER_F.EXE
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.
Questions
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.
Backups
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.
Printing
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:
- 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.
Evaluation
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
committee.
END OF RULES
Dates | Location | Contact | BOI'98 | IOI'99