Pagini recente » Istoria paginii runda/simulare-cartita-50 | Cod sursa (job #2330729) | Istoria paginii runda/oji1 | Cod sursa (job #2570567) | Cod sursa (job #2028770)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n,m,a[17][17],s,sol[17];
void sumamax()
{
int sm=0;
for(int i=0;i<n;i++)
{
int sl=0;
for(int j=0;j<m;j++)
sl+=a[i][j];
if(sl<0)
sm=sm-sl;
else sm=sm+sl;
}
if(sm>s)
s=sm;
}
void schimbcoloana(int c)
{
for(int i=0;i<n;i++)
a[i][c]=-a[i][c];
}
void back(int k)
{
int start=1;
if(k!=0)
start=sol[k-1]+1;
for(int i=start;i<=m;i++)
{
sol[k]=i;
schimbcoloana(k);
sumamax();
back(k+1);
}
}
int main()
{
f>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
f>>a[i][j];
back(0);
g<<s;
return 0;
}