3263 - Sum Max XI

From Bitnami MediaWiki
Revision as of 14:11, 5 January 2024 by Andrada378 (talk | contribs) (→‎Date de intrare)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

<syntaxhighlight lang="python">

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

  1. Scrierea rezultatului în fișierul de ieșire

with open("summax_xiout.txt", "w") as file_out:

   file_out.write(str(max_sum) + "\n")

</syntaxhighlight>