Pagini recente » Cod sursa (job #2694040) | Cod sursa (job #3124908) | Cod sursa (job #953509) | Cod sursa (job #1209217) | Cod sursa (job #2381087)
#include <stdio.h>
#include <stdlib.h>
int suma_linie(int** a, int l, int m)
{
int suma = 0;
for(int j = 0; j < m; ++j)
{
suma += a[l][j];
}
return suma;
}
int suma_col(int** a, int c, int n)
{
int suma = 0;
for(int i = 0; i < n; ++i)
{
suma += a[i][c];
}
return suma;
}
void comuta_linie(int** a, int l, int m)
{
for(int j = 0; j < m; ++j)
{
a[l][j] *= -1;
}
}
void comuta_col(int** a, int c, int n)
{
for(int i = 0; i < n; ++i)
{
a[i][c] *= -1;
}
}
int main()
{
FILE* fin = fopen("flip.in", "r");
FILE* fout = fopen("flip.out", "w");
int n = 0, m = 0;
fscanf(fin, "%d %d", &n, &m);
int** a = malloc(n * sizeof(int*));
for(int i = 0; i < n; ++i)
{
a[i] = malloc(m * sizeof(int));
}
printf("%d %d\n", n, m);
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < m; ++j)
{
fscanf(fin, "%d", &a[i][j]);
}
}
for(int i = 0; i < n; ++i)
{
if(suma_linie(a, i, m) < 0) comuta_linie(a, i, m);
}
for(int j = 0; j < m; ++j)
{
if(suma_col(a, j, n) < 0) comuta_col(a, j, n);
}
int suma = 0;
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < m; ++j)
{
suma += a[i][j];
}
}
fprintf(fout, "%d", suma);
for(int i = 0; i < n; ++i)
{
free(a[i]);
}
free(a);
fclose(fin);
fclose(fout);
return 0;
}