ごりちゃんがゆく

競プロをするゴリラの精進記録

ゆるふわオンサイト#7 Writer記

概要

ゆるふわオンサイト#7 の、BCDI の Writerをしました
作問の経緯や裏話を書いていきます (ネタバレ注意!)

コンテストページは以下です
ゆるふわ競技プログラミングオンサイト at FORCIA #7 | MOFE

解説スライドはこちらです

B - Group Moving

B - Group Moving

Writerの想定は灰〜ギリ茶色diffぐらい、ABCならC問題で300点ぐらいの想定でした
(200点ってつけてたのでびっくりした人はごめんなさい)
「全部言われた通りに愚直にやるとTLEするけど、ちょっと工夫すると解ける」って難易度帯を作りたくて作りました
クエリを色ごとに集計しておけば、あとは順に適用していけば間に合う、ってネタでしたがいかがでしたでしょうか?
C++ だと負のmod演算やオーバーフローなど、罠がたくさんあったようで苦戦した人すみません。
あとはネクタイをつけたゴリラというのはもちろんドンキーコングさんリスペクトです

C - Proper Fraction Operation

C - Proper Fraction Operation

Writerの想定は茶色diff、ABCというよりはARC-A とかにあるかも?という感じを想定していました
ちょっと紙に書いたり実験をするとわかる系で入門的なものを作ってみたつもりでした
K = 1のケースを入れていたり、K = 1A/B が既約でないケースを入れてたのは引っかかる人いるよな〜とは思いつつわざと入れていましたが思った以上にペナってる方がいてすみませんという気持ちになりました
あとはなんか意外と難しかったみたいで実装方針によっては通すのが大変そうでした
コンテスト中、控え室でもスタッフが裏で解いていたのですが、A〜Eまで通した中で一番Cに苦戦してそうでした
思ってた以上に大変そうですみません ペナらずに解けた人はえらいです!

D - Taking Sandwitches

D - Taking Sandwitches

これどうやって問題を生やしたのか覚えてないんですが、最初は数列Aは長さが2Nで、1〜Nの値が2回ずつ登場する、という設定でした
想定解は同じで、左からdpだったのですが、「2回ずつしか登場しないって制約は無くせる」とある暖色コーダーから指摘があり、Aの入力にバリエーションがある(その分工夫もいる) 面白い問題になったと思っています
あと、「最短路問題としても解ける」と別の暖色コーダーから教えてもらったときは面白い問題だな〜って我ながら思いました
 A \le 2 の部分点は思いつきで後から提案したのですが、「意外とパズルっぽくて面白い」という評価があり、採用されることになりました
アンケートで好きな問題としても票を集めていて、嬉しかったです  

I - FORCIAN WAY

I - FORCIAN WAY

これのWriterなのびっくりですよね...
作問チームの想定では橙diffはあるだろうという意見が多く、ボス枠GHIの中で一番難しいということでラストにおかれました
(H問題のほうがTesterが苦戦されていたのですが、H問題のWriterが絶対にIの方が難しいと主張されていたので、こうなりました)
この問題が生まれた経緯ですが、最初は嘘解法の原案でした
 2000\times2000 のグリッドで同じ問題だったのですが、「 2000\times2000\times6のメモリを持ってBFSさせれば解ける」という想定が、ある暖色コーダーの指摘で「単純なBFSだと解けない、例えば空白マスをFとして通ったことを保持しないとその後にRとして通ってしまうかもしれない」と指摘されて爆破されました。  (実際にBFSで解こうとするとサンプル3でYesになると思います)
で、爆破された後しばらく解法が存在しないまま原案置き場に置かれていたのですが、別の暖色コーダー2が「縦を3行にすると面白くなるかもしれない」と提案し、別の暖色コーダー3が華麗な解法 を示してくれました。 
ゴリはもちろん自力で解けなかったので、Writer解()は暖色コーダー3さんに手取り足取り教えてもらってやっと書けました
コンテストまでに複数人に解いてもらえて、テストケースも頑張って強化できたので、自信を持って出すことができました。
この問題の面白いところは、難易度の割にかなり「とっつきやすい」見た目をしていて、難しい知識もいらなく、考察の積み重ねで解法に至れる可能性があるところだと思っています。なので、(自分は解けなかったが) 水色コーダーでもたくさん時間を掛ければできるやつだと思っています
こういう面白い問題を出せたのは、自分だけの力では無理で、作問チームの皆さんのおかげだと思っています
以前のブログ でも述べたのですが、チームで作問をするとこういった「自分の原案が強化されてより完成度の高い問題ができる」という経験ができるので、大変楽しいです。
FO社でゆるふわの作問に参加してくださるメンバーを引き続き募集しています。 

まとめ

前回ゆるふわ#6では自分の原案が採用されなかったのでTester寄りの役目をしていましたが、今回は4つ採用されたので4問のWriterになりました。
作問チームで多種多様な議論や指摘をしてもらえるので、最初の原案より完成度が上がり、作問経験として満足度が高いです。 
(ペナを出させちゃって苦しめた問題もあったかもですが) 概ね参加者からのコンテストの評価も高く、作問に関われて良かったなあという気持ちです。 
今後も開催していく予定ですので何卒よろしくお願いします。