kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

CGL_6_A: Segment Intersections: Manhattan Geometry 続き

とりあえずALDS1_8_CからBinary Search Treeのコードをコピペ
Nodekeyはなんでも入るようになってるからだいたい全部使える?

標準出力を読みながら保存していく
y座標でソートしたいけどそのままソートするわけではなくて
y軸に平行な線分はふたつのy座標両方で登場してほしくて
しかもそれが同じ線分であることを認識したい

線分はいったん配列に入れて
y座標+線分のインデックスをソートするようにしようか
このときついでに x1 < x2 とか y1 < y2 になるようにしておこう

x軸に平行ならそのまま、
y軸に平行ならy1とy2で1回ずつ登録して
全部登録したらyでソートする

であとはソート結果を順番に見ていくんだけどあとのことを考えると
y軸に平行な線分の登録→交点を数える→y軸に平行な線分の削除の順で
処理しなきゃいけないな
そうなるようにソートできると楽なんだけどうまくやれるだろうか
キーに1,2,3とでも入れておけばいいかな

二分探索するところも、キーが一致するとは限らなくて
キー以上の値が初めて現れるところを見つけないといけない

考慮しないといけないところが多いなあ
何か根っこに近いところで考えて違いしてないだろうか
ちょっと不安になってきた

不安になってきたけど明日早起き&遠出なのでそろそろ切り上げる