Cod sursa(job #1767620)

Utilizator andreigasparoviciAndrei Gasparovici andreigasparovici Data 29 septembrie 2016 15:12:59
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <stdlib.h>

int sol[17],n,m,a[17][17],suma,suma_max=-1;

void citire();
void bkt(int);

int main()
{
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    citire();
    bkt(0);
    printf("%d ",suma_max);
    return 0;
}

void citire()
{
    scanf("%d %d ",&n,&m);
    int i,j;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            scanf("%d ",&a[i][j]);
}

void calc()
{
    int stot = 0,i,j;
    for(i = 0; i < n; i++)
    {
        int s=0;
        for(j = 0; j < m; j++)
            s -= sol[j]*a[i][j];

        stot += (s>=0 ? s: -s);
    }
    if(stot > suma_max)
        suma_max = stot;
}

void bkt(int k)
{
    if(k==m)
    {
        calc();
        return;
    }
    sol[k]=1;
    bkt(k+1);
    sol[k]=-1;
    bkt(k+1);
}