Cod sursa(job #523751)

Utilizator puya.tudorPuia Tudor puya.tudor Data 19 ianuarie 2011 09:19:31
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<iostream.h>
#include<fstream.h>


long x[16][16];
int n,m;

int verif(int,int);
void flip(int,int);


int main()
{

	int i,j;
	long s=0;
	ifstream In("flip.in");
	In>>n>>m;
	for(i=0;i<n;i++)
	   for(j=0;j<m;j++)
	      In>>x[i][j];
	In.close();

	for(int b=1;b<=2;b++)
	{

	for(i=0;i<n;i++)
	   if( verif(i,20) ) flip(i,20);

	for(j=0;j<m;j++)
	   if( verif(20,j) ) flip(20,j);

	}

	for(i=0;i<n;i++)
	   for(j=0;j<m;j++)
	      s+=x[i][j];

	ofstream Out("flip.out");
	Out<<s;
	Out.close();

	return 0;
}

int verif(int c,int l)
{
	int cn=0,cp=0,k;

	if(c<20)
	{
		for(k=0;k<m;k++)
		   if(x[c][k]<0) cn+=x[c][k];
		   else cp+=x[c][k];
	}
	else
	{
		for(k=0;k<n;k++)
		   if(x[k][l]<0) cn+=x[k][l];
		   else cp+=x[k][l];
	}

	if(cn+cp<0) return 1;
	return 0;

}

void flip(int c,int l)
{
	int k;

	if(c<20)
	  for(k=0;k<m;k++)
	     x[c][k]=-x[c][k];
	else
	  for(k=0;k<n;k++)
	     x[k][l]=-x[k][l];

}