描述
农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 <= xi <= 1,000,000,000).
但是,John的C (2 <= C <= N)头牛们并不喜欢这种布局,而且几头牛放在一个隔间里,他们就要发生争斗。为了不让牛互相伤害。John决定自己给牛分配隔间,使任意两头牛之间的最小距离尽可能的大,那么,这个最大的最小距离是什么呢?
输入
N 一个列表 存着 隔间编号 N长度大于等于2小于100000
C 牛的头数 大于等于2小于N
输出
3
def farmer_cattle(N,C):
N.sort()
print(N)
distance = int(N[-1]/C)+1
num = 1
for x in range(distance,0,-1):
distance = x
location = N[0]
for j in range(1,len(N)):
if (N[j]- (location+distance))>=0:
location = N[j]
num+=1
if num == C:
print("牛放完了,最大最近距离{}".format(distance))
return True
return False
if __name__ == "__main__":
cattle_list = [1,2,8,4,9]
c= 3
if len(cattle_list)<=100000 and len(cattle_list)>=2 and c>=2 and c<=len(cattle_list):
print(farmer_cattle(cattle_list,c))