Pagini recente » Istoria paginii runda/shumenichb2013 | Cod sursa (job #2286032) | Cod sursa (job #2648797) | Cod sursa (job #1467397) | Cod sursa (job #622030)
Cod sursa(job #622030)
#include<fstream>
using namespace std;
int v[17][17],n,m,x[17],y[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 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();
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];
}
}
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;
}