4163 - Seif
Cerința
Într-un tărâm îndepărtat, un grup de detectivi încearcă să deschidă un seif foarte complex. Seiful este protejat de o serie de coduri numerice dispuse într-o matrice pătratică. Fiecare celulă a matricei reprezintă un cod numeric care trebuie decodat. Detectivii trebuie să parcurgă toate codurile, trecând o singură dată prin fiecare celulă, pentru a calcula suma totală a valorilor din matrice și astfel să descopere codul final al seifului.
Date de intrare
Programul citește de la tastatură dimensiunea n a matricei pătratice (n x n) și valorile din matrice, fiecare rând fiind pe o linie separată.
Date de ieșire
Pe ecran se va afișa suma totală a valorilor din matrice, adică codul final al seifului.
Restricții și precizări
- 1 ⩽ n ⩽ 1000
Exemplu 1
- Intrare
3
1 2 3
4 5 6
7 8 9
- Iesire
45
Rezolvare
<syntaxhighlight lang="python" line> def citeste_matrice_patratica():
try: n = int(input("Introduceți dimensiunea matricii pătratice (n): ")) matrice = [] for _ in range(n): rand = list(map(int, input().split())) if len(rand) != n: return None matrice.append(rand) return matrice except ValueError: return None
def valideaza_matrice(matrice):
if matrice: n = len(matrice) if 1 <= n <= 1000: if all(len(rand) == n for rand in matrice): if all(-10**6 <= elem <= 10**6 for rand in matrice for elem in rand): return True return False
def calculeaza_suma_totala(matrice):
suma_totala = sum(sum(rand) for rand in matrice) return suma_totala
def main():
print("Introduceți matricea pătratică:") matrice = citeste_matrice_patratica() if matrice is None: print("Datele de intrare nu corespund restricțiilor impuse.") return if valideaza_matrice(matrice): print("Datele de intrare corespund restricțiilor impuse.") suma_totala = calculeaza_suma_totala(matrice) print(suma_totala) else: print("Datele de intrare nu corespund restricțiilor impuse.")
if __name__ == "__main__":
main()
</syntaxhighlight>