Pagini recente » Cod sursa (job #2091920) | Cod sursa (job #2172982) | Cod sursa (job #25408) | Cod sursa (job #2770756) | Cod sursa (job #1221154)
#include<fstream>
#include<iostream>
#include<algorithm>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int N,M,i,j,k,sol,aux;
int a[17][17],pozl[17],pozc[17];
bool ok;
void eval()
{
int S=0;
for (i=1;i<=N;++i)
{
int s=0;
for (j=1;j<=M;++j)
if (!pozl[i] && !pozc[j])
s+=a[i][j];
else if (!pozl[i] || !pozc[j])
s-=a[i][j];
else
s+=a[i][j];
S=S+s;
}
if (sol<S) sol=S;
}
void col(int y)
{
if (y==M)
{
pozc[y]=0;
eval();
pozc[y]=1;
eval();
}
else
{
pozc[y]=0;
col(y+1);
pozc[y]=1;
col(y+1);
}
}
void linie(int x)
{
if (x==N)
{
pozl[x]=0;
col(1);
pozl[x]=1;
col(1);
}
else
{
pozl[x]=0;
col(1);
linie(x+1);
pozl[x]=1;
col(1);
linie(x+1);
}
}
int main()
{
f>>N>>M;
for (i=1;i<=N;++i)
for (j=1;j<=M;++j)
f>>a[i][j];
linie(1);
g<<sol;
f.close();g.close();
return 0;
}