Pagini recente » Cod sursa (job #2243148) | Cod sursa (job #2749386) | Cod sursa (job #310881) | Cod sursa (job #910274) | Cod sursa (job #458691)
Cod sursa(job #458691)
#include <cstdio>
void doIt(int what[][17], int &n, int &m, bool continua)
{
if(!continua)
return;
int sumaPos, sumaNeg;
bool facutMod = false;
for(int k = 0; k < 2; k++)
{
sumaPos = 0; sumaNeg = 0;
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
if(what[i][j] > 0)
sumaPos += what[i][j];
else
sumaNeg -= what[i][j];
if(sumaPos < sumaNeg)
{
for(int j = 0; j < n; j++)
what[i][j] *= -1;
facutMod = true;
}
}
n = m^n;
m = m^n;
n = m^n;
}
doIt(what, n, m, facutMod);
}
int main()
{
int tabla[17][17], n, m, suma; // n - linii, m - coloane
FILE *input = fopen("flip.in", "r");
FILE *output = fopen("flip.out", "w");
fscanf(input, "%d%d", &n,&m);
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
fscanf(input, "%d", &tabla[i][j]);
doIt(tabla, n, m, true);
suma = 0;
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
suma += tabla[i][j];
/*for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
printf("%d ", tabla[i][j]);
printf("\n");
}
getchar();*/
fprintf(output, "%d", suma);
return 0;
}