Cod sursa(job #1097687)

Utilizator strikerXBLucian Rus strikerXB Data 3 februarie 2014 20:23:49
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.73 kb
#include <fstream>
using namespace std;

ifstream is("flip.in");
ofstream os("flip.out");

void Citire(int a[100][100], int& m, int& n);
void Interschimbare(int a[100][100], int n, int m);
void Rez(int a[100][100], int m, int n, int& Sum);

int main()
{
    int m, n, a[100][100];
    int Sum = 0;

    Citire(a, m, n);
    Interschimbare(a, n, m);
    Rez(a, m, n, Sum);

    os << Sum;

    is.close();
    os.close();
    return 0;
}
void Citire(int a[100][100], int& m, int& n)
{
    is >> n >> m;
    for(int i = 0; i < n; ++i)
        for(int j = 0; j < m; ++j)
            is >> a[i][j];
}

void Interschimbare(int a[100][100], int n, int m)
{
    int suml, sumc, suml1, sumc1, aux;
    for(int j = 0; j < m; ++j)
    {
        sumc = 0, sumc1 = 0;
        aux = 0;
        while(aux < n)
        {
            sumc = sumc + a[aux][j];
            sumc1 = sumc1 + (a[aux][j] * (-1));
            aux++;
        }
        if(sumc < sumc1)
        {
            aux = 0;
            while(aux < n)
            {
                a[aux][j] = a[aux][j] * (-1);
                aux++;
            }
        }
    }

    for(int i = 0; i < n; ++i)
    {
        suml = 0, suml1 = 0;
        aux = 0;
        for(int j = 0; j < m; ++j)
        {
            suml = suml + a[i][j];
            suml1 = suml1 + (a[i][j] * (-1));
        }
        if(suml < suml1)
        {
            aux = 0;
            while(aux < m)
            {
                a[i][aux] = a[i][aux] * (-1);
                aux++;
            }
        }
    }
}

void Rez(int a[100][100], int m, int n, int& Sum)
{

    for(int i = 0; i < n; ++i)
        for(int j = 0; j < m; ++j)
            Sum += a[i][j];
}