DOJ logoDOJ
問題
最近追加された問題保存した問題
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved

ポリシー

  • 利用規約
  • DLCの利用規則
  • プライバシー
  • API 文書
  • 言語ランタイム
  • コンテストの順位報酬
  • レーティングとパフォーマンス

レーティングとパフォーマンス

レーティングは複数の大会を通じた実力の指標で、パフォーマンスは一つの大会の成績をレーティングの尺度で表した値です。

現在のレーティング階級

現在DOJに設定されている階級です。区間の両端を含み、プロフィールとハンドルにも同じ色を使います。

レーティング区間階級名色
0–1199NEWBIE#64748b
1200–1399PUPIL#22c55e
1400–1599SPECIALIST#14b8a6
1600–1799EXPERT#3b82f6
1800–1999CANDIDATE_MASTER#8b5cf6
2000–2199MASTER#f97316
2200–2399INTERNATIONAL_MASTER#ef4444
2400以上GRANDMASTER#dc2626

計算対象の参加者と順位

レーティング対象範囲内の一般アカウントによる登録済み公式参加者を使います。非公式参加者、スコアボード除外対象、永久停止アカウントは除外します。総得点の降順、同点ならペナルティの昇順で並べ、両方が同じなら同順位です。0点の参加者も含みます。

DOJ Arenaのパフォーマンス

最初の3回のレーティング対象大会を終えた参加者を基準にします。各参加者の現在のレーティングをR_j、上位人数をa、同順位人数をtとして、下の式を満たすPを二分探索します。設定された仮想0点参加者とそのレーティングも含みます。 一時停止中の既存参加者は公式参加者を基準に個別計算し、他の参加者のパフォーマンスには影響しません。

式のFは上限適用前、F_finalは最終パフォーマンスです。F_upperとF_lowerは上位・下位の隣接参加者のパフォーマンス、R_oldとR_newは変更前・後のレーティングです。

∑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​

表示パフォーマンスへの変換

400以上2400未満のPはそのまま使います。400未満は指数変換、2400以上は対数変換を行い、その後で下記の上限を適用します。

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​

最初の3回のレーティング対象大会

最初の3回は順位による補間を使います。直近の上位・下位にいる既存参加者のパフォーマンスを平均し、上位がいなければ3000、下位がいなければ0を使います。既存参加者が一人もいなければ1500です。補間後にも同じ上限を適用します。

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

大会レーティング上限 + 400

大会に設定された参加レーティング上限がLなら、最終パフォーマンスはL + 400以下です。参加者の最高値ではなく大会の設定値を使い、上限のない大会には適用しません。最終値は整数に四捨五入して表示します。

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

例:上限1600の大会で計算値が2300なら、最終パフォーマンスは2000です。Arenaで元のレーティングが1200なら、新しいレーティングは1400です。

パフォーマンスとレーティング変動

DOJ Arenaでは上限適用後のパフォーマンスとの差の1/4だけ現在のレーティングを動かします。新しい値は整数に四捨五入し、最低1とします。大会終了後、運営者が計算結果を確認して確定すると反映されます。

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​​))

Codeforces方式の大会

Codeforces方式も順位に対応するパフォーマンスを計算し、同じ上限を適用します。既存参加者の変動は期待順位、実順位との幾何平均、半分の移動、全体と上位レーティングの補正で別計算します。既存参加者にはArenaの1/4移動式を使いません。最初の3回の参加者には上記の補間と1/4移動を使います。 Codeforces方式では、一時停止を含む有効な停止処分のあるアカウントをすべて計算から除外します。