Pagini recente » Cod sursa (job #2701261) | Cod sursa (job #2921858) | Cod sursa (job #2982845) | Cod sursa (job #648981) | Cod sursa (job #383917)
Cod sursa(job #383917)
#include <stdio.h>
int m,n,i,j,st[34];
long a[17][17],s,s2;
FILE *f=fopen("flip.in","r"),*g=fopen("flip.out","w");
int main(void)
{
fscanf(f,"%d%d",&n,&m);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
{
fscanf(f,"%d",a[i][j]);
s=s+a[i][j];
}
int k=1;
st[1]=1;
s2=s;
while (k>0)
{
if (st[k]<=n)
for (j=1;j<=m;j++) {s2=s2-2*a[st[k]][j]; a[st[k]][j]=a[st[k]][j]*(-1);}
else for (i=1;i<=n;i++) {s2=s2-2*a[i][st[k]%n]; a[i][st[k]%n]=a[i][st[k]%n]*(-1);}
if (s2>s)
s=s2;
if (st[k]<n+m) {k++; st[k]=st[k-1]+1;}
else {while (st[k]==n+m)
{
for (i=1;i<=n;i++) {s2=s2-2*a[i][st[k]%n]; a[i][st[k]%n]=a[i][st[k]%n]*(-1);}
k--;
}
if (k>0)
{
if (st[k]<=n)
for (j=1;j<=m;j++) {s2=s2-2*a[st[k]][j]; a[st[k]][j]=a[st[k]][j]*(-1);}
else for (i=1;i<=n;i++) {s2=s2-2*a[i][st[k]%n]; a[i][st[k]%n]=a[i][st[k]%n]*(-1);}
st[k]++;
}
}
}
fprintf(g,"%ld",s);
fclose(g);
return 0;
}