Pagini recente » Cod sursa (job #594668) | Cod sursa (job #1860097) | Cod sursa (job #1515919)
#include <stdio.h>
int t[16][16],t2[16][16];
long long tv[16],tf[16];
int n,m;
void cs(int vi,int fi);
int main(){
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
int i,j,x,y;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){for(j=0;j<m;j++){
scanf("%d",&t[i][j]);
tv[j]+=t[i][j];
tf[i]+=t[i][j];
}}
#if(0)
for(i=0;i<n;i++){for(j=0;j<m;j++){printf("%d ",t[i][j]);}printf("\n");}
for(i=0;i<m;i++){printf("%d ",tv[i]);}printf("\n");
for(i=0;i<n;i++){printf("%d ",tf[i]);}printf("\n");
#endif
int ki=1;
long long minv,minf,vi,fi;
while(1){
minv=16000001;
minf=16000001;
for(i=0;i<m;i++){
if(tv[i]<minv){
minv=tv[i];
vi=i;
}
}
for(i=0;i<n;i++){
if(tf[i]<minf){
minf=tf[i];
fi=i;
}
}
if((minv>=0 && minf>=0)){break;}
//for(i=0;i<m;i++){printf("%d ",tv[i]);}printf("\n");
//for(i=0;i<n;i++){printf("%d ",tf[i]);}printf("\n");
if(minv<0 && minf<0){
cs(vi,fi);
continue;
}else if(minv<0 && ((-minv)>minf)){
cs(vi,fi);
continue;
}else if(minf<0 && ((-minf)>minv)){
cs(vi,fi);
continue;
}
break;
}
//for(i=0;i<m;i++){printf("%d ",tv[i]);}printf("\n");
//for(i=0;i<n;i++){printf("%d ",tf[i]);}printf("\n");
//for(i=0;i<n;i++){for(j=0;j<m;j++){printf("%d ",t[i][j]);}printf("\n");}
long long sum=0;
for(i=0;i<m;i++){
sum+=tv[i];
}
printf("%lld",sum);
return 0;
}
void cs(int vi,int fi){
tv[vi]=-tv[vi];
tf[fi]=-tf[fi];
int i;
t2[fi][vi]=!t2[fi][vi];
for(i=0;i<vi;i++){
//tv[i]+=-t[fi][i]-t[fi][i];
//t[fi][i]=-t[fi][i];
t2[fi][i]=!t2[fi][i];
tv[i]+=(t[fi][i]+t[fi][i])*(t2[fi][i]*-1);
}
for(i=vi+1;i<m;i++){
//tv[i]+=-t[fi][i]-t[fi][i];
//t[fi][i]=-t[fi][i];
t2[fi][i]=!t2[fi][i];
tv[i]+=(t[fi][i]+t[fi][i])*(t2[fi][i]*-1);
}
for(i=0;i<fi;i++){
//tf[i]+=-t[vi][i]-t[vi][i];
//t[i][vi]=-t[i][vi];
t2[i][vi]=!t2[i][vi];
tf[i]+=(t[i][vi]+t[i][vi])*(t2[i][vi]*-1);
}
for(i=fi+1;i<n;i++){
//tf[i]+=-t[vi][i]-t[vi][i];
//t[i][vi]=-t[i][vi];
t2[i][vi]=!t2[i][vi];
tf[i]+=(t[i][vi]+t[i][vi])*(t2[i][vi]*-1);
}
}