Cod sursa(job #592601)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 29 mai 2011 13:40:46
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>
#include <algorithm>

using namespace std;

int sol,i,j,n,m,v[501][501];

void solve(int x,int y,int z,int t)
{
    int aux;
    n=z-x+1;
    m=t-y+1;
    if (!n||!m)
        return;
    ++sol;
    for (aux=1;aux<=n&&aux<=m;aux<<=1);
    aux>>=1;
    for (i=x;i<x+aux;++i)
        for (j=y;j<y+aux;++j)
            v[i][j]=sol;
    solve(x+aux,y,z,y+aux-1);
    solve(x,y+aux,z,t);
}

int main()
{
    freopen("piese.in","r",stdin);
    freopen("piese.out","w",stdout);
    scanf("%d%d",&n,&m);
    int n2=n,m2=m;
    solve(1,1,n,m);
    printf("%d\n",sol);
    for (i=1;i<=n2;++i)
    {
        for (j=1;j<=m2;++j)
            printf("%d ",v[i][j]);
        printf("\n");
    }
    return 0;
}