Pagini recente » Cod sursa (job #701617) | Cod sursa (job #283536) | Cod sursa (job #712130) | Cod sursa (job #353419) | Cod sursa (job #871866)
Cod sursa(job #871866)
#include<iostream>
#include<fstream>
using namespace std;
int maxi=0,a[33][33],x[33],n,m;
ifstream f("flip.in");
ofstream g("flip.out");
void citire(){
f>>n>>m;
int i,j;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j){
f>>a[i][j];
maxi+=a[i][j];
}
}
int sol(int k){
return k==n+m;
}
void modificarel(int linie){
for(int i=1;i<=m;++i)
a[linie][i]*=-1;
}
void modificarec(int coloana){
for (int i=1;i<=n;++i)
a[i][coloana]*=-1;
}
int suma(){
int x=0;
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
x+=a[i][j];
return x;
}
void bkt(int k){
int i;
x[k]=-1;
while(x[k]<1){
++x[k];
if(sol(k)){
for(i=1;i<=n+m;++i)
if(x[i])
if(i<=n)
modificarel(i);
else
modificarec(i-n);
int xx=suma();
if(xx>maxi)
maxi=xx;
for(i=1;i<=n+m;++i)
if(x[i])
if(i<=n)
modificarel(i);
else
modificarec(i-n);
}
else
bkt(k+1);
}
}
int main(){
citire();
bkt(1);
g<<maxi;
return 0;
}