IOI2000 COMPETITION RULES [The rules are subject to minor changes. The final version will be distributed in the first GA meeting.] The Competition Date IOI2000 takes place from Saturday 23rd September (arrival day) to Saturday 30th September (departure day). Monday 25th September and Wednesday 27th September are the competition days. On each of the competition days the contestants will be given three programming tasks to be completed in five hours from 08:30 to 13:30. Competition Equipment The competition computers will be PCs, each with an Intel Pentium III CPU running at 366MHz, 32MB RAM, a standard US keyboard, a mouse and a color monitor. Two diskettes 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 diskettes, calculators, manuals or books, into the competition room. Communication equipments such as pagers, cellular phones, etc. are STRICTLY PROHIBITED for the contestants during the competition time. Programming Tools The following tools will be installed on each computer: MS-DOS Version 6.22 Turbo Pascal Version 7.0 Turbo C++ Version 3.0 All packages will be fully installed with help files. The environment variable PATH of DOS will be set for accessing all the programming tools. Competition Tasks 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 above information, detailed descriptions of the tasks are also provided both in English and in the contestants' native languages translated by the contestants' delegation leaders. All relevant figures in the English version are numbered. The translated versions may refer to the figures by their numbers with captions translated. All figures and examples are considered as inherent parts of the task specifications. Practicing The contestant will be able to use the competition computers for practice in the periods to be announced at the IOI2000 site. Before competition, the computers will be assigned randomly to the contestants. Contestants' Programs While the contestant may choose to write his/her programs in either Pascal or C/C++, s/he must compile his/her source programs into stand-alone MS-DOS executables. The programming tasks are all solvable 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 should NOT be used: 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), especially the built-in editor, compiler and debugger, is very important. Some knowledge of compiler options may also be helpful. Furthermore, the contestant should be able to use MS-DOS for operations 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 the contestant may not know the "best" solution. Turbo C++ users should select the LARGE memory model compiler option for tasks of reactive type. External Communication The only external communications allowed for the contestants' programs are reading input files, writing output files and calling external functions in libraries, as specified in the task specification. In particular, the contestants' programs are not allowed to * do any keyboard or mouse input, * write to the serial ports, * attempt to change any interrupt, * create or use files except those specified in the task specification. Any attempt to violate the above regulation may result in disqualification and a score of 0. Input Data The input data will be read 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 specifications. The names of the input and output files must be spelt precisely as given; variations will NOT be accepted. Input data consist of a sequence of items. An item is string of printable non-space characters (ASCII code from 33 through 126). 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. Examples of input files are provided for all tasks, both in the task specification and in the task directory. It can be assumed that the input data agrees with the task specifications so that no data checking is necessary. Output Data Each program should write its output data to the ASCII text file specified in the task specification. The output should be formatted exactly as shown in the task specification. No extra data should be written to the output file as this may disrupt the evaluation process. Every line must be terminated with an end-of-line character, including the last line. A program that checks the validity of the output file will be provided for each task. This program will check only the correctness of the format of the output and write its diagnostic message in English to the screen. It will not evaluate the correctness of the results. These programs are located in each task directory with the name: _F.EXE For example, the path name of the format-checker for task RING on Day 1 will be RING_F.EXE under the directory C:\DAY1\RING. 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. Programs should not write to the screen. The contestant should remove all screen output from his/her programs before creating the final executable. Ordering of Input/Output Data The order of the data items on a line of an input/output file is the same as 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 line contains x and y, then x occurs first followed by y if no other specification is given regarding their order. Exit Code The contestants' programs 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 150x80 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. The only possible answers to the questions are: "Yes", "No" or "No Comment" The contestant must submit question(s) in English or in his/her native language, on the 'Question Form' provided. Each question must be submitted on a separate form as there is only one answer slot on each form. If necessary, translation will be done by the relevant delegation leader. The Scientific Committee will answer every question submitted by the contestants. This may take some time. Therefore, the contestants should continue working while waiting for the answers to the questions. The contestants will not be involved in discussion of the questions. The contestants may ask the lab supervisors for assistance at any time. The supervisors will not answer any questions about the competition tasks, but will deliver the question forms, help the contestants find toilets, obtain refreshments, etc. and attend to equipment problems. Backups The contestant will be provided with 2 diskettes to backup files during the competition. S/he is advised to maintain backups, so that s/he can recover in unexpected events such as equipment failure. If the contestant's computer fails with an irrecoverable error, s/he may be allowed a time compensation. The compensation time will be determined by the Evaluation Committee. 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 A warning will be given 15 minutes before the end of the competition. The warning will be done by an oral announcement in English. The final warning will be given 3 minutes before the end of the competition by a long whistle blow. After the expiration of the last 3 minutes the power will be turned off. The contestant shall take the warning opportunities 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? Do the programs produce output with correct names and in acceptable formats? Is this checked with the format-check programs? Are the executables made using the right compiler options? The contestant may NOT take any diskettes from the competition room. S/he may take the competition envelope. Evaluation IOI2000 will adopt a evaluation scheme basically the same as that of IOI'99. The evaluation will be done by the Evaluation Committee without the presence of the delegation representatives and the contestants. This evaluation process is highly automatic. In parallel with the report generation phase of the 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 delegation. The program executables that were evaluated. Source codes found in the task directory with the extensions of .PAS, .C, .CPP and .H. The format-checker and the output filter for each task. Test data used for the evaluation and correct output in case of deterministic tasks. The output of the contestants' programs on each run. The language environments. The local organization staff will allow the entrance of the contestants into the delegation computer room one per delegation at a time. Objections (if any) will be filed by submitting an objection form within five hours of the release of evaluation reports. The following points are worth of mentioning: Evaluation of a program involves several "test runs" with input data that complies with the task specification but is unknown prior to the contest. If a 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. Under no circumstances will the evaluation be based on the source code of the contestant. This also includes 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 Appendix A: An Example of the Directory Structure Suppose that the short names of the tasks for Day 1 are RING, GAME and CITY, and those for Day 2 are TREE, FROG and FLY. The contestant will find the following directories on the hard disk of his/her computer for each day: The first competition day: C:\TP Turbo Pascal C:\TC Turbo C++ C:\DAY1\RING Directory for task RING of day 1. C:\DAY1\GAME Directory for task GAME of day 1. C:\DAY1\CITY Directory for task CITY of day 1. The second competition day: C:\TP Turbo Pascal C:\TC Turbo C++ C:\DAY2\TREE Directory for task TREE of day 2. C:\DAY2\FROG Directory for task FROG of day 2. C:\DAY2\FLY Directory for task FLY of day 2. Appendix B: Rebooting of the Computer In case the computer needs to be rebooted, the following procedure should be followed: * Press the button on the front face of the computer. The following message will be displayed: Bootstrap selection menu ------------------------ 1.Disable Network Boot 2.Network Boot Using Interrupt 18h 3.Network Boot Using Interrupt 19h 4.Network Boot Using Pnp/BEV (BBS) * Press "1" on the keyboard to boot the computer from the hard disk.