Cod sursa(job #532847)

Utilizator AntiqueChircu Ioana Alexandra Antique Data 12 februarie 2011 16:43:10
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<iostream>
#include<fstream>
using namespace std;
int a[100][100] ,n,m;
 int suma_totala()
{   int st=0;
	for (int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			st=st+a[i][j];
	return st;
}
int suma_coloana (int c)
{   int sc=0;
	for(int i=0;i<n;i++)
		sc=sc+a[i][c];
	return sc;
}
int suma_linie (int l)
{
	int sl=0;
	for(int j=0;j<m;j++)
		sl=sl+a[l][j];
	return sl;
}
int flip_linie (int l)
{ for(int j=0;j<m;j++)
   a[l][j]=a[l][j]*(-1);}
int flip_coloana (int c)
{ for(int i=0;i<n;i++)
   a[i][c]=a[i][c]*(-1);}
int main()
{
	
	fstream f("flip.in",ios::in);
	fstream g("flip.out",ios::out);
	f>>n;f>>m;
	
	for (int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			{f>>a[i][j];}
		
	int sumt=suma_totala();
	int i=0,j=0,sumc,suml;
	while(i<n && j<m)
	{sumc=suma_coloana(j);
	if(sumc<=0)flip_coloana(j);
	if(suma_totala()>sumt) sumt=suma_totala();
	else if(suma_totala()<sumt)flip_coloana(j);
	suml=suma_linie(i);
	if(suml<=0) flip_linie(i);
	if(suma_totala()>sumt)sumt=suma_totala();
	else if(suma_totala()<sumt)flip_linie(i);
	i++;j++;}
	g<<sumt;
		

	
		
			
}