Pagini recente » Cod sursa (job #1043928) | Cod sursa (job #201211) | Cod sursa (job #2916743) | Cod sursa (job #1900632) | Cod sursa (job #1896645)
#include <cstdio>
#define MAXN 501
using namespace std;
int color, v[MAXN][MAXN], n, m;
inline void doColor(int x, int y, int edge)
{
color++;
int i, j;
for(i=x; i<=x+edge-1; ++i)
for(j=y; j<=y+edge-1; ++j)
v[i][j] = color;
}
int main()
{
freopen("piese.in", "r", stdin);
freopen("piese.out", "w", stdout);
int i, j, edge = (1<<8);
scanf("%d%d", &n, &m);
while(edge >= 1) {
if(edge <= n && edge <= m) {
for(i=1; i<=n-edge+1; ++i)
for(j=1; j<=m-edge+1; ++j)
if(!v[i][j] && !v[i][j+edge-1] && !v[i+edge-1][j] && !v[i+edge-1][j+edge-1])
doColor(i, j, edge); }
edge >>= 1; }
printf("%d\n", color);
for(i=1; i<=n; ++i){
for(j=1; j<=m; ++j)
printf("%d ", v[i][j]);
printf("\n"); }
return 0;
}