Cod sursa(job #299819)

Utilizator MKLOLDragos Ristache MKLOL Data 7 aprilie 2009 00:29:19
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include<stdio.h>
int v[20][20],n,m;
int ox(int k)
{int z=0;
     for(int i=1;i<=m;i++)
     z=z+v[k][i];
     if(z<0)
{for(int i=1;i<=m;i++)
    v[k][i]=-v[k][i];
 return -z;}
 return 0;   
}
int oy(int k)
{int z=0;
     for(int i=1;i<=n;i++)
     z=z+v[i][k];
     if(z<0)
     {for(int i=1;i<=n;i++)
     v[i][k]=-v[i][k];
     return -z;
     }return 0;}
int main()
{    int done=0,q=0,d=1,wako=0,b1,b,y,y1;
     freopen("flip.in","r",stdin);
     freopen("flip.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    for(int i2=1;i2<=m;i2++)
    scanf("%d",&v[i][i2]);
    while(done==0)
         {done=1;
         if(d%2==1)
         {b1=0;
         b=0;}
         else
         {
                  y1=0;
                  y=0;
         }
         if(wako==0||wako==1)
         for(int i=1;i<=n;i++)
                 if(d%2==0)
                           b=b+ox(i);
                 else
                           b1=b1+ox(i);
         if(wako==0||wako==2)
         for(int i=1;i<=m;i++)
                         if(d%2==0)
                         y=y+oy(i);
         else
                         y1=y1+oy(i);
              if(b!=0||b1!=0)
         done=0;
                if(b1!=0&&b1==b&&y1==y&&y1!=0)
                {
                 if(b1>y1)
                 wako=1;
                 else
                 wako=2;
                }
         }
for(int i=1;i<=n;i++)
for(int i2=1;i2<=m;i2++)
    q=q+v[i][i2];
    
    printf("%d",q);
}