Pagini recente » Cod sursa (job #361351) | Cod sursa (job #1571535) | Cod sursa (job #1673092) | Cod sursa (job #316613) | Cod sursa (job #963050)
Cod sursa(job #963050)
#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];
}
cout<<maxi<<endl;
}
int sol(int k){
return k==n;
}
void modificarel(int linie){
for(int i=1;i<=m;++i)
a[linie][i]*=-1;
}
int suma(){
int s=0,s1,i,j;
for(i=1;i<=m;++i){
s1=0;
for(j=1;j<=n;++j)
s1+=a[j][i];
if(s1<0)
s1=-s1;
s+=s1;
}
return s;
}
void bkt(int k){
int i;
x[k]=-1;
while(x[k]<1){
++x[k];
if(sol(k)){
for(i=1;i<=n;++i){
if(x[i])
modificarel(i);
}
int xx=suma();
if(xx>maxi)
maxi=xx;
for(i=1;i<=n;++i)
if(x[i])
modificarel(i);
}
else
bkt(k+1);
}
}
int main(){
citire();
bkt(1);
g<<maxi;
return 0;
}