Pagini recente » Cod sursa (job #793177) | Cod sursa (job #2354622) | Cod sursa (job #139522) | Cod sursa (job #915473) | Cod sursa (job #1429934)
#include <cstdio>
#include <algorithm>
#include <cstring>
#define Nmax 505
using namespace std;
int n, i, j, m, nr, x, p, q;
int a[Nmax][Nmax], w[Nmax];
int p2(int x)
{
int p = 1;
while (p * 2 <= x)
p *= 2;
return p;
}
int main()
{
freopen("piese.in", "r", stdin);
freopen("piese.out", "w", stdout);
scanf("%d %d", &n, &m);
i = 1; j = 1;
while (1)
{
x = min(p2(n - i + 1), p2(m - j + 1));
++nr;
for (p = i; p < i + x; ++p)
{
for (q = j; q < j + x; ++q)
a[p][q] = nr;
w[p] = j + x - 1;
}
j += x;
if (j > m) { i += x; j = w[i] + 1; }
if (i > n ) break;
}
printf("%d\n", nr);
for (i = 1; i <= n; ++i)
{
for (j = 1; j <= m; ++j)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}