ARC101

何も感じなかった。Cはコードが降ってこないし、Dは解法が降ってこない。終わって、悔しいとも思わない。ただ地味でイヤな感情があるだけ。まあブランクがあった(6週間ぶりのratedコンテスト)からしゃーない(それは他の人も同じでは?(たぶん同じではないと思う))。

C - Candles

これの上位互換みたいな問題解いたことある(直線じゃなくて円になってるやつ)。なのでわりと短時間で、解けると思うところまで行った。この移動の仕方は典型で、Jの字みたいに行って帰ってくる。片側で済む場合は帰らなくていいから場合分けが必要っぽくて混乱した。行きの距離は往復なので2倍する必要があるが、それを忘れてなかなかサンプルが通らなかった。入力はソート済みであり、しかもx[i]まで行ったらその距離はabs(x[i])なので、移動距離はO(1)で求まる(N回ループしても間に合う)。反転(-1かけてreverse)してもう一回やれば最初右に移動すると固定してよくなる。その処理をcontinueでスキップして1WA。全部負の数のテストケースを作ってデバッグしたのはよかった。
消費時間が10分20分30分と増えていくの何だったんだ。既に解けたと思ってるコード書くのきつい。見えれば書くんだけど、見えないときに書けないのでどうしようもない。んでこの問題はもっと簡単で、ありえる区間は高々N-K+1通りなのでそれを試せばよかった。自分はJの字(べつにJと思ってたわけじゃなく横に平べったい図で考えてたけど)みたいに考えてたけど、まずその区間の端に行って、そこから反対の端まで行くと考えれば簡単だ。最初にどちらの端に行くかの場合分けは必要だが、短いコードで済むのでreverseする必要もない。なんかつらくなってきた。きれいな文章を書く気力がない。

D - Median of Medians

まず座標圧縮をした。次に、順列が与えられた場合を考えた(座圧と似てるけど同じ数は2回現れない)。中央値として現れるのはaのどれかなので、各a[i]が何回中央値になるか数える。できない。「AtCoder 中央値」でググったけど何も出ず(「Median Sum」を見つけたかったようだがあんま関係なさそう)。途中で、aをソートしてもいいと勘違いして解いてた(問題の謎勘違いはよくある)。区間の数はN*(N+1)/2でかなり多い。どんなアイデアもその多さに阻まれる。だから、視点が違うんだろうなと思った。そう思っても何も出てこない。途中から何も出てこなくなった。
配点を見て、虐殺回でない心配をしていた(虐殺回のほうがパフォーマンスいいので)けど、普通に虐殺回だった(虐殺された)。ラスト20分はつらかった。今回は心拍数が上がるタイミングもなく、コンテストに出たメリットが何だったのかわからなくなっていた。集中を阻害されたとかではなく、何もなかった。ただ、自分と化学反応を起こさない問題文だけがあった。