ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

ABC112 C - Pyramid

問題
最近のC、やっぱり難しいです...
提出コード
n個の情報に対して、ありうるすべてのx座標についての高さの候補を書き出す、という動作が間に合うぐらい制約が緩いので、とりあえず書き出します。これは、任意の座標とのマンハッタン距離を、現在の高さに足し合わせれば、その座標における高さの候補hとなります。
その後、その高さの候補hがn個一致する座標を探しだせば、基本的にそれが答えになります。
ですが再び制約をよく見ると、Hは0という入力がありうるので、この場合だけコーナーケースになります。なぜなら、高さ0の場合は、中心座標からの距離がぴったり中心の高さと一致する必要がないからです。
ということで、このパターンだけあらかじめ別に保管しておき、そのパターン数をnから引いておきます。
残った新しいn個の情報について最初と同様の処理をしてあげます。
最後に探索するときは、高さの候補hがn個一致する+別に保存していたすべての座標とのマンハッタン距離が、高さの候補h以上である
という条件に置き換えれば、答えを求めてあげることができます。