Pagini recente » Cod sursa (job #169647) | Cod sursa (job #2295251) | Cod sursa (job #1973637) | Cod sursa (job #1807377) | Cod sursa (job #2241037)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int coloana[17],mat[17][17],n,m,maxim,k;
void flip (int k)
{
if (k==n+1)
{
int total=0;
for (int i=1;i<=m;i++)
if (coloana[i]>0) total+=coloana[i];
else total-=coloana[i];
if (maxim<total) maxim=total;
return;
}
flip(k+1);
for (int i=1;i<=m;i++) coloana[i]-=2*mat[k][i];
flip(k+1);
for (int i=1;i<=m;i++) coloana[i]+=2*mat[k][i];
}
int main()
{
f>>n>>m;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
{
f>>mat[i][j];
coloana[j]+=mat[i][j];
}
flip(1);
g<<maxim;
f.close();
g.close();
return 0;
}