Cod sursa(job #2901290)

Utilizator LucianCCraciun Lucian Stefan LucianC Data 13 mai 2022 15:42:03
Problema Jocul Flip Scor 20
Compilator py Status done
Runda Arhiva de probleme Marime 1.59 kb
#!/usr/bin/env python
# coding: utf-8

# Jocul Flip

class FlipGame:

    def __init__(self, n, m, matrix):
        self.n = n
        self.m = m
        self.board = matrix

    def solve(self):
        for i in range(self.n):
            row_sum = 0
            for j in range(self.m):
                row_sum += self.board[i][j]
            if row_sum < 0:
                for j in range(self.m):
                    self.board[i][j] = - self.board[i][j]
                # print(f"--Row {i+1}")
                return self.solve()

        for j in range(self.m):
            col_sum = 0
            for i in range(self.n):
                col_sum += self.board[i][j]
            if col_sum < 0:
                for i in range(self.n):
                    self.board[i][j] = - self.board[i][j]
                # print(f"--Column {j+1}")
                return self.solve()

        total_sum = 0
        for i in range(self.n):
            for j in range(self.m):
                total_sum += self.board[i][j]
                # print(self.board[i][j], end=" ")
            # print('\n', end='')
        return total_sum


    def print_board(self):
        print(self.board)


if __name__ == "__main__":
    with open("flip.in") as fin:
        n, m = map(int, fin.readline().split())
        arr = []
        for i in range(n):
            line = list(map(int, fin.readline().split()))
            arr.append(line)

    flip = FlipGame(n, m, arr)
    flip_sum = flip.solve()
    
    with open("flip.out", "w+") as fout:
        fout.write("{:.0f}".format(flip_sum))