Pagini recente » Cod sursa (job #2145313) | Cod sursa (job #670100) | Cod sursa (job #1248358) | Cod sursa (job #2207484) | Cod sursa (job #30609)
Cod sursa(job #30609)
#include <stdio.h>
#include <string.h>
#define inFile "flip.in"
#define outFile "flip.out"
#define DMAX 16
#define INF 16*16*1000000+1
int c[DMAX],N,M;
long A[DMAX][DMAX],col[DMAX],sol=-INF;
void readData();
void gen(int);
void writeData();
int main()
{
readData();
gen(1); //atentie aici sub[0] mereu = 0 !
writeData();
return 0;
}
void readData()
{
FILE * f = fopen(inFile,"r");
fscanf(f,"%d %d",&N,&M);
for(int i=0;i<N; ++i)
for(int j=0;j<M; ++j)
{
fscanf(f,"%ld",&A[i][j]);
col[j]+=A[i][j];
}
fclose(f);
}
void writeData()
{
FILE * f = fopen(outFile,"w");
fprintf(f,"%ld",sol);
fclose(f);
}
void verify();
void gen(int k)
{
if(k==N) verify();
else
for(int i=0;i<2;i++)
{
c[k]=i;
gen(k + 1);
}
}
void verify()
{
int i,j;
long tmp[DMAX],sum=0;
memcpy(tmp,col,sizeof col);
for(i = 0 ; i < N ; ++i)
if(c[i])
for(j = 0 ; j < M ; ++j)
{
tmp[j]+=2*(-A[i][j]);
}
for(j = 0 ; j < M ; ++j)
{
if(tmp[j]<0)
sum-=tmp[j];
else
sum+=tmp[j];
}
if(sum > sol ) sol = sum;
}