Pagini recente » Cod sursa (job #467285) | Cod sursa (job #431601) | Cod sursa (job #2390485) | Cod sursa (job #1375679) | Cod sursa (job #899016)
Cod sursa(job #899016)
#include <fstream>
#include <vector>
using namespace std;
long int maxim=-1.e20;
vector <long int> g[17],v; int n,m;
ifstream fin("flip.in");
ofstream fout("flip.out");
void Citire()
{
int x;
fin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{fin>>x; g[i].push_back(x);}
}
long int Back(long int k)
{
long int suma,aux=0;
if(k==n)
{
suma=0;
//Mergem pe coloana
for(int i=0;i<m;i++)
{
aux=0;
for(int j=0;j<n;j++)
aux+=(g[j][i]*v[j]);
//Punem suma in modul pt a nu mai fi nevoiti sa inmultim si liniile cu -1
if(aux<0) suma=suma-aux;
else suma=suma+aux;
}
if(maxim<suma) maxim=suma;
return 0;
}
//Luam toate variantele (inmultit cu 1/-1) pentru coloane
v.push_back(1);
Back(k+1);
v.pop_back();
v.push_back(-1);
Back(k+1);
v.pop_back();
}
int main()
{
Citire();
Back(0);
fout<<maxim;
}