Pagini recente » Cod sursa (job #347156) | Cod sursa (job #3188180) | Cod sursa (job #2807878) | Cod sursa (job #370725) | Cod sursa (job #592601)
Cod sursa(job #592601)
#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;
}