Cod sursa(job #229788)

Utilizator IsTeeSzasz Istvan IsTee Data 11 decembrie 2008 19:35:43
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream.h>
#include<math.h>

int main(void) {
	int n, m, i, j;   long a[20][20], b;	 double s=0;
	ifstream f("flip.in");
	ofstream g("flip.out");
	f>>n; f>>m;
	for(i=0; i<n; i++)  	{
		a[i][m]=0; a[i][m+1]=0; }
	for(j=0; j<=m; j++)  	{
		a[n][j]=0; a[n+1][j]=0; }

	for(i=0; i<n; i++)
		for(j=0; j<m; j++) 			{
			f>>a[i][j];
			if(a[i][j]>=0)            {
				a[i][m]+=a[i][j];
				a[n][j]+=a[i][j]; }
			else                        {
				a[i][m+1]+=a[i][j];
				a[n+1][j]+=a[i][j]; }   }
	for(int x=1; x<=2; x++) {
	for(i=0; i<n; i++)
		if(a[i][m]<(-(a[i][m+1])))            	{
			b=a[i][m];
			a[i][m]=-a[i][m+1];
			a[i][m+1]=-b;
			for(j=0; j<m; j++)        {
				a[n][j]-=a[i][j];
				a[n+1][j]-=a[i][j];
				a[i][j]=-a[i][j]; }     }

	for(j=0; j<m; j++)
		if(a[n][j]<(-(a[n+1][j])))            	{
			b=a[n][j];
			a[n][j]=-a[n+1][j];
			a[n+1][j]=-b;
			for(i=0; i<n; i++)        {
				a[i][m]-=a[i][j];
				a[i][m+1]-=a[i][j];
				a[i][j]=-a[i][j]; }     }     }

	for(i=0; i<n; i++)
	       s=s+a[i][m]+a[i][m+1];
	g<<s;
	return 0;		}