Cod sursa(job #2329381)

Utilizator draducanuDragos Raducanu draducanu Data 26 ianuarie 2019 17:32:26
Problema Jocul Flip Scor 0
Compilator py Status done
Runda Arhiva de probleme Marime 0.95 kb
from functools import reduce

class Flip:

    def __init__(self, mat, n, m) -> None:
        super().__init__()
        self.mat = mat
        self.n = n
        self.m = m


    def sum(self, mat):
        return reduce(lambda a, b: a + b, reduce(lambda l1, l2: l1 + l2, mat))



    def flip(self, i, j):
        if i == n or j == m: return self.sum(self.mat)

        for k in range(n):
            mat[k][j] = -1 * mat[k][j]

        for k in range(m):
            mat[i][k] = -1 * mat[i][k]

        sol = self.sum(self.mat)
        newSol = self.flip(i, j + 1)
        sol = newSol if newSol > sol else sol
        newSol = self.flip(i + 1, j)
        sol = newSol if newSol > sol else sol

        return sol


fileIn = open('flip.in', 'r')
fileOut = open('flip.out', 'w')

n, m = [int(num) for num in fileIn.readline().split(' ')]

mat = [[int(num) for num in line.split(' ')] for line in fileIn]

print(Flip(mat, n, m).flip(0, 0))


fileIn.close()
fileOut.close()