AtCoderがこれから大きくなっていった時に、 過去にこんなことがあったということを書き残しておくことは実に意味のあることだと思っている。 実際に、今より過去にも同じような事故があったようだが、 参加者の記憶の中にしかなかったりすることがある。
かっこいい言い方をすれば、歴史の証人になりたいのだ。
そんなわけで、今回もテストステ論名物「競プロポエム」をやっていく。
ABC150は先週に続いてunratedとなった
ABC150は2020年1月10日午後9時から開始した。
AtCoder社長のchokudai氏のツイートによると、 前回ABC149のunratedをもとにしてシステムの問題箇所を洗い出し、 対策を加えた上で開催するが、 またunratedになる可能性はあるというつもりで 参加してほしいということであった。 おれはまずこんな言い訳をすることがそもそも間違ってると思うが まぁそれが許されるコミュニティなのだと諦めるしかない。
コンテストが始まると、 いきなり500エラーが現れた。 システムを適当に修正した結果500が飛ぶようになったのかと思って 「レッドコーダーのレッドは赤点の意味か?」と軽く笑ってしまったが、 以前にもフロントが重くて500になったことはあったので、 そういうことかと思い、とりあえず待つことにした。
するとおれの場合、9時5分には問題が見えた。 しかしどうやらその時点で解答してる人もいたし、 人によってスタート時間が違ったのは確かなようである。 実際に、Twitterで検索すると、最初から見えていたという 宝くじ当選者もいた。
この時点でunratedにすべきだった。 原因はなかなか間抜けであった。さすがお笑いのレッドコーダーである。
【サーバーに接続出来ない問題について】金曜開催によるオペレーションミスで、フロントサーバーが起動していなかったそうです……。
— chokudai(高橋 直大)🌸🍆🍡 (@chokudai) January 10, 2020
幸いな事にフロントサーバ起動後の挙動は安定しており、明日のコンテストに影響することはありません。
コンテストは結局、Dが解ければ700位くらい、Cまでだと遅いと2500位 とかだった。というか実際におれがそうだった。
というのも、またunratedになるくらいだったらまず4問目くらいまで 解いてから提出するでも良いかと思って、提出を遅らせていたからだ。
結局、3問目の提出時間で順位が決まってしまい2500位くらい。 完全に事故ったのでunratedにならんかと神に祈った。
テストセットの誤りによりunratedに
祈りが通じたのか、コンテストはまたもunratedになった。
原因は、テストセットのunratedによるものと発表された。
問題は、数列の要素はすべて偶数であるという制約があってはじめて解けるものだったが、 実際に調べた人によると、6つのテストケースでは、この制約を満たしていなかったようだ。
これを理由として、ABC150はunratedとなった。
テストケースの誤りや、嘘解法を許してしまう緩いテストケースは 競プロの宿命なので、仕方がないことだとは思うが、 結果としてunratedであることには変わりないので、 AtCoderへの不信感が深まるのは当然だと思う。
chokudai氏の目からは今回も悪くいう人は見えないようだが、 おれが検索した限りでは、 AtCoderに萎えたといって見限りつつある人も中にはいたように見えた。 unratedになる可能性があると思うと、参加者の気持ちとしてはどうしても萎えるものだ。
実際おれは、 2度あることは3度あるということわざのとおり、 次もどうせunratedになるだろうと思っている。
unratedならすぐに通知してほしい
先に述べたように、unratedをまるで日常かのように扱い、事前に言い訳をするのはやめてほしいと思う。 参加者の目線からはあくまでも事故であり、基本的には起こらない前提で参加しないと、 モチベーションに関わる。 もし、最初からunratedになる可能性があるというのであれば、 最初からそうした方がよい。余計な期待をもたせるべきではない。
現実的にunratedになること自体は仕方がない。 しかしその場合にも、参加者がすぐさまunratedだとほぼ確実に知れるようにすべきだと思うのだが、 現実は、質問のところにunratedになりましたという書き込みがされるだけであり、 本当の質問なのか、unratedのお知らせなのか、見なければわからないという運用になっている。
実際に、リアルタイムに知らせる気はなく、 あくまでもアリバイ的な扱いなのだろう。
無論、質問をいちいち読みにいくことは通常しないから、 unratedになったかどうかは、自分からわざわざ質問ページを開いて見に行く必要がある。 こういう仕組みのため、実際にはコンテストが終わるまでunratedに気づかなかったという人が大変多い。
もしunratedならば、参加者がすぐにわかるようにしてほしい。 例えば、残り時間のタイマーが赤くなるとか、横線が引かれるとか、 なんらかの形で確実にunratedが伝わる仕組みにしてほしい。
もちろん、Rustのバージョンアップもさっさとしてほしい。
今週2回ABCが開催される理由
今回、週に2回のABCが開催されることになったのはいくつかの理由が考えられる。
- ABC149の埋め合わせ説
- 翌日のドワンゴコンの前のテスト
- これからABCを週2開催していくことに決めたから
どれも考えられるだろうが、 特に、ドワンゴの企業コンの前に持ってきたのは、システムのテスト的な意味合いが大きかったのではないかと思う。 というのも、企業コンはAtCoderにとって生命線だからだ。 特に、ドワンゴは過去にも何度もコンテストを開いてくれている上客であり、 絶対に逃したくないと思う。 ドワンゴが去ると、他の企業も去ったりしそうだ。
最初の5分間でunratedにすることは決まっていたが、 ちゃんと負荷をかけてジャッジサーバーをテストしたい意味合いがあるから、 unratedの発表を引き伸ばしたというのが本音であるように思う。
unratedの理由をテストケースの不備にだけ押し付けたのは、 2週連続システムエラーだと信用をあまりに失いすぎるからだろう。
ドワコンへの参加者が少ないと、今後は打ち切りということになりかねないから chokudai氏も必死なようで、ドワンゴがunratedになった場合は頭を丸めるということになった。 おれとしては、むしろunratedごとに指を一本切り落とすくらいは必要ではと思っているのだが、 まぁ、何かしら覚悟を示すというのは評価出来るところだ。
明日のドワコンは大丈夫だと思ってるし、明日もUnratedだったら僕が頭を丸めることにしたので、ぜひドワンゴコンテストには安心して参加してもらえると嬉しいです!!
— chokudai(高橋 直大)🌸🍆🍡 (@chokudai) January 10, 2020
マジで今回のUnratedについては申し訳ないです……。
いずれにしろ、丸刈りではなく、 unratedという文字だけ残るようにバリカンしたらどうだろうかと提案したいが。 あるいは、社名をUnrated Coderに変更するでもいいけど。
後日談:丸刈りは回避された!
ドワコンは実質的な参加者2800人程度と、 大盛況とは行かなかったが、今回は問題の読み込みも順調で、 コンテスト自体も滞りなく行われたようだ。 優勝はtouristだった。
600点のBがまぁまぁ難しく、これがとれれば黄色パフォという神回だった。 ARCは難易度が急勾配なので、初心者にはきついことが多い。 部分点が用意されていたが、部分点がとれるなら満点とれるだろという感じだった。
こんな感じで安定したコンテストが100回くらい続けば、 いずれ今回の2回連続unratedのことは忘れ去られるだろう。