ABC176

5完。Eまで、重実装だった。DもEも簡単だったのに振り返るとめっちゃ時間使ってる。

A - Takoyaki

Aにしてはかなり難しい(入力が3つもある)。要するに切り上げ除算なんだけど、読解を間違ってないか慎重に確認する。

B - Multiple of 9

なかなか珍しいタイプのB。最初に文字列としての長さを取得してしまったが、そんなことせず範囲forでよかった。

C - Step

一目貪欲でよさそう。実際、前から見ていって必要以上に高くするメリットがない。最大値を更新していくのだが、コードが思ったより複雑になってうまく書けなかった。

D - Wizard in Maze

「Small Multiple」から01BFSのコードをコピペ(グリッドであることを使わないことで、BFS部分は流用できるから何も考えなくてよくて、メモリ使用量とかは悪化する)。辺数が多いので心配だが一応MLEにはならない(うっかり2倍にしたら危ない領域なので心配だし、そんなにメモリを使うならTLEも心配になる)。ワープは、斜め隣という近い場所へ行くこともあるので注意。面倒なので25通りワープさせた。まあlogは付かないのでいけるやろ。437ms、363548KBでAC。

E - Bomber

一目簡単そう。マスの選び方はH*W通りあるから難しいかなーとも思ったけど、単に爆破対象が一番多い行と列を選ぶだけで大体OK。問題はその選んだマスに爆破対象があると1個減ることだけど、高々1個しか減らないので選ぶマス自体はそこでいい。で、問題は一番多い行と列がたくさんあるとき。その中に1個でも「爆破対象がないマス」があるかどうかを判定したい。これは、爆破対象の位置は互いに異なるので、一番多い個数と等しいかをM個の爆破対象全部調べるだけでいい(数えて比較、少なければ「爆破対象がないマス」が存在する)(今気づいたけど全探索できないほどたくさんあったら「爆破対象がないマス」は必ず存在するな)。logも付かないし、なんでTL3秒?