Pagini recente » Cod sursa (job #497791) | Cod sursa (job #1702967) | Cod sursa (job #946875) | Cod sursa (job #987091) | Cod sursa (job #125941)
Cod sursa(job #125941)
#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;
}