Cod sursa(job #2354235)

Utilizator TomaAlimosToma AlimoS TomaAlimos Data 25 februarie 2019 01:23:49
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.66 kb
#include<iostream>
#include<fstream>
using namespace std;

fstream fin("flip.in",ios::in),
        fout("flip.out",ios::out);

int a[17][17];

int sum_col(int col, int nrow)
{
    int i,s=0;
    for(i=1;i<=nrow;i++)
    {
          s+=a[i][col];
    }
    return s;
}
int sum_row(int row, int ncol)
{
    int j,s=0;
    for(j=1;j<=ncol;j++)
    {
          s+=a[row][j];
    }
    return s;
}

int find_col(int nr, int nc)
{
    int i,j,s,sc=sum_col(1,nr),C=1;
    for(i=2;i<=nc;i++)
    {
        s=sum_col(i,nr);
        if(s<sc){sc=s;C=i;}

    }
    return C;
}

int find_row(int nr, int nc)
{
    int i,j,s,sr=sum_row(1,nc),R=1;
    for(i=2;i<=nr;i++)
    {
        s=sum_row(i,nr);
        if(s<sr)
        {
            sr=s;
            R=i;
        }
    }
    return R;
}
void com_row(int row, int ncol)
{
    int j;
    for(j=1;j<=ncol;j++)
        a[row][j]=-a[row][j];
}

void com_col(int col, int nrow)
{
    int i;
    for(i=1;i<=nrow;i++)
        a[i][col]=-a[i][col];
}

void read(int nr, int nc)
{
    int i,j;
    for(i=1;i<=nr;i++)
        for(j=1;j<=nc;j++)
            fin>>a[i][j];
}

void write(int nr, int nc)
{
    int i,j;
    for(i=1;i<=nr;i++)
    {
        for(j=1;j<=nc;j++)
            fout<<a[i][j]<<' ';
        fout<<endl;

    }
}

int sum(int nr, int nc)
{
    int i,j,s=0;
    for(i=1;i<=nr;i++)
        for(j=1;j<=nc;j++)
            s+=a[i][j];
    return s;
}

int main()
{
    int N,M;
    fin>>N>>M;
    read(N,M);
    com_col(find_col(N,M),N);
    com_row(find_row(N,M),M);
    fout<<sum(N,M);
    fin.close();
    fout.close();
    return 0;
}