Cod sursa(job #781834)

Utilizator killerkiller11Balas Tudor killerkiller11 Data 25 august 2012 11:02:53
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<fstream>
using namespace std;
int N,M,v[21905][21905],x,updown[1500005],leftright[1500005],updown2[1500005],leftright2[1500005],misca=1;
void citire()
{
	
	ifstream fin("flip.in");
	fin>>N>>M;
	for(int i=1;i<=N;++i)
		for(int j=1;j<=M;++j)
			fin>>v[i][j];
	fin.close();
}
void magic()
{
	for(int i=1;i<=N;++i)
		for(int j=1;j<=M;++j)
			leftright[i]=leftright2[i]=updown[j]=updown2[j]=0;
	for(int i=1;i<=N;++i)
		for(int j=1;j<=M;++j)
		{
			leftright[i]+=v[i][j];
			leftright2[i]-=v[i][j];
			updown[j]+=v[i][j];
			updown2[j]-=v[i][j];
		}
	for(int i=1;i<=N;++i)
		for(int j=1;j<=M;++j)
		{
			
			misca=0;
			if(leftright2[i]>leftright[i])
			{
				v[i][j]=-1*v[i][j];
				misca++;
			}
			if(updown2[j]>updown[j])
			{
				v[i][j]=-1*v[i][j];
				misca++;
			}
		}
}

void afisare()
{
	ofstream fout("flip.out");
	for(int i=1;i<=N;i++)
		for(int j=1;j<=M;j++)
			x+=v[i][j];
	fout<<x;
	fout.close();
}	
int main()
{
	citire();
	while(misca)
		magic();
	afisare();
	return 0;
}