Cod sursa(job #1125170)

Utilizator dzzankGeorge Roman dzzank Data 26 februarie 2014 16:09:19
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.48 kb
#include <fstream>

using namespace std;

ifstream in("flip.in",ios::in);
ofstream out("flip.out",ios::out);

inline void comutare_linie(int array[100][16],int n,int m);
inline void comutare_coloana(int array[100][16],int n,int m);

int main()
{
    int n,m,array[100][16],suma=0,suma2=0;

    in>>n;
    in>>m;

    for(int i=0;i<n;++i)
    {
        for(int j=0;j<m;++j)
        {
            in>>array[i][j];
            suma=suma+array[i][j];
        }
    }

    for(int i=0;i<n;++i)
    {
        comutare_linie(array,n,m);
        for(int j=0;j<n;++j)
        {
            for(int k=0;k<m;++k)
                suma2=suma2+array[j][k];
        }

        if(suma2>suma)
            suma=suma2;
        else
            comutare_linie(array,n,m);

        suma2=0;
    }

    for(int i=0;i<m;++i)
    {
        comutare_coloana(array,n,m);
        for(int j=0;j<n;++j)
        {
            for(int k=0;k<m;++k)
                suma2=suma2+array[j][k];
        }

        if(suma2>suma)
            suma=suma2;
        else
            comutare_coloana(array,n,m);

        suma2=0;
    }

    out<<suma;

    in.close();
    out.close();

    return 0;
}

void comutare_linie(int array[100][16],int n,int m)
{
    for(int i=0;i<m;++i)
    {
        array[n][i]=array[n][i]*(-1);
    }
}

void comutare_coloana(int array[100][16],int n,int m)
{
    for(int i=0;i<n;++i)
    {
        array[i][m]=array[i][m]*(-1);
    }
}