yukicoderでwriterをした話

初writer記念に。

 

あらすじ

yukicoder contest 208 - yukicoder のwriterをしました。200人近くが参加してくれました。嬉しかったです。

以下は9割自分語りなので興味のある人だけ読んでください。

コンテスト前

3/7

 RUPCでいろんな大学の問題を解いて僕もジャッジやりたい気持ちになる。Twitterで何人かyukicoderに問題投げてる人を見て自分も問題が生えたらやってみることにする。

3/10

 TLを見てたらD問題が生える。作問のネックとしてテストケースづくりがあるんだけど、Dは入力が定数個、数え上げだからコーナーケースも少ない、あたりの理由ですごく気持ち的に楽だったので書いてみる。yukicoderはかなり環境も整っていてわりと簡単につくれて感動する。

3/13-14

 また数え上げが生える(E問題)、作問能力が偏りすぎてませんか。これ逆に全問数え上げのコンテスト作ったら面白くない?面白いねってことであと3問気合いで揃える。へのこーどがテスターを引き受けてくれたのでABCEを完成させる。ありがとうへのくん。

 yukicoderのTwitterにDMで連絡をとった結果なんやかんやでいきなり17日に開催することが決定。yukicoderさん対応が神すぎる。

 

コンテスト当日

 個人的には1時間持ってほしかったんですがhosさんに阻止されました。その後も赤や橙に続々と全完されるんですが赤コーダーに解いていただけるのかなり嬉しい。

 最終的には約180人が参加してくれて、コンテスト後の評判も観測範囲では良問とか教育的とか言ってもらえていてかなりよかった気がする。嬉しいね。翌日以降も時々みるとAC人数が増えていたり解説ブログが上がっていたりでほくほく。

各問題について

ネタバレしまくるのでまだ解いていなくて見たくない人は飛ばしてください。

A問題

リンク: No.799 赤黒かーどげぇむ - yukicoder

☆1の数え上げで思いつくのがこれくらいしかなかった。writer解はO(1)だったんですが素直に2重ループするのがいいと思います。

ちなみに問題タイトルの元ネタはこれです。

 

B問題

リンク: No.800 四平方定理 - yukicoder

もともと先に用意できていたD問題からの流れでタイトルが「だいたい直角三角形」で、「zz-D < xx + yy <= zz+D」みたいな設定の問題を考えていたんですが、ちょっと簡単すぎるかなぁということで変数を1個足してみたらめちゃくちゃ教育的な問題に化けました。

 C++のO(N^3)の定数倍高速化がバカみたいに早かったので制約を厳しめにしたらmapとかを使ったO(N^2logN)がバタバタと倒れていってちょっと申し訳ない感じになってしまいました。10^7個くらいの配列は普通に持てるので持ってください。

 Bに置くにしては難しかったかなぁというのは反省しています。

 

C問題

リンク: No.801 エレベーター - yukicoder

これはだいぶ前に生えて温めていた問題。実際に高層ビルのエレベーターを見ていたら疑問に思ったのでそのまま問題にしました。累積和といもす法を1問で両方使うの面白くないですか?と思ってたんですが多くの人に良問とのお言葉をいただいて嬉しいね。

 

D問題

リンク: No.802 だいたい等差数列 - yukicoder

たまたまTLに流れてきたこれを見て等差じゃなくて差がD以下だったらどうなんだろうって思ったら包除原理で綺麗に解けたので出しました。北大の影響を受けすぎていませんか?

もともとはD1はなかったんですがタイトル決めるときに「だいたい等差数列」っていう文字列がふと浮かんで、だったら下からも抑えたほうがいいねってことで足しました。

へのくんに「☆3のテスターして」って渡したら「☆3は正気の沙汰じゃない」とのお言葉をいただきました。AC人数をみるに3.5にして正解だったと思います。ありがとうへのくん。

 

E問題

リンク: No.803 Very Limited Xor Subset - yukicoder

F_2線形代数に変な制約を入れた問題を作りたいなぁと思っていて、「2つのうち1つを使用する」を思いついたんですが、よく考えると2つに限らなくても偶奇の指定ができることに気づいてできました。最初はYes/Noで考えていたのが数も数えられるので数え上げになりました。

他の数え上げの問題とほとんど被りようがないこの問題がしかも最難枠で生えてくれたおかげで今回の数え上げセットが実現したという感じ。

 

最後に

 人に解いてもらうのもジャッジで見守るのもそのあとブログにまとめてもらえるのもめちゃくちゃ嬉しくてコスパ異常なのでみんな作問しような。yukicoderに投げたくなったら僕でよければテスターだったりお手伝いだったりはいつでもします。

 次は数え上げ以外だったりちょっと変わった問題だったりを作れるといいなぁ。

 解いていただいたみなさん、コンテストに参加していただいたみなさん、ありがとうございました!