Pagini recente » Istoria paginii utilizator/ancapop | Monitorul de evaluare | Istoria paginii utilizator/anahita | Istoria paginii utilizator/fiibcp | Cod sursa (job #1353314)
#include <fstream>
#include <iostream>
std::ifstream in("flip.in");
std::ofstream out ("flip.out");
int n,m,mx=0;
bool L[17];
std::pair <int,int> V[17][17];
int check(int k)
{
int a=0;
for(int i=1;i<=n;i++)
{
if(L[i]==0)
a+=V[k][i].first;
else
a+=V[k][i].second;
}
if(a<0)
return -a;
else
return a;
}
void sum()
{
int t=0;
for (int i=1;i<=n;i++)
t+=check(i);
if(mx<t)
mx=t;
}
void read()
{
in>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
in>>V[i][j].first;
V[i][j].second=-V[i][j].first;
}
}
void combcol(int k,int a,int j)
{
if(a<=k)
{
for(int i=j;i<=m;i++)
{
L[i]=!L[i];
combcol(k,a+1,i);
L[i]=!L[i];
}
}
else
{
sum();
}
}
int main()
{
read();
for(int i=0;i<=m;i++)
combcol(i,1,1);
out<<mx;
}