DOJ logoDOJ
Problems
Recently added problemsSaved problems
CategoriesDLCContestsGroupsTeamsBoard
Ranking
Solved Problem RankingStreak rankingDOJ Power ranking
Status
Call for TasksLoginRegister
DOJ logoDOJ

Community online judge with OI-style subtask scoring, Elo ratings, and Discord-backed certification.

Problems
ProblemsCategories
Community
ContestsRankingBoardNoticesHost an external contestGuide
Account
LoginRegisterJudge Status
Policy
Terms of ServiceDLC RulesPrivacyAPI documentationLanguage runtimesContest rank rewardsRating and performance
© 2026 DOJ
All rights reserved

Policy

  • Terms of Service
  • DLC Rules
  • Privacy
  • API documentation
  • Language runtimes
  • Contest rank rewards
  • Rating and performance

Rating and performance

Rating tracks your level across contests; performance expresses a single contest result on the rating scale.

Current rating tiers

These are the tiers currently configured for DOJ. Both range endpoints are inclusive. Profiles and handles use the same colors.

Rating rangeTier nameColor
0–1199Newbie#64748b
1200–1399Pupil#22c55e
1400–1599Specialist#14b8a6
1600–1799Expert#3b82f6
1800–1999Candidate Master#8b5cf6
2000–2199Master#f97316
2200–2399International Master#ef4444
2400 and aboveGrandmaster#dc2626

Participants and placement

Calculations use registered official participants with normal accounts inside the contest’s rated participation range. Unofficial entries, scoreboard exclusions and permanently banned accounts are excluded. Higher total scores rank first, then lower penalties. Equal scores and penalties form a tie. Zero-score participants are included.

DOJ Arena performance

The reference field consists of participants who have completed their first three rated contests. With each participant’s current rating R_j, a participants ahead and t tied participants, binary search finds P satisfying the equation below. Configured virtual zero-score participants and their rating are also included. Established temporarily suspended participants are calculated independently against the official field and do not affect other participants’ performances.

In the formulas, F is performance before the cap and F_final is final performance. F_upper and F_lower are the neighboring performances above and below; R_old and R_new are ratings before and after the update.

∑j11+10(P−Rj)/400=a+t2\sum_j\frac{1}{1+10^{(P-R_j)/400}}=a+\frac{t}{2}j∑​1+10(P−Rj​)/4001​=a+2t​

Conversion to displayed performance

P is unchanged from 400 up to, but not including, 2400. Values below 400 use an exponential conversion; values at or above 2400 use a logarithmic conversion. The cap below is applied after conversion.

F(P)={max⁡ ⁣(1,400e(P−400)/400)P<400P400≤P<24002400+800ln⁡ ⁣(P−1600800)P≥2400F(P)=\begin{cases}\max\!\left(1,400e^{(P-400)/400}\right)&P<400\\P&400\le P<2400\\2400+800\ln\!\left(\frac{P-1600}{800}\right)&P\ge2400\end{cases}F(P)=⎩⎨⎧​max(1,400e(P−400)/400)P2400+800ln(800P−1600​)​P<400400≤P<2400P≥2400​

Your first three rated contests

Your first three rated contests use placement interpolation. Performance is the average of the nearest established participants above and below you. Missing upper and lower neighbors use 3000 and 0 respectively; without any established participants the result is 1500. The same cap applies after interpolation.

F=Fupper+Flower2F=\frac{F_{\mathrm{upper}}+F_{\mathrm{lower}}}{2}F=2Fupper​+Flower​​

Contest rating upper limit + 400

If the contest’s configured rated participation upper limit is L, final performance cannot exceed L + 400. This uses the contest setting, not the highest participant rating. Contests without an upper limit have no such cap. Final performance is displayed rounded to an integer.

Ffinal=min⁡ ⁣(F,L+400)F_{\mathrm{final}}=\min\!\left(F,L+400\right)Ffinal​=min(F,L+400)

Example: a contest capped at rating 1600 turns a calculated performance of 2300 into 2000. An Arena participant rated 1200 then receives a new rating of 1400.

Performance and rating updates

DOJ Arena moves the current rating one quarter of the way toward the capped final performance. The new rating is rounded to an integer with a minimum of 1. Ratings are applied after the contest ends when an organizer reviews and finalizes the calculation.

Rnew=max⁡ ⁣(1,round⁡ ⁣(Rold+Ffinal−Rold4))R_{\mathrm{new}}=\max\!\left(1,\operatorname{round}\!\left(R_{\mathrm{old}}+\frac{F_{\mathrm{final}}-R_{\mathrm{old}}}{4}\right)\right)Rnew​=max(1,round(Rold​+4Ffinal​−Rold​​))

Contests using the Codeforces method

The Codeforces method also calculates placement performance and applies the same cap. Established participants’ rating deltas are calculated separately using expected rank, the geometric mean of actual and expected rank, half movement, and global and top-rated corrections. The Arena quarter-step formula does not apply to established Codeforces participants. First-three-contest participants use the interpolation and quarter-step rules above. The Codeforces method excludes accounts with any active ban, including temporary suspension.