Pagini recente » Cod sursa (job #42108) | Cod sursa (job #2865763) | Cod sursa (job #3234604) | Cod sursa (job #2310508) | Cod sursa (job #128304)
Cod sursa(job #128304)
#include <fstream.h>
#include <math.h>
ifstream fin("piese.in");
ofstream fout("piese.out");
int n,m,a[505][505],min,ok=1;
void citire()
{
fin>>n>>m;
}
void f (int x1,int y1,int x2,int y2)
{
int x,k;
x=0;
while ((x1+(1<<x)-1)<= x2 && (y1+(1<<x)-1)<=y2)
x++;
x--;
k=1<<x;
min++;
for (int i=x1;i<x1+k;i++)
for (int j=y1;j<y1+k;j++)
a[i][j]=min;
if (x1+k<=n&& a[x1+k][y1]==0) f (x1+k,y1,n,m);
if (y1+k<=m && a[x1][y1+k]==0)f (x1,y1+k,n,m);
}
void afisare()
{
fout<<min<<"\n";
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
fout<<a[i][j]<<" ";
fout<<"\n";
}
}
int main()
{
citire();
f(1,1,n,m);
afisare();
fin.close();
fout.close();
return 0;
}