Pagini recente » Cod sursa (job #677763) | Cod sursa (job #634480) | Cod sursa (job #856700) | Cod sursa (job #1348211) | Cod sursa (job #75591)
Cod sursa(job #75591)
#include <stdio.h>
int s_max,s,i,j,a[6][6],max,p,v[100],m,n,x,y,aux[100],s_ant,k;
int main()
{FILE *fin,*fout;
s_max=0;
fin=fopen("flip.in","r");
fscanf(fin,"%d %d",&n,&m);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
{fscanf(fin,"%d",&a[i][j]);
s_max+=a[i][j];
}
fclose(fin);
s_ant=s_max;
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--;
}
/* if (y>n) {s=0;
for (j=1;j<=n;j++)
{a[j][y-n]=-a[j][y-n];
s+=a[j][y-n];
}
s_ant=s_ant+(2*s);
if (s_ant>s_max) s_max=s_ant;
}
else {s=0; */
s=0;
for (j=1;j<=m;j++)
{a[y][j]=-a[y][j];
//s+=a[y][j];
}
//s_ant=s_ant+(2*s);
//if (s_ant>s_max) s_max=s_ant;
for (i=1;i<=n;i++);
for (j=1;j<=m;j++)
s+=a[i][j];
if (s>s_max) s_max=s;
// }
for (i=1;i<=m;i++)
{s=0;
for (j=1;j<=n;j++)
s+=a[j][i];
if (s<0) {for (j=1;j<=n;j++)
a[j][i]=-a[j][i];
s=0;
for (j=1;j<=n;j++)
for (k=1;k<=m;k++)
s=s+a[j][k];
if (s>s_max) s_max=s;
//s_ant=s_ant+(2*s);
//if (s_ant>s_max) s_max=s_ant;
}
}
}
}
fout=fopen("flip.out","w");
fprintf(fout,"%d",s_max);
fclose(fout);
return 0;
}