Memo

Twitterに書くには長すぎることを書きます。Opinions are my own.

Codeforcesでtesterをしました

Codeforces Round #706 のtesterをしました。日本でtesterをした人があまり多くなさそうなので、どんな感じだったのかメモしておきます。

CoordinatorからDMが来てtesterに誘われる

おそらくランダムに選ばれます。ここでOKと返事するとバチャができるようになります。「引き受けてみて暇があれば走ってくれると非常に助かる」みたいな優しい感じだったのでおそらく走らなくても大丈夫です(おそらく代わりに別のtesterが増えるだけ)。気軽に引き受けました。また、tester用のdiscordがあって、誘われて入りました。ここでは時々tester募集の告知があり、手をあげればtesterになれるようです。

バチャを走る

バチャを走ります。あとで説明しますが、このときのセットは本番と微妙に違います。また、自分が走ったセットではDiv.1+Div.2 combinedみたいな形のバチャになっていて、時間も少し長く2:30でした(本番は2:00で、Div.1とDiv.2で別れていました)。バチャの結果はgymのrecent virtual contestのところに入っていて、testerからはどのtest caseがpretestに、どのtest caseがsystem testに入るかはわからない状態でした。そのため、"As a tester, the pretests are strong." というコメントを見ても(仕様が変わらない限りは)無視してよいでしょう。

問題が増えていることに気づく

バチャをときどき見直すと、難易度調整のためか問題が増えたり減ったりしていました。増えた問題やバチャ本番で解けなかった問題は解ける限り解くことにしましたが、testerには問題の解法は知らされていないため、解説ACをすることはできません。そのため、解けなかった問題は諦めます。Coordinatorに聞けば解法を教えてくれたのかもしれませんが。また、問題文の細かい修正だけでなく、制約も変わっていることがあります。Div.1-Dは自分がバチャで解いたときには n<=300 でしたが、コンテスト本番までに n<=400 に変わっていました。本番後にsubmitする場合は注意しましょう。

フィードバックする

走った感想、問題文のここがわかりにくい、test caseが弱い(場合分けすべきところをサボってもACしてしまう)、といったフィードバックをcoordinatorにしました。Writerまで伝わっていたのかどうかはわかりませんが、test caseについては自分が提案したhack caseが入っていて本番までにrejudgeされていました(とはいえ本番では全く落とせませんでしたが)。

ブログにコンテストの日程が出る

testerとして自分の名前が書かれていることを確認します。嬉しい。

コンテスト本番

testerがやることは特にありません。順位表を見てニヤニヤするぐらいです。自分はボルダリングのgymで閉店まで課題に取り組んでいました。

pump-climbing.com

反省

Div.1-Bはマルチテストケースを提案すべきだった

自分がtest case弱いなと思っていたのがまさにこの問題で、自分はhack caseを提案したのですが、本来マルチテストケースを提案すべきでした。そもそもこの問題は実質yes/no問題なのでマルチテストケースにすべきです。とはいえマルチテストケースにしても、今回の場合例えばn=9のテストケースを全部突っ込もうとすると明らかに足りないので何らかの工夫が必要そうですね。

Div.1-Eのサンプルに言及すべきだった

問題ポリシー Wiki - yukicoder の問題文のポリシーに違反するサンプルがあったが、気づいていませんでした。解けなくても全問題をサンプル含め読むべきです。

今後の展望

今後もたまにはtesterやろうと思います。よろしくお願いします。