Cod sursa(job #283641)

Utilizator devianceAnusca Andrei deviance Data 19 martie 2009 14:41:16
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream.h>
int main()
{int n,m,a[100][100],i,j,s=0,s1=0,s2=0,ok,u,p=0;
ifstream f("flip.in");
ofstream g("flip.out");
f>>n>>m;
for(i=1;i<=n;i++)
   for(j=1;j<=m;j++)
   f>>a[i][j];
ok=1;
s=0;
u=0;
while(ok!=0
){
for(i=1;i<=n;i++){
s1=0;
s2=0;
 for(j=1;j<=m;j++)
 {if(a[i][j]<0) s1+=a[i][j];
   if(a[i][j]>0) s2+=a[i][j];

   s1=s1*(-1);
   if(s1>s2){ ok=1; p++;}
   else ok=0;
   if(j==m&&ok==1){for(j=1;j<=m;j++)
		      a[i][j]=a[i][j]*(-1);
		   }

		     }
   }
if(ok==0&&p>0) ok=1;
if(ok==1){
for(j=1;j<=m;j++){
s1=0;
s2=0;
   for(i=1;i<=n;i++)
{if(a[i][j]<0) s1+=a[i][j];
   if(a[i][j]>0) s2+=a[i][j];
   s1=-s1;
   if(s1>s2) ok=1;
     else ok=0;
   s1=s1*(-1);
   if(i==n&&ok==1){for(i=1;i<=n;i++)
		      a[i][j]=a[i][j]*(-1);
		   }

		     }
   }
   }
for(i=1;i<=n;i++)
   for(j=1;j<=m;j++)
   s+=a[i][j];
 if(s>u) u=s;
 else ok=0;
 p=0;
}
g<<u;
f.close();
g.close();
return 0;
}