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 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/C++
C
Version:gcc 12.2.0
Compilation:gcc -x c -Wall -O2 -static -pipe -o prog prog.c -lm
Execution:./prog < input > output
C++
Version:gcc/g++ 12.2.0
Compilation:g++ -x c++ -Wall -std=c++20 -O2 -static -pipe -o prog prog.cc
Execution:./prog < input > output
Java
Version:openjdk 17.0.10
Compilation:javac -encoding UTF-8 -d . prog.java
Execution:java -Dfile.encoding=UTF-8 -XX:+UseSerialGC -Xss65536k -Xms917504k -Xmx917504k < input > output
Python 3
Version:pypy3 version: 7.3.11, equivalent to python 3.9.16
Compilation:pypy3 -m py_compile program.py3
(Just used to check for Compile Errors, not in the execution of the code)
Execution:pypy3 program.py3 < input > output

Each problem is guaranteed to have a solution in at least 2 of the supported languages. This is typically C++ and Java. 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