Cod sursa(job #126187)

Utilizator marinMari n marin Data 21 ianuarie 2008 17:22:42
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#define DIM 501


int a[DIM+1][DIM+1];

int n,m,i,j,k,t,d,ii,jj;

int p2(int n){
  int rez = 1;
  while (rez<<1 <= n)
    rez<<=1;
  return rez;
}


int main(){
  FILE *f = fopen("piese.in","r");
  fscanf(f,"%d %d",&n,&m);
  fclose(f);

  for (i=1;i<=n;i++)
    for (j=1;j<=m;j++)
      if (a[i][j]==0) {
	t++;
	d = 1;
	k=0;
	while ((((i-1) + (1<<(k+1)))<=n) && (((j-1) + (1<<(k+1)))<=m))
	  k++;

	for (ii=i;ii<i+(1<<k);ii++)
	  for (jj=j;jj<j+(1<<k);jj++)
	    a[ii][jj]=t;
      }



  FILE *g = fopen("piese.out","w");
  fprintf(g,"%d\n",t);
  for (i=1;i<=n;i++) {
    for (j=1;j<=m;j++)
      fprintf(g,"%d ",a[i][j]);
    fprintf(g,"\n");
  }
  return 0;

}