作問から公開までの流れ

Latest Author koyumeishi /Date 2016-06-23 01:09:43 / Views 1161
5 (Favした一覧ページは作成中です。)

writer の方が増えてきているようなので作問から公開までの大まかな流れを記しておきます。

作問から公開までの流れ

  1. 問題準備
  2. 問題完成 & 公開待ち
  3. 問題公開
  4. (おまけ) 他のサイトで公開

1.問題準備

競技プログラミングの問題を作るにあたって、最低限必要なものは次の3(4)つです。 まずはこれを自分で用意しましょう。

  • 問題文
  • writer解
  • テストケース
  • ジャッジコード (スペシャルジャッジ / リアクティブ問題のみ)

余裕があればこれらも用意しましょう

  • 想定誤解法
  • 解説
  • ジェネレータ

(参考) 作問用チェックリスト

yukicoder にログインし、右上のユーザーメニューから新規問題を選択します。

空の問題が出来るのでこれを編集します。

問題文

まずは問題名、問題文、その他設定を編集します。

  1. 問題名を入力してください。 既に公開済みの問題とは重複しないようにしましょう。
  2. ジャンルやアルゴリズムを入力しておくと、タグ検索が出来るようになります。 空白区切りです。
  3. 問題文をHTMLで記述してください。 使えるタグ/属性はホワイトリスト方式です。 使えないものは保存時に取り除かれます。
    画像を使用したい場合、 data URI scheme (Base64) を使用してください。 外部のサービスやブラウザ機能で画像ファイルから変換が出来ます。 Ruby や Python 等の標準ライブラリにも Base64 変換があります。
  4. 星の数、難易度です。 過小評価よりは過大評価の方が好まれます。
  5. 実行時間制限(秒単位)、メモリ制限(上限512MB) を設定してください。 想定解を定数倍悪くしたぐらいがいいです。
  6. 通常 / スペシャルジャッジ / リアクティブ から選択します。
    • 通常問題
      一つの入力に対して一つの答えしかないタイプの問題です。 大体これ。
    • スペシャルジャッジ
      一つの入力に対して複数の答えがあり得るタイプの問題です。 構成ゲー等、 条件を満たすものを一つ出力せよ、といった問題はこちらになります。 例 : No.254 文字列の構成
      出力が条件を満たしているか判定するジャッジコードも書く必要があります。
    • リアクティブ
      ジャッジ側と応答を繰り返すタイプの問題です。 ジャッジコードも書く必要があります。 リアクティブ問題一覧
  7. 幾何等、出力が小数になる場合の許容誤差を設定してください。
  8. 公開して大丈夫な状態になったら 問題完成 にします。 やっぱり引っ込めたくなったら 作問中(WIP) に戻すことも可能です。
  9. 通常のコンテストで出題するのに不向きな問題の場合、 その他問題 にします。
テストケース

"テスト" タブに切り替えて、 テストケースを設定します。

ローカルで作成したテキストファイルをアップロードしてください。 入力側のファイル名と出力側(答え)のファイル名は同じである必要があります。
例えば入力側ファイル名が test_01.txt であった場合、 出力側ファイル名も test_01.txt にしなければなりません。
テストはファイル名順に実行されます。 TLE ノックアウト形式なので、頭の方に大きいケースがあるとすぐにノックアウトされてしまう点に注意して下さい。

テストケースを設定して解答コードを提出すると、通常の公開済み問題同様にジャッジされます。 この提出コードは問題が公開されるまでは writer / tester / 管理者 しか確認することができないので安心してください。

想定解のコードを提出済みの場合、

  • #提出番号 を想定解として出力ケースを生成

にチェックを入れて実行ボタンを押すことで、 出力側のファイルを生成(更新)することもできます。

  • (生成後)この問題の提出をリジャッジ

にチェックを入れて実行ボタンを押すと、 全ての提出に対してリジャッジがかかります。

解説

左上の "解説" タブ -> 右上の "編集" タブ に切り替えると、解説ページの HTML を編集することが出来ます。 こちらもホワイトリスト方式です。
解説を書くかどうかは任意ですが、簡単な方針だけでも書いておくと助かります。

2.問題完成 & 公開待ち


"問題完成" に変更したら、その問題が公開されるまで待つことになります。
一応新規のwriterの方の問題は早めに公開する方針らしいですが、 コンテスト開催頻度・問題ストック次第で結構待ちます。 2-3ヶ月ぐらい は普通に覚悟しましょう。 新規でなければもっと待ちます。
どうしてもすぐに公開してもらいたい場合は @yukicoder に DM / yukicoder slack 等で相談しましょう。
(余談ですが、10問単位でたまっていると ○○さんセットで出題― みたいなことになりやすい気がします)

3.問題公開

"問題完成" にしてしばらくすると、 @yukicoder からこんな感じの DM が届きます。
誰かに tester の依頼をすることも可能です。 tester が決まったら @yukicoder に DM して設定して貰いましょう。
個人的に誰かにお願いしたり、 yukicoder slack で公募することも可能です。 特に指定しなければ(?)募集がかけられることもあります。

準備万端にして公開日を待ちましょう。

(おまけ) 他のサイトで公開

他所で出題も一考の余地ありです。

  • 自分でコンテストの設定が可能なサービス
    • HackerRank
      sugim48 さんの UnKoder、 camypaper さんの Saiko~ No Contesuto、 LayCurse さんの lay_contest 等もここで開かれました。
      使い勝手はあまり良くないらしい?
    • Codeforces (Polygon + Mashup Contest)
      Group 限定で非公開。 らしい。
    • コンテストサイト自作
      GCJ みたいに出力を提出するタイプならそんなに非現実的でもない。
  • 学生なら無料らしい AtCoder
  • 他writer料がもらえるサイト
    お金がもらえるレベルの問題はお金がもらえるところへ投げましょう。