def jump(arr: List[int], start: int) -> bool:
seen = set([start])
queue = deque([start])
n = len(arr)
while queue:
node = queue.popleft()
if arr[node]==0: return True
for idx in [node+arr[node], node-arr[node]]:
if idx not in seen and 0 <= idx < n:
queue.append(idx)
seen.add(idx)
return False