Cod sursa(job #290316)

Utilizator bog29Antohi Bogdan bog29 Data 27 martie 2009 19:05:23
Problema Piese Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream.h>
#include<math.h>
ifstream in("piese.in");
ofstream out("piese.out");
int n,m,mat[500][500],x,y,is,js,pas;
void getf()
{	int i,j;
	is=-1;js=-1;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
			if(mat[i][j]==0)
			{	is=i;js=j;
				return;
			}
}
int getpow(int is,int js)
{	int i,x,y;
	x=m-js+1;
	y=n-is+1;
	for(i=8;i>=1;i--)
	{	if((pow(2,i)<=x)&&(pow(2,i)<=y))
			return i;
			
	}	
}
void fill(int k)
{	int i,j;
	pas++;
	for(i=0;i<pow(2,k);i++)
		for(j=0;j<pow(2,k);j++)
			mat[is+i][js+j]=pas;
	
}	
int main()
{	int i,j;
	in>>n>>m;
	in.close();
	getf();
	while((is!=-1)&&(js!=-1))
	{	getf();
		fill(getpow(is,js));
		getf();
	}	
	out<<pas<<"\n";
	for(i=1;i<=n;i++)
	{	for(j=1;j<=m;j++)out<<mat[i][j]<<" ";
		out<<"\n";
	}
	out.close();
	return 0;
}