使い方ガイド
Daily Problems は、ジャッジサーバーを立てずに「毎日1問」を出題・回答するためのWebアプリです。 問題を解くときは入力ファイルをダウンロードしてローカルで解き、出力ファイルの SHA-256 を提出します。 答えが正解のハッシュと完全に一致すれば AC(正解)です。
1. アカウント登録とログイン
- 対象Discordサーバーに参加しているDiscordアカウントでログインします。
- 既存アカウントは移行ログイン後、Discord連携を完了すると利用できます。
- Discord連携後の初回ログイン時に、writer招待、当日AC時のスレッド招待、当日AC通知を設定できます。
2. 問題を解く
- カレンダー から解きたい日付の問題を開きます。
- 問題文を読み、必要なら入力ファイルをダウンロードします。
- 手元でプログラムを書いて実行し、出力ファイルを生成します。
- ハッシュ化ツール で出力ファイルの SHA-256 を計算します。 計算はブラウザ内で完結し、ファイルはサーバーに送信されません。
- 算出したハッシュ、または出力ファイルを問題ページから提出します。
出力ファイル本体はサーバーに保存されません。判定は SHA-256 の一致のみで行うため、 末尾の改行やスペースの違いでも不正解になります。出力形式は問題文の指示に厳密に従ってください。
3. 難易度の目安
各問題には作問者が Easy / Medium / Hard / Expert の4段階で難易度を設定します(既定は Medium)。 あくまで目安ですが、おおよそ次の AtCoder レート帯を想定しています。
| 難易度 | 目安レート(色) |
|---|---|
| Easy | 〜緑 (〜1199) |
| Medium | 水・青 (1200〜1799) |
| Hard | 青・黄 (1800〜2399) |
| Expert | 橙以上 (2400〜) |
レート帯はあくまで作問者の主観による目安です。同じレベルでも問題によって体感の難しさは前後します。
4. ランキング
ランキング は、 問題の当日中に正解(AC)した数を月ごとに集計して表示します。 後日解いた提出はランキングの当日AC数には含まれません。
5. コマンドライン(daily CLI)
入力のダウンロードと提出はターミナルからも行えます。CLI は別リポジトリで配布しています。
- API トークンは、ログイン後にプロフィールページの「API トークン」から発行・失効できます。
- API 仕様は Swagger UI で確認できます。
6. 問題を作る(作問者向け)
- ログインすると、カレンダーの空き日付から問題を追加できます。
- 問題文は Markdown と数式(KaTeX)で記述でき、作問中にプレビューで確認できます。
- 必要に応じて入力ファイルを配布し、正解出力ファイルをアップロードします(保存されるのはハッシュのみです)。
- 公開前の予約済み問題は、カレンダー の該当日付からプレビュー・編集できます。
作問した問題は、公開日(問題の日付)になるまで他のユーザーには内容が見えません。 公開日より前に問題文や答えが漏れないよう注意してください。
作問のコツ
出題日を空欄のまま作成すると、問題は直近の空いている日付に自動で追加されます。特定の日に出題したい場合のみ、日付を指定してください。
正解出力ファイルは、アップロードされたバイト列がそのまま SHA-256 でハッシュ化され、その値だけが保存されます。末尾の改行の有無や CRLF・LF の違いも異なる答えとして扱われるため、解答者に期待する提出形式とまったく同じ内容のファイルを用意してください。アップロードする前に、ハッシュ化ツール で自分の解のハッシュが一致するか確認しておくと安全です。
判定は完全一致で行うため、出力形式に曖昧さが残ると、正しく解けていても不正解になってしまうことがあります。末尾の改行や数値の桁数、区切り文字などを問題文で明確に指定し、入力例と出力例を添えると親切です。
問題文と解説は Markdown で記述でき、数式は KaTeX($...$ や $$...$$)で書けます。編集画面の右側にプレビューが表示されるので、公開前に表示崩れがないか確認してください。
入力フォーマットや入出力例は、io ブロックを使うと見やすく書けます。```io と ``` で囲んだコードブロックの中では $...$ の数式がそのまま組版されるため、$N$ や $a_1\ a_2\ \dots\ a_N$ のように変数や添字を含む形式を整った見た目で記述できます。
```io $N$ $a_1\ a_2\ \dots\ a_N$ ```
制約に対する補足や注意書きは、GitHub 風のアラート記法で色付きのコールアウトとして強調表示できます。引用(>)の先頭行に [!NOTE]・[!TIP]・[!IMPORTANT]・[!WARNING]・[!CAUTION] を書くと、種類ごとの枠になります。
> [!WARNING] > 出力の末尾には余計な空白を入れないでください。
解説は任意ですが、書いておくと親切です。解説は作問者本人と、その問題を AC した人、そして公開日の翌日以降はすべてのユーザーに表示されます。ネタバレを含んでかまわないので、解法や考察を自由に書いてください。
設定した難易度は、解答者が問題を選ぶときの目安になります。上の「難易度の目安」を参考に、体感に近いレベルを設定してください。
利用上の注意
- 他人の答えやハッシュを共有しないでください。答えの一致のみで判定するため、共有は不正の温床になります。
- 作問した問題の内容・入力・答えを、公開日より前に外部へ漏らさないでください。
- 問題文・入力ファイルには、著作権や機密情報に触れるデータを含めないでください。
- 大きすぎる入力ファイルはサーバーの負担になります。必要最小限のサイズに抑えてください。
- API トークンはパスワードと同等の機密情報です。漏洩した場合はプロフィールページから失効させてください。