Cod sursa(job #75238)

Utilizator vanila_CPPIonescu Victor Cristian vanila_CPP Data 31 iulie 2007 15:56:25
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <stdio.h>
#include <string>
long a[17][17];
long sl[17];
int m,n,max;


void prel(long x)
{
int i,j;
long sum;
for (i=1;i<=n;i++)
{
if (((1 << (i-1))&x)!=0)
{
for (j=1;j<=m;j++)
{
sl[j]=sl[j]-2*(a[j][i]);
}
}
}
sum=0;
for (j=1;j<=m;j++)
{
if (sl[j]>0)
{
sum+=sl[j];
} else
{
sum=sum-sl[j];
}
}
if (sum>max) max=sum;
for (i=1;i<=n;i++)
{
if (((1 << (i-1))&x)!=0)
{
for (j=1;j<=m;j++)
{
sl[j]=sl[j]+2*(a[j][i]);
}
}
}
}


void iofile(void)
{
int i,j;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&m,&n);
for (i=1;i<=m;i++)
{
        sl[i]=0;
        for (j=1;j<=n;j++)
        {
                scanf("%ld",&a[i][j]);
                sl[i]=sl[i]+a[i][j];
               }
               }
fclose(stdin);
}


int main(void)
{
        long i;
        iofile();
        max=0;
        for (i=0;i<=((1 << n)-1);i++)
        {
                prel(i);
               }
        printf("%ld\n",max);
        fclose(stdout);
        return 0;
}