Pagini recente » Cod sursa (job #1365976) | Cod sursa (job #2221980) | Cod sursa (job #1923088) | Cod sursa (job #778848) | Cod sursa (job #1850597)
#include <fstream>
using namespace std;
ifstream fin ("flip.in");
ofstream fout ("flip.out");
int n,m,k,i,j,slin,scol,s,v[17][17];
int actual (){
for(int i=1;i<=n;i++){
v[i][0]=0;
for(int j=1;j<=m;j++)
v[i][0]+=v[i][j];
}
for(int i=1;i<=m;i++){
v[0][i]=0;
for(int j=1;j<=n;j++)
v[0][i]+=v[j][i];
}
}
int afis () {
for(int i=0;i<=n;i++){
for(int j=0;j<=m;j++)
fout<<v[i][j]<<" ";
fout<<"\n";
}
fout<<"\n";
}
int col () {
s=0;
for(k=1;k<=n;k++){
v[k][j]*=-1;
s+=v[k][j];
}
if(s>=v[0][j]){
actual();
}
else
for(k=1;k<=n;k++)
v[k][j]*=-1;
}
int lin () {
s=0;
for(k=1;k<=m;k++){
v[i][k]*=-1;
s+=v[i][k];
}
if(s>=v[i][0]){
actual();
}
else
for(k=1;k<=m;k++)
v[i][k]*=-1;
}
int both () {
scol=0;
slin=0;
for(k=1;k<=n;k++)
v[k][j]*=-1;
for(k=1;k<=m;k++)
v[i][k]*=-1;
for(k=1;k<=n;k++)
scol+=v[k][j];
for(k=1;k<=m;k++)
slin+=v[i][k];
if(scol>=v[0][j] && slin>=v[i][0]){
actual();
}
else
if(scol<v[0][j] && slin>=v[i][0] && (scol+slin)>=(v[0][j]+v[i][0])){
actual();
}
else
if( ((scol>=v[0][j] && slin<v[i][0]) || (scol<v[0][j] && slin>=v[i][0])) && (scol+slin)>=(v[0][j]+v[i][0])){
actual();
}
else
if(scol<v[0][j] && slin<v[i][0]){
for(k=1;k<=n;k++)
v[k][j]*=-1;
for(k=1;k<=m;k++)
v[i][k]*=-1;
}
}
int main () {
fin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fin>>v[i][j];
actual();
afis();
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
both();
col();
lin();
}
}
afis();
s=0;
for(i=1;i<=n;i++)
s+=v[i][0];
for(i=1;i<=n;i++)
s+=v[0][i];
fout<<s;
}