Pagini recente » Borderou de evaluare (job #1719448) | Cod sursa (job #3195365) | Cod sursa (job #759361) | Borderou de evaluare (job #2013167) | Cod sursa (job #323762)
Cod sursa(job #323762)
#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;
}