Pagini recente » Istoria paginii utilizator/florii15 | Cod sursa (job #719787) | Cod sursa (job #2284744) | Cod sursa (job #1151290) | Cod sursa (job #83868)
Cod sursa(job #83868)
#include<stdio.h>
#define Nmax 17
#define Mmax 17
int N, M, A[Nmax][Mmax], SolMax=0, stiva[Nmax];
void flip (int k)
{
for(int i=1;i<=M;i++)
A[k][i]=-A[k][i];
}
void back (int k)
{
if(k==N+1)
{
int suma=0;
for(int i=1;i<=M;i++)
{
int coloana=0;
for(int j=1;j<=N;j++)
{
coloana+=A[j][i];
}
if(coloana<0)
coloana=-coloana;
suma+=coloana;
}
if(suma>SolMax)
SolMax=suma;
}
else
{
for(int i=0;i<=1;i++)
{
if(i==1)
{
flip(k);
stiva[k]=1;
back(k+1);
flip(k);
stiva[k]=0;
}
else
back(k+1);
}
}
}
int main ()
{
FILE *in = fopen ("flip.in", "rt");
FILE *out = fopen ("flip.out", "wt");
fscanf (in, "%d %d", &N, &M);
for(int i=1;i<=N;i++)
for(int j=1;j<=M;j++)
fscanf (in, "%d", &A[i][j]);
back(1);
fprintf (out, "%d", SolMax);
fclose(in);
fclose(out);
return 0;
}