Discard Trees: a data structure for finding nonintersecting combina...