- Only teams accepted by the CTU Open Director can take part in the contest.
- All teams who want to participate have to check-in at the registration desk on Friday or on Saturday.
Conduct of the contest
- The language of the contest is English. All written materials will be in English. Additional languages may be used.
- Contestants may bring resource materials such as books, manuals, notes and program listings. Contestants may not bring any machine-readable versions of software or data. Contestants may neither bring their own computers, computer terminals and calculators nor any kind of communication devices such as radio sets, cellular phones, pagers and PDAs.
- Solutions to problems (source programs) submitted for judging are called runs. Each run is judged as accepted or rejected and the team is notified of the result.
- Rejected runs will be marked as either "compile time error" or "run-time error" or "time-limit exceeded" or "wrong answer" or "presentation-error" or "too late" or "contest rule violation."
- A contestant may submit a claim of ambiguity or error in a problem statement by submitting a clarification request to a judge. If the judges agree that an ambiguity or error exists, a clarification will be issued to all contestants.
- Contestants are not to converse with anyone except members of their own team and personnel designated by the CTU Open Director. System support staff may advise contestants on system-related problems such as explaining system error messages.
- The contest will be held in a networked environment. The network may only be used to submit solutions, to ask questions and to produce listings in ways designated by the organizers. Any other use of the network is strictly forbidden and results in immediate disqualification and removing from the contest area.
- While the contest is scheduled for five hours, the CTU Open Director has the authority to alter the length of the contest in the event of unforeseen difficulties. Should the contest duration be altered, every attempt will be made to notify contestants in a timely and uniform manner.
- A team may be disqualified by the CTU Open Director for any activity that jeopardizes the contest such as dislodging extension cords, unauthorized modification of contest materials (soft- or hardware), forbidden network activities, or distracting behavior.
- The CTU Open Director is solely responsible for ruling on unforeseen situations and interpreting these rules.
- A problem is solved when it is accepted by the judges. The judges are solely responsible for accepting or rejecting submitted runs. In consultation with the judges, the CTU Open Director determines the winners of the CTU Open contest. The CTU Open Director and judges are empowered to adjust for or adjudicate unforeseen events and conditions. Their decisions are final.
- Teams are ranked according to the most problems solved. Teams who solve the same number of problems are ranked by least total time. The total time is the sum of the time consumed for each problem solved. The time consumed for a solved problem is the time elapsed from the beginning of the contest to the submittal of the accepted run plus 20 penalty minutes for every rejected run for that problem regardless of submittal time. There is no time consumed for a problem that is not solved. In case of a tie, teams are ranked by the number of minutes elapsed from the beginning of the contest until the first correct solution was submitted. If the last rule does not break the tie the CTU Open Director is responsible to find a fair solution.
- Each team uses one IBM PC compatible computer. The guaranteed configuration of the computer includes a PC-AT compatible keyboard, a mouse and a color monitor.
- Users' environment consists of a workstation running GNU/Linux operating system with X Window System graphical software. Standard X Window System utilities, such as terminal or xcalc are available.
- The programming languages of the contest are Java, C, C++ and Python.
- The name of the submitted program and a way of its compilation are:
- Java programs
- Required extension: .java
- How to compile: javac -d . -deprecation <source-filename>
- C programs
- Required extension: .c
- How to compile: gcc -pipe -static -Wall -lm -O2 -o <exec-filename> <source-filename>
- (GCC version < 4.9, if available) Compile with mudflap support: gcc -pipe -static -Wall -fmudflap -fmudflapir -lmudflap -lm -g -o <exec-filename> <source-filename>
Scoring of the contest
Although the organizers try to eliminate differences, please note that the exact version of operating system, compilers or other programs provided during the contest may differ from these given below, depending on local conditions.
- Required extension: .cpp
- How to compile: g++ -pipe -static -Wall -lm -O2 -o <exec-filename> <source-filename>
- (GCC version < 4.9, if available) Compile with mudflap support: g++ -pipe -static -Wall -fmudflap -fmudflapir -lmudflap -lm -g -o <exec-filename> <source-filename>
- Required extension: .c11
- How to compile: g++ -pipe -static -Wall -lm -O2 --std=c++11 -x c++ -o <exec-filename> <source-filename>
- Required extension: .py
- Usage or creation of any file other than stdin and stdout,
- usage of more than one thread or process,
- usage of any network facilities,
- usage of any library call not related to the problem solution.
- Mozilla compatible browser is available for the graphical way of submissions.
- In the text-mode, submit program is available to perform submissions. rank and state tools can be used to query the rank and team status, respectively.
The major and minor version number of compilers are guaranteed. Their exact revision/build will be no lower than stated.
- Java Development Kit 8 for Java programs (Oracle JDK 1.8; 1.8.0_101),
- GCC 4.9 series for C and C++ programs. (GCC 4.8 with MudFlap might also be available for experienced users.) (4.9.2)
- Python 3.4 with a basic set of modules. (We still consider the usage of this language as experimental and on your own risk.) (3.4.2)
- Editors in X11: gvim, gedit, nedit, emacs;
- Editors in text mode: emacs/zile, joe, mcedit, nano, vim.
- Debuggers, apart from those in some of the aforementioned editors, are gdb, jdb and also the frontend ddd.
- Valgrind for dynamic analysis. (libmudflap for C-code instrumentation might also be available.)
- IDEs: CodeBlocks, Geany, JIdea and Netbeans.