Pagini recente » Cod sursa (job #238042) | Cod sursa (job #2682017) | Cod sursa (job #126616) | Cod sursa (job #1042804) | Cod sursa (job #1769863)
#include <stdio.h>
#include <ctype.h>
#define LIM 1<<17
FILE *fi;
using namespace std;
char BUF[LIM];
int v[16][16], poz=LIM, n, m;
char getch(){
if(poz==LIM)
fread(BUF,LIM,1,fi);
return BUF[poz++];
}
int getNr(){
char ch=getch();
while(isdigit(ch)==0 && ch!='-') ch=getch();
int semn=1, rez=0;
if(ch=='-'){
semn=-1;
ch=getch();
}
do{
rez=rez*10+ch-'0';
ch=getch();
}while(isdigit(ch)!=0);
return rez*semn;
}
int calcul(int urma){
int i=0, rez=0, sum, j, aux[16][16];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
aux[i][j]=v[i][j];
i=0;
while(urma>0){
if(urma%2==1)
for(j=0;j<m;j++)
aux[i][j]=-aux[i][j];
urma/=2;
i++;
}
for(j=0;j<m;j++){
sum=0;
for(i=0;i<n;i++)
sum+=aux[i][j];
if(sum<0)
rez-=sum;
else
rez+=sum;
}
return rez;
}
int main()
{
int i, j, mx, lim, a;
FILE *fo=fopen("flip.out", "w");
fi=fopen("flip.in", "r");
fscanf(fi, "%d%d", &n, &m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(fi, "%d", &v[i][j]);
lim=1<<n;
mx=-2000000000;
for(i=0;i<lim;i++){
a=calcul(i);
if(a>mx)
mx=a;
}
fprintf(fo, "%d", mx);
fclose(fi);
fclose(fo);
return 0;
}