Cod sursa(job #486817)

Utilizator deeyameOsan Andreea Maria deeyame Data 22 septembrie 2010 20:23:57
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream>
using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");
#define INF 99999
void Read();
int a[16][16], b[16][16], c[16];
int S, nr, max;
int m, n, i, j, k;

int main()
{
	Read();
	for( i = 0; i < n; ++i )
		for( j = 0; j < m; ++j )
			a[i][j] = b[i][j];
		int x = 0, y = m*n;
		while( x < y )
		{
			nr = 0;
			for( j = 0; j < m; ++j )
			{
				if( c[j] == 1 )
				{
					for( i = 0; i < n; ++i )
						b[i][j] = -a[i][j];
				}
				else
					for( i = 0; i < n; ++i )
						b[i][j] = a[i][j];
			}
			for( i = 0; i < n; ++i )
			{
				S = 0;
				for( j = 0; j < m; ++j )
					S += b[i][j];
				if( S < 0 )
					S = S * (-1);
				nr += S;
			}
			if( nr > max )
				max = nr;
			for( k = m - 1; k > 0; --k )
			{
				if( c[k] == 1 )
				{
					c[k] = 0;
				}
				else
				{
					c[k] = 1;
					break;
				}
			}
			++x;
		}
		fout << max << '\n';
		fout.close();
	return 0;
	
}

void Read()
{
	fin >> n >> m;
	for( i = 0; i < n; ++i )
		for( j = 0; j < m; ++j )
			fin >> a[i][j];
		fin.close();
}