ABC155

無限にレート下がるね。水色がちらつくようになってきた。精神状態がはっきり悪い。実力が下がっているのは仕方ないとしても、今の実力は発揮できる状態でいたい。

A - Poor

クソムズ(楽な実装が見えない)。3通りをループで回した。

B - Papers, Please

クソムズ(実装は簡単)。条件を満たすためには、偶数が存在しなくてもいい。チェックする必要があるのは偶数で、3でも5でも割り切れないものが一つでもあったらダメ。いつもの3倍くらい見直してから提出した。

C - Poll

C++を信じてvector<string> s(n);。最初std::arrayにしてたが、入力でつまづいて、脳への負荷を下げる方針にした。しかし、std::mapは実行速度に若干の不安があり使わなかった。まあ大丈夫だけどね。ソートしてカウントする。i番目の時点で同じ文字列が何個続いているかを別の配列に入れて(12312111123112みたいになる)、最大値(さっきの列だと3)のところだけ出力する(ソートしてあるので順番に出力するだけ)。ここはいい実装を思いついて気持ちよかった。

D - Pairs

まあ二分探索+しゃくとりっていう典型。ただし負の数があるので、実装力か考察力が必要。実装力で押した。しゃくとりの代わりに二分探索してTLEしないかは微妙なところ。まあ俺がちゃんと書けば行けるだろうとは思ったけど(後で確認する必要あるな)、しゃくとりのほうが書きやすい面もあると気づいてしゃくとりに。4通りのしゃくとりを書く必要があると気づいたけどそれをなんとかする考察力もなく(ここが今の自分の調子が悪いところ)、4つ書いた。しゃくとり自体は慣れていてすぐ書ける。負の数のときにループを逆に(大きい数から順に)回す必要があるのは最初気づいてなかった(マジで難しいこの問題)。しかしいつまで経ってもサンプルが通らず。自分自身とペアになれないとか入れ替えたものを区別しないとかでサンプルの手計算も複雑になる。結果的に、自作の二分探索がバグっていた。(-3)/2は-2じゃないんだね。けっこう自信を持っているライブラリだったのでショックだった。

3完かと思ったのでホッとした。もうちょっとレーティングを意識した立ち回りが必要なのかなあ。今回だったら、実装は重いが確実に解けるDではなく、すぐに解法は見えないけど解いてる人が多いEに行くほうがよかったか。やっぱり、解けるとわかっている(早解きできるともコンテスト中に解けるとも言っていない)問題をやってしまうんだよなあ(そして時間がなくなる)。

E - Payment

残り10分で問題文は読んであったけどさすがに貪欲を書くしかできず(それを書いたのはえらいが)サンプル合わず終了。こういうのを日常生活の中で考えておかないの、弱いなあ。

F - Perils in Parallel

座標圧縮要らなくない?なんで難しい問題で簡単にできる面倒な操作を加えてるん。まあ座圧なしで解けるやつかもしれんけど。区間の重なりパリティは面白そう。しかしDでハマっていたため、解いている人が異常に少ないFに注力する精神的余裕はなかった(問題文は読んだ(余裕がないときって読むのに時間かかるんだよねえ))。