Pagini recente » Cod sursa (job #1751313) | Cod sursa (job #1222251) | Cod sursa (job #773519) | Cod sursa (job #169101) | Cod sursa (job #2553909)
#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];
bool ok = 1;
while(ok)
{ok = 0;
for(i = 1; i <= n; i++)
if(!sumalinie(i, m, a))
{fliplinie(i);
//g << "flip la linia " << i << endl;
ok = 1;
}
for(j = 1; j <= m; j++)
if(!sumacoloana(j, n, a))
{flipcoloana(j);
//g << "flip la coloana " << j << endl;
ok = 1;
}
}
g << sumamatrice(n, m, a);
return 0;
}