Cod sursa(job #323762)

Utilizator freak93Adrian Budau freak93 Data 13 iunie 2009 13:34:45
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
#define maxn 501

using namespace std;

ifstream f("piese.in");
ofstream g("piese.out");

int a[maxn][maxn],p,n,m,i,j;

void fr(int x1,int y1,int x2,int y2)
{
    if(x1>x2||y1>y2) return;
    if(x1==x2&&y1==y2)
    {
        a[x1][y1]=++p;
        return;
    }
    int step;

    for(step=1;x1+step-1<=x2&&y1+step-1<=y2;step<<=1);
    step>>=1;
    int i,j;
    ++p;
    for(i=x1;i<x1+step;++i)
        for(j=y1;j<y1+step;++j)
            a[i][j]=p;

    fr(x1,y1+step,x1+step-1,y2);
    fr(x1+step,y1,x2,y2);
}

int main()
{
    f>>n>>m;
    fr(1,1,n,m);

    g<<p<<"\n";

    for(i=1;i<=n;++i)
    {
        for(j=1;j<=m;++j)
            g<<a[i][j]<<" ";
        g<<"\n";
    }

    f.close();
    g.close();

    return 0;
}