Pagini recente » Monitorul de evaluare | Cod sursa (job #1884705) | Cod sursa (job #3041384) | Cod sursa (job #120189) | Cod sursa (job #1135223)
#include<iostream>
#include<fstream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<vector>
#include<map>
#include<cstring>
#include<cstdlib>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m,a[17][17],st[20],sumamax;
inline void Citire()
{
int i,j;
fin>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
fin>>a[i][j];
}
inline void Analizeaza(int k)
{
int i,j,sur;
int mat[17][17];
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
mat[i][j]=a[i][j];
for (i=1;i<=k;i++)
for (j=1;j<=m;j++)
mat[st[i]][j]=-mat[st[i]][j];
for (i=1;i<=m;i++)
{
sur=0;
for (j=1;j<=n;j++)
sur+=mat[j][i];
if (sur<0)
for (j=1;j<=n;j++)
mat[j][i]=-mat[j][i];
}
sur=0;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
sur+=mat[i][j];
if (sur>sumamax) sumamax=sur;
}
inline void Back()
{
int i,lim,aux,j,lung;
lim=(1<<n)-1;
for (i=1;i<=lim;i++)
{
aux=i;
j=1;lung=0;
while (aux)
{
if (aux%2==1)
st[++lung]=j;
j++;
aux>>=1;
}
Analizeaza(lung);
}
}
inline void Afisare()
{
fout<<sumamax<<"\n";
}
int main()
{
Citire();
Back();
Afisare();
return 0;
}