Pagini recente » Cod sursa (job #3163206) | Cod sursa (job #1633211) | Cod sursa (job #3206584) | Cod sursa (job #3224344) | Cod sursa (job #416818)
Cod sursa(job #416818)
#include<fstream>
using namespace std;
ifstream f("flip.in"); ofstream g("flip.out");
long i,j,s,si,st1,st2,st,m,n,max1,tab[17][17],ss; bool comp; int ruli,rulc,sr;
int citire()
{ int st=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{ f>>tab[i][j]; st=st+tab[i][j]; }
return 0;
}
int flip_linie()
{ s=0; si=0;
for(j=1;j<=m;j++)
{ si=si+tab[i][j];
s=s+tab[i][j]*(-1);
if(comp==1) { sr=sr+tab[i][j]; tab[i][j]=tab[i][j]*(-1); ss=ss+tab[i][j]; ruli++; }
else st1=st1+tab[i][j];
}
comp=0;
if(si<s&&ruli==0) comp=1;
else
comp=0;
ruli=0;
return comp;
}
int flip_coloana()
{ s=0; si=0;
for(i=1;i<=n;i++)
{ si=si+tab[i][j];
s=s+tab[i][j]*(-1);
if(comp==1) { sr=sr+tab[i][j]; tab[i][j]=tab[i][j]*(-1); ss=ss+tab[i][j]; rulc++; }
else st2=st2+tab[i][j];
} comp=0;
if(si<s&&rulc==0) comp=1;
else
comp=0;
rulc=0;
return comp;
}
int back()
{ for(i=1;i<=n;i++)
{ flip_linie();
if(comp==1) { ruli=1; flip_linie(); }
} st1=st1-sr+ss;
if(st<=st1) max1=st1;
else
max1=st;
sr=0; st1=0; ss=0;
for(j=1;j<=m;j++)
{ flip_coloana();
if(comp==1) flip_coloana();
}
st2=st2-sr+ss;
if(max1<st2) max1=st2;
return max1;
}
int main()
{ f>>n>>m;
citire();
back();
g<<max1;
f.close(); g.close();
return 0;
}