Pagini recente » Cod sursa (job #1644470) | Cod sursa (job #123470) | Cod sursa (job #492396) | Cod sursa (job #1911564) | Cod sursa (job #491889)
Cod sursa(job #491889)
#include <stdio.h>
int mat[20][20],n,m,s,i,j,min,x;
int gata=0,rand, coloana;
void verificare()
{
/*for(i=1;i<=n;i++)
{ for(j=1;j<=m;j++)
printf("%d ", mat[i][j]);
printf("\n");
}*/
min=0;
for(i=1;i<=n;i++)
{
s=0;
for(j=1;j<=m;j++)
{
s=s+mat[i][j];
}
if(i==1)
min=s;
if(s<=min)
{ min=s; rand=1; coloana=0; x=i; }
}
//printf("min r=%d\n",min);
for(i=1;i<=m;i++)
{
s=0;
for(j=1;j<=n;j++)
{
s=s+mat[j][i];
}
if(s<min)
{ min=s; rand=0; coloana=1; x=i; }
}//printf("min c=%d\n",min);
//printf("rand=%d coloana=%d x=%d min=%d\n\n\n",rand,coloana,x,min);
}
void changement()
{
if(min<0)
{ if(rand==1)
for(i=1;i<=m;i++)
mat[x][i]=mat[x][i]* -1;
else
for(i=1;i<=n;i++)
mat[i][x]=mat[i][x]* -1;
}
else
gata=1;
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d",&n);
scanf("%d",&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%d",&mat[i][j]);
do{
verificare();
changement();
}while(gata==0);
/*for(i=1;i<=n;i++)
{ for(j=1;j<=m;j++)
printf("%d ", mat[i][j]);
printf("\n");
}*/
s=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s=s+mat[i][j];
printf("%d",s);
return 0;
}