Pagini recente » Cod sursa (job #738031) | Cod sursa (job #1430487) | Cod sursa (job #108097)
Cod sursa(job #108097)
#include <fstream.h>
#define tip long long
tip a[16][16],b[16][16];
int n,m,v[16];
float s,smax;
int verif()
{ int i;
for (i=1;i<=n;i++) if (v[i]==-1) return 1;
return 0;
}
float suma(int j)
{ int i;
float suma=0;
for (i=1;i<=n;i++)
suma+=b[i][j];
return suma;
}
void flip(int j)
{ int i;
for (i=1;i<=n;i++)
b[i][j]=-b[i][j];
}
int main()
{ int i,j;
ifstream f("flip.in");
ofstream g("flip.out");
f>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++) f>>a[i][j];
f.close();
for (i=1;i<=n;i++) v[i]=-1;
v[i]=0;
while (verif())
{ for (i=1;i<=n;i++)
{ if (v[i]==0) { v[i]=-1;break;}
else if (v[i]==1) v[i]=-1;
else { v[i]=1;break;}
}
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
b[i][j]=a[i][j]*v[i];
for (j=1;j<=m;j++)
if (suma(j)<0) flip(j);
s=0;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
s+=b[i][j];
if (s>smax) smax=s;
}
g<<smax;
g.close();
return 0;
}