コードは汚くてお前らにコテンパンにこき下ろされるんで上げないけど、使ったロジックはこんな感じ

「変更後」の矩形はまるでY軸を底辺として、X軸方向に伸びる棒グラフのようだとイメージしてる
棒ひとつひとつの「高さ」が加工Xとなるわけなんだけど、これを求めるのに棒の「中間点」を使った
この方法を使うと、「変更前」矩形がどんな重複の仕方をしていても処理できる

詳細はpngで。ちょいでかいけど
https://i.imgur.com/iZGHuwg.png

ちなみに@でのY値は重複排除する

こういう図形絡みの問題って、視覚的には簡単そうなんだけど、
どんなイメージで捉えるにせよ、コードに書き起こせなきゃダメなんで
そこが難しくもあるし面白いところでもあるなぁ

もうC#な話題じゃないんですんません