Pagini recente » Cod sursa (job #598346) | Cod sursa (job #2870696) | Cod sursa (job #499587) | Cod sursa (job #2791450) | Cod sursa (job #2378821)
//madalina scarlat
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int tabla[17][17],i,j,n,m,t[17];
int bck(int p)
{
if (p<=m)
{
t[p]=1;
int p1=bck(p+1);
t[p]=-1;
int p2=bck(p+1);
return (p1>p2?p1:p2);
}
else
{
int sum=0;
for (int i=1;i<=n;++i)
{
int sumc=0;
for (int j=1;j<=m;++j)
sumc+=tabla[i][j]*t[j];
sum+=(sumc>0?sumc:-sumc);
}
return sum;
}
}
int main()
{
f>>n>>m;
for (i=1;i<=n;++i)
for (j=1;j<=m;++j)
f>>tabla[i][j];
g<<bck(1);
}
/*
//autor de pe infoarena
#include <iostream>
#include <cstdio>
using namespace std;
int n, m, s_negativ, s_pozitiv, s_total,x, mat[20][20];
int maxi, valoare[20];
int modul(int a, int b)
{
if (a>b)
return a-b;
return b-a;
}
void backt(int ind)
{
if (ind==n+1)
{
s_total=0;
for (int j=1; j<=m; ++j)
{
int suma=0;
for (int i=1; i<=n; ++i)
{
suma+=valoare[i]*mat[i][j];
}
if (suma<0)
suma*=(-1);
s_total+=suma;
}
if (s_total>maxi)
maxi=s_total;
return;
}
valoare[ind]=1;
backt(ind+1);
valoare[ind]=-1;
backt(ind+1);
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
cin >> n >> m;
for (int i=1; i<=n; ++i)
{
for (int j=1; j<=m; ++j)
{
cin >> mat[i][j];
}
}
backt(1);
cout << maxi;
return 0;
}
*/