3165 - Matr Div Imp 1

De la Universitas MediaWiki

Cerința

Se consideră o matrice cu m linii și n coloane, numere naturale. Folosind metoda Divide et Impera, determinați suma numerelor pare din matrice.

Date de intrare

Programul citește de la tastatură numerele m și n, iar apoi cele m * n elemente ale matricei.

Date de ieșire

Programul va afișa pe ecran numărul S, reprezentând suma numerelor pare din matrice.

Restricții și precizări

  • 1 ≤ m, n ≤ 100
  • numerele din matrice vor fi mai mici decât 1.000.000

Exemplul 1

Intrare

3 5
1 2 3 4 5
2 4 6 1 7
1 3 4 5 9

Ieșire

22

Exemplul 2

Intrare

5 1001

Ieșire

Eroare: m și n trebuie să fie între 1 și 100.

Rezolvare

def validate_input(m, n):
    if not (1 <= m <= 100 and 1 <= n <= 100):
        print("Eroare: m și n trebuie să fie între 1 și 100.")
        exit()
    if m <= 0:
        print("Eroare: Numărul de linii (m) trebuie să fie mai mare de 0.")
        exit()

def sum_of_even_numbers(matrix, m, n):
    total_sum = 0
    for i in range(m):
        for j in range(n):
            if matrix[i][j] % 2 == 0:
                total_sum += matrix[i][j]
    return total_sum

def main():
    m = int(input("Introduceți numărul de linii (m): "))
    n = int(input("Introduceți numărul de coloane (n): "))

    validate_input(m, n)

    matrix = []
    for i in range(m):
        row = []
        for j in range(n):
            element = int(input(f"Introduceți elementul de pe poziția ({i + 1}, {j + 1}): "))
            row.append(element)
        matrix.append(row)

    result = sum_of_even_numbers(matrix, m, n)
    print(f"Suma numerelor pare din matrice: {result}")

if __name__ == "__main__":
    main()