Cod sursa(job #1119641)

Utilizator ovimiuOvidiu Miu ovimiu Data 24 februarie 2014 19:06:46
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");

int merita_linie(long int a[1000][16], long int m, long int i)
{
int j,sn=0,sp=0;
for(j=0;j<m;j++)
	if(a[i][j]>=0)
		sp=sp+a[i][j];
	else 
		sn=sn+abs(a[i][j]);
	
if(sp<sn)
	return 1;
else 
	return 0;
}

int merita_coloana(long int a[1000][16], long int n, long int j)
{
int i,sn=0,sp=0;
for(i=0;i<n;i++)
	if(a[i][j]>=0)
		sp=sp+a[i][j];
	else 
		sn=sn+abs(a[i][j]);

if(sp<sn)
	return 1;
else 
	return 0;
}

void afisare(long int a[1000][16],long int n,long int m)
{
int i,j;
for(i=0;i<n;i++)
	{for(j=0;j<m;j++)
		cout<<a[i][j]<<" ";
		cout<<endl;
	}
}

int main()
{
long int n,m,i,j,suma_max=0; long int a[1000][16];
f>>n>>m;
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
		f>>a[i][j];
for(i=0;i<n;i++)
	if(merita_linie(a,m,i)==1)
		for(j=0;j<m;j++)
			a[i][j]=(a[i][j])*(-1);
for(j=0;j<m;j++)
	if(merita_coloana(a,n,j)==1)
		for(i=0;i<n;i++)
			a[i][j]=a[i][j]*(-1);

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