Cod sursa(job #171854)

Utilizator blowfishmeBlowfish Ion blowfishme Data 5 aprilie 2008 12:16:32
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream.h>

long matr[17][17],matr2[17][17];
int m,n;

long suma(){
	int i,j;
	long s=0;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
			s+=matr[i][j];
	return s;
}

void flip(int lin,int col){
	int i,j;
	if(!lin)
		for(i=1;i<=n;i++) matr[i][col]*=-1;
	else if(!col) for(i=1;i<=m;i++) matr[lin][i]*=-1;
}


void citire(){
	int i,j;
	ifstream f("flip.in");
	f>>n>>m; //n nr de linii
	for(i=1;i<=n;i++) for(j=1;j<=m;j++) f>>matr[i][j];
	f.close();
}

long maxx(){
int i,j;
for(i=1;i<=n;i++)
{
	flip(i,0);
	for(j=1;j<=m;j++){
		flip(0,j);
		long s=suma();
		matr2[i][j]=s;
		//cout<<i<<", "<<j<<" = " << s<<endl;
		flip(0,j);
	}
	flip(i,0);
}
long max=matr2[1][1];
for(i=1;i<=n;i++) for(j=1;j<=m;j++)
	if(matr2[i][j]>max) max=matr2[i][j];
return max;
}




void afisare(){
int i,j;
for(i=1;i<=n;i++){ for(j=1;j<=m;j++) cout<<matr[i][j]<<" ";  cout<<endl;}
cout<<endl<<endl;
}

int main(){
citire();
ofstream g("flip.out");
g<<maxx()<<"\n";
g.close();

}