0987 - Matrice 4
Cerința[edit | edit source]
Se dă o matrice pătratică cu n
linii și n
coloane și elemente numere naturale. Să se afișeze indicii liniilor pentru care suma elementelor este număr par.
Se va defini și folosi subprogramul suma
, cu 3
parametri:
x
– matricean
– dimensiunea matriceip
– un număr natural,1 ≤ p ≤ n
care va returna suma elementelor de pe linia p
a matricei x
.
Date de intrare[edit | edit source]
Fișierul de intrare matriceIN.txt
conține pe prima linie numărul n
, iar următoarele n
linii câte n
numere naturale, reprezentând elementele matricei.
Date de ieșire[edit | edit source]
Fișierul de ieșire matriceOUT.txt
va conține pe prima linie indicii determinați, separați prin exact un spațiu, în ordine crescătoare.
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 100
- elementele matricei sunt numere naturale mai mici decât
1 000 000
- liniile matricei sunt numerotate de la
1
lan
.
Exemplul 1[edit | edit source]
Input:
4
1 2 3 4
1 1 1 2
2 2 41 8
3 3 10 2
Output:
1 4
Exemplul 2[edit | edit source]
Input:
51
1 2 3
1 2 3
1 2 3
Output consola:
Dimensiunea n nu respecta restrictiile.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def suma(x, n, p):
# Implementarea subprogramului suma return sum(x[p-1])
def verificare_dimensiune_n(n):
# Verifică restricțiile pentru dimensiunea n return 1 <= n <= 100
def verificare_elemente_matrice(matrice):
# Verifică restricțiile pentru elementele matricei for linie in matrice: for elem in linie: if not (0 <= elem < 1000000): return False return True
def main():
# Citirea datelor de intrare din fisierul matrice4.in with open("matriceIN.txt", "r") as file_in: n = int(file_in.readline().strip()) matrice = [list(map(int, file_in.readline().split())) for _ in range(n)]
# Verificarea restricțiilor pentru dimensiunea n if not verificare_dimensiune_n(n): print("Dimensiunea n nu respecta restrictiile.") return
# Verificarea restricțiilor pentru elementele matricei if not verificare_elemente_matrice(matrice): print("Elementele matricei nu respecta restrictiile.") return
# Determinarea indiciilor liniilor cu suma elementelor număr par linii_par = [i+1 for i in range(n) if suma(matrice, n, i+1) % 2 == 0]
# Scrierea rezultatului în fisierul matrice4.out with open("matriceOUT.txt", "w") as file_out: file_out.write(" ".join(map(str, linii_par)))
if __name__ == "__main__":
main()
</syntaxhighlight>