Cod sursa(job #2381477)

Utilizator mihaelamihaiuMihaela Mihaiu mihaelamihaiu Data 16 martie 2019 20:39:35
Problema Jocul Flip Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <math.h>

int comutare(int a[16][16], int n, int m)
{
	int smax = 0, vl[16], vc[16], i, j, xc, yc, x, y, s;
	int nrn = pow(2, n), nrm = pow(2, m);

	for (x = 0; x < nrn; x++)
		for (y = 0; y < nrm; y++)
		{
			xc = x; i = 0; yc = y; j = 0; s = 0;
			for (i = 0; i < 16; i++)
			{
				if (xc % 2)
					vl[i] = -1;
				else
					vl[i] = 1;
				if (yc % 2)
					vc[i] = -1;
				else
					vc[i] = 1;
				xc /= 2; yc /= 2;
			}
			for (i = 0; i < n; i++)
				for (j = 0; j < m; j++)
					s += a[i][j] * vc[i] * vl[j];
			if (s > smax)
				smax = s;
		}

	return smax;
}

int main()
{
	int n, m, a[16][16], i, j;
	FILE *fin, *fout;

	fin = fopen("flip.in", "r");
	fout = fopen("flip.out", "w");

	fscanf(fin, "%d %d", &n, &m);

	for (i = 0; i < n; i++)
		for (j = 0; j < m; j++)
			fscanf(fin, "%d", &a[i][j]);

	fprintf(fout, "%d", comutare(a, n, m));

	fclose(fin);
	fclose(fout);

	return 0;
}