Dúvida exercício beecrowd 1973
Olá pessoal, me chamo João Pedro e faço Engenharia de Software pela Universidade de Pernambuco. Hoje me deparei com um exercício passado em sala de aula um tanto quanto interessante. O exercício em questão é o mesmo que o número 1973 disponibilizado para iniciantes, mesmo executando inúmeras submissões meu código acaba excedendo o limite de tempo necessário para ser aceito pelo site. Abaixo segue meu código, gostaria de ajuda sobre como posso tá otimizando-o de forma suficiente para que o site aceite.
fazendas = int(input().strip())
if 1 <= fazendas <= 10**6:
estrela = list(map(int, input().strip().split()))
if all(1 <= x <= 10**6 for x in estrela):
pos = 0
visitadas_total = 0
while 0 <= pos < fazendas:
if estrela[pos] > 0:
visitadas_total += 1
if estrela[pos] % 2 == 0:
estrela[pos] -= 1
pos -= 1
else:
estrela[pos] -= 1
pos += 1
else:
break
restantes = 0
for i in range(fazendas):
restantes += estrela[i]
print(visitadas_total, restantes)