Cod sursa(job #2258744)

Utilizator marinescuMarinescu marinescu Data 11 octombrie 2018 21:48:31
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
#include<fstream>
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m, v[30][30], x[30][30];
void sumLine()
{
	int i, j;
	int sPoz, sNeg;
	for (i = 1; i <= n; i++)
	{
		sPoz = sNeg = 0;
		for (j = 1; j <= m; j++)
		{
			sPoz += v[i][j];
			sNeg = sNeg + (v[i][j] * (-1));
		}
		if (sNeg > sPoz)
		{
			for (j = 1; j <= m; j++) x[i][j] = -1;
		}
	}
}
void sumColoana()
{
	int i, j;
	int sPoz, sNeg;
	for (i = 1; i <= m; i++)
	{
		sPoz = sNeg = 0;
		for (j = 1; j <= n; j++)
		{
			sPoz += v[j][i];
			sNeg = sNeg + (v[j][i] * (-1));
		}
		if (sNeg > sPoz)
		{
			for (j = 1; j <= n; j++) x[j][i] = -1;
		}
	}
}
int sumaMatrice()
{
	int i, j, sum = 0;
	for (i = 1; i <= n; i++)
		for (j = 1; j <= m; j++)
			sum += (v[i][j] * x[i][j]);
	return sum;
}
void init()
{
    int i,j;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        x[i][j]=1;
}
int main()
{
	fin >> n >> m;
	int i, j;
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= m; j++)
		{
			x[i][j] = 1;
			fin >> v[i][j];
		}
	}
 int test1,  test2;

	sumColoana();
	sumLine();
	test1= sumaMatrice();
	init();
	sumLine();
	sumColoana();
	test2=sumaMatrice();
	fout<<max(test1,test2);
	return 0;
}