Pagini recente » Cod sursa (job #175320) | Cod sursa (job #987046) | Cod sursa (job #120745) | Algoritmiada 2012 - Clasament Runda 1, Clasa a 10-a | Cod sursa (job #1817967)
//
// main.cpp
// Flip
//
// Created by Albastroiu Radu on 11/28/16.
// Copyright © 2016 Albastroiu Radu. All rights reserved.
//
#include <iostream>
#include <fstream>
#include <algorithm>
#include <unordered_map>
#include <vector>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
// data strctures
int a[32][32], b[32][32], n, m, i, j, v[32], smax;
void Calcul()
{
int i,j,stotal;
for(j = 1; j <= m; j++)
if(v[j] == 1)
for(i = 1; i <= n; i++)
b[i][j] = -a[i][j];
else
for(i = 1; i <= n; i++)
b[i][j] = a[i][j];
stotal = 0;
for(i = 1; i <= n; i++)
{
int s = 0;
for(j = 1; j <= m; j++)
s += b[i][j];
if(s<0)
stotal -= s;
else
stotal += s;
}
smax = max(smax,stotal);
}
void Gen(int top)
{
int i;
if(top==m+1)
Calcul();
else
for(i=0;i<=1;i++)
{
v[top]=i;
Gen(top+1);
}
}
int main()
{
fin >> n >> m;
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
fin >> a[i][j];
Gen(1);
fout << smax;
return 0;
}