Cod sursa(job #2523499)

Utilizator gonnadiGaus Gonnadi gonnadi Data 14 ianuarie 2020 11:41:01
Problema Jocul Flip Scor 50
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>
#define N 16
int n, m, MAX;
int mat[N][N], semn[N];
void read()
{
    FILE *fin;
    fin=fopen("flip.in","r");
    int i, j;
    fscanf(fin,"%d%d",&n,&m);
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            fscanf(fin,"%d",&mat[i][j]);
}
int backtrack(int pos){
    if(pos>m){
        calc();
        return 0;
    }
    else {
        semn[pos]=-1;
        backtrack(pos+1);
        semn[pos]=1;
        backtrack(pos+1);
        return 0;
    }
}
void calc(){
    int sum_l,sum_t;
    int i, j;
    sum_l=sum_t=0;
    for(i=0;i<n;i++){
        sum_l=0;
        for(j=0;j<m;j++){
            sum_l+=mat[i][j]*semn[j];
        }
        if(sum_l<0)
            sum_l*=-1;
        sum_t+=sum_l;
    }
    if(sum_t>MAX)
            MAX=sum_t;
}
void show(){
    FILE *fout;
    fout=fopen("flip.out","w");
    fprintf(fout,"%d",MAX);
}
int main()
{
    read();
    backtrack(0);
    show();
    return 0;
}