Pagini recente » Cod sursa (job #587966) | Cod sursa (job #1434076) | Cod sursa (job #116687) | Cod sursa (job #137584) | Cod sursa (job #697956)
Cod sursa(job #697956)
#include <stdio.h>
long c[18],l[18],a[17][17],s,max;
int i,j,m,n,p;
FILE *f,*g;
int main()
{
f=fopen("flip.in","r");
g=fopen("flip.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
fscanf(f,"%d",&a[i][j]);
c[j]+=a[i][j];l[i]+=a[i][j];
}
}
do{
max=0;
for(i=1;i<=17;i++){
if(c[i]<max){max=c[i];p=100+i;}//100=c=coloana
if(l[i]<max){max=l[i];p=200+i;}//200=l=linie
}
if(max==0){p=300;}//300=0=iesire
else{
if(p/100==1){//coloana
p=p%100;c[p]=0;
for(i=1;i<=n;i++){
l[i]-=a[i][p];
a[i][p]*=-1;
l[i]+=a[i][p];
c[p]+=a[i][p];
}
}
if(p/100==2){//linie
p=p%100;l[p]=0;
for(i=1;i<=m;i++){
c[i]-=a[p][i];
a[p][i]*=-1;
c[i]+=a[p][i];
l[p]+=a[p][i];
}
}
}
}while(p-300);
for(i=1;i<=17;i++){s+=l[i];}
fprintf(g,"%d\n",s);
return 0;
}