Cod sursa(job #803384)

Utilizator StefanLacheStefan Lache StefanLache Data 27 octombrie 2012 14:48:52
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<stdio.h>
#include<stdlib.h>
int max=-256000001;
int suma_matrice(int k,int **v,int N,int M)
{
    int i,j,sum=0,sum_temp;
    for(i=0;i<N;++i)
    {
        sum_temp=0;
        for(j=0;j<M;++j)
            sum_temp+=v[i][j];
        if(sum_temp < 0)
            sum_temp*=-1;
        sum+=sum_temp;
    }
    return sum;
}
void back(int k,int **v,int N,int M)
{
    int i,sum;
    if(k == M)
        {
            sum=suma_matrice(k,v,N,M);
            if(sum > max)
                max=sum;
        }
    else
    {
        back(k+1,v,N,M);
        for(i=0;i<N;++i)
            v[i][k]*=-1;
        back(k+1,v,N,M);
    }
}
int main()
{
    int N,M,**v,i,j;
    FILE *f=fopen("flip.in","rt");
    FILE *g=fopen("flip.out","wt");
    fscanf(f,"%i%i",&N,&M);
    v=(int **)malloc(N*sizeof(int *));
    for(i=0;i<N;++i)
        v[i]=(int *)malloc(M*sizeof(int));
    for(i=0;i<N;++i)
        for(j=0;j<M;++j)
            fscanf(f,"%i",&v[i][j]);
    fclose(f);
    back(0,v,N,M);
    fprintf(g,"%i",max);
    fclose(g);
    return 0;
}