Universal Cup


Contest Info

Contest Info

  • Each contest will take place on the weekends of the week.
  • Each contest is 5 hours long.
  • The ruleset of the contest is the traditional ICPC rule.
  • Each contest will consist of a number of problems, 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.

Contest Window

  • To facilitate teams from different time zones, we have set up eight time windows. Teams are free to choose any of the seven windows to participate in.
    • 08:00 (UTC +8) on Saturday ~ 13:00 (UTC +8) on Saturday
    • 10:00 (UTC +8) on Saturday ~ 15:00 (UTC +8) on Saturday
    • 13:00 (UTC +8) on Saturday ~ 18:00 (UTC +8) on Saturday
    • 16:00 (UTC +8) on Saturday ~ 21:00 (UTC +8) on Saturday
    • 19:00 (UTC +8) on Saturday ~ 24:00 (UTC +8) on Saturday
    • 21:00 (UTC +8) on Saturday ~ 02:00 (UTC +8) on Sunday
    • 23:00 (UTC +8) on Saturday ~ 04:00 (UTC +8) on Sunday
    • 02:00 (UTC +8) on Sunday ~ 07:00 (UTC +8) on Sunday
  • The length of the contest will always be 5 hours, no matter which time window you choose.
  • The scoreboard will contain the results of the teams participated in the previous time windows.
  • In cases where a chosen competition window conflicts with significant events (e.g., other international competitions or festivals), teams may request an additional time window.
  • Such requests should ideally be made before the conclusion of the last official competition window.
    • If there is an additional window of time that is later than the last official window, an announcement will be made reminding all participants to wait until after the extended time window to discuss the problems in public places.
  • The committee will review all requests. Note that additional time windows pose a risk of the leak of the problems, and thus, non-credible requests are subject to rejection.
  • Risk of Early Participation: Teams that start their participation early must be aware of the potential for updates to contest materials. These updates may include but are not limited to revised problem descriptions, clarifications, incomplete leaderboards, adjusted time limits, additional test cases, and rejudgings. For further details on associated risks, please refer to the Contest Problems section of the rules.

Contest Problems

  • The tasks are given in the traditional ICPC format. No partial scores or subtasks are given.
  • Most of the tasks can be divded into three different categories:
    • Standard Tasks: The most common task type. You are asked to read the input from the standard input and print the answer to the standard output. A checker from the jury will be used to evaluate your answer.
      • The Problem A in the trial contest is an example of the standard task.
    • Interactive Tasks: The input given to your program may be not predetermined. It might built specifically for your solution and given based on the behavior of your program. An interaction from the jury will be used to interact with your program.
      • The Problem B in the trial contest is an example of the interactive task.
    • Communication Tasks: You solution might run multiple times during the evaluation.
      • The Problem C in the trial contest is an example of a communication task.
  • You might receive the following types of verdicts for your submission:
    • AC: Your solution is accepted! It means you successfully solved this problem.
    • WA: The output of your solution is wrong.
    • TL: Your solution exceeds the time limit, which means it has run for longer time than permitted.
    • ML: Your solution exceeds the memory limit, which means it has consumed more memory than permitted.
    • RE: There was an error during the execution of your program, like division by zero, incorrectly addressing memory or reading or writing to files.
    • Compile Error: Your solution could not be compiled successfully.
    • Judgement Failed: There's something wrong in this problem. Please contact the administrator!
  • During the tournament, there may be instances where test case is incorrect or incomplete. In this case, all failed submissions will be rejudged.
  • Except for very special circumstances (e.g., attacks on the judging system, severe missing or incorrect test cases or output validators), submissions will not be rejudged once they have been accepted.
  • Prior to the start of the first official contest window, it is possible that problems may undergo substitutions, or test data may be added, deleted, modified, or otherwise altered in a manner that significantly impacts the competition. In such scenarios, the submissions from all teams participating in the additional time window, including those that were previously accepted, may be subject to rejection, rejudgment, or even deletion. Therefore, we advise teams to request an additional time window only under special circumstances.

Technical Details

  • The platform used during the competition is QOJ, a modified version of the Universal Online Judge.
  • The CPU used in the judging machine is Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz.
  • The supported programming languages include C, C++, D, Python 3, Java, and Rust.
  • For C and C++ languages, the compiler version used is GCC 13.1.0, with -O2 enabled. You can use any language standard including C++98, C++11, C++14, C++17, C++20, and C++23.
  • The version of D is DMD64 D Compiler v2.106.0
  • The version of Python3 is Python 3.12.1
  • The version of Java is OpenJDK 11.0.16
  • The version of Rust is rustc 1.70.1
  • The size of each submission could not exceed 256 Kilobytes.

Contest Rules

Clarifications and Announcements

  • During the contest, judges may send announcements through Clarifications in the contest system, which may contain explanations, revisions, or other important information about the content of the problems.
  • Participants 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 system. It is not recommended to use other communication methods to ask questions.
  • No replies of the clarifications are guaranteed as the author might not be available in the whole contest window.

Contest Rules

Please note that the rules regarding the number of computers have been changed since Stage 20.

  • Contestants may print out problem statements or use their own computers and electronic devices to read them during the competition.
  • During the competition, team members are not permitted to use their own electronic devices simultaneously for coding or employing other problem-solving applications. This includes, but is not limited to, writing code for solving problems, using scientific computing software for calculations, or running self-written programs for extended calculations.
  • Contestants are prohibited from communicating with anyone outside their team during the contest. Distribution of any problem-solving materials, including ideas, codes, or auxiliary programs, on the internet is strictly forbidden.
  • 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 second season of the Universal Cup, the value of $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.