Cod sursa(job #319517)

Utilizator aladinaladin aladinn aladin Data 31 mai 2009 22:32:26
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
int i,j,a[16]={1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024},n,m,x[509][509],nr=0;

void pp(int l1,int l2,int c1,int c2)  
 {int d1,d2,w;
  for (d1=0;;d1++) 
	  if ((a[d1+1]>c2-c1+1) || (a[d1+1]>l2-l1+1)) { w=a[d1]; break;}
  nr++;
  for (d1=l1;d1<=l1+w-1;d1++)
	  for (d2=c1;d2<=c1+w-1;d2++)
		  x[d1][d2]=nr;
  if (c1+w<=c2) pp(l1, l1+w-1, c1+w , c2);
  if (l1+w<=l2) pp(l1+w, l2 , c1, c2);
  
  }	 

int main()
{
 
 freopen("piese.in","r",stdin);
 freopen("piese.out","w",stdout);
 scanf("%d %d",&m,&n);
 pp(1,m,1,n);
 printf("%d\n",nr);
 for (i=1;i<=m;i++,printf("\n"))
	 for (j=1;j<=n;j++)
		 printf("%d ",x[i][j]);
return 0;}