Cod sursa(job #52513)
#include <stdio.h>
#define dim 16
long long a[dim][dim],n,m,coloana[dim],rand[dim],suma;
FILE *f,*g;
//-------------------
void cit()
{
long long i,j,sum1;
f=fopen("flip.in","r");
fscanf(f,"%d",&n);
fscanf(f,"%d",&m);
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
fscanf(f,"%d",&a[i][j]);
rand[i]=rand[i]+a[i][j];
coloana[j]=coloana[j]+a[i][j];
}
}
}
//-------------------
void negativ()
{
long long i,min1,min2,poz1,poz2,stop=1;
while (stop==1)
{
min1=0;
for (i=0;i<n;i++)
{
if (rand[i]<min1)
{
min1=rand[i];
poz1=i;
}
}
min2=0;
for (i=0;i<m;i++)
{
if (coloana[i]<min2)
{
min2=coloana[i];
poz2=i;
}
}
if ((min1<min2)&&((min1<0)||(min2<0)))
{
rand[poz1]=rand[i]*-1;
for (i=0;i<m;i++)
{
a[poz1][i]=a[poz1][i]*-1;
coloana[i]=coloana[i]+(2*a[poz1][i]);
}
}
else if ((min2<min1)&&((min1<0)||(min2<0)))
{
coloana[poz2]=coloana[i]*-1;
for (i=0;i<n;i++)
{
a[i][poz2]=a[i][poz2]*-1;
rand[i]=rand[i]+(2*a[i][poz2]);
}
}
else
stop=0;
}
}
//-------------------
void sum()
{
long long i,j;
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
suma=suma+a[i][j];
}
}
}
//-------------------
void tip()
{
g=fopen("flip.out","w");
fprintf(g,"%d",suma);
fclose(g);
}
//-------------------
int main()
{
cit();
negativ();
sum();
tip();
return 0;
}