Pagini recente » Cod sursa (job #1254433) | Borderou de evaluare (job #1036676) | Cod sursa (job #174557) | Cod sursa (job #203705) | Cod sursa (job #134842)
Cod sursa(job #134842)
#include<fstream.h>
ifstream f("flip.in");
ofstream g("flip.out");
long v[3][3],m,n;
void comut(long l,long p)
{ long i,j;
if(l<0)
for(i=0; i<n; i++)
v[i][p]*=-1;
if(p<0)
for(i=0; i<m; i++)
v[l][i]*=-1;
}
long sum(long l,long p)
{ long s=0,i,j;
if(l<0)
for(i=0; i<n; i++)
s+=v[i][p];
if(p<0)
for(i=0; i<m; i++)
s+=v[l][i];
return s;
}
int main ()
{ long i,j,s1,s2,col[256],lin[256],linie,coloana;
f>>n>>m;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
f>>v[i][j];
linie=-1;
coloana=-1;
for(i=0; i<n; i++)
for(j=0; j<m; j++) {
s1=sum(i,-1);
comut(i,-1);
lin[++linie]=i;
if(s1>sum(i,-1)){
comut(i,-1);
lin[linie]=-1;
s2=sum(-1,j);
comut(-1,j);
col[++coloana]=j;
if(s2>sum(-1,j)){ comut(-1,j); col[coloana]=-1;} }
if(lin[linie]>=0){
s1=-s1+sum(i,-1); comut(i,-1); comut(-1,j);
s2=-s2+sum(-1,j);
if(s1>0&&s2>0&&s1>s2){comut(-1,j); comut(i,-1); lin[linie]=-1;}
}
if(col[coloana]==-1&&lin[linie]==-1){
comut(-1,j); lin[linie]=i;
comut(i,-1); col[coloana]=j;
if((s1+s2)>(sum(i,-1)+sum(-1,j))){
comut(-1,j); lin[linie]=-1; col[coloana]=-1;
comut(i,-1); }
} }
s1=0;
for(i=0; i<n; i++)
for(j=0; j<m; j++){
s1+=v[i][j]; }
g<<s1;
return 0;
}