ゆるふわ競技プログラミングオンサイト@FORCIAを開催しました

ゆるふわ競技プログラミングオンサイト @FORCIAという、競技プログラミングの有志オンサイトイベントを開催した。
問題の解説は参加者の皆さんが書いていただけると思うので、開催者目線でしか書けない内容を書こうと思う。

開催した理由

  • AtCoderで開催されている本戦出場人数の少ないオンサイトに行けない人が参加できる、オンサイトイベントがあるといいなと思っていた。
  • 私は周りに競技プログラミングをしている人はいない環境で育ったので、初めて出場したオンサイトコンテストの2014年のCODE THANKS FESTIVAL(リクルート主催)はめちゃくちゃ刺激になったし、オンサイトであったことある人は勝手にライバルとして認識して順位表で見つけたら楽しくなったりするので、界隈のレベルが上がっているとしても色んな人がオンサイトで楽しめるといいなと思っている。
  • 社会人もオンサイトを楽しみたい。
  • 同じ会社に黄色とか青コーダーがいっぱいいる環境は羨ましいですし、勤務先のフォルシアもそういう会社にしたいので、会場と懇親会提供してもらって自分で開催するか!
    • 競技プログラミングをやる優秀なエンジニアに会社を知ってもらいたい気持ちはある。

開催した

  1. ちょうど同期がFORCIA, Inc.のconnpassグループを作っていた。
  2. 部長に「ピザこれくらいかかるんですけど……」ってslackを送ったら、休日に会議室を使う申請書までつけてOKしてくれた。
  3. ゆるふわ競技プログラミングオンサイト @FORCIAを告知した
  4. 告知翌日に満席を頂いた(嬉しい)
  5. ネットワーク担当の同期が頑張ってくれて、40人までは余裕のネットワーク環境を整備してくれたので増席した。(ありがとう)
  6. また満席を頂いた(嬉しい)

参加者のアイコン アイコンがないと誰が誰だか分からないので、アイコンを用意した。

即日満員やハッシュタグ #yfkpo「ゆるふわ オンサイト」の盛り上がりのおかげで準備は楽しく進められた。

問題について

参加者の貴重な2時間をいただくので、教育的な問題セットにしたいなと思っていた。
全完が出たのはコンテスト終了10分前なので、2時間8問はちょうどよかったのではないか。

HackerRank上のコンテストページはこちら

番号 問題名 配点 AC数
A B式A+B 100 34
B 集合写真 200 39
C 線香 300 36
D 最短経路は何本ありますか 400 21
E ガソリンスタンド 500 29
F 無向木 600 19
G 射的 700 19
H 三角形 800 5
  • A問題「B式A+B」は言われた通りやるだけなので、折返し処理を実装するB問題「集合写真」や最大公約数を求めるC問題「線香」より難しいという気持ちだった。
    • A問題はプログラミングする人は2進数って知ってるよねという軽い気持ちで出してしまった。配点に関しては反省している。
    • B問題はシミュレーションでもできるし、余りを取れば計算量を落とせるよという形が導入っぽくていいですね!
    • C問題は最大公約数ってよく出るよね
  • D問題はダイクストラを書けますか?という問題。水色の頃はダイクストラを空で書けなかったので、出してみた。
  • E問題は「彼方のアストラ」という超おすすめマンガで登場人物の天才少年が書くコードそんなに難しくないんじゃない?と思って出題。
    • 道が1本しかないという変な制約をつけたせいで、テストケースの生成が難しすぎて、手で作る羽目になった。
    • 彼方のアストラはアニメ化するので、アニメ見る人はコミックは読まないほうが楽しめる気がします。
  • F問題は一番好きな問題。差分に注目すれば解けるって気持ちよくないですか。
  • G問題「射的」はスライド最小値を使えばPythonでも通ります。コンテスト当日にSegmentTreeで通るやん!と気づきました。
  • H問題は「最小費用流」(蟻本P214)と「頂点の分割」(蟻本P192)を組み合わせると作れます。「四角形」は解けない気がします。

writer/testerについて

  • 作問の様子はmatsu7874/contest_20190209で確認できます。
  • testerはとこはるさんkobaさんに引き受けていだきました。
    • 問題文を修正していただく。
    • tester解を爆速で実装していただく。
    • 想定誤答も用意していただく。
    • とこはるさんには当日の解説もしていただきました。
  • writerは@matsu7874が務めました。
    • 問題原案の作成
    • テストケースのgenerator実装
    • 超大変でした。
    • 次回は1人writerは辞めようと思います。
    • 超大変でした。
    • 作問開始からだいたい2ヶ月くらい必要だった

アンケート

  • ピザと配点以外に大きな問題はなかったように見える。
  • ほぼ全員が知人・同僚にすすめると回答してくれており、初回としては成功だったと言えそう。

反省

  • 開幕404
    • ドンピシャで解決方法を提案いただいたきゅうり(@kyuridenamida)さんありがとうございました。
  • 配点に難があった
    • 自分にとって簡単な問題や難しい問題を正しく評価することは難しい
    • 難易度ツイートしている人は、だいたい回答人数と同じ順番になっていてすげえなと思う
  • ピザが少なかった
    • 学生が大半を占めるイベントで10枚/40人は少なかった
    • お菓子は多めに用意していたので、404の間を含め問題なかったと思う
  • ヤフーの「みんなのプロコン 2019」予選と日程が被ったときは、日中開催にした自分を褒めてあげたいという気持ちだったが、遠方の方への配慮が足りておらず、懇親会途中で抜けざるを得ない人がちらほら
  • 個人的には「なっちゃんりんご」を用意したところがポイント高いのだが、飲み物に関するリアクションは「さすが社会人は違うなー」以外には、特になかった。
  • 次回以降は「初めて参加枠」があると良さそうという話を懇親会でした。

参加記

書いてくれると嬉しいです。

さいごに

嬉しい感想でいい感じに〆る。

寒い中参加していただいてありがとうございました。
ゆるふわ勢も楽しめるコミュニティとしてこれからも盛り上がっていきましょう!
第2回の企画も頑張ろうと思います。