Pagini recente » Cod sursa (job #561206) | Cod sursa (job #179671) | Cod sursa (job #1566890) | Cod sursa (job #614224) | Cod sursa (job #383926)
Cod sursa(job #383926)
#include <stdio.h>
int m,n,i,j,st[34];
long a[17][17],s,s2[400];
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,"%ld",&a[i][j]);
s=s+a[i][j];
}
int k=1;
st[1]=1;
s2[1]=s;
while (k>0)
{
if (st[k]<=n)
for (j=1;j<=m;j++) {s2[k]=s2[k]-2*a[st[k]][j]; a[st[k]][j]=a[st[k]][j]*(-1);}
else for (i=1;i<=n;i++) {s2[k]=s2[k]-2*a[i][st[k]%n]; a[i][st[k]%n]=a[i][st[k]%n]*(-1);}
if (s2[k]>s)
s=s2[k];
if (st[k]<n+m) {k++; st[k]=st[k-1]+1; s2[k]=s2[k-1];}
else {while (st[k]==n+m)
{
for (i=1;i<=n;i++) {a[i][st[k]%n]=a[i][st[k]%n]*(-1);}
s2[k]=0;
k--;
}
if (k>0)
{
if (st[k]<=n)
for (j=1;j<=m;j++) {a[st[k]][j]=a[st[k]][j]*(-1);}
else for (i=1;i<=n;i++) {a[i][st[k]%n]=a[i][st[k]%n]*(-1);}
s2[k]=s2[k-1];
st[k]++;
}
}
}
fprintf(g,"%ld\n",s);
fclose(g);
return 0;
}