33-4 Picking up sticks

Professor Charon has a set of \(n\) sticks, which are piled up in some configuration. Each stick is specified by its endpoints, and each endpoint is an ordered triple giving its \((x, y, z)\) coordinates. No stick is vertical. He wishes to pick up all the sticks, one at a time, subject to the condition that he may pick up a stick only if there is no other stick on top of it.

a. Give a procedure that takes two sticks \(a\) and \(b\) and reports whether \(a\) is above, below, or unrelated to \(b\).

b. Describe an efficient algorithm that determines whether it is possible to pick up all the sticks, and if so, provides a legal order in which to pick them up.

(Omit!)