Cod sursa(job #52520)

Utilizator cristian_alex_81cristian alexandru cristian_alex_81 Data 19 aprilie 2007 09:50:46
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <stdio.h>
#define dim 5

int a[dim][dim];
long long coloana[dim],rand[dim],suma;
int n,m;

FILE *f,*g;
//-------------------
void cit()
{
int i,j;
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 int min1,min2;
int i,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()
{
int 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;
}