Cod sursa(job #1758150)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 16 septembrie 2016 17:20:11
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>
#define lim 16
int mat[lim][lim],col[lim];
int modul(int x){
    if(x<0)
        return x*(-1);
    return x;
}
int main(){
    FILE *fin,*fout;
    fin=fopen("flip.in","r");
    fout=fopen("flip.out","w");
    int i,j,k,n,m,sum,maxim=-2000000000;
    fscanf(fin,"%d%d",&n,&m);
    for(i=0;i<n;i++)
        for(j=0;j<m;j++){
            fscanf(fin,"%d",&mat[i][j]);
            col[j]+=mat[i][j];
        }
    for(k=0;k<(1<<n);k++){
        for(i=0;i<n;i++)
            if(k&(1<<i))
                for(j=0;j<m;j++)
                    col[j]-=2*mat[i][j];
        sum=0;
        for(j=0;j<m;j++)
            sum+=modul(col[j]);
        if(sum>maxim)
            maxim=sum;
        for(i=0;i<n;i++)
            if(k&(1<<i))
                for(j=0;j<m;j++)
                    col[j]+=2*mat[i][j];
    }
    fprintf(fout,"%d",maxim);
    fclose(fin);
    fclose(fout);
    return 0;
}