Cod sursa(job #1557963)

Utilizator Alex_dudeDudescu Alexandru Alex_dude Data 28 decembrie 2015 15:04:27
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <cstdio>
#define nmax 17
#define minf -99999999

FILE *fin = fopen("flip.in", "r"), *fout = fopen("flip.out", "w");

int n,m;
int a[nmax][nmax];
int sol[2*nmax];
int maxim = minf;

void citire()
{
    int i, j;

    fscanf(fin, "%d %d", &n, &m);

    for(i = 1; i <= n; i++)
        for(j = 1; j <=m ; j++)
            fscanf(fin, "%d", &a[i][j]);
}

void maxi()
{
    int i,j;
    int maxim1 = 0;
    for(i = 1; i <= n; i++)
        for(j = 1; j <=m ; j++)
        {
            int nr = a[i][j];
            if(sol[i])nr*= -1;
            if(sol[n+j])nr*= -1;
            maxim1 += nr;
        }
    if(maxim1 > maxim) maxim = maxim1;
}

void backt(int k)
{
    int i;
    for(i = 0; i<=1; i++)
    {
        sol[k]=i;

        if(k == m+n)
            maxi();
        else
            backt(k+1);

    }
}

int main()
{
    citire();
    backt(1);
    fprintf(fout,"%d", maxim);
    return 0;
}