Pagini recente » Cod sursa (job #1644601) | Cod sursa (job #288639) | Cod sursa (job #2537974) | Cod sursa (job #3164648) | Cod sursa (job #8329)
Cod sursa(job #8329)
#include<fstream.h>
#include<iomanip.h>
#include<iostream.h>
#include<math.h>
#define NMAX 17
long n,m,tabla[NMAX][NMAX],suma=-1000001;
int x[NMAX];
void citire()
{int i,j;
fstream f("flip.in",ios::in);
f>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
f>>tabla[i][j];
f.close(); }
int valid(int k)
{int i,e=1;
i=1;
for (i=1;i<k && e;i++) if (x[k]==x[i]) e=0;
return e; }
void verif(int dim)
{int i,j,aux,sum=0,v[NMAX];
for (i=1;i<=m;i++) v[i]=0;
for (i=1;i<=dim;i++) v[x[i]]=1;
for (i=1;i<=n;i++)
{ aux=0;
for (j=1;j<=m;j++)
if (v[j]) aux=aux+(-tabla[i][j]);
else aux=aux+tabla[i][j];
sum=sum+abs(aux); }
if (sum>suma) suma=sum;
}
void rez(int l)
{int i,k,ok;
k=1;
x[k]=0;
while (k>0)
{ ok=0;
while (!ok && x[k]<m)
{ x[k]++;
if (valid(k)) ok=1; }
if (!ok) k--;
else if (k==l) verif(k);
else { k++; x[k]=x[k-1]; }
}
}
void afisare()
{fstream f("flip.out",ios::out);
f<<suma;
f.close();}
int main()
{int i;
citire();
for (i=1;i<=m;i++) rez(i);
afisare();
return 0;}