Cod sursa(job #766419)

Utilizator 2dorTudor Ciurca 2dor Data 11 iulie 2012 12:14:51
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include<fstream>
using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");

long long m, n, i, j, s, s1, s2, sm, joc[1000][16];

int main() {
    fin >> n >> m;
    for (i = 1; i <= n; i++) {
        for (j = 1; j <= m; j++) {
            fin >> joc[i][j];
        }
    }
    fin.close();
    do {
        sm = s;
        s = 0;
        for (i = 1; i <= n; i++) {//comut pe Ox
            s1 = s2 = 0;
            for (j = 1; j <= m; j++) {
                s1 += joc[i][j];
            }
            for (j = 1; j <= m; j++) {
                s2 += -joc[i][j];
            }
            if (s1 < s2) {
                for (j = 1; j <= m; j++) {
                    joc[i][j] = -joc[i][j];
                }
            }
        }
        for (j = 1; j <= m; j++) {//comut pe Oy
            s1 = s2 = 0;
            for (i = 1; i <= n; i++) {
                s1 += joc[i][j];
            }
            for (i = 1; i <= n; i++) {
                s2 += -joc[i][j];
            }
            if (s1 < s2) {
                for (i = 1; i <= n; i++) {
                    joc[i][j] = -joc[i][j];
                }
            }
        }
        for (i = 1; i <= n; i++) {
            for (j = 1; j <= m; j++) {
                s += joc[i][j];
            }
        }
    } while (sm < s);
    fout << sm;
    fout.close();
    return 0;
}