Cod sursa(job #159075)

Utilizator robigiirimias robert robigi Data 13 martie 2008 22:39:49
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.51 kb

#include <fstream>
using namespace std;

ifstream f ("flip.in");
ofstream g ("flip.out");

long v[1000][16], n, m, sl[1000], sc[16];

void read()
{    f >> n;
     f >> m;
     for (int i=0 ; i<n; i++)
         for (int j=0; j<m; j++)
            f >> v[i][j];
}

void change()
{    int s=0, k=1;
     for (int i=0; i<n; i++)
         for (int j=0; j<m; j++)
         {   sl[i]=sl[i]+v[i][j];
             sc[j]=sc[j]+v[i][j];
         }
     while (k!=0)
     {
           k=0;
           for (int i=0; i<n; i++)
         for (int j=0; j<m; j++)
         {   sl[i]=0;
             sc[j]=0;
         }
           for (int i=0; i<n; i++)
               for (int j=0; j<m; j++)
                   sc[j]=sc[j]+v[i][j];
           for (int j=0; j<m; j++)
               while (sc[j]<0)
               {     for (int i=0; i<n; i++)
                          v[i][j]*=-1;
                     sc[j]*=-1;
                     k++;
               }
           for (int i=0; i<n; i++)
               for (int j=0; j<m; j++)
                    sl[i]=sl[i]+v[i][j];
           for (int i=0; i<n; i++)
               while (sl[i]<0)
               {     for (int j=0; j<m; j++)
                        v[i][j]*=-1;
                     sl[i]*=-1;
                     k++;
               }
     }
     for (int i=0; i<n; i++)
         for (int j=0; j<m; j++)
             s=s+v[i][j];
     g << s;
}

int main()
{    read();
     change();
     f.close();
     g.close();
     return 0;
}