Pagini recente » Cod sursa (job #2713025) | Cod sursa (job #676907) | Cod sursa (job #967139) | Cod sursa (job #1145899) | Cod sursa (job #1492351)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int Tabla[17][17];
int liniiPos[17];
int max1;
int n,m;
void citire()
{
f>>n>>m;
int i,k;
for(i=1;i<=n;i++)
for(k=1;k<=m;k++)
f>>Tabla[i][k];
}
void coloane()
{
int k,j;
for(k=1;k<=n;k++)
if(liniiPos[k]==1)
for(j=1;j<=m;j++)
Tabla[k][j]*=-1;
int suma;
for(k=1;k<=m;k++)
{
suma=0;
for(j=1;j<=n;j++)
suma=suma+Tabla[j][k];
Tabla[0][k]=suma;
}
int sumaTot=0;
for(k=1;k<=m;k++)
{
if((Tabla[0][k]*(-1))>Tabla[0][k])
sumaTot=sumaTot+(Tabla[0][k]*(-1));
else
sumaTot=sumaTot+Tabla[0][k];
}
if(sumaTot>max1)
max1=sumaTot;
}
void back(int i)
{
if(i>n)
coloane();
else
{
int k;
for(k=0;k<=1;k++)
{
liniiPos[i]=k;
back(i+1);
}
liniiPos[i]=0;
}
}
void flip()
{
back(1);
}
int main()
{
citire();
flip();
g<<max1;
f.close();
g.close();
return 0;
}