Notes to Teams using the Central Server

This document supplements the regional Notes to Teams

Judging at the Central Server

The central server uses an autojudge. This means that, when you submit a run, a preliminary judgement will be determined automatically. Preliminary judgements do not appear on the scoreboard. They only appear on your list of runs.

A human judge will always review a preliminary judgement before the judgement becomes final. Please note that you may sometimes receive a final judgement directly from a human judge, without first receiving a preliminary judgement from the autojudge (any judgement that is not marked as “Preliminary” is a final judgement made by a human judge).

It is very important that you understand that the preliminary judgement is intended primarily as a quick feedback mechanism. This preliminary judgement is the autojudge’s best guess although, in our experience, the autojudge gets it right most of the time:

  • A “Preliminary Yes” always becomes a “Yes”
  • A preliminary “No” (of any kind) nearly always remains a “No”, but the exact type of “No” may change in the final judgement. For example, the autojudge cannot detect presentation errors, and will flag them as “Preliminary No - Wrong Answer”. Similarly, the autojudge cannot detect submission errors, and these tend to be flagged as various types of “No”, depending on the exact type of submission error.

There are only three cases in which a “Preliminary No” (of any type) can turn into a “Yes”:

  • If you received a “Preliminary No - Runtime Error” because your C/C++ main function did not return a zero, but your output was correct, then we will consider the submission to be correct. However, we ask that you please remember to return zero from your main function, as you will get more accurate feedback from the autojudge, and it will make the judges’ lives easier.
  • If you submitted a solution to a problem that prints out floating point numbers, and the problem explicitly states the desired level of accuracy (e.g., “The answer should be given as a floating point number with an absolute error of at most 0.001”), you may receive a “Preliminary No - Wrong Answer”, even if your solution is correct. A human judge will have to run a validator to check whether your solution is within the specified level of accuracy.
  • Very rarely, a team’s solution will produce output that, although not a character-for-character match for the judges’ output, is determined to be valid by the judges during the contest itself. When this happens, a clarification will be issued to the entire region regarding the output specification of that problem.

Finally, take into account that the central server uses the following compilers on a Ubuntu 12.04 system:

  • Java 1.7.0_25
  • GCC 4.8.1

If your site does not use these compilers, please avoid using non-standard extensions to the languages, as this may result in a “No - Compilation Error” judgement.

Your programs will be compiled using the following command line arguments for the respective languages:

C:

gcc-4.8 -g -O2 -std=gnu99 -static $* -lm

C++:

g++-4.8 -g -O2 -std=gnu++11 -static $*

Java:

javac -encoding UTF-8 -sourcepath . -d . $*

For C/C++, the resulting executable will be executed to generate the output of the submission. For Java, the compiled code will be executed using the following command:

java -client -Xss8m -Xmx2048m $*