Cod sursa(job #582366)

Utilizator AlStarRadu Alin Cosmin AlStar Data 15 aprilie 2011 11:42:32
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#include <iostream>
using namespace std;

int a[20][20],n,m;
float s[20][20];
ifstream in("flip.in"); ofstream out("flip.out");

float sum(int,int,int [][20]);
void change_l(int,int [][20]);
void change_c(int,int [][20]);
float max();
void read();

int main()
	{
		read();
		int i,j;
		for (i=0;i<n;i++)
			for (j=0;j<m;j++)
				s[i][j]=sum(i,j,a);
		max();
		out<<max();
		return 0;
	}
	
void read()
	{
		in>>n>>m;
		for (int i=0;i<n;i++)
			for (int j=0;j<m;j++)
				in>>a[i][j];
	}

void change_l(int x, int c[][20])
	{
		for (int i=0;i<m;i++)
			c[x][i]*=-1;
	}

void change_c(int x, int c[][20])
	{
		for (int i=0;i<n;i++)
			c[i][x]*=-1;
	}

float sum(int x,int k, int a[][20])
	{
		int c[20][20],i,j;
		for (i=0;i<n;i++)
			for (j=0;j<m;j++)
				c[i][j]=a[i][j];
		float s=0;
		change_l(x,c);
		change_c(k,c);
		for (i=0;i<n;i++)
			for (j=0;j<m;j++)
				s+=c[i][j];
		return s;
	}

float max()
	{
		int i,j;
		float mx=s[0][0];
		for (i=1;i<n;i++)
			for (j=0;j<m;j++)
				if (s[i][j]>mx) mx=s[i][j];
		return mx;
	}