0277 - Vârfuri: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Dragos1234 (talk | contribs)
No edit summary
Line 62: Line 62:


</syntaxhighlight>
</syntaxhighlight>
==Explicatie rezolvare==

Revision as of 17:05, 26 April 2023

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>

  1. 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>

Explicatie rezolvare