3264 - Sum Min XI

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerinţa

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

Date de intrare

Fişierul de intrare summin_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 summin_xiout.txt va conţine pe prima linie numărul S, reprezentând suma minimă determinată.

Restricţii şi precizări

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

Exemplu 1

summin_xiin.txt
4
12 16 5 4
11 14 6 7
8 2 3 17
10 9 13 15
summin_xiout.txt
Datele de intrare corespund restrictiilor impuse
17


Exemplu 2

summin_xiin.txt
4000
12 16 5 4
11 14 6 7
8 2 3 17
10 9 13 15
summin_xiout.txt
Datele de intrare nu corespund restrictiilor impuse


Explicatie

17=8+2+3+4.

Rezolvare

def suma_minima(matrice):
    # Calculează suma minimă a elementelor din matrice, adunând câte un element de pe fiecare coloană.

    suma = 0
    for coloana in zip(*matrice):
        suma += min(coloana)
    return suma


def main():
    with open('summin_xiin.txt', 'r') as fin, open('summin_xiout.txt', 'w') as fout:
        n = int(fin.readline().strip())
        matrice = [list(map(int, linie.split())) for linie in fin.readlines()]

        # Verifică dacă datele de intrare respectă restricțiile
        if not (1 <= n <= 100 and all(0 <= x < 10000 for linie in matrice for x in linie)):
            fout.write("Datele de intrare nu corespund restrictiilor impuse\n")
            return

        fout.write("Datele de intrare corespund restrictiilor impuse\n")

        suma = suma_minima(matrice)
        fout.write(f"{suma}\n")


if __name__ == "__main__":
    main()