0277 - Vârfuri
Sursa: [1]
Cerinţa
Într-un şir de numere naturale se numeşte vârf un element care are doi vecini şi este strict mai mare decât aceştia.
Se dă un şir cu n elemente, numere naturale. Calculaţi suma elementelor din şir care sunt vârfuri.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n numere naturale, separate prin spaţii.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa valoarea cerută. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse.
Restricţii şi precizări
- 1 ⩽ n ⩽ 1000
- cele n numere citite vor avea cel mult 4 cifre.
Exemplul 1
- Intrare
- Introduceti numarul de elemente: 7
- Ieșire
- Introduceti elementele separate prin spatiu: 3 8 4 4 1 9 1
- Suma elementelor care sunt varfuri este: 17
Exemplul 2
- Intrare
- Introduceti numarul de elemente: 0
- Ieșire
- Numarul de elemente trebuie sa fie intre 1 si 1000.
Rezolvare
<syntaxhighlight lang="python" line>
- 0277
def validate_input(n, elemente):
if not 1 <= n <= 1000: print("Numarul de elemente trebuie sa fie intre 1 si 1000.") return False for x in elemente: if not 0 <= x <= 9999: print("Toate elementele trebuie sa aiba cel mult 4 cifre.") return False return True
def calculate_sum_of_peaks(n, elemente):
suma = 0 for i in range(1, n-1): if elemente[i] > elemente[i - 1] and elemente[i] > elemente[i + 1]: suma += elemente[i] return suma
if __name__ == '__main__':
n = int(input("Introduceti numarul de elemente: ")) elemente = list(map(int, input("Introduceti elementele separate prin spatiu: ").split()))
if validate_input(n, elemente): suma = calculate_sum_of_peaks(n, elemente) print("Suma elementelor care sunt varfuri este:", suma)
</syntaxhighlight>