Cod sursa(job #346096)

Utilizator DarkstarAndrei Darkstar Data 6 septembrie 2009 18:40:55
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#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;
}