Cod sursa(job #1218756)

Utilizator mihaimusatMihai Musat mihaimusat Data 12 august 2014 14:29:27
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<cstdio>

int v[502][502],n,m,nr;

void fill(int x1,int x2,int y1,int y2)
{
    int i,j;
    for(i=x1;i<=x2;++i)
        for(j=y1;j<=y2;++j)
            v[i][j]=nr;
}

void form(int x1,int y1,int x2,int y2)
{
    if(x1>x2||y1>y2)
        return;
    int l=1,n=x2-x1+1,m=y2-y1+1;
    while(l<=n&&l<=m)
        l*=2;
    l/=2;
    ++nr;
    fill(x1,x1+l-1,y1,y1+l-1);
    form(x1,y1+l,x1+l-1,y2);
    form(x1+l,y1,x2,y1+l-1);
    form(x1+l,y1+l,x2,y2);
}

int main()
{
    freopen("piese.in","r",stdin);
    freopen("piese.out","w",stdout);
    int i,j;
    scanf("%d%d",&n,&m);

    form(1,1,n,m);

    printf("%d\n",nr);
    for(i=1;i<=n;++i)
    {
        for(j=1;j<=m;++j)
            printf("%d ",v[i][j]);
        printf("\n");
    }
    return 0;
}