Cod sursa(job #244663)

Utilizator QuantumEduard Lataretu Quantum Data 15 ianuarie 2009 18:52:25
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
using namespace std;

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

void schimba_linie(int i) {
	for(int k=0;k<m;k++) a[i][k]=a[i][k]*(-1);
}
void schimba_coloana(int j) {
	for(int k=0;k<n;k++) a[k][j]=a[k][j]*(-1);
}

int main () {
	fstream input("flip.in",ios::in);
	input>>n>>m;
	int i,j;
	for (i=0;i<n;i++)
		for (j=0;j<m;j++) 
			input>>a[i][j];
	input.close();
	int s1,s2;
	fstream output("flip.out",ios::out);
	int schimbare=1;
	while (schimbare) {
		schimbare=0;
	//verificare linii
	for (i=0;i<n;i++){
		s1=0,s2=0;
		for (j=0;j<m;j++) {
			if(a[i][j]<0) s1+=a[i][j]; else s2+=a[i][j]; 
		}
		if(((-1)*s2)>s1) {output<<"schimb linia "<<i<<"\n";schimba_linie(i); schimbare=1;}
	} 
	//verifica coloane
	for (j=0;j<m;j++) {
		s1=0;s2=0;
		for (i=0;i<n;i++) {
			if(a[i][j]<0) s1+=a[i][j]; else s2+=a[i][j];
		}
		if(((-1)*s2)>s1) {output<<"schimb coloana "<<j<<"\n";schimba_coloana(j);schimbare=1;}
	}
	}
	int s=0;
	for(i=0;i<n;i++) for(j=0;j<m;j++) s+=a[i][j];
	output<<s;
	output.close();
	return 0;
}