Cod sursa(job #214117)

Utilizator darrenRares Buhai darren Data 12 octombrie 2008 20:13:26
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<fstream.h>
#include<math.h>

void con();
void afis();
long a[16][16],m,n,f=0;

int main()
{
	ifstream fin("flip.in");
	fin>>n>>m;
	for (int i=0;i<n;i++)
		for (int j=0;j<m;j++)
		fin>>a[i][j];
	con();
	fin.close();
	return 0;
}

void con()
{
	int ok=1;
	long sn=0,sp=0,j=0,i=0;
	while (ok==1)
	{
	ok=0;
	for (i=0;i<n;i++)
	{
		sn=0;
		sp=0;

		for (j=0;j<m;j++)
		{
		if (a[i][j]<=0)
		sn=sn+abs(a[i][j]);
		else
		sp=sp+a[i][j];
		}
		if (sn>=sp)
		{
		for (j=0;j<m;j++)
		a[i][j]=a[i][j]*-1;
		ok=1;
		f++;
		}
	}
	if (ok==0)
	for (j=0;j<m;j++)
	{
		sn=0;
		sp=0;

		for (i=0;i<n;i++)
		{
		if (a[i][j]<0)
		sn=sn+abs(a[i][j]) ;
		else
		sp=sp+a[i][j];
		}
		if (sn>=sp)
		{
		for (i=0;i<n;i++)
		a[i][j]=a[i][j]*-1;
		ok=1;
		f++;
		}
	}
	}
	afis();
}

void afis()
{
	ofstream fout("flip.out");
	fout<<f;
	for (int i=0;i<n;i++)
	{
		fout<<'\n';
		for (int j=0;j<m;j++)
		fout<<a[i][j]<<' ';
	}
	fout.close();
}