問題
二次元平面を考える。果物の位置が与えられる。果物は1秒経つとy軸のマイナス方向に1移動する。(0, 0)に果物を収穫できる人がいて、一秒ごとにx軸のプラスかマイナスの方向に移動できる。収穫できる果物の最大値を求めよ。ただし、
は以下の式で生成される。
解法
現在の位置から次の果物が収穫可能か判断する式は、以下となる。
絶対値の条件をはずすと、
式を整理すると、
ふたつの式を両方共満たす時、次の果物は収穫可能となる。
とし、sについて昇順になるようにソートする。
LISを用いると最大収穫数が求まる。
計算量
ソート:O(N log N)
LIS: O(N log N)