Competition rules
To download competition rules in PDF, click here.
Competition rules of CEOI 2017 are similar to previous years.
Notable changes:
- Supported languages in addition to C/C++ also include Pascal, Java, Python 3 and C#.
- All tasks have full feedback (score) for the first 20 submissions.
- The last submitted solution counts.
Task Types
The tasks are designed to be of algorithmic nature. They may be of the following types:
- Batch tasks: Solutions comprise a single source file of a computer program which reads data from standard input and writes its answer to standard output.
- Interactive tasks: Solutions comprise a single source file of a computer program which interacts with a “grader” program provided by the organizers. The interactive interface may be implemented either by using standard input/output, or by linking modules provided by the contestant and the organizers.
- Output-only tasks: The contestants are given input files and they have to produce correct output files by any means available.
Limits
As usual, for every task other than output-only tasks, the following limits will be enforced on the contestants’ submissions:
- Time limit: a limit on the total processor time the process may consume while solving a given input.
- Memory limit: a limit on the total amount of memory the process may have allocated at any moment. Note that this limit includes not only the variables, but also the executable code, global data, the stack, etc. There is no separate limit on the stack size.
- Program size limit: no submitted program may exceed 100 kB in size. The size of the compiled program must not exceed 10 MB. Maximum compilation time is 30 seconds.
All task-dependent limits will be announced in the task statements.
Competition Equipment and Environment
The contestant machines will run on Xubuntu Linux 16.04.
Compiler versions that will be used:
- C will be compiled by GCC 5.4 or newer with compiler flags -O2 -std=gnu11 -static -fno-asm -lm.
- C++ will be compiled by GCC 5.4 or newer with compiler flags -std=c++11 -static -O2. This means that C++11 will be supported.
- Pascal will be compiled by FreePascal 3.0 with compiler flags -XS -O2 -S2.
- Java will be compiled by Oracle Java 1.8 and executed with the task-appropriate -Xmx and -Xss flags (same argument for both).
- C# will be compiled with Mono mcs 4.2 and executed with Mono 4.2.
- Python will be executed with CPython 3.5.
Official solutions will be in C++ and it is not guaranteed that it is possible to obtain full points in other programming languages due to differences in speed and memory requirements.
Documentation for the compilers and standard libraries will be available.
Submitting Solutions
The contestants’ submissions are evaluated by a contest system. The contest system consists of a contest server and a set of grading machines. The contestants will be able to run their solutions on the server using a test facility.
Contestants submit solutions to the contest server via a web-based submission system running on that server. Each contestant will be assigned a username and a password for accessing the web application on the contest server.
Solutions for tasks may be submitted at any time during the contest. Submissions are evaluated on the grading machines. The software environment on the grading machines is as close as possible to the environment on the contestant machines.
For tasks which require programs as solutions, the submission facility will accept C, C++, Pascal, Java, Python 3, and C# source files. Verify that the program compiles and obeys the stated limits on program source size and compile time.
For each task at most 100 submissions are allowed.
The solution must regularly terminate its execution in order to be graded. If the solution returns an error code different from zero, the contest system will consider that the solution had a runtime error and no points will be awarded for the corresponding test case. Therefore, solutions in C or C++ have to define the main function as int main and terminate the execution with return 0 or exit(0).
If a contestant submits more than one solution for the same task, the last submitted solution counts.
For tasks which require output files as solutions, contestants must submit all output files compressed into a zip file, with files inside named as specified in the task description. The task statements of output-only tasks will contain further information.
It is the responsibility of the contestants to submit their solutions to the contest system before the contest is finished. We advise the contestants to reserve enough time before the end of the contest to make sure that all of their solutions are submitted.
Contestants may use the test interface of the contest system to run their solutions on the test data of their choice. The contestants are allowed 50 test runs per task and the size of the input file is limited to 10MB.
Scoring
For each task the test data will be divided into groups, with each group containing one or more test inputs. A test input is solved correctly if the submitted program produces a correct output file within the enforced limits. A group is solved correctly if each of the inputs it contains is solved correctly.
Points are awarded only for correctly solved groups of inputs. If there are special grading rules for the task, the scoring will be clarified within the problem statement.
Feedback
Contestants will receive full feedback for the first 20 submissions per task. Full feedback indicates the number of points received by a submission. No information on the actual data, the output produced by the contestant’s solution or any other execution details will be given to the contestant during the contest.
Clarification Requests
During the whole competition, contestants may submit written questions concerning any ambiguities or items needing clarification in the competition tasks.
All questions regarding the tasks must be submitted via the competition server, 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. Contestants should phrase their questions so that a yes/no answer will be meaningful. Questions will be answered with one of the following:
- YES
- NO
- 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 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.
If contestant has questions or issues not related to the tasks (e.g., computer or network problems, request for additional blank papers, etc), he or she should notify the staff in the contest room by raising their hand.
Announcements
In case the Scientific Committee makes verbal announcements during the competition, these announcements will also be available in the Competition Server’s web interface. These announcements will be in English language only.
The web interface also shows the official time remaining in the contest.
Fair Play
In order to ensure a fair competition, submitted programs are not allowed to:
- use libraries that are not related to solving the problem (libraries for graphics, networking, etc.)
- execute other programs
- access the network
- create processes or threads
- read or write files not described in the task description
- attempt to subvert security of the grader
During the contest, contestants are not allowed to:
- touch any workstation other than the one assigned to them
- access the network for anything other than communicating with the competition server
- communicate with persons other than CEOI staff
- reveal their passwords
- intentionally damage or endanger any part of the competition environment
- reboot their workstation
- use any printed materials and/or electronic devices brought by themselves with the exceptions explicitly listed under Competition Supplies.
Attempting any of the above may result in disqualification.
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, but:
- writing utensils
- simple wristwatches
- non-wireless keyboards and mice (see below)
- small mascots (see below)
- English dictionaries (see below)
- clothing and reasonable jewelry
If a contestant wants to bring a keyboard or mouse, small mascots or English dictionaries to the competition, these must be submitted to the technical staff during the practice competition day. 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 his or her workstation if he or she 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 the contestant must take any of these items with him or her.
Any attempt to bring any other item into the competition room may be considered cheating. In particular, during competition rounds it is strictly prohibited to bring any computing or communication devices, storage media or printed materials.
During the contest analysis, contestants are free to bring and use anything.
Appeal Process
At the end of each competition day, submitted solutions are judged using data which conforms to the specification given in the task statement, but which is unknown to contestants during the competition (except for output only tasks, of course).
Provisional grades, based on these tests, are delivered to team leaders. The test data will be available electronically in the contestant environments. Contestants and team leaders may use the contestant workstations to verify that the grading is correct.
A team leader may file an appeal to the Scientific Committee in time specified by the competition schedule.
Every appeal will be reviewed by the Scientific Committee and the team leader will be notified about the committee’s decision. All appeals and their disposition will be summarized at the final General Assembly meeting of that competition day.
In the event that a mistake is discovered in the grading of a task, the mistake will be corrected and the submissions of all contestants will be re-graded and re-scored, whether or not the scoring of that particular 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 distributed to them.