Cod sursa(job #2192151)

Utilizator Mr.IonutMuntean Ionut Mr.Ionut Data 4 aprilie 2018 20:35:00
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include <fstream>

using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");

#define dmax 17
int mat[dmax][dmax];
int slin[dmax],scol[dmax];

int s_m(int n, int m, int mat[][dmax])
{
    int S=0;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            S=S+mat[i][j];
    return S;
}

void afis_mat(int n, int m, int mat[][dmax])
{
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            fout<<mat[i][j]<<" ";
        }
        fout<<endl;
    }
    fout<<endl;
}

void afis_v(int vec[], int dv)
{
    int i;
    for(i=0;i<dv;i++)
        fout<<vec[i]<<" ";
    fout<<endl;
}

int main()
{
    int n,m,i,j;

    fin>>n>>m;

    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
        {
            fin>>mat[i][j];
            scol[j]=scol[j]+mat[i][j];
            slin[i]=slin[i]+mat[i][j];
        }
    /*fout<<"slin= "; afis_v(slin,n);
    fout<<"scol= "; afis_v(scol,m);
    fout<<endl;*/

    int S=0, Smax=0;
    //afis_mat(n,m,mat);
    for(int i=0;i<n;i++)
        if(slin[i]<0)
        {
            int k=i;
            for(j=0;j<m;j++)
                mat[k][j]=mat[k][j]*(-1);
        }
    S=s_m(n,m,mat);
    if(S>Smax) Smax=S;
    //afis_mat(n,m,mat);
    for(int j=0;j<m;j++)
        if(scol[j]<0)
        {
            int k=j;
            for(int i=0;i<n;i++)
                mat[i][k]=mat[i][k]*(-1);
        }
    S=s_m(n,m,mat);
    if(S>Smax) Smax=S;
    //afis_mat(n,m,mat);

    fout<<Smax;

    return 0;
}