Cod sursa(job #2254557)

Utilizator felixp123Hututuc Felix felixp123 Data 5 octombrie 2018 15:55:40
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <fstream>

using namespace std;

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

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

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

int sumaLinie(int a[][17], int m, int l)
{
    int s = 0;
    for(int i = 1; i <= m; i++)
        s = s + a[l][i];
    return s;
}

int sumaColoana(int a[][17], int n, int c)
{
    int s = 0;
    for(int i = 1; i <= n; i++)
        s = s + a[i][c];
    return s;
}

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

int main()
{
    int a[17][17], n, m;
    int p, k;
    in >> n >> m;
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j++)
            in >> a[i][j];
    for(int i = 1; i <= n; i++)
    {
        p = sumaLinie(a, m, i);
        flipLinie(a, m, i);
        if(p > sumaLinie(a, m, i))
            flipLinie(a, m, i);
    }
    for(int i = 1; i <= m; i++)
    {
        k = sumaMatrice(a, n, m);
        flipColoana(a, n, i);
        if(k > sumaMatrice(a, n, m))
            flipColoana(a, n, i);
    }
    out << sumaMatrice(a, n, m);

    return 0;
}