0277 - Vârfuri: Diferență între versiuni

De la Universitas MediaWiki
Etichetă: Anulare manuală
Linia 12: Linia 12:


== Restricţii şi precizări ==
== Restricţii şi precizări ==
* 1 ⩽ '''n''' > 1000
* 1 ⩽ '''n''' ⩽ 1000


== Exemplul 1 ==
== Exemplul 1 ==

Versiunea de la data 26 martie 2023 09:44

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

Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P , reprezentând produsul primelor n pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."

Restricţii şi precizări

  • 1 ⩽ n ⩽ 1000

Exemplul 1

Intrare
4
Ieșire
Datele corespund cerințelor.
576


Exemplul 2

Intrare
16
Ieșire
Datele introduse nu corespund cerințelor.


Exemplul 3

Intrare
7
Ieșire
Datele corespund cerințelor.
25401600


Rezolvare

#0277
def validate_input(n, a):
    if not 1 <= n <= 1000:
        print("Numarul de elemente trebuie sa fie intre 1 si 1000.")
        return False
    for x in a:
        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, a):
    suma = 0
    for i in range(1, n-1):
        if a[i] > a[i-1] and a[i] > a[i+1]:
            suma += a[i]
    return suma


if __name__ == '__main__':
    n = int(input("Introduceti numarul de elemente: "))
    a = list(map(int, input("Introduceti elementele separate prin spatiu: ").split()))

    if validate_input(n, a):
        suma = calculate_sum_of_peaks(n, a)
        print("Suma elementelor care sunt varfuri este:", suma)