Pagini recente » Cod sursa (job #929205) | Cod sursa (job #2796562) | Cod sursa (job #911416) | Cod sursa (job #3242819) | Cod sursa (job #3042308)
#include <iostream>
#include <fstream>
#include <vector>
#include <bits/stdc++.h>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n,m,v[21][21];
vector<int> lin_flip;
long long a=0;
void flip(int k)
{int i;
for(i=1;i<=m;i++)
{
v[k][i]=v[k][i]*(-1);
}
}
void backtracking(int k)
{
int i,j;
long long sumcol, total;
if(k==n)
{
for(i=0;i<lin_flip.size();i++)
{
flip(lin_flip[i]);
}
sumcol=0;
total=0;
for(j=1;j<=m;j++)
{
sumcol=0;
for(i=1;i<=n;i++)
{
sumcol=sumcol+v[i][j];
}
total=total+(sumcol);
}
a=max(a,total);
for(i=0;i<lin_flip.size();i++)
{
flip(lin_flip[i]);
}
return;
}
lin_flip.push_back(k);
backtracking(k+1);
lin_flip.pop_back();
backtracking(k+1);
}
int main()
{int i,j;
f>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
f>>v[i][j];
}
}
backtracking(1);
g<<a;
return 0;
}