Pagini recente » Cod sursa (job #679152) | Cod sursa (job #860213) | Cod sursa (job #3237420) | Cod sursa (job #696222) | Cod sursa (job #1730529)
#include <iostream>
#include <fstream>
#include <bitset>
#include <math.h>
#define NMAX 20
using namespace std;
int a[20][20],n,m,sum=0;
int line[NMAX],column[NMAX];
ifstream f("flip.in");
ofstream g("flip.out");
void back2(int &sum,int k,int &maxim){
for(int i=0;i<=1;i++){
if(!i)sum-=2*column[k];
else sum+=2*column[k];
if(k==m)
maxim=max(sum,maxim);
else back2(sum,k +1,maxim);
}
}
void back1(int &sum,int k,int &maxim){
for(int i=0;i<=1;i++){
if(!i)sum-=2*line[k];
else sum+=2*line[k];
if(k==n)
back2(sum,1,maxim);
else
back1(sum,k+1,maxim);
}
}
int main()
{
f >> n >> m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
f>>a[i][j];
line[i]+=a[i][j];
column[j]+=a[i][j];
sum+=a[i][j];
}
int digit;
int maxim=sum;
back1(sum,1,maxim);
g << maxim;
f.close();
g.close();
return 0;
}