# Uses python3 import sys from collections import namedtuple Segment = namedtuple('Segment', 'start end') def getSortedListOfSegs(segList): segList.sort() return segList def getOptimalPoints(segList): if len(segList) == 1: return [segList[0].start] if segList[0].end <= segList[1].start: result = [segList[0].end] if segList[1].start == segList[1].end: if len(segList) == 2: return result else: result.extend(getOptimalPoints(segList[2:])) return result else: if segList[0].end >= segList[1].end: result = [segList[1].end] del(segList[1]) result.extend(getOptimalPoints(segList[1:])) return result else: result = [segList[0].end] result.extend(getOptimalPoints(segList[1:])) return result