Cod sursa(job #1452)

Utilizator DragoshZZabava Dragos DragoshZ Data 13 decembrie 2006 18:42:16
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<fstream.h>
#include<iostream.h>
fstream f("flip.in",ios::in);
fstream g("flip.out",ios::out);
int n,m,a[20][20],l[20],c[20];

void citire()
{ f>>n>>m;
 int i,j,sl=0,sc=0;
 for(i=1;i<=n;i++)
	{for(j=1;j<=m;j++)
		{f>>a[i][j]; sl+=a[i][j];}
	 l[i]=sl; sl=0;
	}
 for(j=1;j<=m;j++)
	{ for(i=1;i<=n;i++)
		sc+=a[i][j];
	  c[j]=sc;sc=0;
	}

}

void suma()
{ int i,j,sl=0,sc=0;
  for(i=1;i<=n;i++)
	{ for(j=1;j<=m;j++)
		sl+=a[i][j];
	l[i]=sl; sl=0;
	}
   for(j=1;j<=m;j++)
	{ for(i=1;i<=n;i++)
		sc+=a[i][j];
	c[j]=sc; sc=0;
	}
}

int main()
{int ok=0,da,i,j,k;
citire();
while(!ok)
{ i=1;j=1;da=0;
	while(i<n)
		{ if (l[i]<0)
			{ for(k=1;k<=m;k++)
				a[i][k]*=-1;
			 da=1; break;
			}
			else
			i++;
		}
  if(da)
	suma();
  j=1;
       while(j<m)
		{ if(c[j]<0)
			{for(k=1;k<=n;k++)
				a[k][j]*=-1;
			     break;   }
			else
			j++;
		}
       if(i==n&&j==m)
		ok=1;
       if(!ok)
	  suma();
}
long s=0;
for(i=1;i<=n;i++)
	s+=l[i];
g<<s;
f.close();
g.close();
return 0;
}