Pagini recente » Cod sursa (job #2600777) | Cod sursa (job #1425660) | Cod sursa (job #2134916) | Cod sursa (job #1178701) | Cod sursa (job #1516512)
#include <fstream>
using namespace std;
int a[18][18], v[18], b[18][18];
int n, m, maxim = 0, i, j, sum, s;
int main()
{
FILE *fin=fopen ("flip.in","r");
FILE *fout=fopen ("flip.out","w");
fscanf (fin,"%d%d",&n,&m);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++){
fscanf(fin,"%d",&a[i][j]);
}
while (v[0] == 0) {
// construim urmatoarea submultime
i = m;
while (v[i] == 1) {
v[i] = 0;
i--;
}
v[i] = 1;
//intoarcem coloanele ce corespund pozitiilor din v pe care este 1
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if (v[j] == 1)
b[i][j] = -a[i][j];
else
b[i][j] = a[i][j];
sum = 0;
for (i=1;i<=n;i++) {
s = 0;
for (j=1;j<=m;j++)
s = s + b[i][j];
if (s < 0)
sum -= s;
else
sum += s;
}
if (sum > maxim)
maxim = sum;
}
fprintf(fout,"%d",maxim);
return 0;
}