Cod sursa(job #125941)

Utilizator bogdan2412Bogdan-Cristian Tataroiu bogdan2412 Data 20 ianuarie 2008 21:57:13
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>

#define MAXN 512

int N, M, Nr = 0;
int cov[MAXN][MAXN];

void solve( int N, int M, int x, int y )
{
	int put = 1;
	for (; put <= N && put <= M; put <<= 1);
	put >>= 1;

	Nr++;
	for (int a = x; a < x + put; a++)
		for (int b = y; b < y + put; b++)
			cov[a][b] = Nr;
	if (M > put)
		solve( N, M - put, x, y + put );
	if (N > put)
		solve( N - put, put, x + put, y );
}

int main()
{
	freopen("piese.in", "rt", stdin);
	freopen("piese.out", "wt", stdout);
	
	scanf("%d %d", &N, &M);
	solve( N, M, 1, 1 );

	printf("%d\n", Nr);
	for (int i = 1; i <= N; i++, printf("\n"))
		for (int j = 1; j <= M; j++)
			printf("%d ", cov[i][j]);

	return 0;
}