Pagini recente » Cod sursa (job #1819629) | Cod sursa (job #2568891) | Cod sursa (job #3295946) | Cod sursa (job #3295948) | Cod sursa (job #1570965)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n, m, i, j, suml, s, maxx, conf, a[19][19];
int main()
{
f>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{ f>>a[i][j];
maxx=maxx+a[i][j]; //retinem suma initiala a matricii
}
for(conf=1;conf<=(1<<m)-1;conf++)//2^n-1 pasi
{ s=0;
for(i=0;i<n;i++)//parcurgem bitii
{ suml=0;
for(j=0;j<m;j++)
{ if(conf&(1<<j))//daca e intrerupatorul aprins, adica daca bitul j din conf e 1
suml=suml+(-1)*a[i][j];
else suml=suml+a[i][j];
}
s=s+max(suml,-suml);//echivalentul intrerupatorului pe linie, care da suma mai mare
}
maxx=max(maxx,s);//retinem in maxx pe s daca e o configuratie mai buna
}
g<<maxx;
return 0;
}