Pagini recente » Cod sursa (job #399502) | Cod sursa (job #819011) | Cod sursa (job #1429603) | Cod sursa (job #3178608) | Cod sursa (job #75600)
Cod sursa(job #75600)
#include <stdio.h>
int s_max,s,i,j,a[20][20],max,p,v[100],m,n,x,y,aux[100],s_ant,st[30];
int main()
{FILE *fin,*fout;
s_max=0;
fin=fopen("flip.in","r");
fscanf(fin,"%d %d",&n,&m);
for (i=1;i<=m;i++) st[i]=0;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
{fscanf(fin,"%d",&a[i][j]);
s_max+=a[i][j];
st[j]=st[j]+a[i][j];
}
fclose(fin);
for(i=0;i<=n;i++) {v[i]=0;aux[i]=0;}
while (v[0]==0)
{i=n;
v[i]++;
while (v[i]==2)
{v[i]=0;v[i-1]=v[i-1]+1;i--;}
if (v[0]==0)
{
i=n;
y=0;
while (y==0)
{x=(v[i]+v[i-1])%2;
if (x!=aux[i]) {y=i;aux[i]=x;}
i--;
}
for (i=1;i<=m;i++)
{a[y][i]=-a[y][i];
st[i]=st[i]+2*a[y][i];
}
s=0;
for (i=1;i<=m;i++)
if (st[i]>0) s+=st[i];
else s=s-st[i];
if (s>s_max) s_max=s;
}
}
fout=fopen("flip.out","w");
fprintf(fout,"%d",s_max);
fclose(fout);
return 0;
}