Pagini recente » Cod sursa (job #1670250) | Cod sursa (job #1417556) | Cod sursa (job #1779240) | Cod sursa (job #1779426) | Cod sursa (job #1200558)
#include <fstream>
using namespace std;
int min(int a, int b)
{
if (a <= b)
return a;
return b;
}
int joculFlip(int n, int m, int matrix[16][16])
{
int i, j, k, suma = 0, aux;
for (k = 0; k < min(n, m); k ++)
{
aux = 0;
for (j = 0; j < m; j ++)
aux += matrix[k][j];
//daca suma liniei este mai mica ca 0, atunci trebuie sa fac switch
if (aux < 0)
for (j = 0; j < m; j ++)
matrix[k][j] = -matrix[k][j];
aux = 0;
for (i = 0; i < n; i ++)
aux += matrix[i][k];
//daca suma coloanei este mai mica ca 0, atunci trebuie sa fac switch
if (aux < 0)
for (i = 0; i < n; i ++)
matrix[i][k] = -matrix[i][k];
}
if (n <= m)
for (j = n; j < m; j ++)
{
aux = 0;
for (i = 0; i < n; i ++)
aux += matrix[i][j];
//daca suma coloanei este mai mica ca 0, atunci trebuie sa fac switch
if (aux < 0)
for (i = 0; i < n; i ++)
matrix[i][j] = -matrix[i][j];
}
else
for (i = m; i < n; i ++)
{
aux = 0;
for (j = 0; j < m; j ++)
aux += matrix[i][j];
//daca suma liniei este mai mica ca 0, atunci trebuie sa fac switch
if (aux < 0)
for (j = 0; j < m; j ++)
matrix[i][j] = -matrix[i][j];
}
//calculez suma elementelor matricii dupa modificari
for (i = 0; i < n; i ++)
for (j = 0; j < m; j ++)
suma += matrix[i][j];
return suma;
}
int main(int argc, char** argv)
{
int n, m, matrix[16][16];
ifstream in("flip.in");
ofstream out("flip.out");
in >> n;
in >> m;
for (int i = 0; i < n; i ++)
for (int j = 0; j < m; j ++)
in >> matrix[i][j];
out << joculFlip(n, m, matrix);
in.close();
out.close();
return 0;
}