Pagini recente » Cod sursa (job #492183) | Cod sursa (job #2743537) | Cod sursa (job #1791628) | Borderou de evaluare (job #1036954) | Cod sursa (job #328992)
Cod sursa(job #328992)
#include <stdio.h>
#include <math.h>
void init();
void back();
bool exista();
bool solutie();
void prelucreaza();
int m,n,k,i,j,s,t;
int a[16][16];
int st[16];
int r[16];
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d",&n,&m);
for (i = 0;i<n;i++)
{
for (j = 0;j<m;j++)
{
scanf("%d",&a[i][j]);
}
}
s = -sizeof(int);
back();
printf("%d",s);
}
void back()
{
k = 1;
init();
while (k>0)
{
if (exista())
{
if (solutie())
{
prelucreaza();
}
else
{
k++;
init();
}
}
else
{
k--;
}
}
}
void init()
{
st[k-1] = 3;
}
bool exista()
{
if ((k<=n) && (st[k-1]>-1))
{
st[k-1]-=2;
return true;
}
return false;
}
bool solutie()
{
return (k == n);
}
void prelucreaza()
{
t = 0;
for (i=0;i<m;i++)
{
r[i] = 0;
}
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
r[j] +=a[i][j]*st[i];
}
}
for (i=0;i<m;i++)
{
t+=fabs((double)r[i]);
}
if (t>s)
{
s = t;
}
}