Cod sursa(job #192962)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 1 iunie 2008 17:53:57
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 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)
if (i==n)
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;
}