Cod sursa(job #2553903)

Utilizator mariuscomoMarius Iulian Comorasu mariuscomo Data 22 februarie 2020 13:05:17
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int i, j, a[17][17], n, m;
int sumamatrice(int n, int m, int a[17][17])
{int s = 0, i, j;
for(i = 1; i <= n; i++)
    for(j = 1; j <= m; j++)
        s = s + a[i][j];
return s;
}

bool sumalinie(int i, int m, int a[17][17])
{int s = 0;
for(int j = 1; j <= m; j ++)
    s = s + a[i][j];
if(s >= 0)
    return true;
else
    return false;
}

bool sumacoloana(int j, int n, int a[17][17])
{int s = 0;
for(int i = 1; i <= n; i ++)
    s = s + a[i][j];
if(s >= 0)
    return true;
else
    return false;
}

void fliplinie(int i)
{for(j = 1; j <= m; j++)
    a[i][j] *= (-1);
}

void flipcoloana(int j)
{for (i = 1; i <= n; i++)
    a[i][j] *= (-1);
}

void afisare()
{for(i = 1; i <= n; i++)
    {for(j = 1; j <= m; j++)
        g << a[i][j]<<' ';
    g << endl;
    }
}

int main()
{f >> n >> m;
for(i = 1; i <= n; i++)
    for(j = 1; j <= m; j++)
        f >> a[i][j];
for(i = 1; i <= n; i++)
    if(!sumalinie(i, m, a))
    {fliplinie(i);
    //g << "flip la linia " << i << endl;
    }

for(j = 1; j <= m; j++)
    if(!sumacoloana(j, n, a))
        {flipcoloana(j);
        //g << "flip la coloana " << j << endl;
        }
g << sumamatrice(n, m, a);
    return 0;
}