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")