Gaining efficiency and flexibility in the simple temporal problem
Introduction to Algorithms