Pagini recente » Cod sursa (job #1877890) | Cod sursa (job #1423891) | Cod sursa (job #2574556) | Cod sursa (job #1670043) | Cod sursa (job #780856)
Cod sursa(job #780856)
#include<stdio.h>
#include<stdlib.h>
int verifica_linie(int lin,int **mat,int M)
{
int i,suma_poz=0,suma_neg=0;
for(i=0;i<M;++i)
{
suma_poz+=mat[lin][i];
suma_neg+=(-1)*mat[lin][i];
}
if(suma_poz >= suma_neg)
return 0;
return 1;
}
int verifica_coloana(int col,int **mat,int N)
{
int i,suma_poz=0,suma_neg=0;
for(i=0;i<N;++i)
{
suma_poz+=mat[i][col];
suma_neg=(-1)*mat[i][col];
}
if(suma_poz>=suma_neg)
return 0;
return 1;
}
int suma_matrice(int **mat,int N,int M)
{
int i,j,S=0;
for(i=0;i<N;++i)
for(j=0;j<M;++j)
S+=mat[i][j];
return S;
}
int main()
{
FILE *f=fopen("flip.in","rt");
int i,j,N,M,**mat;
fscanf(f,"%i%i",&N,&M);
mat=(int **)malloc(N*sizeof(int *));
for(i=0;i<N;++i)
mat[i]=(int *)malloc(M*sizeof(int));
for(i=0;i<N;++i)
for(j=0;j<M;++j)
fscanf(f,"%i",&mat[i][j]);
fclose(f);
for(i=0;i<N;++i)
{
int ok=verifica_linie(i,mat,M);
if(ok == 1)
for(j=0;j<M;++j)
mat[i][j]*=-1;
}
for(j=0;j<M;++j)
{
int ok=verifica_coloana(j,mat,N);
if(ok == 1)
for(i=0;i<N;++i)
mat[i][j]*=-1;
}
FILE *g=fopen("flip.out","wt");
fprintf(g,"%i",suma_matrice(mat,N,M));
fclose(g);
return 0;
}