The IOI'99 Competition Rules
- Return to IOI '99 Home
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
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.
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.
- 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.
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
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).
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.
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 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.
