Pagini recente » Cod sursa (job #28080) | Cod sursa (job #884433) | Monitorul de evaluare | Rating Tudor Andrei Patrascu (TudorAndreiPatrascu) | Cod sursa (job #129488)
Cod sursa(job #129488)
#include <stdio.h>
long int a[17][17],pl[17],nel[17],pc[17],nec[17];
int f,j,i,n,m,au,s;
FILE *in,*o;
int main()
{
in=fopen("flip.in","r");
o=fopen("flip.out","w");
fscanf(in,"%d%d",&n,&m);
for(i=1;i<=n;i++)
for (j=1;j<=m;j++)
{
fscanf(in,"%d",&a[i][j]);
if (a[i][j]<0)
nel[i]=nel[i]+a[i][j]*(-1);
else pl[i]=pl[i]+a[i][j];
}
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
if (a[j][i]<0)
nec[i]=nec[i]+a[j][i]*(-1);
else pc[i]=pc[i]+a[j][i];
f=1;
while (f==1)
{
f=0;
for (i=1;i<=n;i++)
if (pl[i]<nel[i])
{
au=pl[i];
pl[i]=nec[i];
nec[i]=au;
f=1;
for (j=1;j<=m;j++)
{
if (a[i][j]>0)
{
pc[j]=pc[j]-a[i][j];
nec[j]=nec[j]+a[i][j];}
else {
pc[j]=pc[j]+a[i][j]*(-1);
nec[j]=nec[j]-a[i][j]*(-1);
}
a[i][j]=a[i][j]*(-1);
}
}
for (i=1;i<=m;i++)
if (pc[i]<nec[i])
{
au=pc[i];
pc[i]=nec[i];
nec[i]=au;
f=1;
for (j=1;j<=n;j++)
{
if (a[j][i]>0)
{
pl[j]=pl[j]-a[j][i];
nel[j]=nel[j]+a[j][i];}
else {
pl[j]=pl[j]+a[j][i]*(-1);
nel[j]=nel[j]-a[j][i]*(-1);
}
a[j][i]=a[j][i]*(-1);
}
}
}
for (i=1;i<=n;i++)
s=s+pl[i]-nel[i];
fprintf(o,"%d",s);
fclose(in);
fclose(o);
return 0;
}