Cod sursa(job #1959823)

Utilizator TomaAlimosToma AlimoS TomaAlimos Data 9 aprilie 2017 22:43:51
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.83 kb
#include<iostream>
#include<fstream>
#include<iomanip>

using namespace std;

fstream fin("flip.in",ios::in),
        fout("flip.out",ios::out);
long a[1000][26];
int N,M;

void  comut_col(int l,int c)
{
    int i;
    for(i=1;i<=l;i++)
    {
        a[i][c]*=(-1);
    }
}

void comut_lin(int l, int c)
{
    int j;
    for(j=1;j<=c;j++)
    {
        a[l][j]*=(-1);
    }
}
void suma_col(int nl, int c)
{
    int i;
    long sc=0;
    for(i=1;i<=nl;i++)
    {
        sc+=a[i][c];
    }
    a[0][c]=sc;
}

int suma_lin(int l, int nc)
{
    int j;
    long sl=0;
    for(j=1;j<=nc;j++)
    {
        sl+=a[l][j];
    }
    a[l][0]=sl;
}
int suma(int l, int c)
{
    long s=0;
    int i,j;
    for(i=1;i<=l;i++)
    for(j=1;j<=c;j++)
    {
        s+=a[i][j];
    }
     return s;
}

void afis(int L,int C)
{
    int i,j;
    for(i=0;i<=L;i++)
    {

        for(j=0;j<=C;j++)
        {
            fout<<setw(5)<<right<<a[i][j]<<' ';
        }
        fout<<endl;
    }
}

int main()
{
    int N,M,i,j;

    fin>>N>>M;
    for(i=1;i<=N;i++)
    {
        for(j=1;j<=M;j++)
        {
            fin>>a[i][j];
        }
    }
    for(i=1;i<=N;i++)
    {
        suma_lin(i,M);
    }
    for(j=1;j<=M;j++)
    {
        suma_col(N,j);
    }
    afis(N,M);
    fout<<endl;
    for(i=1;i<=N;i++)
    {
        if(a[i][0]<0)
        {
            comut_lin(i,M);
            suma_lin(i,M);
            a[0][0]=suma(N,M);
        }
    }
    for(j=1;j<=M;j++)
    {
        suma_col(N,j);
    }
    afis(N,M);
    fout<<endl;
    for(j=1;j<=M;j++)
    {
        if(a[0][j]<0)
        {
            comut_col(N,j);
            suma_col(N,j);
            a[0][0]=suma(N,M);
        }
    }
    afis(N,M);
    fin.close();
    fout.close();
    return 0;
}