Competitive Programming Team Maker

競技プログラミングのチーム分け補助アプリ
これは競技プログラミングのチーム分けをサポートする Web アプリケーションです。ユーザーの情報を入力として受け取り、以下のポリシーに基づきチームへの割当を返します。
  • チーム間の実力差をできるだけ小さくする
  • できるだけ所属が異なる参加者同士でチームを組む
  • 過去のチーム分けで同じチームに属した組は、できるだけ異なるチームに属するようにする
内部で使用している評価関数やアルゴリズムなどの、アプリケーションの詳細については About ページ をご覧ください。

CSV ファイルをインポート

CSV 形式のファイルをインポートし、ユーザー情報テーブルの入力時間を短縮できます。

以下の例で示されるような、「チーム ID, ハンドルネーム, AtCoder ID, 所属」がカンマ区切りで書かれている CSV ファイルを予め用意してください。下の「ファイルを選択」ボタンで CSV ファイルを選択し、「CSV をインポート」ボタンでその内容を表に反映させます。
CSV ファイルの例
A,tsutaj,,four-t
,monkukui,monkukui,ragan
B,rsk0315,rsk0315,four-t
A,waku,wakuwinmail,Megido
,TAB,TAB,four-t
B,tsukasa_diary,tsukasa_diary,
上記の CSV ファイルの意味

わかりやすく述べると、以下のようになります。

チーム ID ハンドルネーム AtCoder ID 所属
A tsutaj (なし) four-t
(なし) monkukui monkukui ragan
B rsk0315 rsk0315 four-t
A waku wakuwinmail Megido
(なし) TAB TAB four-t
B tsukasa_diary tsukasa_diary (なし)
  • ハンドルネームは必須項目です
  • AtCoder ID および所属は必須項目ではありません
    • AtCoder ID を元にレート情報を取得するため、ID はできれば入力してください。情報がない人はレート 0 として扱われます。
    • 所属は、できるだけ所属が異なる参加者同士でチームを組むために入力するものです。情報がない人はどこに割り当てられてもよいものとして扱われます。
  • 同じチーム ID が割り当てられた人は、必ず同じチームに割り当てられます
    • 上記の例では、次のような割り当てかたが適用されます
      1. "tsutaj" と "waku" は必ず同じチームに割り当てられます。
      2. "rsk0315" と "tsukasa_diary" は必ず同じチームに割り当てられます。
      3. "monkukui" と "TAB" はどこに割り当てられてもよいものとして扱われます。

テーブルを直接編集

ユーザー情報テーブルを直接編集します。編集した表は CSV 形式でエクスポート可能です。

「Team ID, ハンドルネーム, AtCoder ID, 所属」を下の表に書いてください。

  • Team ID は、部分的にチームが決定している際に使用します。同一の Team ID が入力された人は、チーム分けにおいても必ず同一のチームになります。同一の Team ID を大量に入力した場合など、不正な入力である場合はチーム分けが失敗しますのでご注意ください。
  • AtCoder ID は省略可能です
  • 所属になにも記載しなかった場合、無所属として扱われます。無所属同士の重複については考慮されません
  • そのユーザーをチーム分けで使用したくない場合は、"Take" のチェックを無効にします。

行の追加・削除は下にあるボタンで行えます。

特定の所属について全てチェックを入れる / 外す処理も下にあるボタンで行えます。完全一致 (ただし case-insensitive) で判定しています。

Take Team ID Handle AtCoder ID Affiliation
所属が であるユーザーに対して

過去のチーム分け結果をインポート

過去の結果を読み込みます (複数選択可)。過去の結果において同じチームに属した組に対して、できるだけ異なるチームに属するようにチーム分けすることができます。