Pagini recente » Cod sursa (job #2701663) | Cod sursa (job #2895610) | Cod sursa (job #581996) | Cod sursa (job #2715088) | Cod sursa (job #209646)
Cod sursa(job #209646)
#include <stdio.h>
#include <values.h>
//using namespace std;
FILE *f,*g;
long a[17][17],sc[17];
long smax=0-MAXLONG,tsum;
unsigned long v;
unsigned long i,j;
int n,m,t;
long calculeaza_suma(unsigned long k)
{
int i,j;
long tsum=0;
for(j=1;j<=m;j++)
{
tsum=0;
for(i=0;i<n;i++)
if(((k>>i)&1)==1)
tsum+=a[i+1][j] * -1;
else
tsum+=a[i+1][j];
if(tsum<0) sc[j]=-tsum;
else sc[j]=tsum;
}
tsum=0;
for(i=1;i<=m;i++)
tsum+=sc[i];
return tsum;
}
int main()
{
f=fopen("flip.in","r");
g=fopen("flip.out","w");
fscanf(f,"%d %d\n",&n,&m);
//citire
for(i = 1; i <= n;i++)
for(j = 1;j <= m;j++)
fscanf(f,"%ld",&a[i][j]);
v=((unsigned long)1<<n)-1;
for(i=1;i<=v;i++)
{
tsum=calculeaza_suma(i);
if(tsum>smax)
smax=tsum;
}
fprintf(g,"%ld\n",smax);
fclose(f); fclose(g);
return 0;
}