Pagini recente » Cod sursa (job #2717941) | Cod sursa (job #91016) | Cod sursa (job #2496272) | Cod sursa (job #1450535) | Cod sursa (job #1997198)
#include <iostream>
#include <fstream>
#include <cmath>
int tabla[100][100];
int N;
int M;
long long sumaMaxima = -2000000;
int semn[100];
void solutie()
{
long long suma = 0;
for(int j = 1; j <= M; j++)
{
long long suma_ = 0;
for(int i = 1; i <= N; i++)
{
suma_ += tabla[i][j] * semn[i];
}
suma += std::max(suma_, suma_ * (-1));
}
sumaMaxima = std::max(suma, sumaMaxima);
}
void backtracking(int k)
{
if(k > N)
{
solutie();
}
else{
semn[k] = 1;
backtracking(k + 1);
semn[k] = -1;
backtracking(k + 1);
}
}
int main()
{
std::fstream out_flip("flip.out", std::ios::out);
std::fstream in_flip("flip.in", std::ios::in);
in_flip >> N;
in_flip >> M;
for(int i = 1; i <= N; i++)
{
for(int j = 1; j <= M; j++)
{
in_flip >> tabla[i][j];
}
}
backtracking(1);
out_flip << sumaMaxima;
return 0;
}