Technical rules


  1. Only teams accepted by the CERC 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 CERC 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 CERC 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 CERC 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 CERC 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 CERC Director determines the winners of the CERC contest. The CERC 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 CERC 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 terminal 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 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>
    • C++ programs
      • Required extension: .cpp
      • How to compile: g++ -pipe -static -Wall -lm -O2 -o <exec-filename> <source-filename>
    • Python programs
      • Required extension: .py
  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.
  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:
    • Java Development Kit 8 for Java programs (Oracle JDK 1.8; 1.8.0_181),
    • GCC 7.3 for C and C++ programs,
    • Python 3.6 with a basic set of modules and numpy 1.10.
  15. Access to a number of tools is provided.
    • Editors in X11: emacs, gedit, gvim, nedit;
    • 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, NetBeans.