Cod sursa(job #516600)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 24 decembrie 2010 23:38:32
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
//Craciun Fericit!
#include <cstdio>

#define file_in "piese.in"
#define file_out "piese.out"

#define nmax (1<<9)

int N,M;
int i,j,k,nr,j1,i1;
int a[nmax][nmax];

inline int min(int a, int b) { return a<b?a:b; }

int main(){
	
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d", &N, &M);
	
	nr=0;
	
	for (i=1;i<=N;++i)
		 for (j=1;j<=M;++j){
			 
			 if (a[i][j])
				 continue;
			 k=1;
			 while(k<=min(N-i+1,M-j+1))
				  k*=2;
			 k/=2;
			 nr++;
			 for (i1=i;i1<i+k;++i1)
				  for (j1=j;j1<j+k;++j1)
					   a[i1][j1]=nr;
		 }
	printf("%d\n", nr);
	for (i=1;i<=N;++i){
           for (j=1;j<=M;++j)
                printf("%d ", a[i][j]);
	printf("\n");
    }
	
	return 0;
	
}