Cod sursa(job #196192)

Utilizator gcosminGheorghe Cosmin gcosmin Data 24 iunie 2008 20:22:45
Problema Piese Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>

int N, M;

int a[510][510];

inline int MIN(int a, int b) { return (a < b) ? a : b; }

int main()
{
	int i, j, ii, jj, k, nr = 0;

	freopen("piese.in", "r", stdin);
	freopen("piese.out", "w", stdout);

	scanf("%d %d", &N, &M);

	for (i = 1; i <= N; i++)
		for (j = 1; j <= M; j++) {
			if (a[i][j]) continue;

			for (k = 1; k <= MIN(N - i + 1, M - j + 1); k <<= 1); k >>= 1;

			nr++;
			for (ii = i; ii < i + k; ii++)
				for (jj = j; jj < j + k; jj++)
					a[ii][jj] = nr;
		}

	for (i = 1; i <= N; i++) {
		for (j = 1; j <= M; j++) printf("%d ", a[i][j]);
		printf("\n");
	}

return 0;
}