Cod sursa(job #1190249)

Utilizator eleonoracChiru Eleonora Ioana eleonorac Data 24 mai 2014 20:12:26
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.83 kb
#include <fstream>
using namespace std;

void Citire (int a[16][16],int &n,int &m)
{
    ifstream fin("Flip.in");
    fin>>n>>m;
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            fin>>a[i][j];
    fin.close();
}
void Suma_initiala_linii (int a[16][16],int n,int m)//se calculeaza suma initiala de pe fiecare linie a matricii
{
    for (int i=0; i<n; i++)
    {
        int s=0;
        for (int j=0; j<m; j++)
        {
            s+=a[i][j];
            a[i][-1]=s;//bordare
        }
    }

}
void Suma_initiala_coloane (int a[16][16],int n,int m)//se calculeaza suma initiala de pe fiecare coloana a matricii
{

    for (int j=0;j<m;j++)
    {
        int s=0;
        for (int i=0;i<n;i++)
        {
            s+=a[i][j];
            a[-1][j]=s;
        }

    }
}
void Comutare (int a[16][16],int n,int m)//se comuta convenabil elementele matricii
{
    int i,j,k;
    for (i=0; i<n; i++)
    {
        if (a[i][-1]<0)
        {
            //a[i][0]*=-1;
            for (j=0; j<m; j++)
                a[i][j]*=-1;
        }
        for (j=0; j<m; j++)
            if (a[-1][j]<0)
            {
                //a[0][j]*=-1;
                for (k=0; k<n; k++)
                    a[i][j]*=-1;
            }
    }
}//DE CE AFECTA DACA FACEAM a[0][j]*=-1?
int Suma_finala (int a[16][16],int n,int m)
{
    int i,j,s=0;
    for (i=0; i<n; i++)
        for (j=0; j<m; j++)
            s+=a[i][j];
    return s;
}
void Afisare (int a[16][16],int n,int m)
{
    int i,j;
    ofstream fout("Flip.out");
    fout<<Suma_finala(a,n,m);
    fout.close ();
}
int main ()
{
    int a[16][16],n,m;
    Citire(a,n,m);
    Suma_initiala_linii(a,n,m);
    Suma_initiala_coloane (a,n,m);
    Comutare(a,n,m);
    Suma_finala(a,n,m);
    Afisare(a,n,m);
    return 0;
}