Cod sursa(job #1720391)

Utilizator otnielMercea Otniel otniel Data 22 iunie 2016 13:49:05
Problema Jocul Flip Scor 60
Compilator c Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<stdio.h>
int x;
long maxim;
int back(int k,int n,int m,long a[n][m])
{
    if(k<=x)
    {
        int j;
        int i;
        for(j=n-1;j>=0;j--)
        if(k&1<<j)
        {
            int i;
            for(i=0;i<m;i++)
                a[j][i]=a[j][i]*(-1);

        }
        long sumafinal=0;
       for(i=0;i<m;i++)
       {
            long suma=0;
            for(j=0;j<n;j++)
            suma=suma+a[j][i];
            if(suma<0)
                {for(j=0;j<n;j++)
                a[j][i]=a[j][i]*(-1);
                suma=suma*(-1);}
            sumafinal=sumafinal+suma;

       }
    if(sumafinal>maxim)
    maxim=sumafinal;
        back(k+1,n,m,a);
    }
    else
    {   FILE *g;
    g=fopen("flip.out","w");
    fprintf(g,"%ld",maxim);
    return 0;}

}
int main()
{   FILE *f;
    f=fopen("flip.in","r");
    int n,m;
    int i;
    int j;
    fscanf(f,"%d%d",&n,&m);
    long a[n][m];
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            fscanf(f,"%ld",&a[i][j]);
    x=(1<<n)-1;
    back(0,n,m,a);

}