Cod sursa(job #2689797)

Utilizator VladP02Popescu Vlad VladP02 Data 22 decembrie 2020 11:29:15
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.56 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");

#define ll long long
#define ui unsigned int

int n, m, a[17][17] = {0};

int sum() {
    int ans = 0;
    for(int i=1; i<=m; i++)
        ans += a[0][i];
    return ans;
}

int main () {
    f >> n >> m;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++) {
            f >> a[i][j];
            a[0][j] += a[i][j];
            a[i][0] += a[i][j];
        }

    bool ok = 1;
    while(ok) {
        ok = 0;
        for(int i=1; i<=n; i++)
            if(a[i][0] < 0) {
                ok = 1;
                for(int j=1; j<=m; j++) {
                    if(a[i][j] < 0) {
                        a[i][0] += 2*abs(a[i][j]);
                        a[0][j] += 2*abs(a[i][j]);
                    }
                    else {
                        a[i][0] -= 2*a[i][j];
                        a[0][j] -= 2*a[i][j];
                    }
                    a[i][j] *= -1;
                }
            }
        for(int j=1; j<=m; j++)
            if(a[0][j] < 0) {
                ok = 1;
                for(int i=1; i<=n; i++) {
                    if(a[i][j] < 0) {
                        a[0][j] += 2*abs(a[i][j]);
                        a[i][0] += 2*abs(a[i][j]);
                    }
                    else {
                        a[0][j] -= 2*a[i][j];
                        a[i][0] -= 2*a[i][j];
                    }
                    a[i][j] *= -1;
                }
            }
    }

    g << sum();
}