描述
農(nóng)夫 John 建造了一座很長的畜欄,它包括N (2 <= N <= 100,000)個隔間藻烤,這些小隔間依次編號為x1,...,xN (0 <= xi <= 1,000,000,000).
但是,John的C (2 <= C <= N)頭牛們并不喜歡這種布局涎显,而且?guī)最^牛放在一個隔間里兴猩,他們就要發(fā)生爭斗。為了不讓盘智冢互相傷害。John決定自己給牛分配隔間潭千,使任意兩頭牛之間的最小距離盡可能的大借尿,那么,這個最大的最小距離是什么呢狈癞?
輸入
N 一個列表 存著 隔間編號 N長度大于等于2小于100000
C 牛的頭數(shù) 大于等于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))