Pagini recente » Cod sursa (job #2401747) | Cod sursa (job #1392287) | Cod sursa (job #1903864) | Cod sursa (job #1543492) | Cod sursa (job #2120767)
#include <iostream>
#include <fstream>
#define MAX 18
#include <cmath>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n, m, a[MAX][MAX];
void citire()
{
f>>n>>m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
f>>a[i][j];
}
int suma(int x)
{
int s, rez=0; // suma totala matrice
for(int i=1; i<=n; i++)
{
s=0; // suma pe o linie
for(int j=1; j<=m; j++)
{
if(x&(1<<j-1)) // luam toate combinatiile posibile de semne + - + etc de m semne distincte. Pt m semne avem nevoie de m biti care sa le stocheze => generam submultimile lui m, adica 2^m
s+=a[i][j];
else s-=a[i][j];
}
rez+=abs(s);
}
return rez;
}
int main()
{
int rez=0;
citire();
for(int i=0; i<(1<<m); i++)
rez=max(rez, suma(i));
g<<rez;
}