Daily Problems

使い方ガイド

Daily Problems は、ジャッジサーバーを立てずに「毎日1問」を出題・回答するためのWebアプリです。 問題を解くときは入力ファイルをダウンロードしてローカルで解き、出力ファイルの SHA-256 を提出します。 答えが正解のハッシュと完全に一致すれば AC(正解)です。

1. アカウント登録とログイン

2. 問題を解く

  1. カレンダー から解きたい日付の問題を開きます。
  2. 問題文を読み、必要なら入力ファイルをダウンロードします。
  3. 手元でプログラムを書いて実行し、出力ファイルを生成します。
  4. ハッシュ化ツール で出力ファイルの SHA-256 を計算します。 計算はブラウザ内で完結し、ファイルはサーバーに送信されません。
  5. 算出したハッシュ、または出力ファイルを問題ページから提出します。

出力ファイル本体はサーバーに保存されません。判定は SHA-256 の一致のみで行うため、 末尾の改行やスペースの違いでも不正解になります。出力形式は問題文の指示に厳密に従ってください。

3. 難易度の目安

各問題には作問者が Easy / Medium / Hard / Expert の4段階で難易度を設定します(既定は Medium)。 あくまで目安ですが、おおよそ次の AtCoder レート帯を想定しています。

難易度目安レート(色)
Easy〜緑 (〜1199)
Medium水・青 (1200〜1799)
Hard青・黄 (1800〜2399)
Expert橙以上 (2400〜)

レート帯はあくまで作問者の主観による目安です。同じレベルでも問題によって体感の難しさは前後します。

4. 難易度投票

問題ページの「難易度投票」から、体感の難易度を投票できます。 各レベルをさらに -- / なし / ++ の3段階に割った Easy--Expert++ の12区分を、スライダーで選んで投票します。

5. ランキング

ランキング は、 問題の当日中に正解(AC)した数を月ごとに集計して表示します。 後日解いた提出はランキングの当日AC数には含まれません。

6. コマンドライン(daily CLI)

入力のダウンロードと提出はターミナルからも行えます。CLI は別リポジトリで配布しています。

7. 問題を作る(作問者向け)
  • ログインすると、カレンダーの空き日付から問題を追加できます。
  • 問題文は Markdown と数式(KaTeX)で記述でき、作問中にプレビューで確認できます。
  • 必要に応じて入力ファイルを配布し、正解出力ファイルをアップロードします(保存されるのはハッシュのみです)。
  • 公開前の予約済み問題は、カレンダー の該当日付からプレビュー・編集できます。

作問した問題は、公開日(問題の日付)になるまで他のユーザーには内容が見えません。 公開日より前に問題文や答えが漏れないよう注意してください。

作問のコツ

出題日を空欄のまま作成すると、問題は直近の空いている日付に自動で追加されます。特定の日に出題したい場合のみ、日付を指定してください。

正解出力ファイルは、選択した出力フォーマッタをブラウザで適用してから SHA-256 でハッシュ化され、その値だけが保存されます。完全一致、改行コードのみ無視、空白区切りトークン、英字大小文字を無視するトークン、Yes/No を選べます。フォーマッタ名にはバージョンが含まれ、公開済み問題の判定規則は後から変わりません。アップロードする前に、ハッシュ化ツール で自分の解のハッシュが一致するか確認しておくと安全です。

浮動小数点の絶対・相対誤差判定は、このハッシュ比較では正確に実現できません。そのような判定が必要な問題は問い方を検討するか、対応している他のサイトで出題してください。

問題文と解説は 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 した人、そして公開日の翌日以降はすべてのユーザーに表示されます。ネタバレを含んでかまわないので、解法や考察を自由に書いてください。

設定した難易度は、解答者が問題を選ぶときの目安になります。上の「難易度の目安」を参考に、体感に近いレベルを設定してください。公開後は AC した人が「難易度投票」で体感を12区分で投票するので、次の作問の参考になります。

利用上の注意