Pagini recente » Cod sursa (job #1530072) | Cod sursa (job #260082) | Cod sursa (job #576566) | Cod sursa (job #425470) | Cod sursa (job #593295)
Cod sursa(job #593295)
#define _CRT_SECURE_NO_DEPRECATE
#define ms 17
#define ns ms-1
#include <stdlib.h>
#include <stdio.h>
int static a[ms][ms],n,m,*l[ms*2],o;
int sum();
int flip(int x);
int fill(void *x, int n, int c);
int flob(int x);
int main(int argc, char **argv, char **env)
{
FILE *fi = fopen("flip.in","r");
fill(a,ms*ms,1);
fscanf(fi,"%d%d",&n,&m);
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
{
fscanf(fi,"%d",&a[i][j]);
}
fclose(fi);
o=n+m;
for (int i=0; i<m; i++)
l[i]=&a[ns][i];
for (int i=0; i<n; i++)
l[i+m]=&a[i][ns];
int q=1;
int s=sum(),ss;
while (q)
{
q = flob(0);
ss = sum();
if (ss>s) s = ss;
}
FILE *fo = fopen("flip.out","w");
fprintf(fo,"%d",s);
fclose(fo);
return 0;
}
int sum()
{
int s = 0;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
{
s += a[i][j]*a[ns][j]*a[i][ns];
}
return s;
}
int flip(int x)
{
if (x<m)
for (int i=0; i<n; i++) a[i][x]=-a[i][x];
else
for (int i=0; i<m; i++) a[x][i]=-a[x][i];
return 0;
}
int fill(void *x, int n, int c)
{
int *p = (int *)x;
while (n--)
{
*p = c;
p++;
}
return 0;
}
int flob(int x)
{
if (l[x]==NULL) return 0;
else if ((*(l[x])*=-1)==1) return flob(x+1);
else return 1;
}