Pagini recente » Cod sursa (job #2375040) | Cod sursa (job #1557094) | Cod sursa (job #2557444) | Cod sursa (job #3287360) | Cod sursa (job #458025)
Cod sursa(job #458025)
#include <stdio.h>
#include <stdlib.h>
#define FILE_IN "flip.in"
#define FILE_OUT "flip.out"
#define COMS(coms, i) (((coms >> i) & 1) ? -1 : 1)
int n, m;
int table[16][16];
int doSum (int comsN)
{
int sum = 0;
int i, j;
for (j = 0; j < m; ++j)
{
int s = 0;
for (i = 0; i < n; ++i)
{
s += table[i][j] * COMS(comsN, i);
}
sum += (s > 0) ? (s) : (-s);
}
return sum;
}
int doSwitches ()
{
int maxSum = 0xFFFFFFFF;
int maxComsN = 1 << (n);
int i, j;
for (i = 0; i < maxComsN; ++i)
{
int sum = doSum(i);
if (abs(sum) > maxSum)
maxSum = abs(sum);
}
return maxSum;
}
int main()
{
FILE* file;
int i, j;
file = fopen(FILE_IN, "r");
fscanf(file, "%d %d", &n, &m);
for (i = 0; i < n; ++i)
for (j = 0; j < m; ++j)
{
fscanf(file, " %d", &(table[i][j]));//(int**)table + (((i * 16) + j) * sizeof(int)));
}
fclose(file);
file = fopen(FILE_OUT, "w");
fprintf(stdout, "%d", doSwitches());
fclose(file);
return 0;
}