Cod sursa(job #2033611)

Utilizator ruxi.icleanuRuxandra Icleanu ruxi.icleanu Data 7 octombrie 2017 01:29:55
Problema Jocul Flip Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <stdio.h>
#include <stdlib.h>

#define MAXN 16
#define INF 256000000

int a[MAXN][MAXN+1], sumlin[MAXN];

int main()
{
    int n, m, i, j, nr, lin, col, sum, max;
    FILE *fi, *fo;
    fi = fopen("flip.in", "r");
    fo = fopen("flip.out", "w");
    fscanf(fi, "%d%d", &n, &m);
    for(i=0; i<n; i++)
        for(j=0; j<m; j++) {
            fscanf(fi, "%d", &a[i][j]);
            a[i][m]+=a[i][j];
        }

    nr=1;
    for(i=0; i<m; i++)
        nr*=2;

    max=-INF;

    for(i=0; i<nr; i++) {

        for(lin=0; lin<n; lin++)
            sumlin[lin]=a[lin][m];

        for(col=0; col<m; col++)
            if(i&(1<<col)) {
                for(lin=0; lin<n; lin++)
                    sumlin[lin]=a[lin][m]-2*a[lin][col];
            }

        sum=0;
        for(lin=0; lin<n; lin++)
            sum+=(sumlin[lin]>0 ? sumlin[lin] : -sumlin[lin]);
        if(sum>max)
            max=sum;
    }
    fprintf(fo, "%d", max);

    fclose(fi);
    fclose(fo);

    return 0;
}