Technical Specifications

The following information relates to ICPC and SPAR contests.

Scoreboard

The scoreboard lists all teams and shows which problems they have solved, as well as the time taken and number of submissions made.

Teams are ranked by number of problems solved, with ties broken by aggregate time penalty.

Time Penalty

For each problem a team solves, they incur time penalty equal to the time in minutes from the start of the contest to their first correct submission, plus a 20 minute penalty for each incorrect submission (excluding compilation errors).

Teams do not accrue time penalty on problems they do not solve.

For example, suppose a team makes submissions as follows.

ProblemTimeVerdict
A8Time Limit Exceeded
A23Wrong Answer
A27Correct
B42Compile Error
B43Run Error
B52Correct
C58Time Limit Exceeded
A59Wrong Answer
Time is given in minutes from the start of the contest

The team incurs:

  • 67 minutes of time penalty for problem A
    • 27 minutes to solve, plus two incorrect submissions
    • The last submission is not penalised because the team had already solved the problem.
  • 72 minutes of time penalty for problem B
    • 52 minutes to solve, plus one incorrect submission
    • The second submission is not penalised because it received the Compile Error verdict.
  • no penalty for problem C, as they did not solve it.

If teams solve the same number of problems and have the same time penalty, the tie will be broken using the same method as in the most recent ICPC World Finals. As of 2017, tied teams are ranked in increasing order of the time of their last problem solved.

Teams are encouraged to check the scoreboard regularly to see what problems other teams have solved, as these are often the easiest.

Scoreboard Freeze

The scoreboard will be frozen for the last hour of the contest (half an hour for ANZAC contests in the sprint format).

All submissions made after the freeze will appear as pending runs on the scoreboard. Teams will continue to receive verdicts for their own submissions, but will not receive balloons for solving problems.

The full scoreboard will be revealed shortly after the end of the contest.

Documentation

Submission Limits

  • The time limit is specific to each problem.
  • The memory limit for each problem is 1 gigabyte unless otherwise specified.
  • The source code limit is 256 kilobytes.

Compilation Specifications

C++
Versiongcc 10.2.1
Compilationg++ -x c++ -Wall -std=c++17 -O2 -static -pipe -o prog prog.cc
Execution./prog < input > output
Java
Versionopenjdk 11.0.15
Compilationjavac -encoding UTF-8 -d . prog.java
Executionjava -Dfile.encoding=UTF-8 -XX:+UseSerialGC -Xss128m -Xms${MEMORY_LIMIT}k -Xmx${MEMORY_LIMIT}k < input > output
Python 3
Versionpypy3 version: 7.3.5, equivalent to python 3.7.10
Compilationpypy3 -m py_compile program.py3
Executionpypy3 program.py3 < input > output
The compilation step is used only to check for compilation errors, not in the execution of the code.

Each problem is guaranteed to have a solution in C++ and Java, but not necessarily in Python. To be specific, it is possible that for some problems the fastest possible Python solution may not run within the time limit. Use Python at your own risk.

Note however that we now use PyPy3 as our Python runtime. This usually runs much faster than interpreted Python, so almost all problems can be solved in Python.

The compilation output “Info: detected entry point:” is merely logging and does not indicate an error in your program.

C
Versiongcc 10.2.1
Compilationgcc -x c -Wall -O2 -static -pipe -o prog prog.c -lm
Execution./prog < input > output

Evaluation of Submissions

TODO