Pagini recente » Cod sursa (job #983949) | Cod sursa (job #242813) | Cod sursa (job #167285)
Cod sursa(job #167285)
#include <fstream.h>
int n,m;
int Nr=0;
int A[512][512];
void Verificare(int x1,int y1,int x2, int y2){
int i, p, j;
int min=x2-x1+1;
if ((y2-y1+1)<min) min=y2-y1+1;
p=1;
while (p<=min) p*=2;
p=p/2;
Nr++;
for (i=x1;i<=x1+p-1;i++)
for (j=y1;j<=y1+p-1;j++)
A[i][j]=Nr;
if ((x2-x1+1)!=p)
Verificare(x1+p,y1,x2,y1+p-1);
if ((y2-y1+1)!=p)
Verificare(x1,y1+p,x2,y2);
}
int main(){
ifstream fin("piese.in");
ofstream fout("piese.out");
int i, j;
fin>>n>>m;
Verificare (1,1,n,m);
fout<<Nr<<'\n';
for (i=1;i<=n;i++){
for (j=1;j<=m;j++)
fout<<A[i][j]<<' ';
fout<<'\n';
}
fout.close();
return 0;
}