AlgoDesign

Goodland electricity

1def pylons(k, arr):
2  count, last, limit, newPoint = 0, -1, k, -1
3  
4  while last + k < len(arr):
5    newPoint = -1
6    for i in range(limit - 1, last, -1):
7      if arr[i] == 1:
8        newPoint = i
9        break
10    if newPoint == -1: 
11      count = -1
12      break
13    
14    last = newPoint
15    limit = min(len(arr), last + (2 * k))
16    count += 1
17  
18  return count