Pagini recente » Cod sursa (job #1691717) | Monitorul de evaluare | Cod sursa (job #1519712) | Monitorul de evaluare | Cod sursa (job #805390)
Cod sursa(job #805390)
#include<stdio.h>
int N,M,i,j,a[20][20],smax;
void copy(int a[20][20],int b[20][20],int N,int M)
{
int i,j;
for(i=1;i<=N;i++)
{
for(j=1;j<=M;j++)
{
b[i][j]=a[i][j];
}
}
}
int flip(int N,int M, int a[20][20])
{
int i,j,s,smax,k,v,p,ss;
int b[20][20];
p=1;
for(i=1;i<=N;i++)
{
p=p*2;
}
smax=-100000000;
for(k=0;k<p;k++)
{
v=k;
copy(a,b,N,M);
for(i=1;i<=N;i++)
{
if(v%2==1)
{
for(j=1;j<=M;j++)
{
b[i][j]=-b[i][j];
}
}
v=v/2;
}
ss=0;
for(j=1;j<=M;j++)
{
s=0;
for(i=1;i<=N;i++)
{
s=s+b[i][j];
}
if(s<0)
{
ss=ss-s;
}
else
{
ss=ss+s;
}
}
if(ss>smax)
{
smax=ss;
}
}
return smax;
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d",&N);
scanf("%d",&M);
for(i=1;i<=N;i++)
{
for(j=1;j<=M;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("%d",flip(N,M,a));
fclose(stdout);
return 0;
}