競技プログラミングのコンテストを開催しました

 

2025年8月8日、弊社オフィスで 競技プログラミングのコンテストを開催しました。

さまざまな企業や異なるフィールドで働く競技プログラマー同士が垣根を越えて親睦を深めるためのコンテストを開催するという思いを込めて、Monoxer Programming Contest for Engineersと名づけられました。参加者の募集はXの投稿などにて、社員から広くお知らせし、コンテスト当日にはオンラインも含め、計48名の方にご参加いただきました。

ソフトウェアエンジニアの @tobisatisより、主に問題作成者視点での振り返り記事をお届けします。

開催に向けての準備

社員で作問作業を行うプロジェクト自体が、モノグサとして初めての挑戦でした。約2時間のチーム戦を行うことが先に決まっており、逆算しておおまかな配点と問題数を決めていくところから着手しました。2ヶ月強の限られた時間の中、4人のメンバーで問題を完成させる必要がありましたが、全員が経験豊富というわけではなく、特に私は作問自体も初めて、さらに想定解を作成するためのPythonを書くのも初めてという「初めて尽くし」の状態でした。それでも密にSlackなどでのメンバー間でやり取りを行い、また事前に問題を解いてくれた3人のtesterの協力もあって、無事に作問作業を終えることができました。

特にI問題作成(問題はAからLまで12問ありました)において、印象的なエピソードがあります。私が原案から想定解まで作成した問題があったのですが、想定解と解説に重大な誤りがあることを  @kona0001が指摘してくれました。1問につき2人の担当者をつけるという体制を作っていたことが幸いでした。修正後、万全を期すため値が大まかにあっているかを確かめるシミュレーションコードを書いたのですが、それは平均値を比べるだけの根拠のないものでした。それを、  @kobae964が推定値の不確かさまで調べるものに洗練させてくれたことで、問題として完成することができました。チームで助け合うこと、協力し合うことの素晴らしさをあらためて感じた瞬間でした。

もちろん、他の問題にもそれぞれドラマがあります。幅広い難易度を取り揃えた12問となっていますので、ぜひ解いてみてください。

コンテスト中の控室

コンテスト中、作問者は会議室に集まって順位表を眺めていました。

1分も経たないうちに最初の正答コードが提出され、システムが無事に動いていることを確認できたときには、みんながほっとした表情を浮かべました。システムに用いたMOFEの運営者のkichi2004様、ありがとうございました。

順調に問題は解かれていき、各問題において最初の正答コードが提出されるたびに控室は盛り上がりを見せました。私は普段は参加者側なので、順位表を眺めて楽しむというのは初めての経験で、とても新鮮でした。68分が経過し、全問題に正答コードが提出された瞬間、会場の盛り上がりは頂点を迎えました。

コンテスト終了後の懇親会

コンテスト終了後は、ピザや寿司などを食べながら、参加者全員と運営スタッフたちで懇親会を行いました。普段、会うような機会がない業界で働いている方、また出身や年齢もバラバラな方同士が、「コンテスト」という縁で集まり、交流し、繋がっていく。一つのコンテストが人と人を繋げる場となっていることを嬉しく感じました。懇親会の中盤で、それぞれの問題の解説を参加者に行ってもらうパートでは、非常に難しい問題などもある中、みなさま真剣に耳を傾け、熱心に聞かれていたのが、とても印象的でした。

 

終わりに

どのような形になるかは未定ですが、今後もコンテストの開催を続けていきたいと考えています。

「ものぐさで行こう」という文化をもつ我々と競プロを作り上げていく活動に興味のある方、ぜひ一度カジュアル面談にてお話ししてみませんか?

careers.monoxer.com