IOI 2013 Competition Rules (tentative)
Last updated: 7 July 2013
These Competition Rules cover Competition Procedures and Judging Procedures. This draft may be revised to address omissions or inconsistencies, but will not change substantially. The final version will be presented at the first GA meeting of IOI 2013.
Delegation Leaders have the responsibility of ensuring that all members of their delegation fully understand these rules and abide by them.
An updated version of the IOI syllabus can be found at http://people.ksp.sk/~misof/ioi-syllabus/.
Changes for IOI 2013
The rules have undergone a major revision this year. Most importantly:
- There are no release tokens. All submissions will receive full feedback, and competitors may make at most 100 submissions per task.
- There are no longer separate testing vs submission environments. To test a solution you can simply make a full submission.
The rules have also been made shorter (stripped down to essential information on what competitors are allowed to do and how their submissions will be scored).
- 7 July 2013: “Run-time error” clarified to also suggest possible out of memory condition.
The source program provided by the contestant must be contained in one or more source files as specified in the task statement.
- Submissions must not perform explicit input and output operations; instead data must only be exchanged through the interfaces specified in the task statement. In particular, direct access to any file, including standard input or standard output, is forbidden (though writing to standard error is allowed).
- Submissions must be single-threaded, and must not fork.
Each task will be divided into several subtasks, each worth a portion of the total points.
Time and memory limits will be specified for every task. In general, time and memory limits will be generous (for example, double those required by the expected solution). The memory limit is on the overall memory usage including executable code size, stack, heap, etc.
The contestant workstation will contain one folder for each programming task, which will contain the necessary interface files, a sample grading program, and a skeleton implementation of the required source files which exercises the interface but does not correctly solve the problem. The sample grader provided on the workstation will not be the same as the official grader used by the grading system.
There will be two competition days. On each day contestants will be given three tasks to complete in five hours.
There will be a two-hour Practice Competition prior to the first competition day, to familiarize all contestants with the grading system. The practice tasks will be published before the IOI. Contestants may bring printed solutions to the practice tasks, on paper only, during the Practice Competition.
In order to protect the confidentiality of the tasks, all direct and indirect contacts and communication between contestants and delegation leaders are prohibited between the moment where tasks for a competition day are presented to the members of the GA and the end of the five-hour round on the following day. During this period the contestants are not allowed to communicate by any means, direct or indirect, with any member of the GA or anyone who has seen the tasks. The GA members are not allowed to communicate task-related information to anyone who may not attend GA meetings. The contestants, the GA members and anyone else who has had access to the tasks must obey any instructions which restrict their access to specific parts of the IOI venue.
If a contestant violates the quarantine, he or she can be subject to disqualification. If some other person associated with a national delegation violates the quarantine, then all contestants of that delegation may be subject to disqualification.
Competition Equipment and Environment
All contest machines will be installed to boot in Linux. The following packages will be installed:
- distribution: Ubuntu 12.10 i386, Gnome Classic;
- web browsers: Firefox;
- editors: joe, vim, gvim, kate, kwrite, eclipse-cdt, emacs, lazarus, gedit, nano, scite, codeblocks, geany
- compilers and interpreters: gcc 4.7, g++ 4.7, fpc 2.6, python 2.7.3, ruby 1.9.3
- debuggers: gdb, ddd
- Documentation for C (manpages), the C++ STL (SGI’s STL manual),
and Pascal (from the FreePascal project).
We will not support C++ 11. The specific Pascal, C and C++ compiler flags will be published on the IOI 2013 website.
- Laptop: Dell E4300, 13″ display
- CPU: Core 2 Duo, 2.4 GHz
- RAM: 2 GB
- User disk space: 40 GB
- Keyboard: built-in US keyboard and external US keyboard
- Mouse: built-in trackpad and external mouse
Following on from previous years, the contest will be run as a paperless contest. Each contestant will have on-line access to the English description of the official tasks, the auxiliary information, and all task translations, in electronic format (PDF). Contestants can print on request, and working paper and clarification forms will be on paper.
In the competition room, blank paper and writing tools will be provided. On the competition days, contestants may not bring anything into the competition rooms, except for the following items under the proviso that they cannot transmit or store any data in electronic or printed format (other than the purpose for which they have been designed):
- reasonable jewelry,
- writing utensils,
- keyboards and/or mice,
- small mascots,
- English, or English to native language, dictionaries.
Competitors will work on laptops. Competitors who wish to use their
own keyboard and/or mouse will need to bring their own.
If a contestant wants to bring a keyboard, mouse, small mascots or dictionaries to the competition, these must be submitted to the technical staff during the practice competition. Any of these will be checked and, if cleared, will be given to the contestant in the first competition day. After the first competition day, the contestant must leave these items on her or his workstation if (s)he wants to use them during the second competition day. Once again these will be checked and, if cleared, will be given to the contestant in the second competition day. After the second competition day, contestants must take these items with them as they leave the competition room.
Any attempt to bring any other item into the competition room will be considered cheating. In particular, during competition rounds it is strictly prohibited to bring:
- any books, manuals, written or printed materials,
- any data storage medium (e.g., CD-ROMs, pen drives, compact flash/smart cards or micro-drives),
- any communication devices (e.g., mobile phones, radios of any sort),
- any other electronic devices (e.g., watches, calculators, organizers or PDAs).
Any electronic or printed materials provided by the organizers during the Competition Round may be used by the contestants (e.g., a Users Guide to the Contest System, or any electronic documentation or reference manuals provided in the installed contest environment).
Starting the Competition
All contestants must wear their ID badges during the competition. Each contestant will have a pre-assigned workstation. Contestants should be in their seats by at least 5 minutes prior to the start of the competition. Contestants must find their assigned computer, sit down, and wait for the competition to begin without touching anything (such as keyboards, mice, pen or paper).
During the first two and a half hours of competition, contestants may submit written questions concerning any ambiguities or items needing clarification in the competition tasks. After this period competitors may still submit written comments, but no answers will be given.
Questions and comments 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 into 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 during the first two and a half hours. Since this might take some time, contestants should continue working while waiting for the answer to their questions.
Contestants should phrase their questions so that a yes/no answer will be meaningful. Questions will be answered with one of the following:
- “ANSWERED IN TASK DESCRIPTION (EXPLICITLY OR IMPLICITLY)” — The task description contains sufficient information. The contestant should read it again carefully.
- “INVALID QUESTION” — The question is most likely not phrased so that a yes/no answer would be meaningful. The contestant is encouraged to rephrase the question.
- “NO COMMENT” — The contestant is asking for information that the Scientific Committee cannot give.
Each competitor has her or his own workstation. There is no restriction on the number of times a program may be edited, compiled, and run on the workstation. The workstations have network access to the grading system, as well as facilities such as printing and solution submission.
Grading and evaluation take place on the grading system, which provides a similar execution environment to that of the contestant workstation. The physical hardware for scoring tasks may differ from contestant’s workstations, though the operating system and compilers will be the same.
After a contestant requests that a document is 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, though very large volumes may produce delays in delivery.
Contestants must submit their solutions for tasks by using the grading system.
Contestants may submit at most once per task per minute, and at most 100 times per task.
Each submitted source program must be written in C, C++ or Pascal, it must be smaller than 100 KB, the evaluation server must be able to compile it in less than 10 seconds and at most 256 MB of memory. The programming language will be determined by the grading system based on the file extension of the submission:
- Pascal — *.pas,
- C — *.c,
- C++ — *.cpp.
No other file extensions will be accepted.
Contestants can use the grading system to view the status of their submissions and get a short report on the compilation errors of their source code.
Full feedback will be available for every submission, indicating whether each subtask has been solved, and the total score awarded.
For each input scenario, if a subtask is not solved then the grading system will give one of the following reasons:
- Incorrect solution
- Run-time error (or out of memory)
- Time limit exceeded
No information on the actual data, the output produced by the contestant solution or any other execution details will be given to the contestant, and the input scenarios for each subtask may be presented in a randomised order.
The contestant may deduce from the feedback her or his provisional score for the task. However, there is a small chance that the score may change due to appeals, or indeterminacy of the contestant’s submission. Indeterminacy may arise intentionally due to the use of pseudo-random number generators, or unintentionally due to programming bugs or marginal running time. Submissions may be re-evaluated many times, and the final score will be that yielded by the final evaluation.
The score for each task will be the maximum of all submissions.
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 the grading system: even running a single “ping” command is strictly prohibited and may lead to disqualification.
Contestants should never attempt to fix or debug or even check computer or network problems themselves; instead, they should ask for assistance.
Ending the Competition
Three warnings will be given at 15 minutes, 5 minutes, and 1 minute before the end of the competition. Each warning will be given by an audible signal. The end of the competition will be announced both verbally and by an audible signal. At the announcement ending the competition, contestants must immediately stop working and wait at their desks without touching the computers or anything on their desks. An additional announcement will be made instructing them to leave their tables and exit the competition room.
At the end of the first competition, any previously submitted items a contestant would like to use during the second competition should be left at the workstation. All other items should be taken out of the competition hall, including printouts. At the end of the second competition, contestants should remove all personal items including their mascots and dictionaries or any other previously submitted item; nothing should be left behind.
Contestants must use only the workstation and account assigned to them on each competition day. In particular:
- contestants must not attempt to submit illegal programs as discussed above, nor try to tamper with or compromise the grading system;
- contestants must not attempt to gain access to root or any account other than the one assigned to them;
- contestants must not attempt to store information in any part of the file system other than the home directory for their account or the /tmp directory;
- contestants must not touch any workstation other than the one assigned to them;
- contestants must not attempt to access any machine on the network or the Internet, other than to submit tasks and view submission results through the grading
- contestants must not attempt to reboot or alter the boot sequence of any workstation;
- contestants must not communicate with other people during the
competition, other than IOI 2013 staff and/or Scientific
All of the above actions are considered cheating, and may result in disqualification.
Submitted solutions are evaluated using data which conform to the specification given in the problem statement, but which are hidden from competitors during the competition.
Provisional grades, based on these tests, are available immediately to competitors. This hidden data will be made available electronically in the competition area during the scheduled time for analysis after each competition. Contestants and team leaders may use the contestant’s workstations to verify that the grades are assessed correctly.
A Team Leader may file an appeal by completing an Appeal Form, and submitting it to the Scientific Committee at least 30 minutes prior to the final GA meeting of that competition day. The GA will be informed of where Appeal Forms can be collected, and where they can submit them to the Scientific Committee. Every appeal will be reviewed by the Scientific Committee and the team leader will be notified of the committee’s decision. All appeals and their disposition will be summarized at the final GA meeting of that competition day.
In the event that every submission of a task should be re-graded and re-scored as a consequence of an accepted appeal, 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 published, new results will be published again.