Pagini recente » Cod sursa (job #2314829) | Cod sursa (job #614027) | Cod sursa (job #3123000) | Cod sursa (job #1237723) | Cod sursa (job #2468422)
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
int n,m;
int **a;
void read()
{
ifstream fin ("flip.in");
fin >> n >> m;
a=(int**)malloc(n*sizeof(int*));
for(int i=0;i<n;i++)
{
a[i]=(int*)malloc(sizeof(int)*m);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
fin >> a[i][j];
}
}
fin.close();
}
void printa()
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout << a[i][j] << ' ';
}
cout << '\n';
}
}
void freea()
{
for(int i=0;i<n;i++)
{
free(a[i]);
}
free(a);
}
int lsum(int l)
{
int s=0;
for(int i=0;i<m;i++)
{
s+=a[l][i];
}
return s;
}
int csum(int c)
{
int s=0;
for(int i=0;i<n;i++)
{
s+=a[i][c];
}
return s;
}
void sl(int l)
{
for(int i=0;i<m;i++)
{
a[l][i]=-a[l][i];
}
}
void sc(int c)
{
for(int i=0;i<n;i++)
{
a[i][c]=-a[i][c];
}
}
void print(int s)
{
ofstream fout("flip.out");
fout << s << endl;
fout.close();
}
int su=0;
void check()
{
int ns=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
ns+=a[i][j];
}
}
su = max(su,ns);
}
void bc(int c);
void bl(int c);
void bl(int l)
{
check();
if(l<n)
{
sl(l);
bl(l+1);
for(int i=0;i<m;i++)
bc(i);
sl(l);
}
}
void bc(int c)
{
check();
if(c<n)
{
sc(c);
bc(c+1);
sc(c);
}
}
void solve()
{
check();
for(int i=0;i<n;i++)
{
for(int ii=i;ii<n;ii++)
{
sl(ii);
check();
for(int j=0;j<m;j++)
{
for(int jj=j;jj<m;jj++)
{
sc(jj);
check();
sc(jj);
}
}
sl(ii);
}
}
}
int main()
{
read();
for(int i=0;i<n;i++)
bl(i);
//solve();
print(su);
//printa();
freea();
return 0;
}