Pagini recente » Profil Dobricean_Ioan | Cod sursa (job #682443) | Cod sursa (job #166821) | Cod sursa (job #655933) | Cod sursa (job #1438931)
#include <fstream>
using namespace std;
FILE *f=fopen("flip.in","r");
FILE *g=fopen("flip.out","w");
int x[420]={0};
int n=0,m=0,a[50][50],suma=0,i=0,j=0,maxim=-256000010;
int cont(int k)
{
return 1;
}
int solutie(int k)
{
if(k==n)
return 1;
else
return 0;
}
int tipar(int k)
{
int suma=0,sumal;
for(i=1;i<=n;i++)
{
for(sumal=0,j=1;j<=n;j++)
{
if(x[j]==1)
sumal+=a[i][j];
else
sumal-=a[i][j];
}
if(sumal<0)
sumal=-sumal;
suma+=sumal;
}
if(suma>maxim)
{
maxim=suma;
}
return maxim;
}
void bkt()
{
int k;
k=1;
x[k]=-1;
while(k>0)
{
if(x[k]<1)
{
x[k]++;
if(cont(k))
{
if(solutie(k))
maxim=tipar(k);
else
{
k++;
x[k]=-1;
}
}
}
else
{
k--;
}
}
}
int main()
{
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fscanf(f,"%d",&a[i][j]);
bkt();
/*
for(i=1;i<=n;i++)
{
if(v[i]==1)
for(j=1;j<=m;j++)
a[i][j]=0-a[i][j];
}
for(i=1;i<=m;i++)
{
s[i]=0;
for(j=1;j<=n;j++)
{
s[i]=s[i]+a[j][i];
}
}
bkt(m,0);
for(i=1;i<=m;i++)
{
if(v[i]==1)
for(j=1;j<=n;j++){
a[j][i]=0-a[j][i];
suma=suma+a[j][i];
}
else
for(j=1;j<=n;j++){
suma=suma+a[j][i];
}
}*/
fprintf(g,"%d",maxim);
return 0;
}