Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #460433) | Cod sursa (job #579601) | Cod sursa (job #898547)
Cod sursa(job #898547)
#include <fstream>
using namespace std;
long int g[17][17],v[17], maxim=-1.e20;
int n,m;
ifstream fin("flip.in");
ofstream fout("flip.out");
void Citire()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
fin>>g[i][j];
}
long int Back(long int k)
{
long int suma,aux=0;
if(k==n+1)
{
suma=0;
//Mergem pe coloana
for(int i=1;i<=m;i++)
{
aux=0;
for(int j=1;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[k]=1;
Back(k+1);
v[k]=-1;
Back(k+1);
}
int main()
{
Citire();
Back(1);
fout<<maxim;
}