はじめに
AtCoder Problemsという素晴らしいサイトがあります。ここでは、競技プログラミングコンテストのサイトAtCoderで出題された問題を自由に選び、Virtual Contestを作ることができます。期間を数時間以内にして実際のコンテストのようにしてもよし、自分が解く予定の問題を集めて期間を数日~数週間などにし、自分用精進バチャを作ってもよし、特定のテーマの問題を集めて期間を数年以上にし、問題集として多くの人に公開してもよし、いろいろな使い方がされています。
Codeforcesの問題でも、同じことがしたいと思い調べてみたところ、Codeforces本家でその機能を備えていることが分かりました。この記事ではその方法を紹介します。
大まかな流れ
- コンテストの「型」を作る
- コンテストの詳細を決めて「実体」を作る
ここまでで一人でやるバチャなら完成 - コンテストを公開する
コンテストの「型」を作る
- Name:
コンテスト名。日本語も可。 例:"URL番号2137~2146 緑~水(codeforces diff1400~1900)" - Duration:
期間を分単位で。2時間のような短期バチャも3週間のような長期バチャも可能。 例:30240 (3週間) - Clone contest?
既存のコンテストを丸ごとコピーしたいときにチェック。1問1問登録する手間を省ける。 - Problems
問題名、コンテスト名、URLにある番号などを入力し、Enterを押さずしばらく放置すると、該当する問題のリストが現れる。それをクリックし、+ボタンを押して問題を追加していく。

↓
- 終わったらCreate Mashup Contest をクリック

→ "Mashup has been created"と表示される。ここまででコンテストの「型」が作られた状態になり、この型から何度も同じ問題集合でコンテスト実体を作れるらしい。
コンテストの詳細を決めて「実体」を作る
-
Editボタン(鉛筆マーク)をクリック
-
- Training name (English):
コンテスト名。先ほどの入力と同じでよい。"English"とあるが日本語も可(ロシア語ではない、の意味らしい)。 - Contest format:
ICPCを選択。IOIは情報オリンピック形式のルールになるらしい。 - Start time:
開始日時を入力。 - Duration:
デフォルトで先に入力した値が入っている。変更も可能らしい。"end_time"から終了日時での指定も可能。 - Visibility:
"Private - for you only"を選ぶ。グループ(後で説明)内の人のみ見られる設定。"Public - opened for everyone"は世界中に人に見られるようになるが、そのためには運営の承認がいるらしい。 - Participation type:
個人戦orチーム戦の設定。 - Is out of competition allowed?:
順位表に混じらない形での参加を可能とするか、らしい。 - Contest testdata policy:
コンテスト中にテストデータを見られるようにするか。 - Description (English):
コンテスト画面の右にある"About Contest"欄に表示したい内容があれば入力。日本語も可。 - 終わったらSave changesを押す
- Training name (English):
一人でやるバチャなら、ここまでで完成です。
コンテストを公開
CodeforcesではAtCoder Problemsのように誰にでも公開する設定ができない。「グループ」を作り、グループ内に公開という形なら可能。
グループ作成(初めて公開しようとするときのみ実施)
- GROUPS→Create groupをクリック
- New group画面入力
- English name:
グループ名。日本語も可。 - English description:
グループの説明。日本語も可。 - Visibility:
Publicにするとグループ一覧(GROUPS→All groupsで表示される一覧)に表示され、誰にでも見られるようになる。PrivateにするとURLを教えて直にアクセスした人にしか見られなくなる。 - Spectator registration policy:
観戦できるかの設定。Automaticで観戦OKになる。 - Participant registration policy:
自由にグループに入れるか。No confirmation requiredで自由になる。 - 終わったらCreateボタンを押す
- English name:
コンテストをグループに紐づけ
- GROUPS→作ったグループ名 をクリック
- Add contest to group をクリック
- Contest欄にコンテスト指定
コンテスト名の一部、コンテストid(URLにある番号)などを入力し、Enterを押さずしばらく放置すると(数十秒)、該当する問題のリストが現れる。それをクリックし、Addボタンを押す。
- グループに公開していいか聞かれる→Yes
- Group Contestsにコンテストが追加される
- アナウンス
上の図(Group Contests)のURLをX(旧twitter)にポストする。同時に以下のような参加手順も付けると親切かも。参加手順 - リンク先のJoinボタンを押す(グループ初参加時のみ) - バチャにRegister





