Pagini recente » Cod sursa (job #3324824) | Cod sursa (job #2114130) | Cod sursa (job #731200) | Cod sursa (job #1402807) | Cod sursa (job #473618)
Cod sursa(job #473618)
#include<stdio.h>
#include<stdlib.h>
int n,m;
void col(int p,int **a)
{
int i;
for(i=0;i<n;i++)
a[i][p]*=-1;
}
void lin(int p,int **a)
{
int j;
for(j=0;j<m;j++)
a[p][j]*=-1;
}
int eval(int **a)
{
int sum=0,i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
sum+=a[i][j];
return sum;
}
int main(void)
{
FILE * fin = fopen("flip.in","r");
FILE * fout = fopen("flip.out","w");
int i,j;
int **a;
fscanf(fin,"%d %d",&n,&m);
a=(int**)malloc(sizeof(int*)*n);
for(i=0;i<n;i++)
a[i]=(int*)malloc(sizeof(int)*m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(fin,"%d",&a[i][j]);
int mod=1;
int sum,sumaux;
sum=eval(a);
while(mod)
{
printf("%d\n",sum);
mod=0;
for(i=0;i<n;i++)
{
lin(i,a);
sumaux=eval(a);
if(sumaux>sum)
{
mod=1;
sum=sumaux;
break;
}
else
lin(i,a);
}
for(j=0;j<n;j++)
{
col(j,a);
sumaux=eval(a);
if(sumaux>sum)
{
mod=1;
sum=sumaux;
break;
}
else
col(j,a);
}
}
fprintf(fout,"%d",sum);
}