1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Codeforcesの問題でVirtual Contestを作る

1
Posted at

はじめに

AtCoder Problemsという素晴らしいサイトがあります。ここでは、競技プログラミングコンテストのサイトAtCoderで出題された問題を自由に選び、Virtual Contestを作ることができます。期間を数時間以内にして実際のコンテストのようにしてもよし、自分が解く予定の問題を集めて期間を数日~数週間などにし、自分用精進バチャを作ってもよし、特定のテーマの問題を集めて期間を数年以上にし、問題集として多くの人に公開してもよし、いろいろな使い方がされています。

Codeforcesの問題でも、同じことがしたいと思い調べてみたところ、Codeforces本家でその機能を備えていることが分かりました。この記事ではその方法を紹介します。

大まかな流れ

  • コンテストの「型」を作る
  • コンテストの詳細を決めて「実体」を作る
    ここまでで一人でやるバチャなら完成
  • コンテストを公開する

コンテストの「型」を作る

  1. GYM→MASHUPS で Create new mashup をクリック
    image.png

  2. Create Mashup Contest画面を入力
    image.png

  • Name:
    コンテスト名。日本語も可。 例:"URL番号2137~2146 緑~水(codeforces diff1400~1900)"
  • Duration:
    期間を分単位で。2時間のような短期バチャも3週間のような長期バチャも可能。 例:30240 (3週間)
  • Clone contest?
    既存のコンテストを丸ごとコピーしたいときにチェック。1問1問登録する手間を省ける。
  • Problems
    問題名、コンテスト名、URLにある番号などを入力し、Enterを押さずしばらく放置すると、該当する問題のリストが現れる。それをクリックし、+ボタンを押して問題を追加していく。
    image.png

    image.png
  • 終わったらCreate Mashup Contest をクリック
    image.png
    → "Mashup has been created"と表示される。ここまででコンテストの「型」が作られた状態になり、この型から何度も同じ問題集合でコンテスト実体を作れるらしい。

コンテストの詳細を決めて「実体」を作る

  1. GYM→MASHUPS を再度表示
    作ったコンテストが追加されている。
    image.png

  2. Editボタン(鉛筆マーク)をクリック

  3. 詳細情報画面を入力
    下図を参考に入力する。
    image.png
    image.png
    image.png

    • 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を押す

一人でやるバチャなら、ここまでで完成です。

コンテストを公開

CodeforcesではAtCoder Problemsのように誰にでも公開する設定ができない。「グループ」を作り、グループ内に公開という形なら可能。

グループ作成(初めて公開しようとするときのみ実施)

  1. GROUPS→Create groupをクリック
    image.png
  2. New group画面入力
    image.png
    • English name:
      グループ名。日本語も可。
    • English description:
      グループの説明。日本語も可。
    • Visibility:
      Publicにするとグループ一覧(GROUPS→All groupsで表示される一覧)に表示され、誰にでも見られるようになる。PrivateにするとURLを教えて直にアクセスした人にしか見られなくなる。
    • Spectator registration policy:
      観戦できるかの設定。Automaticで観戦OKになる。
    • Participant registration policy:
      自由にグループに入れるか。No confirmation requiredで自由になる。
    • 終わったらCreateボタンを押す

コンテストをグループに紐づけ

  1. GROUPS→作ったグループ名 をクリック
    image.png
  2. Add contest to group をクリック
    image.png
  3. Contest欄にコンテスト指定
    コンテスト名の一部、コンテストid(URLにある番号)などを入力し、Enterを押さずしばらく放置すると(数十秒)、該当する問題のリストが現れる。それをクリックし、Addボタンを押す。
    image.png
  4. グループに公開していいか聞かれる→Yes
    image.png
  5. Group Contestsにコンテストが追加される
    image.png
  6. アナウンス
    上の図(Group Contests)のURLをX(旧twitter)にポストする。同時に以下のような参加手順も付けると親切かも。
    参加手順
    - リンク先のJoinボタンを押す(グループ初参加時のみ)
    - バチャにRegister
    
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?