Cod sursa(job #1127425)

Utilizator BossForYOUHale Georgian-Dorin BossForYOU Data 27 februarie 2014 12:26:35
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.62 kb
#include <iostream>
#include <fstream>

int N,M;

using namespace std;

int main()
{
    int int i,j,n=0,s=0,k=0;
    ifstream f("flip.in");
    ofstream g("flip.out");
    f>>N>>M;
    int int T[N][M];
    for (i=1;i<=N;i++)
    {
        for (j=1;j<=M;j++)
        {
            f>>T[i][j];
        }
    }
    if (N<M and N>=1 and M<=16)
    {
        for (i=1;i<=N;i++)
        {
            for (j=1;j<=M;j++)
            {
                if (T[i][j]>=0)
                {
                    n=n+T[i][j];
                }
                else
                {
                    s=s+(T[i][j]*(-1));
                }
            }
            if (s>n)
            {
                    for (j=1;j<=M;j++)
                    {
                        T[i][j]*=(-1);
                    }
            }
            n=0,s=0;
        }
        //Pass 1 end;
        for (j=1;j<=M;j++)
        {
            for (i=1;i<=N;i++)
            {
                if (T[i][j]>=0)
                {
                    n=n+T[i][j];
                }
                else
                {
                    s=s+(T[i][j]*(-1));
                }
            }
            if (s>n)
            {
                    for (i=1;i<=N;i++)
                    {
                        T[i][j]*=(-1);
                    }
            }
         n=0,s=0;
        }
    }


    if (N>M and N>=1 and M<=16)
    {
        for (j=1;j<=M;j++)
        {
            for (i=1;i<=N;i++)
            {
                if (T[i][j]>=0)
                {
                    n=n+T[i][j];
                }
                else
                {
                    s=s+(T[i][j]*(-1));
                }
            }
            if (s>n)
            {
                    for (i=1;i<=N;i++)
                    {
                        T[i][j]*=(-1);
                    }
            }
         n=0,s=0;
        }
        for (i=1;i<=N;i++)
        {
            for (j=1;j<=M;j++)
            {
                if (T[i][j]>=0)
                {
                    n=n+T[i][j];
                }
                else
                {
                    s=s+(T[i][j]*(-1));
                }
            }
            if (s>n)
            {
                    for (j=1;j<=M;j++)
                    {
                        T[i][j]*=(-1);
                    }
            }
            n=0,s=0;
        }
    }
    for (i=1;i<=N;i++)
    {
        for (j=1;j<=M;j++)
        {
            k=k+T[i][j];
        }
    }
    g<<k;
    f.close(),g.close();
    return 0;
}