Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Painting Wall by tom-tom
def checkio(required, operations):
painted = []
for step, (op_begin, op_end) in enumerate(operations, start=1):
new_painted = []
for begin, end in painted:
if op_begin > end + 1 or op_end < begin + 1:
new_painted.append([begin, end])
else:
op_begin, op_end = min(op_begin, begin), max(op_end, end)
new_painted.append([op_begin, op_end])
if sum(end - begin + 1 for begin, end in new_painted) >= required:
return step
painted = new_painted
return -1
Jan. 12, 2019