Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Second solution in Clear category for Painting Wall by gyahun_dash
def checkio(number, operations):
sects = set()
for trial, (left, right) in enumerate(operations, 1):
area = range(left, right + 1)
overlaps = {s for s in sects if (s.start in area) or (area.start in s)}
sects -= overlaps
starts, stops = zip(*[(s.start, s.stop) for s in overlaps | {area}])
sects.add(range(min(starts), max(stops)))
if sum(s.stop - s.start for s in sects) >= number: return trial
else: return -1
May 4, 2014