Pagini recente » Cod sursa (job #1170253) | Cod sursa (job #2475746) | Cod sursa (job #102812) | Cod sursa (job #1331108) | Cod sursa (job #640838)
Cod sursa(job #640838)
#include <iostream>
#include <fstream>
using namespace std;
int N, M, Stiva[33];
long Flip[17][17], S;
void Citire ()
{
ifstream fin ("flip.in");
int i, j;
fin >> N >> M;
for (i=0; i<N; i++)
{
for (j=0; j<M; j++)
{
fin >> Flip[i][j];
}
}
fin.close ();
}
void Afisare ()
{
ofstream fout ("flip.out");
fout << S << "\n";
fout.close ();
}
long Max (long a, long b)
{
if (a>b)
{
return a;
}
return b;
}
void Baza2 (int n)
{
int i=0;
while (n>0)
{
Stiva[i++]=n%2;
n/=2;
}
while (i<=32)
{
Stiva[i++]=0;
}
}
int main ()
{
int n, i, j, ConfiguratieMax;
long SCurent, Element, SLinie;
Citire ();
ConfiguratieMax=1<<M;
for (n=0; n<=ConfiguratieMax; n++)
{
Baza2 (n);
SCurent=0;
for (i=0; i<N; i++)
{
SLinie=0;
for (j=0; j<M; j++)
{
Element=Flip[i][j];
if (Stiva[j]==1)
{
Element*=(-1);
}
SLinie+=Element;
}
SCurent+=Max (SLinie, -SLinie);
}
if (SCurent>S)
{
S=SCurent;
}
}
Afisare ();
return 0;
}