Cows on a Leash¶
In [1]:
fin = open ('leash.in', 'r')
# Read in Number of leashes
N = int(fin.readline().strip());
leashlist = []
In [2]:
# read the start and length for each leash
# then compute end point and save (start,end) tuple
# then append onto list of tuples
for i in range(N):
start, length = map(int,fin.readline().split())
end = start+length
temptup = (start,end)
leashlist.append(temptup)
In [3]:
# sort list of tuples by end time
leashlist.sort(key=lambda x: x[1])
print(leashlist)
In [4]:
# Initialize Counter and 1st Cut
# 1st cut is just before 1st end time
counter = 1
cutpoint = leashlist[0][1]
print("cut just before ", cutpoint)
In [5]:
# Iterate through sorted list
# each leash is either discarded (if start time was before or equal to last cutpoint)
# or a new cutpoint is defined
for s,e in leashlist:
if s>=cutpoint:
counter+=1
cutpoint=e
print("cut just before ", cutpoint)
print("leash ",s,e," has been cut")
In [6]:
print("Number of Cuts Required:",counter)