Pagini recente » Cod sursa (job #685302) | Cod sursa (job #1834166) | Cod sursa (job #1768778) | Cod sursa (job #1601328) | Cod sursa (job #346096)
Cod sursa(job #346096)
#include<stdio.h>
long nr,a[501][501],n,m,i,j;
void rec(long x1,long y1,long x2,long y2)
{long i,j,ii;
if(x1>x2||y1>y2)return;
for(ii=0;(1<<ii)<=y2-y1+1&&(1<<ii)<=x2-x1+1;++ii);
--ii;
++nr;
for(i=x1;i<=x1+(1<<ii)-1;++i)
for(j=y1;j<=y1+(1<<ii)-1;++j)
a[i][j]=nr;
rec(x1,y1+(1<<ii),x1+(1<<ii)-1,y2);
rec(x1+(1<<ii),y1,x2,y2);
}
int main()
{
freopen("piese.in","r",stdin);
freopen("piese.out","w",stdout);
scanf("%ld%ld",&n,&m);
rec(1,1,n,m);
printf("%ld\n",nr);
for(i=1;i<=n;++i)
{
for(j=1;j<=m;++j)
printf("%ld ",a[i][j]);
printf("\n");
}
return 0;
}