Universal Cup



Contest Info

  • Each contest will take place on Saturdays of the week.
  • To facilitate teams from different time zones, we have set up three time windows. Teams are free to choose any of the three windows to participate in.
    • 13:00 ~ 18:00 (UTC +8) on Saturday
    • 19:00 ~ 24:00 (UTC +8) on Saturday
    • 02:00 ~ 07:00 (UTC +8) on Sunday
  • Each contest is 5 hours long.
  • The ruleset of the contest is the traditional ICPC rule.
  • Each contest will consist of a number of questions, usually 10 to 13.
  • The leaderboard will be frozen 4 hours after the contest starts, and the results submitted after 4 hours will be shown pending on the leaderboard.
  • The competition will be ranked in descending order of the first keyword by the number of solved problems, and ascending order of the second keyword by the time penalty.
  • The penalty for a problem is the the time elapsed from the beginning of the contest to the submission of the first accepted run. Any wrong submission (excluding compilation errors) will add 20 minutes to the penalty time for this problem.
  • The total penalty of the team is the sum of the penalty times of all solved problems.


Technical Details

  • The platform used during the competition is DOMjudge 8.1.3.
  • The CPU used in the judging machine is Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz.
  • The supported programming languages include C, C++, Python 3, and Java.
  • For C and C++ languages, the compiler version used is GCC 10.2.1, with -O2 and -std=c++17 enabled.
  • The version of python3 is Python 3.9.0
  • The version of Java is OpenJDK 11.0.16
  • The size of each submission could not exceed 256 Kilobytes.

Clarifications and Announcements

  • During the contest, judges may send announcements through Clarifications in the DOMjudge system, which may contain explanations, revisions, or other important information about the content of the problems. Players should check the content of the announcement regularly, and the impact caused by the omission of announcement information cannot be used as a reason for appeal.
  • During the competition, if contestants have questions about the problems, contestants should ask questions in the DOMjudge system. It is not recommended to use other communication methods to ask questions.

Contest Rules

As an online non-profit event, we cannot design additional invigilation methods, so there are no additional restrictions on the number of participating machines, pre-written codes and other requirements. However, participants need to abide by the following principles:

  • During the contest, contestants should not communicate with anyone other than team members, nor should they distribute their team's problem-solving materials (including but not limited to problem-solving ideas, codes or other auxiliary programs) to the Internet.
  • During the contest, contestants should not submit malicious codes, including but not limited to attacks on the evaluation machine and malicious occupation of evaluation system resources.
  • The problems used in each round may come from previous contests. If any one of the participating teams has participated in such contest, that participant should not continue to participate in this round. If the team participating in the competition has the same composition as the team in the Universal Cup, the team's rating will be replaced by its score in the original competition.
  • During the contest, each team member can use their own computer at the same time, but only one computer is allowed to be used to write code at the same moment.
  • If a participant violates the above principles, or engages in other behaviors that the referee team believes interferes with the normal operation of the contest, the participant may be given a warning, removed from the contest or banned from participating in the season.

The right to interpret and enforce the rules belongs to the Universal Cup Organizing Committee.


If contestants have any objections to the referee's handling during the contest, please send an email to [email protected] within 48 hours after the competition to explain the problem. Appeals beyond this time will be considered invalid.


Note: The current rating system is still in the experimental stage. It is subject to change in the future.

Grand Prix 30 System

In each round, a team that get into top 30 will be award GP30 scores, according to the following table.


Rating in a Contest

At the end of each round, the Rating of all valid teams will be calculated, and the Rating of each team will be calculated as follows

$$ R = 100 \times \frac{Solved}{maxSolved} \times \frac{n_{\mathrm{teams}} - rank + 1}{n_{\mathrm{teams}}} + \mathrm{GP30} $$

The meaning of each of these parameters is as follows.

  • $R$ : The rating of the team, it will be a real number in $[0, 200]$.
  • $Solved$ : The number of problems solved by the team.
  • $maxSolved$ : The number of problems solved by the best team.
  • $n_{\mathrm{teams}}$ : The number of teams that have solved at least one problem. Teams that did not solve any problems are not counted.
  • $rank$ : The rank of the team.
  • $\mathrm{GP30}$ : The GP30 score of the team. If the team didn't get into top 30, the score will be 0.

Season Rating

A team's Rating for a season will be calculated based on its Rating for each round. Specifically, assume the team's Rating for all contests in the season, sorted in descending order, are $r_0, r_1, r_2, \cdots, r_{m-1}$ ( $r_0 \geq r_1 \geq r_2 \geq \cdots \geq r_{m-1}$ , then the rating of the team will be:

$$R = k \sum_{i=0}^{m-1} (1-k)^{i} r_i$$

In the first season of the Universal Cup, $k$ will be $\displaystyle\frac{1}{4}$.

External Rating

A team may apply to the Organizing Committee to add its Rating for the corresponding round when:

  • When a team has participated in a round on site, the Rating will be calculated based on their results on site.
  • When a team is the proposer or a tester of a round, it will receive the average of the Rating of all teams that have solved at least one problem as its Rating.