Pagini recente » Cod sursa (job #2538122) | Cod sursa (job #768650) | Cod sursa (job #2911719) | Cod sursa (job #2231715) | Cod sursa (job #1873475)
#include<bits/stdc++.h>
using namespace std;
long long n, m, a[20][20], b[20], rez_poz, sum_rez = -1<<30,auxa[20][20],sum_rez1 = -1<<30;
void gen(long long n, long long length)
{
for(int j = 0; j < length; j++) b[j] = n%2, n/=2;
//for(int j = 0; j < length; j++) cout << b[j] << " ";
//cout << "\n";
}
int main()
{
ifstream cin("flip.in");
ofstream cout("flip.out");
cin >> n >> m;
for (int i = 0 ; i < n; i++) for (int j = 0 ; j < m; j++) {cin >> a[i][j];auxa[i][j] = a[i][j];}
for (long long k = 0; k < 1<<m; k++)
{
for (int i = 0 ; i < n; i++) for (int j = 0 ; j < m; j++) {auxa[i][j] = a[i][j];}
gen(k, m);
for(int j = 0; j < m; j++)
if(b[j]){
for (int z = 0; z < n; z++)
{
auxa[z][j] *=-1;
}
}
long long sum = 0;
for (int i = 0 ; i < n; i++) for (int j = 0 ; j < m; j++) {sum += auxa[i][j];}
if (sum > sum_rez) sum_rez = sum,rez_poz = k;
}
for (int i = 0 ; i < n; i++) for (int j = 0 ; j < m; j++) {auxa[i][j] = a[i][j];}
gen(rez_poz, m);
for(int j = 0; j < m; j++)
if(b[j]){
for (int z = 0; z < n; z++)
{
auxa[z][j] *=-1;
}
}
//for (int i = 0 ; i < n; i++) for (int j = 0 ; j < m; j++) {cout << auxa[i][j] << (j== m-1? "\n":" ");}
sum_rez = 0;
for (int i = 0 ; i < n; i++)
{
long long aux_sum = 0;
for(int j = 0; j < m; j++)
{
aux_sum += auxa[i][j];
}
if(aux_sum < 0) sum_rez += -aux_sum;
else sum_rez += aux_sum;
}
cout <<sum_rez;
}