Pagini recente » Cod sursa (job #690515) | Cod sursa (job #417834) | Cod sursa (job #336305) | Cod sursa (job #192835) | Cod sursa (job #856536)
Cod sursa(job #856536)
#include<stdio.h>
int n,m,a[16][16];
void Citire()
{
int i,j;
FILE *f;
f=fopen("flip.in","r");
fscanf(f,"%d %d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(f,"%d",&a[i][j]);
}
void FlipLinie(int x)
{
int i;
for(i=0;i<m;i++)
a[x][i]*=-1;
}
void FlipColoana(int x)
{
int i;
for(i=0;i<n;i++)
a[i][x]*=-1;
}
void flip()
{
int ok=1,sl[16],sc[16],slmin,scmin,i,j;
while(ok)
{
for(i=0;i<n||i<m;i++)
sl[i]=sc[i]=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
sl[i]+=a[i][j];
sc[j]+=a[i][j];
}
slmin=0;
for(i=1;i<n;i++)
if(sl[slmin]>sl[i])
slmin=i;
scmin=0;
for(i=1;i<m;i++)
if(sc[scmin]>sc[i])
scmin=i;
if(sl[slmin]<0||sc[scmin]<0)
{
if(sl[slmin]>sc[scmin])
FlipColoana(scmin);
else
FlipLinie(slmin);
}
else
ok=0;
}
}
int main()
{
int i,j,s=0;
FILE *o;
Citire();
o=fopen("flip.out","w");
flip();
for(i=0;i<n;i++)
for(j=0;j<m;j++)
s+=a[i][j];
fprintf(o,"%d",s);
return 0;
}