IOI 2003 Competition Rules
Version: 1.11 (First Hardcopy Version)/grg
Last modified: Fri Aug 15 14:27:14 CDT 2003
These Competition Rules cover Competition Procedures and Judging
Procedures. Additions and changes to these rules will likely be made;
intermediate versions will be distributed electronically as they are
available, and the final version will be distributed in the first GA
meeting of IOI 2003. Notable changes from previous years include a
procedure for submitting allowed items to be provided to contestants
during competition rounds and the possible inclusion of small amounts
of clarifying text in answers to contestants' questions.
Delegation Leaders have the responsibility of ensuring that all
members of their delegation fully understand these rules and abide by
them. Anyone is welcome to translate these rules into other languages
to help understanding, but this English version is the official rule
set.
Tasks
All of the tasks in IOI 2003 are designed to be algorithmic in nature.
Efficiency plays an important role in some tasks; whenever efficiency of
algorithmic computations is important, there will be grading inputs for
which some correct but inefficient approaches can also score some points.
It is important, therefore, for contestants to attempt a task even if the
contestant does not know how to solve the hardest possible test
cases.
There are two types of task solutions: (1) solutions comprising a
single source file of a computer program, and (2) solutions comprising
a set of "output" data files.
(1) Solutions consisting of a program source file:
When a program source file is required as a solution, the source code
provided by the contestant must be contained in a single source file. The
task statement will specify:
- the input and output data formats,
- the input value ranges (when applicable),
- the input source (either a filename or, for reactive tasks, standard input),
- the output target (either a filename or, for reactive tasks, standard output),
- the resource limitations for the computations (e.g., CPU time, memory limitations),
- any other constraints on the program, and
- the comment tags required in the source code so that the grading system can identify the task and programming language.
The submitted source program must be smaller than 1 MB and the
evaluation server computer must be able to compile it in less than 30
seconds. Submitted programs which do not meet these constraints will
be rejected by the submission system and the contestant will be
notified.
(2) Solutions consisting of output data files:
The competition might include tasks for which input data is given to
the contestant and the contestant is required to produce only the output
data as a solution. If the contestant writes programs to help determine
the output data, the programs should not be submitted with the solution.
The input data will be provided in ASCII text files. For these tasks,
the task statement will specify:
- the structure of the input and output files, and
- information on obtaining the full set of official input files.
Input and output data:
In all tasks, input and output data consist of one or more lines,
each ending with an end-of-line character. No end-of-line character
conversion is necessary, as input data provided in each operating
system environment will have appropriate end-of-line characters for
that operating system, and output files will be accepted with either
end-of-line convention. Each line contains one or more space-separated
items. An item is a string of printable non-white-space characters
(ASCII code from 33 through 126). An item may represent an integer or
a general string; the meaning of each item will be given in the task
description.
The format for input and output data will be specified in the task
description. The output data files should be formatted strictly
according to the task-specific instructions.
Competition Procedures
Competition Schedule
IOI 2003 begins on Saturday, August 16 (Arrival Day) and ends on
Saturday, August 23 (Departure Day). The First Competition Day is
Monday, August 18, and the Second Competition Day is Wednesday, August
20. On each competition day contestants will be given three tasks to
complete in the five hours from 8:30 to 13:30.
There will also be a two hour Practice Competition round the morning
of Sunday, August 17 from 10:00 to 12:00. The purpose of this practice
round is to familiarize all participants with the environment and
procedures. The practice tasks will be distributed in advance of the
IOI and contestants are encouraged to bring prepared solutions with
them on floppies for submission during the practice round. All
contestants are required to take part in the Practice Competition
round.
Quarantine
In order to protect the confidentiality of the tasks, all contact
and communication between contestants and team leaders is prohibited
between the start of a GA Meeting where tasks for a competition day are
presented (13:00) and the end of the five-hour round on the following
day (13:30). During this period the contestants are not allowed to
communicate by any means, direct or indirect, with anyone who attended
the GA Meeting; and the GA Meeting participants are not allowed to
communicate task-related information to anyone not at the Meeting. The
contestants and the GA Meeting participants must obey any instructions
which restrict their access to specific parts of the campus.
If a contestant violates the quarantine, they will be disqualified.
If some other person associated with a national delegation violates the
quarantine, then all contestants of that delegation will be
disqualified.
Competition Equipment and Environment
Dell Dimension 2400 computers will be provided for all contestants.
These have 2.2 GHz Intel Pentium 4 processors with 512K of cache, 256MB
DDR RAM, with 17-inch CRT monitors. A Dell QuietKey Keyboard and a
2-button scroll mouse are provided, although contestants are invited to
bring their own non-programmable keyboards and pointing devices (not
cordless; see "Competition Supplies" section below). The keyboard and
mouse connectors are PS/2-style 6-pin mini-DIN female jacks, and there are
additionally six USB 2.0 ports. Each machine has a CD-RW burner, which
contestants who bring their own CD blanks will be able to use during
appeals to back up their competition data, and a 3.5" 1.44MB floppy.
Finally, each machine also has a 9-pin (D-9 male) serial port and a
25-pin (D-25 female) parallel port.
These machines will be installed to dual-boot to Windows XP Pro
and Red Hat 9.0 Linux. Versions of gcc/g++,
fpc, gdb and rhide will be installed in both
environments; the Free Pascal IDE will be available in at least Windows,
and emacs, vim, joe, and ddd will be
available in Linux.
For team leaders to translate tasks, computers with a version of
Microsoft Word with some multilanguage support will be provided. In
addition, some Ethernet ports and 802.11b access will be available for leaders bringing
laptops.
Competition Supplies
In the competition room, blank paper and writing utensils will be
provided. On the competition days, contestants may not bring anything
into the competition rooms with them as they enter; any attempt to bring
any item other than clothing, reasonable jewelry, and
simple wristwatches into the competition room will be considered
cheating. However, certain items may be submitted in advance to be given
to a contestant during the competition rounds. These items are:
- wired keyboards which are non-programmable (i.e., no programmable buttons or "macros"),
- wired mice or equivalents (trackballs, touchpads, etc.),
- English language dictionaries,
- translation dictionaries between English and any language,
- simple clocks, watches, timers, or alarms (without other functions), and
- other items the contestant absolutely cannot do without (e.g., ergonomic aids, medical items, stuffed cows or other non-electronic plush toy mascots).
At the end of the Practice Competition round, a Delegation Leader
may submit any of these items on behalf of a contestant after examining
the items and vouching that no cheating is involved. Contestants should set up the items at their
computers during the Practice Competition round; the items will be screened and rejected items will be
set aside and returned later. During Competition Round 1, contestants may use
any of the items remaining at their computer. When Competition
Round 1 ends, contestants
will be given bags which they should label
with their contestant ID and into which they must place all items
they wish to be provided to them during Round 2 (with the exception that they
may optionally leave their keyboard and mouse out of the bag and attached to the computer for use during appeals). Contestants must submit the bag
and its contents to the room monitor before leaving the competition room at the end of Round 1. The bags will be placed at the contestants' computers before Round 2 begins.
Note that the allowed items will only be collected for both rounds at
the end of the Practice Competition; any item which a contestant wishes
to have during either round should be submitted at the end of the
Practice Competition, and any item a contestant wishes to have during
Round 2 should be bagged and resubmitted at the end of Round 1.
All items not mentioned above are prohibited and submissions of those
items will be rejected, including but not limited to
- any computing equipment (e.g., calculators, organizers, PDAs, computers, calculator or "data bank" watches),
- any books, manuals, written or printed materials other than two types of dictionaries explicitly allowed above,
- any data storage medium (e.g., diskettes, CD-ROMs, "pen drives," compact flash/smart cards, microdrives),
- any communication devices (e.g., mobile phones, radios of any sort), and
- wireless keyboards, wireless mice, or any other wireless input devices.
Possession of any prohibited items during a competition will be
considered cheating and will be cause for immediate disqualification.
Any electronic or printed materials provided by the competition
organizers during the Competition Round may be used by the contestants
(e.g., a Users Guide to the submission system, or any electronic
documentation or reference manuals provided in the installed competition
environment or on the provided Competition Server).
Starting the Competition:
On competition days immediately after breakfast ends at 8:00,
contestants will be admitted to the competition rooms. All contestants
must wear their ID badges to the competition. Each contestant will
have a pre-assigned room and computer within that room; this
information will be posted the morning of the competition. Contestants
should be in their seats by 8:25 (5 minutes before the start of the
competition). On the way to their computers, contestants will be
checked to verify that they are not bringing anything with them into
the competition rooms other than clothing, reasonable jewelry, and
simple wristwatches. Contestants must find their assigned computer,
sit down, and wait for the competition to begin without disturbing
any:
- computers,
- keyboards,
- bags of items submitted during the Practice Competition (which will be placed at contestants' desks),
- other competition materials.
The beginning of the competition will be marked by a start signal,
after which time the contestant may use any of the above items.
Task Questions:
During the first hour of competition, contestants may submit written
questions concerning any ambiguities or items needing clarification in
the competition tasks. Questions must be submitted on the provided
Clarification Request Forms, expressed either in the contestant's native
language or in English. If required, delegation leaders will translate
their contestants' questions to English after they are submitted and
before they are sent to the Scientific Committee.
The Scientific Committee will respond to every question submitted by
the contestants. Since this might take some time, contestants should
continue working while waiting for the answer to their questions. Most
questions will be answered with one of "YES", "NO", or "NO COMMENT";
contestants should phrase their questions so that a yes/no answer will be
meaningful. Contestants will not be involved in or exposed to discussion
regarding their questions. However, in cases where the Scientific
Committee feels that the contestant does not understand the task
statement, English text which helps clarify the task may be added to the
response, and if necessary, translated by the contestant's Delegation
Leader into the language in which the question was originally posed.
Competition Server
The competition computers will have network access to a Competition
Server, a web server which provides documentation, needed task data, and
facilities such as printing, backups, test execution, and solution
submission.
PRINTING: After a contestant requests that a document
be printed, the support staff will deliver the printout to the
contestant; contestants should not leave their computer to find
printouts. Printouts will be delivered as quickly as possible, but
large volumes can produce delays in delivery.
TEST EXECUTION: For tasks that require programs as
solutions and files as output, a contestant will be able to submit a solution along with an
input file for test execution. The test execution system will compile
and execute the program under Linux, enforcing the resource limitations
for the particular task. The first 100kB of screen (including error
stream) output, the contents of the output file, execution time, and
any applicable error messages will be displayed. A contestant can have
at most one test execution in progress at a time; until a test
execution has completed, further submissions will be blocked.
SOLUTION SUBMISSION: Contestants submit solutions to
the Competition Server via a web browser. For tasks which require
output files as solutions, the submission facility will validate the
format of each output file submitted, accepting the output file for
grading if it passes. For tasks that require programs as solutions,
the submission facility will accept C/C++ or Pascal programs, verify
that the program compiles and obeys the stated limits on source code
size and compile time, and will run the program on a small number of
simple test cases including at least one given in the task description,
enforcing the relevant run-time resource constraints. If the
submission produces the correct output, then the submission is accepted
for grading; note that acceptance only means that the compilation was
successful (no compile errors) and the program correctly solved the
simple test cases within the resource constraints, but no more. In
particular, it does not mean that the program would obey the resource
constraints when given different input.
Contestants may submit any number of times for each task; each
accepted submission replaces all prior submissions of that task by that
contestant. The last accepted submission by a contestant for a task is
officially graded in a separate process and contestants will not be
informed about the results until after the competition. Contestants
are advised to submit tasks as they are ready and not to wait until the
last minutes of a competition round to submit.
Assistance:
Contestants may ask the support staff for assistance at any time.
The staff members will not answer questions about the competition
tasks, but will deliver Clarification Request Forms and printouts, help
locate toilets and refreshments, and assist with computer and network
problems. The only manner in which contestants are allowed to access
the network is via web browser access to the designated Competition
Server; even running a single 'ping' command is strictly prohibited.
Contestants should never attempt to "fix" or "debug" or even "check"
computer or network problems themselves; they should instead ask for
assistance with any such issues.
Ending a competition round:
Three warnings of the end of a round will be given with 15 minutes, 5
minutes, and 1 minute remaining by announcing the warnings verbally and
writing the time remaining on a chalkboard. The end of the round will be
announced verbally and signaled with a whistle. At the announcement
ending the round, contestants must immediately stop working and wait at
their desks without operating the computers or touching anything on their
desks; an additional announcement will be made instructing them to leave
their tables and exit the competition hall.
At the end of the first Competition Round, any previously submitted
items a contestant would like to use during the second Competition
Round should be put back into the bag and resubmitted to competition
staff. All other items should be taken out of the competition room,
including the task statements; nothing of value should be left in the
competition room without placing it in the bag and resubmitting it. At
the end of the second Competition Round, contestants should remove all
items including their bag from the competition room; nothing should be
left behind.
Grading
For tasks that require programs as solutions, the submitted source
files will be re-compiled under Linux, enforcing the source file size
and compilation time constraints. The grading system will then execute
the compiled program under Linux, enforcing the task-specific run-time
resource constraints. Typically, there will be a CPU run-time limit, a
limit on total memory use,
and a 1 MB limit on the number of bytes written to the output file. Every
limit applies independently for each test case; if any limit is
exceeded, no points will be awarded for that test case. The actual
limits will be specified in the task materials. If a program exceeds
its allotment of any resource, the program is terminated and the test
case is marked incorrect, without regard to any output produced.
Programs submitted must not contain any assembly language code and
must not make any system calls other than file/stream reading and
writing. Upon termination, programs must always explicitly return an exit
value of 0; other exit codes will be interpreted by the grading system
as failures. Functions which return the elapsed program time will be
provided in all environments; this should be used instead of signals or
timers. Programs must be strictly deterministic, that is, multiple
runs on the same input must produce the same output; random number
generators may be used provided they are explicitly seeded with
constants in order to make the results deterministic.
Submitted programs are not allowed to
- access the network,
- fork,
- create files other than those required by the task statement,
- attack the system security or the grader,
- attempt to execute other programs,
- change file system permissions, or
- read file system information other than the input file given in the task statement.
All of the above actions are considered cheating, and any contestant
whose program attempts any of the above will be immediately
disqualified.
Only work which has been submitted to and accepted by the grading
system will be awarded points. Grading results are scheduled to be available at 17:00 on
competition days; printouts summarizing the scoring will be distributed
and other information will be made available electronically. Grading
appeals are due at 20:30 on the same day. Results of appeals will be
made available the following day. In the event that a mistake is
discovered in the grading of a task, every successful submission of
that task will be re-graded and re-scored whether or not the scoring of
that submission has been appealed. Note that re-scoring may result in
a higher or lower score for any contestant; should anyone's score
change after grading results have been distributed, new results will be
printed and distributed to them.
Code of Conduct
Any contestant
- interfering with other contestants' activities,
- damaging the competition or evaluation facilities,
- accessing the network or any computer other then their own during a competition round by any means other than pointing a web browser at the internal Competition Server as directed,
- subverting the security of any computers (e.g., making any material accessible to the network from their computer),
- interfering with the execution of the competition in any way,
- communicating in any way with anyone other than the competition staff during a competition round (whether providing or receiving information or materials),
- or attempts to do any of the above
will be considered to be cheating and will immediately disqualified
from the competition. Also refer to the list above of prohibited program
actions which are considered cheating and result in disqualification.
Cheating will be taken very seriously and rules will be strictly
enforced. Any contestant who is cheating in any way will be
immediately disqualified, at the discretion of the Scientific
Committee. It is of the utmost importance that Delegation Leaders
speak to their contestants about cheating, instructing and urging all
contestants not to cheat, explaining the relevant rules and verifying
that all contestants fully understand them.
Change History
- 1.11 -- "First Hardcopy Version"
- In "Competition Supplies," add jewelry and wristwatches as items
that may be worn into the competition
- Remove edit history
- 1.10 -- "Second web version"
- Add requirement that programs return an exit code of 0
- Remove stack size limitations (subsumed by total memory use limits)
- Clarify that test execution applies only for tasks which write
output files (explicitly excluding "reactive" tasks)
- Specify that the output file limit is 1MB
- Update screening procedure: items should be set up at computers
during Practice Competition, bags will only be used between rounds
1 and 2, keyboards and mice may be either bagged or left at computers.
- Change scheduled times when scores are distributed and appeals are
due (following the current schedule)
- Give competition machine specification
- Add some 802.11b coverage for GA
- Point out that work must be submitted and accepted to earn points.
- 1.00 -- "First web version"
- No content changes from 0.23
- Remove edit history; reformat some html
Direct questions and comments to IOI'03 Scientific Committee Chair
Greg Galperin.
|