Pagini recente » Cod sursa (job #1116633) | Cod sursa (job #141887) | Cod sursa (job #2038824) | Cod sursa (job #3150189) | Cod sursa (job #1571451)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m, top, i, j, suml, s, maxx, a[19][19];
bool conf[20];
void backk(int k)
{ if(k==n+1)//ne folosim de configuratie, mergem pe linii
{ s=0;
for(int j=0;j<m;j++)
{ suml=0;
for(int i=0;i<n;i++ )
if(conf[i]==1)//daca e pornit comutatorul
suml=suml+(-1)*a[i][j];
else suml=suml+a[i][j];
s=s+max(suml,-suml);
}
maxx=max(maxx,s);
return;
}
conf[k]=0;
backk(k+1);
conf[k]=1;//marcam comutatorul pornit
backk(k+1);
}
int main()
{
fin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{ fin>>a[i][j];
maxx=maxx+a[i][j]; //retinem suma initiala a matricii
}
backk(1);
fout<<maxx;
return 0;
}