Cod sursa(job #167285)

Utilizator ErgoVicol Sergiu Constantin Ergo Data 29 martie 2008 13:38:38
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#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;
}