AtCoder Random Pickerは、AtCoder の未解決または未提出問題の中から、指定した難易度範囲に合致する問題をランダムで提示する Web サービスです。
- 難易度範囲を指定して問題をランダムに取得
- 1回の操作で 1 問を提示
- 提示された問題の URL へ直接アクセス可能
- 難易度(Diff)確認用のボタンあり
- 最低 Diff / 最高 Diff を入力
- 最低 Diff は 0 以上、最高 Diff は最低 Diff 以上で入力してください
- 「Pick」ボタンを押す
- ボタンを押すと問題をランダム取得
- 押した直後は 2 秒間ボタンが無効化され、ロード中アイコンが回転します
- 問題が表示される
- 問題記号・名前・URL が表示
- 「Show Difficulty」ボタンで問題の Diff を確認可能
- 問題 URL から AtCoder に直接アクセス
- クリックで問題ページを開き、提出や解説確認が可能です
- 入力範囲チェック
- 最低 Diff が負の値の場合はエラー
- 最高 Diff が最低 Diff より小さい場合はエラー
- 1 IP あたり 1 秒に 1 回の制限があります
- 提示される問題はランダムで選ばれます
- フロントエンド: Svelte + Rabee UI
- バックエンド: Rust + Hyper
- デプロイ: Frontend → Cloudflare Pages / Backend → Fly.io
- API: GET
/
- クエリ:
?under=<最低Diff>&over=<最高Diff>
- レスポンス: JSON 形式で問題情報 (
Problem
型)
- クエリ:
- フロント側は
loading
状態管理でボタン押下後の UI を制御 - レート制限は IP ごとに 1 秒 1 リクエスト