Pagini recente » Cod sursa (job #2542743) | Cod sursa (job #3129780) | Cod sursa (job #276546) | Cod sursa (job #1066568) | Cod sursa (job #2057985)
#include <stdio.h>
#include <stdlib.h>
int getSum(int *v,int n) {
int i;
int s=0;
for(i=0;i<n;i++) {
s+=v[i];
}
return s;
}
int getNegSum(int *v,int n) {
int i;
int s=0;
for(i=0;i<n;i++) {
s+=v[i]*(-1);
}
return s;
}
void flip(int *v,int n) {
int i;
for(i=0;i<n;i++) {
v[i]=v[i]*(-1);
}
}
int main() {
FILE *f = fopen("flip.in","rt");
int n,m,aux1,aux2,s;
fscanf(f,"%d",&n);
fscanf(f,"%d",&m);
int **a;
a=malloc(sizeof(int *)*n);
int i,j;
for(i=0;i<n;i++) {
a[i] = malloc(sizeof(int)*m);
}
for(i=0;i<n;i++) {
for(j=0;j<m;j++)
{
fscanf(f,"%d",&a[i][j]);
}
}
for(i=0;i<n;i++)
{
aux1=getSum(a[i],m);
aux2=getNegSum(a[i],m);
if(aux2>aux1) {
flip(a[i],m);
}
}
for(j=0;j<m;j++) {
aux1=0;
for(i=0;i<n;i++) {
aux1+=a[i][j];
}
aux2=0;
for(i=0;i<n;i++) {
aux2+=a[i][j]*(-1);
}
if(aux2>aux1) {
for(i=0;i<n;i++) {
a[i][j]=a[i][j]*(-1);
}
}
}
s=0;
for(i=0;i<n;i++) {
for(j=0;j<m;j++)
{
s+=a[i][j];
}
}
fclose(f);
for(i=0;i<n;i++) {
free(a[i]);
}
free(a);
f=fopen("flip.out","wt");
fprintf(f,"%d\n",s);
fclose(f);
return 0;
}