Cod sursa(job #1380438)

Utilizator andreisecAndrei Tudor andreisec Data 7 martie 2015 19:44:28
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<stdio.h>
//#include<conio.h>
#include<stdlib.h>

int main(){
   
    int i,j,M,N;
    FILE *in,*out;
    in = fopen("flip.in","r");
    out = fopen("flip.out","w+");
    if(!fscanf(in, "%d %d\n", &N, &M)) return 1;
    int board[N][M];
    long long max = 0;

    for(i=0;i<N;i++){
        for(j=0;j<M;j++){
            if(!fscanf(in, "%d ", &board[i][j])) return 1;
            max+=board[i][j];
//            printf("%d ", board[i][j]);
        }
    }
    fclose(in);
//    int *pboard = &board[0][0];
    int all = 1, row, sign;
    long long sum, sump;
    all<<=N;

//    printf("%d\n", suma(pboard,N,M));

//    row*M+col

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

        sum = 0;
        for(j=0;j<M;j++){
            sump=0;
            for(row=0;row<N;row++){
                sign = 1;
                if (1&(i>>row))
                    sign*=-1;
                sump += sign*board[row][j];
            }
            sum += sump>0?sump:-sump;
        }
        if (sum>max)
           max = sum;
    }
      
    fprintf(out,"%lld", max);       

    fclose(out);
//    getch();
 return 0;
}