Cod sursa(job #1519241)

Utilizator serbanSlincu Serban serban Data 7 noiembrie 2015 00:27:12
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <bits/stdc++.h>

using namespace std;

long long a[20][20], b[20][20], x[20], c[20];

int main()
{
    freopen("flip.in", "r", stdin);
    freopen("flip.out", "w", stdout);

    int n, m, mx = 0;
    cin >> n >> m;
    for(int i = 1; i <= n; i ++)
        for(int j = 1; j <= m; j ++)
            cin >> a[i][j];

    for(int i = 1; i <= n; i ++)
        x[i] = -1;

    int i = 1;
    while(i != 0) {
        while(i != 0 && i <= n) {
            x[i] ++;
            if(x[i] > 1) x[i] = -1, i --;
            else i ++;
        }
        if(i > n) {
            for(int j = 1; j <= n; j ++) {
                if(x[j])
                    for(int k = 1; k <= m; k ++)
                        c[k] -= a[j][k];
                else for(int k = 1; k <= m; k ++)
                    c[k] += a[j][k];
            }
            int s = 0;
            for(int j = 1; j <= m; j ++)
                if(c[j] < 0)
                    s -= c[j];
                else s += c[j];
            mx = max(mx, s);
            for(int j = 1; j <= m; j ++)
                c[j] = 0;
            i = n;
        }
    }

    cout << mx << "\n";
    return 0;
}