0518 - SecvZero
De la Universitas MediaWiki
Sursa: 0518 - SecvZero
Cerinţa
Se dă un vector cu n elemente numere naturale. Determinați cea mai lungă secvență de elemente nule din vector. Dacă în vector există mai multe secvențe de elemente nule de lungime maximă se va determina cea mai din stânga.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.
Date de ieșire
Programul va afișa pe ecran indicii st dr ai capetelor secvenței determinate, separați printr-un spațiu.
Restricţii şi precizări
- 1 ≤ n ≤ 1000
- cele n numere citite vor fi mai mici decât 1000
- indicii elementelor vectorului sunt cuprinși între 1 și n
- vectorul va conține cel puțin un element nul
Exemplu
- Intrare
- 10
- 0 1 0 0 0 5 0 0 0 2
- Ieșire
- 3 5
Rezolvare
Rezolvare ver. 1
# 0518 - SecvZero
n = int(input("Introduceți numărul de elemente din vector: "))
v = list(map(int, input("Introduceți elementele vectorului: ").split()))
start = -1 # indexul de start al secvenței de elemente nule
end = -1 # indexul de sfârșit al secvenței de elemente nule
max_length = 0 # lungimea maximă a secvenței de elemente nule
current_start = -1 # indexul de start al secvenței curente de elemente nule
current_length = 0 # lungimea curentă a secvenței de elemente nule
for i in range(n):
if v[i] == 0: # dacă am găsit un element nul
if current_start == -1: # dacă nu eram deja într-o secvență de elemente nule
current_start = i # începem o secvență nouă
current_length += 1 # creștem lungimea curentă a secvenței
else: # dacă am găsit un element nenul
if current_length > max_length: # dacă secvența curentă este mai lungă decât maximul anterior
start = current_start # actualizăm indexul de start al secvenței maxime
end = i - 1 # actualizăm indexul de sfârșit al secvenței maxime
max_length = current_length # actualizăm lungimea maximă
current_start = -1 # resetăm indexul de start al secvenței curente
current_length = 0 # resetăm lungimea curentă a secvenței
# Afisăm indicii de start și sfârșit ai secvenței de elemente nule
print(start, end)