D - Make Target 2 Editorial
by
nouka28
下の図のように解釈します。(写真の貼り方がわからないので下のリンク先の図を見てください。)
https://drive.google.com/file/d/1qaLJEpZLUB37B32WNTFxtPzNV-C5bcnS/view?usp=sharing
すると、幅 \(1\) の長方形 \(4\times 10^6\) 個( \(L,R,D,U\) の絶対値が \(10^6\) 以下であることを用いてます。) と長方形 \([L,R]\times [D,U]\) との共通部分を取ればよいです。
幅が \(1\) であることを利用すると結局区間の共通部分を求める問題に帰着し、整数 \(l_1,r_1,l_2,r_2\) について2つの半開区間 \([l_1,r_1),[l_2,r_2)\) の共通部分に存在する整数が
\(\mathrm{clamp}(r_1,l_2,r_2)-\mathrm{clamp}(l_1,l_2,r_2)\) \((\mathrm{clamp}(x,l,r)=\max(l,\min(x,r)))\) 個である事実を用いると簡潔に実装を書くことができます。
posted:
last update:
