Pagini recente » Cod sursa (job #1420890) | Cod sursa (job #1623155) | Cod sursa (job #230043) | Cod sursa (job #2787536) | Cod sursa (job #2595556)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n,m;
int x[17][17];
int s;
void Flip(int i,int j)
{
int p;
for(p=1;p<=n;p++)
x[p][j] = -x[p][j];
for(p=1;p<=m;p++)
x[i][p] = -x[i][p];
x[i][j]=-x[i][j];
}
int sum(int i,int j)
{
int p;
int suma = 0;
for(p=1;p<=n;p++)
suma += x[p][j];
for(p=1;p<=m;p++)
suma += x[i][p];
suma -= x[i][j];
return s - 2*suma;
}
int bkr()
{
int rez = s;
int oldS = s;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
int newS = sum(i,j);
if(newS > oldS)
{
s=newS;
Flip(i,j);
rez = max(rez,bkr());
Flip(i,j);
s=oldS;
}
}
return rez;
}
int sumaTot()
{
int s = 0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s+=x[i][j];
return s;
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
f>>x[i][j];
s+=x[i][j];
}
g<<bkr();
f.close();
g.close();
return 0;
}