テストステ論名物、競プロポエムである。
おれは青コーダーになるまでは絶対にAtCoderから逃げないで、青コーダーになることが目標だとか ゴミには身分不相応なことを言ってしまったが、 下方修正して、水色コーダーになることをMUSTな目標にしようと思う。
2019/11/24のABCのあと、レートは1131だから、次のABCで5完すれば、ぎりぎり届くかも知れないという程度だ。 それで気持ちの上では一旦終わりにしたい。
これが、ひどく低い目標であり、弱気な下方修正であると批判されるだろうけど、 私にはもう気力がない。
11/23のARC相当のコンテストで、 私は自分では信じられないような低いパフォーマンスを出した。 3000人中2200位というはじめたばかりの頃以来見たことがなかったような パフォーマンスを出してしまい、水色直前だったにも関わらずレートは58も溶けた。
もし、私が黄、橙を狙っていくのであれば、一度58溶けたくらいは別にどうでも良いと言うかも知れない。 いや、そう言うべきだろう。
なぜならば、今後そのくらい一気に溶けることは何度かあるだろうからだ。 例えば、黄色になったあとに仮に間違って青下位のスコアを出せば、そのくらいは一気に溶ける。 上に行く人は、よほどの経験者か天才でない限り、 そうやって上がったり下がったりしながら長い期間で上がっていってるのだ。
しかし、私は一直線に青に向かっていくつもりだったから、この一回の惨敗によって、 心が折れてしまった。いや、壊れてしまったと言った方がより正確だ。
私の心を折った問題は、ケーキの分割問題だった。分割する問題で心を折るというのは、なかなか洒落が効いている。
この問題にはさまざまな解答がありえる。 私は二次元累積和を前計算して、いちごが二個ある範囲の計算をO(1)にし、 全探索に近い形で分割方法を出すというアルゴリズムを実装した。 しかしいくつかのテストはTLEし、コンテスト終了までTLEはとれなかった。
もちろん、着手する前に様々なアルゴリズムは検討したし、 その中にはうまく行くはずのものもあった。しかし結果として私は最悪の道を選び、自滅した。
私にはこの問題がひどくくだらないものに見えた。 なぜならば、私から見ると、ただサイコロを振る賭けに負けただけのように思えたからだ。 実際に、コンテストが終わったあとにも、私の解法がどうしてTLEするのが明確な解析が出来なかった。
これを実力不足ということも出来るが、 では果たして正答した人は全員が明確な計算量の解析をした上で実装したと言えるのか? 実際に、正答してる人の中には、普段は1000もいかないようなパフォを連発しているのに たまたま今回だけうまく行ったという人がいた。
私が、彼や彼女より劣ってるとは思わない。 悪いのは問題である。こういう偶発的な正答・誤答を誘発するような問題が悪い。 私はそう考えた。 このコンテストのDもそういうタイプの問題だったことが、なおさら私にそう思わせた。
誰だこのふざけた問題を作ったやつは。
作問者は筑駒と開成のパ研のようだ。うち一人はレッドコーダーである。 彼らが学生であることも私を苦しめた。 学生に競プロで負けることは構わない。 飛び抜けて頭の良い子が競プロに専念すればそうなってしまっても不思議ではないことは、 私も中学受験をしたからわかる。 どう考えてもエンジンが違う人間は存在する。
ここで私は、AtCoderのレギュラーな作問者ではない 学生に作問の機会を与え、その結果このような振れの大きい問題を生んでしまった AtCoderに責任があると考えた。
そして、本当にAtCoderは今後も信用たるサービスなのだろうか? 学生のノリでやってる内輪に過ぎないのではないか? 一体彼らの定義するレートは何の意味があるのか?
そう考えた。
その日、ほとんど眠れぬ夜を過ごしたあと、私は
AtCoder社の提供するプログラミング検定PASTは単なる情弱ホイホイであるを書いたのだ。自分のAtCoderに対する考えを整理するため(本当に、信用に足りるサービスなのか?)と、 自分を苦しめたAtCoderにささやかに報復するためである。
この記事は幸い、Youtubeの新しい規約に関する記事がバズったおかげで、 最新記事ということもあり、私の思惑どおりそれなりに見られることになった。
自分が壊れていることはわかっている。 しかしもう修復することは不可能である。 ちょっと前までAtCoderの問題を一日中解いていたのに、 その熱はすっかり冷めてしまった。 今やもう、どうでも良くなった。
青に確実に上がるためには、ABCを全完する実力が求められる。 5完は最低ラインとして、そこから6完まですることでスムーズに上がっていけるレベルなのだ。 これは、競プロを実際にしている人であれば、かなり高いレベルであることがわかるだろう。
この目標を達成するために、私は600点の問題を一通り勉強し、 順調に勉強を進めていた。その結果が、パフォ500だ。 どちらかというと、ワンチャン2000を出すつもりで臨んでいただけであって、 ひどく絶望した。
もう、AtCoderのレートを上げるために時間を膨大に費やすのはやめにしたい。 毎週、コンテストの日以外はひたすら勉強して、自分に期待すればするほど苦しくなる。 毎回、プレッシャーで心臓をバクバク鳴らしながら、血が逆流する感覚の中、問題を解いている。 それで順調なら良いが、自分が納得出来ない問題でレートが溶けるなんて、バカバカしいにもほどがある。 そこまでは、賭けれない。自分が賭けるなら、AtCoderも相当の問題を出してほしい。
だから、現状の実力でもたぶん行けるであろうと思える水色を達成して、ひとまず手を引こうと思う。 水色ならば、まぁぎり人間だ。
その後の競プロとの付き合い方について考える。 詰碁やアガサクリスティ小説と同列の趣味の一つとして、500、600と埋めていくのは構わない。 その過程でふつうに青色に昇格してしまうことがあっても構わない。 でも、自分に対してその目標を課して、気持ちを張りつめていくはやめることにする。
負け犬と思ってもらっても構わない。とにかくおれはおれの精神をズタボロにしたAtCoderが嫌いだ。