Cod sursa(job #1489485)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 21 septembrie 2015 10:59:45
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.51 kb
#include <fstream>

using namespace std;

int n,m,i,j,v[290],sum,x[290],s,a[17][17],b[17][17],maxim,s2;

ifstream fin ("flip.in");

ofstream fout ("flip.out");

int main (){

    fin>>n>>m;
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
            fin>>a[i][j];
    maxim = 0;
    while (v[0] != 1){
        s = 0;

        for (i=1;i<=n;i++)
            for (j=1;j<=m;j++)
                b[i][j] = a[i][j];

        for (i=1;i<=m;i++)
            if (v[i] == 1){
                for (j=1;j<=n;j++)
                    b[j][i]*=-1;
            }

        sum = 0;
        for (i=1;i<=n;i++) {
            s = 0;
            for (j=1;j<=m;j++)
                s += b[i][j];
            if (s > 0)
                sum += s;
            else
                sum -= s;
        }

        if (sum > maxim)
            maxim = sum;

        j = m;
        while (j > 0 && v[j] == 1){
            v[j] = 0;
            j--;
        }
        v[j] ++;
    }
    /*for (i=1;i<=m;i++){
        if (x[i] == 1){
            for (j=1;j<=n;j++)
                a[j][i]*=-1;
        }
    }
*/
  /*  for (i=1;i<=n;i++){
        s2 = 0;
        for (j=1;j<=m;j++){
            s2+=a[i][j]*-1;
        }
        if (maxim + s2 > maxim){
            maxim = maxim + s2;
            for (j=1;j<=m;j++)
                a[i][j] *= -1;
        }
    }
    s = 0;
    for (i=1;i<=n;i++){
        for (j=1;j<=m;j++)
            s+=a[i][j];
    }
    */
    fout<<maxim;

    return 0;
}