Pagini recente » Cod sursa (job #433467) | Cod sursa (job #434674) | Cod sursa (job #668365) | Cod sursa (job #433797) | Cod sursa (job #886362)
Cod sursa(job #886362)
#include <iostream>
#include<stdio.h>
using namespace std;
FILE *in,*out;
long n,m,a[16][16],v[16],maxim;
void back(int lin)
{
long i,j,s,Stot=0;
if (lin==n)
{
for(j=0;j<m;j++)
{
s=0;
for(i=0;i<n;i++)
s+=(a[i][j]*v[i]);
if(s<0)
Stot=Stot-s;
else
Stot=Stot+s;
}
if (Stot>maxim)
maxim=Stot;
return;
}
else
{//pun 1 cand elem ramane constant
for(i=-1;i<2;i=i+2)
{
v[lin]=i;
back(lin+1);
}
}
}
int main()
{ int i,j;
in=fopen("flip.in","rt");
out=fopen("flip.out","wt");
fscanf(in,"%ld%ld",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(in,"%ld",&a[i][j]);
//algoritm de tip backtracking
back(0);
fprintf(out,"%ld",maxim);
fclose(in);
fclose(out);
return 0;
}