Cod sursa(job #196225)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 24 iunie 2008 21:13:49
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
# include <stdio.h>   
int i,j,n,m,k,b[20][20],a[20],smax=-32000,s1,s2,c[20][20],s;   
void schimba ()   
{   
for (i=1;i<=n;i++)   
if (a[i]==2)   
for (j=1;j<=m;j++)   
c[i][j]=c[i][j]*-1;   
}   
void schimba2 (int j)   
{   
for (i=1;i<=n;i++)   
c[i][j]=c[i][j]*-1;   
}   
void xyz (int i)   
{   
for (i=1;i<=n;i++)   
for (j=1;j<=m;j++)   
c[i][j]=b[i][j];   
schimba ();   
for (j=1;j<=m;j++)   
{   
s1=0;   
s2=0;   
for (i=1;i<=n;i++)   
{   
s1=s1+c[i][j];

if (s1<0)
schimba2 (j);
}
}


s=0;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
s=s+c[i][j];
if (smax<s)
smax=s;
}
void back (int i)
{
int val;
for (val=1;val<=2;val++)
{
a[i]=val;

if (i==n+1)
xyz (i);
else
back (i+1);
}
}
int main ()
{
freopen ("flip.in","r",stdin);
freopen ("flip.out","w",stdout);
scanf ("%i",&n);
scanf ("%i",&m);
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
scanf ("%i",&b[j][i]);
back (1);
printf ("%i",smax);
return 0;
}