Pagini recente » Cod sursa (job #1545397) | Cod sursa (job #271355) | Cod sursa (job #2152469) | Cod sursa (job #1772603) | Cod sursa (job #622036)
Cod sursa(job #622036)
#include<fstream>
using namespace std;
int v[17][17],n,m,x[17],y[17],a[17][17];
void citire(){
ifstream fin("flip.in");
fin>>n>>m;
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
fin>>v[i][j];
}
fin.close();
}
void sum(){
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
x[i]+=v[i][j];
y[j]+=v[i][j];
}
}
}
void copy(){
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
a[i][j]=v[i][j];
}
void bc(){
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
v[i][j]=a[i][j];
}
void comc(int k){
int i;
for(i=1;i<=n;i++){
v[i][k]=-v[i][k];
}
y[k]=-y[k];
for(i=1;i<=n;i++)
x[i]=x[i]+2*v[i][k];
}
void coml(int k){
int i;
for(i=1;i<=m;i++){
v[k][i]=-v[k][i];
}
x[k]=-x[k];
for(i=1;i<=n;i++){
y[i]+=2*v[k][i];
}
}
int main(){
citire();
sum();
copy();
int i,j;
int s1=0;
int ok=1;
do{
ok=1;
for(i=1;i<=n;i++){
if(x[i]<0){ coml(i);
ok=0;
}
}}
while(ok==0);
do{
ok=1;
for(i=1;i<=m;i++){
if(y[i]<0){ comc(i);
ok=1;
}
}
}
while(ok==0);
int s=0;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
s+=v[i][j];
}
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
s+=v[i][j];
}
}
bc();
do{
ok=1;
for(i=1;i<=m;i++){
if(y[i]<0){ comc(i);
ok=1;
}
}
}
while(ok==0);
do{
ok=1;
for(i=1;i<=n;i++){
if(x[i]<0){ coml(i);
ok=0;
}
}
}
while(ok==0);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
s1+=v[i][j];
}
}
ofstream fout("flip.out");
if(s1>s) fout<<s1;
else
fout<<s;
fout.close();
return 0;
}