3263 - Sum Max XI

De la Universitas MediaWiki

Cerinţa

Se dă o matrice pătratică cu n lini şi n coloane şi elemente numere întregi. Determinaţi cea mai mare sumă a n elemente din matrice, obținută adunând câte un element de pe fiecare linie a matricei.

Date de intrare

Fişierul de intrare summax_xiin.txt conţine pe prima linie numărul n, iar pe următoarele n linii câte n numere întregi, separate prin spaţii, reprezentând elementele matricei.

Date de ieşire

Fişierul de ieşire summax_xiout.txt va conţine pe prima linie numărul S, reprezentând suma maximă determinată.

Restricţii şi precizări

  • 1 ≤ n ≤ 100
  • elementele matricei vor avea cel mult 4 cifre

Exemplu:

summax_xiin.txt

4

12 16 5 4

11 14 6 7

8 2 3 17

10 9 13 15

summax_xiout.txt

62

Explicație

62=16+14+17+15.

Rezolvare

# Citirea datelor de intrare

with open("summax_xiin.txt", "r") as file:
    # Validare pentru dimensiunea matricei (n)
    n = int(file.readline().strip())
    if not 1 <= n <= 100:
        raise ValueError("Dimensiunea matricei trebuie să fie între 1 și 100 inclusiv.")

    matrix = [list(map(int, file.readline().split())) for _ in range(n)]  # Se citesc elementele matricei
    # Validare pentru elementele matricei
    for row in matrix:
        if any(not (0 <= element <= 9999) for element in row):
            raise ValueError("Elementele matricei trebuie să fie între 0 și 9999 inclusiv.")

# Determinarea sumei maxime

max_sum = sum(max(matrix[i]) for i in range(n))  # Se calculează suma maximă a celor mai mari elemente de pe fiecare linie

# Scrierea rezultatului în fișierul de ieșire

with open("summax_xiout.txt", "w") as file_out:
    file_out.write(str(max_sum) + "\n")