Technical rules


  1. Only teams accepted by the CTU Open Director can take part in the contest.
  2. All teams who want to participate have to check-in at the registration desk on Friday or on Saturday.

Conduct of the contest

  1. The language of the contest is English. All written materials will be in English. Additional languages may be used.
  2. 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.
  3. 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.
  4. 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."
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. The CTU Open Director is solely responsible for ruling on unforeseen situations and interpreting these rules.

Scoring of the contest

  1. 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.
  2. 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.

Contest environment

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.

  1. 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.
  2. Users' environment consists of a workstation running GNU/Linux operating system with X Window System graphical software. Standard X Window System utilities, such as xterm or xcalc are available.
  3. The programming languages of the contest are Java, C, C++ and Python.
  4. The name of the submitted program and a way of its compilation are:
    • Java programs
      • Required extension: .java
      • How we compile: javac -encoding UTF-8 -sourcepath . -d . <source-filename>
      • How we execute the result: java -Dfile.encoding=UTF-8 -XX:+UseSerialGC -Xss65536k -Xms917504k -Xmx917504k <main_class_name> <source-filename>
    • C programs
      • Required extension: .c
      • How we compile: gcc -x c -Wall -O2 -static -pipe -o <exec-filename> <source-filename> -lm
    • C++ programs
      • Required extension: .cpp
      • How we compile: g++ -x c++ -Wall -O2 -static -pipe -o <exec-filename> <source-filename> -lm
    • Python programs
      • Required extension: .py
      • How we check the source: python3 -m py_compile <source-filename>
      • How we run the source: python3 <source-filename>
  5. The C standard library and the standard template library are available.
  6. An on-line manual will be available for each compiler.
  7. Executable code cannot have more than 5 MB.
  8. Size of the source code cannot exceed 256 KB.
  9. Each program has 1024 MB RAM at its disposal.
  10. Each program has to terminate with an exit code 0 (return 0).
  11. For each submitted program it is not allowed to use any of the following constructs:
    • 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.
  12. Submission of solutions is possible in two manners: GUI-based (via a web browser) and text-mode based (via a command line tool).
    • 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.

  13. The major and minor version number of compilers are guaranteed to be no lower than stated. The exact revision/build depends on the local conditions.
  14. Access to the following compilers is available:
    • GCC 10.2 for C and C++ programs,
    • OpenJDK 11.0 for Java programs,
    • Python 3.9 with a basic set of modules and numpy 1.19.
  15. Access to a number of tools is provided.
    • 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.
    • GCC's AddressSanitizer and Valgrind for dynamic analysis.
    • IDEs: CodeBlocks, Geany and Netbeans; Visual Studio Code may also be available.