Cod sursa(job #2031887)

Utilizator ruxi.icleanuRuxandra Icleanu ruxi.icleanu Data 3 octombrie 2017 22:49:02
Problema Jocul Flip Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
#include <stdlib.h>

#define MAXN 16

int a[MAXN][MAXN];

int main()
{
    int n, m, i, j, nr1, nr2, 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]);

    nr1=1;
    for(i=0; i<n; i++)
        nr1*=2;
    nr2=1;
    for(i=0; i<m; i++)
        nr2*=2;

    max=0;
    for(i=0; i<nr1; i++)
        for(j=0; j<nr2; j++) {
            sum=0;
            for(lin=0; lin<n; lin++)
                for(col=0; col<m; col++) {
                    if(i&(1<<lin) && j&(1<<col))
                        sum+=a[lin][col];
                    else if(i&(1<<lin) || j&(1<<col))
                        sum-=a[lin][col];
                }
            if(sum>max)
                max=sum;
        }
    fprintf(fo, "%d", max);
    return 0;
}