Cod sursa(job #875115)

Utilizator adrian111111Popescu Bogdan adrian111111 Data 9 februarie 2013 18:42:36
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <iostream>
#include <cstdio>
using namespace std;
 
typedef int sir[17][17];
sir x;

int main() {

	freopen("flip.in", "r", stdin);
    freopen("flip.out", "w", stdout);

    int N,M,i,j,s;
	int SLpoz, SLneg, SCpoz, SCneg;
    cin>>N;
    cin>>M;
	int nr=0;

	//conditie matrice
	if(M>=16 || N>=16 || M<=1 || N<=1)
		return 0;

	SLpoz=0;
	SLneg=0;
	SCpoz=0;
	SCneg=0;
	s=0;

	//introducem elementele
	for(i=1; i<=N; i++)
		for(j=1; j<=M; j++)
			cin>>x[i][j];

	do{
	//modificam linia
	for(j=1; j<=M; j++)
	{
		for(i=1; i<=N; i++)
		{
			if(x[i][j]>=0)
				SCpoz=SCpoz+x[i][j];
			else
				SCneg=((x[i][j])*(-1)+SCneg);
		}

		if(SCneg>SCpoz)
			for(i=1; i<=N; i++)
				x[i][j]=x[i][j]*(-1);

		SCpoz=0;
		SCneg=0;
	}

	//modificam coloana
	for(i=1; i<=N; i++)
	{
		for(j=1; j<=M; j++)
		{
			if(x[i][j]>=0)
				SLpoz=SLpoz+x[i][j];
			else
				SLneg=((x[i][j])*(-1)+SLneg);;
		}

		if(SLneg>SLpoz)
			for(j=1; j<=M; j++)
				x[i][j]=x[i][j]*(-1);

		SLpoz=0;
		SLneg=0;	
	}
	nr++;
	}while(nr==6);

	//calculam suma
	for(i=1; i<=N; i++)
		for(j=1; j<=M; j++)
				s=s+x[i][j];	
	cout<<s;
return 0;
}