Cod sursa(job #488971)

Utilizator printesoiDodon Victor printesoi Data 30 septembrie 2010 17:29:43
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include<iostream>
#include<fstream>
using namespace std;

long sum(int a[16][16],int N,int M){
	long s=0;
	int i,j;
	for (i=0;i<N;i++)
		for (j=0;j<M;j++)
			s+=a[i][j];
	return s;
}

long sum_linie(int a[16][16],int N,int M,int linie){
	long s1=0,j;
	for (j=0;j<M;j++)
		s1+=a[linie][j];
	return s1;
}

long sum_coloana(int a[16][16],int N,int M,int coloana){
	long s2=0,i;
	for (i=0;i<N;i++)
		s2+=a[i][coloana];
	return s2;
}

void comuta_linie(int a[16][16],int N,int M,int linie){
	int j;
	for (j=0;j<M;j++)
		a[linie][j]=-a[linie][j];
}

void comuta_coloana(int a[16][16],int N,int M,int coloana){
	int i;
	for (i=0;i<N;i++)
		a[i][coloana]=-a[i][coloana];
}

int main(){
	int linie,coloana,i,j,N,M;
	int a[16][16];
	ifstream f("flip.in");
	ofstream g("flip.out");
	f>>N>>M;
	for (i=0;i<N;i++)
		for (j=0;j<M;j++)
			f>>a[i][j];
	
	//verificam liniile
	for (linie=0;linie<N;linie++)
		if (sum_linie(a,N,M,linie)<0)
			comuta_linie(a,N,M,linie);
	
	//verificam coloanele
	for (coloana=0;coloana<M;coloana++)
		if (sum_coloana(a,N,M,coloana)<0)
			comuta_coloana(a,N,M,coloana);
	
	cout<<endl;
	cout<<sum(a,N,M);
	return 0;
}