Pagini recente » Cod sursa (job #2439765) | Monitorul de evaluare | Cod sursa (job #774247) | Cod sursa (job #1379979) | Cod sursa (job #2453087)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void check(int v[100][100], int N, int M, int *max)
{
int s = 0;
for (int i = 0; i <= N - 1; i++)
for (int j = 0; j <= M - 1; j++)
s = s + v[i][j];
if (s > *max)
{
*max = s;
printf("%d ", *max);
}
for (int i = 0; i <= N - 1; i++)
{
s = 0;
for (int j = 0; j <= M - 1; j++)
s = s + v[i][j];
if (s < 0)
{
for (int j = 0; j <= M - 1; j++)
v[i][j] = -v[i][j];
check(v, N, M, max);
for (int j = 0; j <= M - 1; j++)
v[i][j] = -v[i][j];
}
}
for (int j = 0; j <= M - 1; j++)
{
s = 0;
for (int i = 0; i <= N - 1; i++)
s = s + v[i][j];
if (s < 0)
{
for (int i = 0; i <= N - 1; i++)
v[i][j] = -v[i][j];
check(v, N, M, max);
for (int i = 0; i <= N - 1; i++)
v[i][j] = -v[i][j];
}
}
}
int main()
{
FILE* f = fopen("flip.in", "rt");
int N, M, v[100][100], x, i, j, max=0;
fscanf(f, "%d", &N);
fscanf(f, "%d", &M);
for ( i = 0; i <= N - 1; i++)
for ( j = 0; j <= M - 1; j++)
fscanf(f, "%d", &v[i][j]);
check(v, N, M, &max);
f = fopen("flip.out", "wt");
fprintf(f, "%d \n", max);
fflush(stdout);
fclose(f);
return 0;
}