Cod sursa(job #915099)

Utilizator dragos92Abagiu Dragos dragos92 Data 14 martie 2013 18:44:12
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <iostream>
using namespace std;

int main(){
	ifstream fisier("flip.in");
	ofstream fisier2("flip.out");
	int n=0,m=0,i,j,poz;
	bool ok;
	fisier >> n;
	fisier >> m;

	int mat[16][16];
	int rez_orizontala[16];
	int rez_verticala[16];

	for(i=0;i<16;i++)
		for(j=0;j<16;j++)
			if((i>=n)||(j>=m))
				mat[i][j]=0;
			else
				fisier >> mat[i][j];
	do{
	for(i=0;i<16;i++){
		rez_verticala[i]=0;
		rez_orizontala[i]=0;
		for(j=0;j<16;j++){
			rez_verticala[i]+=mat[j][i];
			rez_orizontala[i]+=mat[i][j];
		}
	}
	ok=true;
	for(i=0;i<16;i++)
		if((rez_verticala[i]<0)||(rez_orizontala[i]<0)){
			poz=i;
			ok=false;
			break;
		}
		if(!ok){
			if(rez_verticala[poz]<0)
				for(j=0;j<16;j++)
					mat[j][poz]*=-1;
			else
				if(rez_orizontala[poz]<0)
				for(j=0;j<16;j++)
					mat[poz][j]*=-1;
		}
	}while(!ok);

	poz=0;
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			poz+=mat[i][j];

	fisier2 << poz;
	fisier.close();
	fisier2.close();
	return 0;
}