Загрузка данных


import sys
from fractions import Fraction
from decimal import Decimal, getcontext

data = sys.stdin.read().split()
n = int(data[0])
a = [[Fraction(data[1 + i * n + j]) for j in range(n)] for i in range(n)]

det = Fraction(1)
for k in range(n):
    p = k
    while p < n and a[p][k] == 0:
        p += 1
    if p == n:
        det = Fraction(0)
        break
    if p != k:
        a[k], a[p] = a[p], a[k]
        det = -det
    det *= a[k][k]
    for i in range(k + 1, n):
        m = a[i][k] / a[k][k]
        for j in range(k, n):
            a[i][j] -= m * a[k][j]

if det.denominator == 1:
    print(det.numerator)
else:
    getcontext().prec = 1000
    print('{:f}'.format((Decimal(det.numerator) / Decimal(det.denominator)).normalize()))