Cod sursa(job #1671414)

Utilizator daniel00ooHerkel Daniel daniel00oo Data 1 aprilie 2016 17:39:35
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.7 kb
#include <iostream>
#include <fstream>

using namespace std;



void make_negative_col(long a[][100], long n, long col)
{
    long i;

    for (i = 0; i < n; i++)
    {
        a[i][col] *= -1;
    }
}

void make_negative_lin(long a[][100], long m, long lin)
{
    long j;

    for (j = 0; j < m; j++)
    {
        a[lin][j] *= -1;
    }
}

void verify_sum_col(long a[][100], long n, long col)
{
    long i;

    long sum_normal = 0, sum_negative = 0;

    for (i = 0; i < n; i++)
    {
        sum_normal += a[i][col];
        sum_negative -= a[i][col];
    }
    if (sum_negative > sum_normal)
        make_negative_col(a, n, col);
}

void verify_sum_lin(long a[][100], long m, long lin)
{
    long j;

    long sum_normal = 0, sum_negative = 0;

    for (j = 0; j < m; j++)
    {
        sum_normal += a[lin][j];
        sum_negative -= a[lin][j];
    }
    if (sum_negative > sum_normal)
        make_negative_lin(a, m, lin);
}

void verify_matrix(long a[][100], long n, long m)
{
    long i, j;

    for (i = 0; i < n; i++)
    {
        verify_sum_lin(a, m, i);
    }

    for (j = 0; j < m; j++)
    {
        verify_sum_col(a, n, j);
    }
}

int main()
{
    long a[100][100];
    long n,m;

    long i,j;
    long sum = 0;

    ifstream f("flip.in");
    ofstream g("flip.out");

    f >> n >> m;

    //citeste(a, n, m, f);

    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            f >> a[i][j];

    verify_matrix(a, n, m);
    //tipareste_sum(a, n, m, g);

    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            sum += a[i][j];

    g << sum;

    f.close();
    g.close();

    return 0;
}