Cod sursa(job #179454)

Utilizator albuaAlbu Alexandru albua Data 15 aprilie 2008 22:24:00
Problema Piese Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>

FILE *f,*g;
long n,m,a[505][505],pus,i,j;


void executa(long slin,long lin,long scol,long col)
{
  long i,j,k;
  k=0;
  while(((1<<k)<=(lin-slin+1))&&((1<<k)<=(col-scol+1)))
    k++;
  k=1<<k-1;
  for(i=slin;i<slin+k;i++)
    for(j=scol;j<scol+k;j++)
      a[i][j]=pus;
  pus++;
  if((slin+k-1)!=lin)
    executa(slin+k,lin,scol,scol+k-1);
  if((scol+k-1)!=col)
    executa(slin,lin,scol+k,col);
}


long main()
{
  f=fopen("piese.in","r");
  g=fopen("piese.out","w");
  fscanf(f,"%ld %ld\n",&n,&m);
  pus=1;
  executa(1,n,1,m);
  fprintf(g,"%ld\n",pus-1);
  for(i=1;i<=n;i++)
    {
      for(j=1;j<=m;j++)
	fprintf(g,"%ld ",a[i][j]);
      fprintf(g,"\n");
    }
  fclose(f);  fclose(g);
  return 0;
}