思路:很直观的一个想法是TreeSet来greedy search,每次找当前plant最远能放到的位置 ,Python没有TreeSet,所以用二分
注意一下起始位置和结束位置
import bisect
# Complete the pylons function below.
def pylons(k, arr):
a = [i for i in range(len(arr)) if arr[i]]
a.sort()
i=k-1
s=set()
while 1:
idx=bisect.bisect_right(a, i)
if idx==0: return -1
if a[idx-1] in s: return -1
s.add(a[idx-1])
if a[idx-1]+k-1>=len(arr)-1: break
i=a[idx-1]+k-1+k
return len(s)
if __name__ == '__main__':
nk = input().split()
n = int(nk[0])
k = int(nk[1])
arr = list(map(int, input().rstrip().split()))
result = pylons(k, arr)
print(result)